From: skl Date: Mon, 7 Dec 2020 09:54:59 +0000 (+0300) Subject: 0031481: Data Exchange - provide parser of STEP EXPRESS schema for generation of... X-Git-Url: http://git.dev.opencascade.org/gitweb/?a=commitdiff_plain;h=0654738fd9c700da1309b21171547503b1aadeb4;p=occt-copy.git 0031481: Data Exchange - provide parser of STEP EXPRESS schema for generation of new STEP entities Changes for Lex and YACC. --- diff --git a/adm/cmake/occt_toolkit.cmake b/adm/cmake/occt_toolkit.cmake index 12d6cd6025..d92d75b63b 100644 --- a/adm/cmake/occt_toolkit.cmake +++ b/adm/cmake/occt_toolkit.cmake @@ -124,7 +124,7 @@ foreach (OCCT_PACKAGE ${USED_PACKAGES}) BISON_TARGET (Parser_${CURRENT_BISON_FILE_NAME} ${CURRENT_BISON_FILE} "${FLEX_BISON_TARGET_DIR}/${BISON_OUTPUT_FILE}" COMPILE_FLAGS "-p ${CURRENT_BISON_FILE_NAME} -l -M ${CMAKE_SOURCE_DIR}/${RELATIVE_SOURCES_DIR}/=") FLEX_TARGET (Scanner_${CURRENT_FLEX_FILE_NAME} ${CURRENT_FLEX_FILE} "${FLEX_BISON_TARGET_DIR}/${FLEX_OUTPUT_FILE}" - COMPILE_FLAGS "-P${CURRENT_FLEX_FILE_NAME} -L") + COMPILE_FLAGS "-P${CURRENT_FLEX_FILE_NAME} -L --wincompat") ADD_FLEX_BISON_DEPENDENCY (Scanner_${CURRENT_FLEX_FILE_NAME} Parser_${CURRENT_BISON_FILE_NAME}) list (APPEND SOURCE_FILES ${BISON_OUTPUT_FILE} ${FLEX_OUTPUT_FILE}) diff --git a/src/ExpToCasExe/ExpToCasExe.cxx b/src/ExpToCasExe/ExpToCasExe.cxx index f1151c1b0e..ac4c4a259b 100644 --- a/src/ExpToCasExe/ExpToCasExe.cxx +++ b/src/ExpToCasExe/ExpToCasExe.cxx @@ -29,7 +29,7 @@ #pragma warning (disable:4706) #endif -Handle(Express_Schema) ec_parse ( FILE *fin ); // interface to parser +Handle(Express_Schema) ec_parse(const char* theFileName); // interface to parser // Load list of (class name, package name) from the file // Package names and optional mark flag are set to items in the schema @@ -234,7 +234,7 @@ Standard_Integer main(const Standard_Integer argc, const char *argv[]) // parse std::cout << "Starting parsing " << argv[1] << std::endl; - Handle(Express_Schema) schema = ec_parse(fin); + Handle(Express_Schema) schema = ec_parse(argv[1]); fclose(fin); if (schema.IsNull()) diff --git a/src/ExpToCasExe/FILES b/src/ExpToCasExe/FILES index 4d257e4553..61973b5d99 100644 --- a/src/ExpToCasExe/FILES +++ b/src/ExpToCasExe/FILES @@ -1,7 +1,7 @@ -exptocas.h -expparse.h -mkscanner -mkparser +exptocas.lex +expltocas.yacc +lex.exptocas.cxx +exptocas.tab.hxx +exptocas.tab.cxx ExpToCasExe.cxx -expscan.cxx -expparse.cxx + diff --git a/src/ExpToCasExe/FlexLexer.h b/src/ExpToCasExe/FlexLexer.h new file mode 100644 index 0000000000..c4dad2b142 --- /dev/null +++ b/src/ExpToCasExe/FlexLexer.h @@ -0,0 +1,220 @@ +// -*-C++-*- +// FlexLexer.h -- define interfaces for lexical analyzer classes generated +// by flex + +// Copyright (c) 1993 The Regents of the University of California. +// All rights reserved. +// +// This code is derived from software contributed to Berkeley by +// Kent Williams and Tom Epperly. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: + +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. + +// Neither the name of the University nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. + +// THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR +// IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE. + +// This file defines FlexLexer, an abstract class which specifies the +// external interface provided to flex C++ lexer objects, and yyFlexLexer, +// which defines a particular lexer class. +// +// If you want to create multiple lexer classes, you use the -P flag +// to rename each yyFlexLexer to some other xxFlexLexer. You then +// include in your other sources once per lexer class: +// +// #undef yyFlexLexer +// #define yyFlexLexer xxFlexLexer +// #include +// +// #undef yyFlexLexer +// #define yyFlexLexer zzFlexLexer +// #include +// ... + +#ifndef __FLEX_LEXER_H +// Never included before - need to define base class. +#define __FLEX_LEXER_H + +#include + +extern "C++" { + +struct yy_buffer_state; +typedef int yy_state_type; + +class FlexLexer +{ +public: + virtual ~FlexLexer() { } + + const char* YYText() const { return yytext; } + int YYLeng() const { return yyleng; } + + virtual void + yy_switch_to_buffer( yy_buffer_state* new_buffer ) = 0; + virtual yy_buffer_state* yy_create_buffer( std::istream* s, int size ) = 0; + virtual yy_buffer_state* yy_create_buffer( std::istream& s, int size ) = 0; + virtual void yy_delete_buffer( yy_buffer_state* b ) = 0; + virtual void yyrestart( std::istream* s ) = 0; + virtual void yyrestart( std::istream& s ) = 0; + + virtual int yylex() = 0; + + // Call yylex with new input/output sources. + int yylex( std::istream& new_in, std::ostream& new_out ) + { + switch_streams( new_in, new_out ); + return yylex(); + } + + int yylex( std::istream* new_in, std::ostream* new_out = 0) + { + switch_streams( new_in, new_out ); + return yylex(); + } + + // Switch to new input/output streams. A nil stream pointer + // indicates "keep the current one". + virtual void switch_streams( std::istream* new_in, + std::ostream* new_out ) = 0; + virtual void switch_streams( std::istream& new_in, + std::ostream& new_out ) = 0; + + int lineno() const { return yylineno; } + + int debug() const { return yy_flex_debug; } + void set_debug( int flag ) { yy_flex_debug = flag; } + +protected: + char* yytext; + int yyleng; + int yylineno; // only maintained if you use %option yylineno + int yy_flex_debug; // only has effect with -d or "%option debug" +}; + +} +#endif // FLEXLEXER_H + +#if defined(yyFlexLexer) || ! defined(yyFlexLexerOnce) +// Either this is the first time through (yyFlexLexerOnce not defined), +// or this is a repeated include to define a different flavor of +// yyFlexLexer, as discussed in the flex manual. +# define yyFlexLexerOnce + +extern "C++" { + +class yyFlexLexer : public FlexLexer { +public: + // arg_yyin and arg_yyout default to the cin and cout, but we + // only make that assignment when initializing in yylex(). + yyFlexLexer( std::istream& arg_yyin, std::ostream& arg_yyout ); + yyFlexLexer( std::istream* arg_yyin = 0, std::ostream* arg_yyout = 0 ); +private: + void ctor_common(); + +public: + + virtual ~yyFlexLexer(); + + void yy_switch_to_buffer( yy_buffer_state* new_buffer ); + yy_buffer_state* yy_create_buffer( std::istream* s, int size ); + yy_buffer_state* yy_create_buffer( std::istream& s, int size ); + void yy_delete_buffer( yy_buffer_state* b ); + void yyrestart( std::istream* s ); + void yyrestart( std::istream& s ); + + void yypush_buffer_state( yy_buffer_state* new_buffer ); + void yypop_buffer_state(); + + virtual int yylex(); + virtual void switch_streams( std::istream& new_in, std::ostream& new_out ); + virtual void switch_streams( std::istream* new_in = 0, std::ostream* new_out = 0 ); + virtual int yywrap(); + +protected: + virtual int LexerInput( char* buf, int max_size ); + virtual void LexerOutput( const char* buf, int size ); + virtual void LexerError( const char* msg ); + + void yyunput( int c, char* buf_ptr ); + int yyinput(); + + void yy_load_buffer_state(); + void yy_init_buffer( yy_buffer_state* b, std::istream& s ); + void yy_flush_buffer( yy_buffer_state* b ); + + int yy_start_stack_ptr; + int yy_start_stack_depth; + int* yy_start_stack; + + void yy_push_state( int new_state ); + void yy_pop_state(); + int yy_top_state(); + + yy_state_type yy_get_previous_state(); + yy_state_type yy_try_NUL_trans( yy_state_type current_state ); + int yy_get_next_buffer(); + + std::istream yyin; // input source for default LexerInput + std::ostream yyout; // output sink for default LexerOutput + + // yy_hold_char holds the character lost when yytext is formed. + char yy_hold_char; + + // Number of characters read into yy_ch_buf. + int yy_n_chars; + + // Points to current character in buffer. + char* yy_c_buf_p; + + int yy_init; // whether we need to initialize + int yy_start; // start state number + + // Flag which is used to allow yywrap()'s to do buffer switches + // instead of setting up a fresh yyin. A bit of a hack ... + int yy_did_buffer_switch_on_eof; + + + size_t yy_buffer_stack_top; /**< index of top of stack. */ + size_t yy_buffer_stack_max; /**< capacity of stack. */ + yy_buffer_state ** yy_buffer_stack; /**< Stack as an array. */ + void yyensure_buffer_stack(void); + + // The following are not always needed, but may be depending + // on use of certain flex features (like REJECT or yymore()). + + yy_state_type yy_last_accepting_state; + char* yy_last_accepting_cpos; + + yy_state_type* yy_state_buf; + yy_state_type* yy_state_ptr; + + char* yy_full_match; + int* yy_full_state; + int yy_full_lp; + + int yy_lp; + int yy_looking_for_trail_begin; + + int yy_more_flag; + int yy_more_len; + int yy_more_offset; + int yy_prev_more_offset; +}; + +} + +#endif // yyFlexLexer || ! yyFlexLexerOnce diff --git a/src/ExpToCasExe/ap242.exp b/src/ExpToCasExe/ap242.exp deleted file mode 100644 index 994d3505cd..0000000000 --- a/src/ExpToCasExe/ap242.exp +++ /dev/null @@ -1,49554 +0,0 @@ -(* - $Id: mim_lf.exp,v 1.101 2019/07/01 16:42:01 kevin Exp $ - ISO TC184/SC4/WG12 N10517 - ISO/TS 10303-442 AP242 managed model based 3d engineering - EXPRESS MIM Long form - Supersedes ISO TC184/SC4/WG3 N10384 -*) - --- -*- Mode: Express -*- - -(* ===================================================================================== *) -(* Long form schema generated by The EXPRESS Data Manager compiler version 9.8.9B 20130507 *) -(* Sat Jun 08 15:16:30 2019 *) -(* The schema is converted from ISO10303 P11-2003 to ISO10303 P11-1994 *) -(* ===================================================================================== *) - -(* Pretty Printed by Express Engine - 5.0.21 (GIT eeng-5.0.21) - Steel Bank CL 1.4.16 (64-bits) - - eengine --pretty - -mode mim_longform - -schema mim_lf.exp - Line Width: 120 - Commandline: - eengine --pretty - -mode mim_longform - -schema mim_lf.exp -*) - -(* File: /Users/klt/Desktop/mim_lf.exp *) -(* 1 Schema: AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF *) - -(* Interfaces: 0 *) -(* Constants: 29 *) -(* Types: 449 *) -(* Entities: 2,118 *) -(* Subtype_Constraints: 0 *) -(* Functions: 316 *) -(* Rules: 55 *) -(* Procedures: 0 *) - -SCHEMA automotive_design; - -TYPE a3m_accuracy_type_name = ENUMERATION OF - (atna_others, - atns_area_measure, - atns_length_measure, - atns_others, - atns_plane_angle_measure, - atns_volume_measure); -END_TYPE; - -TYPE a3m_detected_difference_type_name = ENUMERATION OF - (ddna_a3ms_inspected_equivalence_element_select, - ddna_assembly_component_usage, - ddna_binary_assembly_constraint, - ddna_cartesian_point, - ddna_context_dependent_shape_representation, - ddna_count_measure, - ddna_multi_level_reference_designator, - ddna_no_element, - ddna_others, - ddna_volume_measure, - ddns_area_measure, - ddns_cartesian_point, - ddns_connected_face_set, - ddns_count_measure, - ddns_edge, - ddns_face, - ddns_five_count_measure, - ddns_four_count_measure, - ddns_length_measure, - ddns_no_element, - ddns_others, - ddns_point_on_curve, - ddns_point_on_surface, - ddns_several_edges, - ddns_several_faces, - ddns_three_count_measure, - ddns_two_cartesian_points, - ddns_two_count_measure, - ddns_volume_measure); -END_TYPE; - -TYPE a3m_element_type_name = ENUMERATION OF - (etna_others, - etna_product_definition_or_reference, - etna_shape_representation, - etns_connected_edge_set, - etns_connected_face_set, - etns_external_representation_item, - etns_manifold_solid_brep, - etns_others, - etns_point_cloud_dataset, - etns_shell_based_surface_model, - etns_shell_based_wireframe_model, - etns_vertex_point); -END_TYPE; - -TYPE a3m_equivalence_assessment_specification_select = SELECT - (a3m_equivalence_assessment_by_logical_test, - a3m_equivalence_assessment_by_numerical_test); -END_TYPE; - -TYPE a3m_measured_data_type_name = ENUMERATION OF - (mdna_boolean_value, - mdna_context_dependent_measure, - mdna_length_measure, - mdna_length_measure_and_context_dependent_measure, - mdna_others, - mdna_plane_angle_measure, - mdna_volume_measure, - mdns_area_measure, - mdns_boolean_value, - mdns_length_measure, - mdns_others, - mdns_plane_angle_measure, - mdns_volume_measure); -END_TYPE; - -TYPE a3ma_accuracy_type_name = a3m_accuracy_type_name; -END_TYPE; - -TYPE a3ma_detected_difference_type_name = a3m_detected_difference_type_name; -END_TYPE; - -TYPE a3ma_element_type_name = a3m_element_type_name; -END_TYPE; - -TYPE a3ma_measured_data_type_name = a3m_measured_data_type_name; -END_TYPE; - -TYPE a3ms_accuracy_type_name = a3m_accuracy_type_name; -END_TYPE; - -TYPE a3ms_detected_difference_type_name = a3m_detected_difference_type_name; -END_TYPE; - -TYPE a3ms_element_type_name = a3m_element_type_name; -END_TYPE; - -TYPE a3ms_inspected_equivalence_element_select = inspected_equivalence_element_select; -END_TYPE; - -TYPE a3ms_measured_data_type_name = a3m_measured_data_type_name; -END_TYPE; - -TYPE absorbed_dose_measure = REAL; -END_TYPE; - -TYPE acceleration_measure = REAL; -END_TYPE; - -TYPE accuracy_associated_target_select = SELECT - (a3m_equivalence_criteria_representation, - a3m_equivalence_criterion, - a3m_equivalence_inspection_result_representation, - data_equivalence_inspection_result); -END_TYPE; - -TYPE action_items = SELECT - (action, - action_directive, - action_method, - action_method_relationship, - action_property, - action_property_representation, - action_relationship, - action_request_solution, - alternate_product_relationship, - alternative_solution_relationship, - analysis_assignment, - applied_action_assignment, - applied_action_method_assignment, - applied_action_request_assignment, - applied_approval_assignment, - applied_certification_assignment, - applied_classification_assignment, - applied_contract_assignment, - applied_date_and_time_assignment, - applied_date_assignment, - applied_description_text_assignment, - applied_description_text_assignment_relationship, - applied_document_reference, - applied_document_usage_constraint_assignment, - applied_effectivity_assignment, - applied_event_occurrence_assignment, - applied_external_identification_assignment, - applied_identification_assignment, - applied_ineffectivity_assignment, - applied_organizational_project_assignment, - applied_organization_assignment, - applied_person_and_organization_assignment, - applied_security_classification_assignment, - applied_state_observed_assignment, - applied_state_type_assignment, - applied_time_interval_assignment, - applied_usage_right, - approval, - approval_status, - ascribable_state, - ascribable_state_relationship, - assembly_component_usage_substitute, - assignment_object_relationship, - breakdown_of, - calendar_date, - certification, - certification_item, - change_group, - characterized_class, - characterized_object, - class, - classification_item, - class_system, - condition, - conditional_effectivity, - configuration_design, - configuration_effectivity, - configuration_item, - configured_effectivity_assignment, - contract, - date_and_time, - date_and_time_assignment, - date_assignment, - dimensional_location, - dimensional_size, - directed_action_assignment, - directed_dimensional_location, - document_file, - document_reference_item, - document_relationship, - document_type, - draughting_model, - drawing_revision, - effectivity, - evaluated_characteristic, - evaluated_characteristic_of_product_as_individual_test_result, - event_occurrence, - evidence, - exclusive_product_concept_feature_category, - executed_action, - frozen_assignment, - general_property, - general_property_relationship, - group, - group_relationship, - hierarchical_interface_connection, - identification_assignment_relationship, - inclusion_product_concept_feature, - identification_item, - information_right, - information_usage_right, - interface_connection, - interface_connector_as_planned, - interface_connector_as_realized, - interface_connector_design, - interface_connector_occurrence, - interface_connector_version, - interface_definition_connection, - interface_definition_for, - interface_specification_version, - material_designation, - material_designation_characterization, - measure_representation_item, - mechanical_design_geometric_presentation_representation, - organization, - organizational_address, - organizational_project, - organizational_project_relationship, - organization_relationship, - package_product_concept_feature, - person, - person_and_organization, - person_and_organization_address, - presentation_area, - process_operation, - process_plan, - product, - product_category, - product_class, - product_concept, - product_concept_feature, - product_concept_feature_association, - product_concept_feature_category, - product_concept_feature_category_usage, - product_definition, - product_definition_element_relationship, - product_definition_formation, - product_definition_formation_relationship, - product_definition_group_assignment, - product_definition_relationship, - product_definition_substitute, - product_definition_usage, - product_group, - product_group_membership, - product_group_relationship, - product_identification, - product_process_plan, - product_related_product_category, - product_relationship, - property_definition, - property_definition_relationship, - property_definition_representation, - representation, - representation_item, - representation_relationship, - requirement_assigned_item, - requirement_assignment, - requirement_for_action_resource, - resource_property, - retention, - rule_set, - security_classification, - security_classification_level, - shape_aspect, - shape_aspect_relationship, - shape_representation, - state_observed, - state_observed_assignment, - state_observed_relationship, - state_type, - state_type_assignment, - state_type_relationship, - structured_message, - usage_association, - validation, - value_representation_item, - verification, - versioned_action_request); -END_TYPE; - -TYPE action_method_items = SELECT - (action, - action_method, - action_method_relationship, - action_property, - action_property_representation, - action_request_solution, - applied_action_assignment, - applied_action_method_assignment, - applied_action_request_assignment, - applied_approval_assignment, - applied_certification_assignment, - applied_contract_assignment, - applied_description_text_assignment, - applied_document_reference, - applied_document_usage_constraint_assignment, - applied_effectivity_assignment, - applied_event_occurrence_assignment, - applied_external_identification_assignment, - applied_ineffectivity_assignment, - applied_organizational_project_assignment, - applied_organization_assignment, - applied_person_and_organization_assignment, - applied_security_classification_assignment, - applied_time_interval_assignment, - applied_usage_right, - approval, - breakdown_of, - condition, - configuration_design, - configuration_item, - contract, - contract_assignment, - date_and_time, - date_and_time_assignment, - date_assignment, - directed_action_assignment, - document_file, - effectivity, - envelope, - event_occurrence, - evidence, - executed_action, - externally_defined_general_property, - frozen_assignment, - general_property, - general_property_relationship, - hierarchical_interface_connection, - interface_connection, - interface_connector_occurrence, - interface_definition_connection, - material_designation_characterization, - measure_representation_item, - organization, - organizational_address, - organizational_project, - package_product_concept_feature, - person, - person_and_organization, - person_and_organization_address, - product, - product_class, - product_concept, - product_concept_feature, - product_concept_feature_association, - product_concept_feature_category_usage, - product_definition, - product_definition_formation, - product_definition_formation_relationship, - product_definition_relationship, - product_design_version_to_individual, - product_group, - product_group_membership, - product_group_relationship, - product_identification, - property_definition, - property_definition_representation, - representation_item, - representation_relationship, - requirement_assignment, - requirement_for_action_resource, - requirement_view_definition_relationship, - state_observed, - state_type, - state_type_relationship, - structured_message, - validation, - value_representation_item, - verification, - versioned_action_request); -END_TYPE; - -TYPE action_request_item = SELECT - (action, - action_method, - action_property, - action_relationship, - alternate_product_relationship, - assembly_component_usage_substitute, - configuration_design, - configuration_effectivity, - configuration_item, - configured_effectivity_assignment, - contract, - document_file, - draughting_model, - drawing_revision, - executed_action, - general_property, - material_designation, - mechanical_design_geometric_presentation_representation, - organization, - organizational_project, - person, - person_and_organization, - presentation_area, - product, - product_concept, - product_concept_feature, - product_concept_feature_association, - product_concept_feature_category, - product_concept_feature_category_usage, - product_definition, - product_definition_formation, - product_definition_formation_relationship, - product_definition_relationship, - product_definition_substitute, - product_identification, - property_definition, - resource_property, - shape_aspect, - shape_representation, - versioned_action_request); -END_TYPE; - -TYPE actuated_direction = ENUMERATION OF - (bidirectional, - positive_only, - negative_only, - not_actuated); -END_TYPE; - -TYPE ahead_or_behind = ENUMERATION OF - (ahead, - exact, - behind); -END_TYPE; - -TYPE amount_of_substance_measure = REAL; -END_TYPE; - -TYPE analysed_item = SELECT - (action_property_representation, - alternate_product_relationship, - ascribable_state, - assembly_component_usage_substitute, - evidence, - interface_connection, - interface_connector_occurrence, - organization, - organizational_project_relationship, - organization_relationship, - product, - product_concept, - product_definition, - product_definition_context, - product_definition_formation_relationship, - product_definition_relationship, - product_group_relationship, - product_relationship, - property_definition, - property_definition_representation, - requirement_assignment, - state_observed, - state_observed_assignment, - state_observed_role, - state_type, - validation, - verification, - verification_relationship); -END_TYPE; - -TYPE angle_direction_reference_select = SELECT - (curve, - direction, - point_path); -END_TYPE; - -TYPE angle_direction_reference_with_a2p3d_select = SELECT - (angle_direction_reference_select, - axis2_placement_3d); -END_TYPE; - -TYPE angle_relator = ENUMERATION OF - (equal, - large, - small); -END_TYPE; - -TYPE angular_deviation = positive_plane_angle_measure; -END_TYPE; - -TYPE annotation_placeholder_occurrence_role = ENUMERATION OF - (annotation_text, - gps_data); -END_TYPE; - -TYPE annotation_plane_element = SELECT - (draughting_callout, - styled_item); -END_TYPE; - -TYPE annotation_representation_select = SELECT - (draughting_model, - presentation_area, - presentation_view, - symbol_representation); -END_TYPE; - -TYPE annotation_symbol_occurrence_item = SELECT - (annotation_symbol, - defined_symbol); -END_TYPE; - -TYPE annotation_text_occurrence_item = SELECT - (annotation_text, - annotation_text_character, - composite_text, - defined_character_glyph, - text_literal); -END_TYPE; - -TYPE ap242_assignment_object_select = assignment_object_select; -END_TYPE; - -TYPE approval_item = SELECT - (action, - action_directive, - action_method, - action_method_relationship, - action_property, - action_property_representation, - action_request_solution, - alternate_product_relationship, - applied_action_assignment, - applied_action_method_assignment, - applied_action_request_assignment, - applied_approval_assignment, - applied_certification_assignment, - applied_classification_assignment, - applied_contract_assignment, - applied_description_text_assignment, - applied_description_text_assignment_relationship, - applied_document_reference, - applied_document_usage_constraint_assignment, - applied_effectivity_assignment, - applied_event_occurrence_assignment, - applied_external_identification_assignment, - applied_identification_assignment, - applied_ineffectivity_assignment, - applied_organizational_project_assignment, - applied_organization_assignment, - applied_person_and_organization_assignment, - applied_security_classification_assignment, - applied_time_interval_assignment, - applied_usage_right, - assembly_component_usage_substitute, - breakdown_of, - certification, - class, - class_system, - configuration_design, - configuration_effectivity, - configuration_item, - configured_effectivity_assignment, - contract, - date, - date_and_time_assignment, - date_assignment, - directed_action, - directed_action_assignment, - document, - document_file, - draughting_model, - drawing_revision, - effectivity, - envelope, - evaluated_characteristic_of_product_as_individual_test_result, - evidence, - exclusive_product_concept_feature_category, - executed_action, - externally_defined_general_property, - frozen_assignment, - general_property, - general_property_relationship, - group, - group_relationship, - identification_assignment_relationship, - inclusion_product_concept_feature, - information_usage_right, - interface_connection, - interface_connector_as_planned, - interface_connector_as_realized, - interface_connector_definition, - interface_connector_design, - interface_connector_design_to_planned, - interface_connector_design_to_realized, - interface_connector_occurrence, - interface_connector_planned_to_realized, - interface_connector_version, - interface_definition_for, - interface_specification_definition, - interface_specification_version, - in_zone, - material_designation, - material_designation_characterization, - measure_representation_item, - mechanical_design_geometric_presentation_representation, - organization, - organizational_address, - organizational_project, - organization_relationship, - package_product_concept_feature, - person_and_organization, - presentation_area, - process_plan, - product, - product_class, - product_concept, - product_concept_feature, - product_concept_feature_association, - product_concept_feature_category, - product_concept_feature_category_usage, - product_definition, - product_definition_context, - product_definition_formation, - product_definition_formation_relationship, - product_definition_group_assignment, - product_definition_relationship, - product_definition_substitute, - product_definition_usage, - product_process_plan, - product_relationship, - property_definition, - property_definition_representation, - representation, - representation_item, - representation_relationship, - requirement_assignment, - requirement_for_action_resource, - requirement_source, - resource_property, - security_classification, - shape_aspect_relationship, - shape_representation, - structured_message, - validation, - value_representation_item, - verification, - versioned_action_request); -END_TYPE; - -TYPE approved_item = SELECT - (certification, - change, - change_request, - configuration_effectivity, - configuration_item, - contract, - product, - security_classification, - start_request, - start_work); -END_TYPE; - -TYPE area_measure = REAL; -END_TYPE; - -TYPE area_or_view = SELECT - (presentation_area, - presentation_view); -END_TYPE; - -TYPE area_unit_type = ENUMERATION OF - (circular, - cylindrical, - rectangular, - spherical, - square); -END_TYPE; - -TYPE assignment_object_select = SELECT - (action_property, - action_property_representation, - applied_action_assignment, - applied_action_method_assignment, - applied_approval_assignment, - applied_certification_assignment, - applied_contract_assignment, - applied_document_reference, - applied_document_usage_constraint_assignment, - applied_effectivity_assignment, - applied_event_occurrence_assignment, - applied_ineffectivity_assignment, - applied_organizational_project_assignment, - applied_organization_assignment, - applied_person_and_organization_assignment, - applied_security_classification_assignment, - applied_time_interval_assignment, - applied_usage_right, - breakdown_of, - date_and_time_assignment, - date_assignment, - directed_action_assignment, - frozen_assignment, - material_designation_characterization, - organizational_address, - person_and_organization_address, - product_concept_feature_association, - product_concept_feature_category_usage, - property_definition, - property_definition_representation, - requirement_assignment, - requirement_for_action_resource); -END_TYPE; - -TYPE atom_based_value = SELECT - (maths_atom); -END_TYPE; - -TYPE attribute_classification_item = SELECT - (action, - action_directive, - action_method, - action_method_relationship, - action_property, - action_property_representation, - action_relationship, - action_request_solution, - action_request_status, - alternate_product_relationship, - applied_action_assignment, - applied_action_method_assignment, - applied_action_request_assignment, - applied_approval_assignment, - applied_certification_assignment, - applied_document_reference, - applied_document_usage_constraint_assignment, - applied_effectivity_assignment, - applied_event_occurrence_assignment, - applied_external_identification_assignment, - applied_identification_assignment, - applied_organizational_project_assignment, - applied_organization_assignment, - applied_person_and_organization_assignment, - approval, - approval_person_organization, - approval_relationship, - approval_status, - certification, - context_dependent_unit, - contract, - date_and_time_assignment, - date_assignment, - derived_unit, - descriptive_representation_item, - document_file, - document_relationship, - effectivity, - envelope, - envelope_relationship, - event_occurrence_relationship, - executed_action, - general_property, - general_property_relationship, - group, - group_relationship, - information_right, - information_usage_right, - interface_connection, - interface_connector_definition, - interface_definition_connection, - interface_specification_definition, - language, - measure_representation_item, - measure_with_unit, - message_relationship, - named_unit, - organizational_address, - organizational_project_relationship, - organization_relationship, - person_and_organization, - person_and_organization_address, - product, - product_category, - product_concept, - product_concept_context, - product_definition, - product_definition_context, - product_definition_formation, - product_definition_formation_relationship, - product_definition_relationship, - property_definition, - property_definition_relationship, - property_definition_representation, - representation, - representation_context, - representation_item, - security_classification, - state_observed, - state_observed_assignment, - state_observed_relationship, - state_type, - state_type_assignment, - state_type_relationship, - structured_message, - time_interval_relationship, - uncertainty_measure_with_unit, - usage_association, - versioned_action_request); -END_TYPE; - -TYPE attribute_identifier = identifier; -WHERE - WR1: validate_attribute_id(SELF); -END_TYPE; - -TYPE attribute_language_item = SELECT - (action, - action_method, - action_method_relationship, - actuated_kinematic_pair, - alternate_product_relationship, - application_context, - applied_action_assignment, - applied_action_method_assignment, - applied_certification_assignment, - applied_document_reference, - applied_document_usage_constraint_assignment, - applied_external_identification_assignment, - applied_identification_assignment, - applied_organizational_project_assignment, - applied_security_classification_assignment, - approval, - approval_relationship, - approval_status, - assembly_component_usage_substitute, - attribute_value_assignment, - certification, - certification_type, - configuration_design, - configuration_item, - contract, - data_environment, - date_role, - date_time_role, - descriptive_representation_item, - document_relationship, - document_usage_role, - draughting_title, - effectivity, - effectivity_relationship, - envelope, - envelope_relationship, - event_occurrence, - evidence, - external_source, - general_property, - general_property_relationship, - geometric_representation_item, - geometric_tolerance, - group, - group_relationship, - identification_role, - information_right, - information_usage_right, - interface_connection, - interface_connector_occurrence, - interface_definition_connection, - interface_definition_for, - kinematic_pair, - make_from_usage_option, - mapped_item, - message_relationship, - multi_language_attribute_assignment, - name_assignment, - object_role, - organizational_project, - organizational_project_relationship, - organizational_project_role, - organization_relationship, - organization_role, - person_and_organization, - person_and_organization_role, - presentation_layer_assignment, - process_product_association, - product, - product_concept, - product_concept_feature, - product_concept_feature_association, - product_concept_relationship, - product_definition, - product_definition_context, - product_definition_formation, - product_definition_formation_relationship, - product_definition_relationship, - product_definition_shape, - product_definition_substitute, - product_group, - product_group_relationship, - product_related_product_category, - property_definition, - property_definition_relationship, - representation, - representation_item, - representation_relationship, - requirement_assignment, - requirement_for_action_resource, - requirement_source, - resource_property, - resource_requirement_type, - security_classification, - security_classification_assignment, - shape_aspect, - shape_aspect_relationship, - shape_representation, - state_observed, - state_observed_relationship, - state_type, - state_type_relationship, - structured_message, - styled_item, - time_interval_role, - topological_representation_item, - uncertainty_measure_with_unit, - uncertainty_qualifier, - usage_association, - validation, - verification, - versioned_action_request, - versioned_action_request_relationship); -END_TYPE; - -TYPE attribute_select = SELECT - (product_group_context, - product_group_purpose); -END_TYPE; - -TYPE attribute_type = SELECT - (label, - text); -END_TYPE; - -TYPE axial_geometry_constraint_element = SELECT - (circle, - conical_surface, - cylindrical_surface, - line, - plane, - point, - revolved_area_solid, - revolved_face_solid, - right_circular_cone, - right_circular_cylinder, - sphere, - spherical_surface, - surface_of_revolution, - toroidal_surface, - torus); -END_TYPE; - -TYPE axis2_placement = SELECT - (axis2_placement_2d, - axis2_placement_3d); -END_TYPE; - -TYPE b_spline_curve_form = ENUMERATION OF - (polyline_form, - circular_arc, - elliptic_arc, - parabolic_arc, - hyperbolic_arc, - unspecified); -END_TYPE; - -TYPE b_spline_or_composite_curve_select = SELECT - (b_spline_curve, - composite_curve); -END_TYPE; - -TYPE b_spline_or_rectangular_composite_surface_select = SELECT - (b_spline_surface, - rectangular_composite_surface); -END_TYPE; - -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; - -TYPE base_solid_select = SELECT - (solid_model, - csg_primitive, - boolean_result); -WHERE - WR1: NOT('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRIMITIVE_2D' IN TYPEOF(SELF)); -END_TYPE; - -TYPE basis_11_direction_member = SELECT - (cartesian_11, - curve_11, - cylindrical_11, - point_array, - polar_11, - user_defined_11); -END_TYPE; - -TYPE blend_end_condition_select = SELECT - (edge_curve, - point_on_curve, - vertex); -END_TYPE; - -TYPE blend_radius_variation_type = ENUMERATION OF - (linear_blend, - cubic_blend, - unspecified_blend); -END_TYPE; - -TYPE boolean_operand = SELECT - (boolean_result, - csg_primitive, - half_space_2d, - half_space_solid, - solid_model); -END_TYPE; - -TYPE boolean_operand_2d = SELECT - (boolean_result_2d, - bounded_primitive_2d); -END_TYPE; - -TYPE boolean_operator = ENUMERATION OF - (union, - intersection, - difference); -END_TYPE; - -TYPE boolean_value = BOOLEAN; -END_TYPE; - -TYPE bounded_primitive_2d = SELECT - (area_with_outer_boundary, - circular_area, - elliptic_area, - path_area_with_parameters, - polygonal_area, - rectangular_area); -END_TYPE; - -TYPE box_characteristic_select = SELECT - (box_height, - box_rotate_angle, - box_slant_angle, - box_width); -END_TYPE; - -TYPE box_height = positive_ratio_measure; -END_TYPE; - -TYPE box_rotate_angle = plane_angle_measure; -END_TYPE; - -TYPE box_slant_angle = plane_angle_measure; -END_TYPE; - -TYPE box_width = positive_ratio_measure; -END_TYPE; - -TYPE camera_model_d3_multi_clipping_intersection_select = SELECT - (camera_model_d3_multi_clipping_union, - plane); -END_TYPE; - -TYPE camera_model_d3_multi_clipping_union_select = SELECT - (camera_model_d3_multi_clipping_intersection, - plane); -END_TYPE; - -TYPE capacitance_measure = REAL; -END_TYPE; - -TYPE category_usage_item = SELECT - (product_class); -END_TYPE; - -TYPE cc_classified_item = SELECT - (assembly_component_usage, - product_definition_formation); -END_TYPE; - -TYPE cc_person_organization_item = SELECT - (change, - change_request, - configuration_item, - contract, - product, - product_definition, - product_definition_formation, - security_classification, - start_request, - start_work); -END_TYPE; - -TYPE cc_specified_item = SELECT - (product_definition, - shape_aspect); -END_TYPE; - -TYPE celsius_temperature_measure = REAL; -END_TYPE; - -TYPE central_or_parallel = ENUMERATION OF - (central, - parallel); -END_TYPE; - -TYPE certification_item = SELECT - (action_method, - alternate_product_relationship, - analysis_assignment, - applied_action_method_assignment, - assembly_component_usage, - evidence, - executed_action, - interface_connection, - interface_connector_version, - interface_definition_connection, - interface_specification_version, - make_from_usage_option, - organizational_project, - product, - product_definition, - product_definition_formation, - product_definition_formation_relationship, - product_definition_occurrence, - product_definition_occurrence_reference, - product_definition_relationship, - product_group, - product_group_relationship, - product_identification, - product_relationship, - requirement_view_definition_relationship); -END_TYPE; - -TYPE certified_item = SELECT - (supplied_part_relationship); -END_TYPE; - -TYPE chained_representation_link = SELECT - (mapped_item, - representation_context, - representation_relationship); -END_TYPE; - -TYPE change_management_object = SELECT - (action, - action_items, - action_method, - action_method_relationship, - action_property, - action_property_representation, - action_relationship, - applied_action_assignment, - applied_action_method_assignment, - applied_action_request_assignment, - applied_approval_assignment, - applied_certification_assignment, - applied_contract_assignment, - applied_document_reference, - applied_document_usage_constraint_assignment, - applied_effectivity_assignment, - applied_event_occurrence_assignment, - applied_ineffectivity_assignment, - applied_organizational_project_assignment, - applied_organization_assignment, - applied_person_and_organization_assignment, - applied_security_classification_assignment, - applied_time_interval_assignment, - applied_usage_right, - assembly_component_usage, - assembly_component_usage_substitute, - assignment_object_relationship, - breakdown_of, - class, - condition, - conditional_effectivity, - configuration_effectivity, - contract, - date_and_time_assignment, - date_assignment, - directed_action_assignment, - document_file, - effectivity, - event_occurrence, - exclusive_product_concept_feature_category, - frozen_assignment, - general_property_relationship, - inclusion_product_concept_feature, - material_designation, - material_designation_characterization, - measure_representation_item, - organization, - organizational_address, - organizational_project, - organizational_project_relationship, - package_product_concept_feature, - person, - person_and_organization, - person_and_organization_address, - process_operation, - process_plan, - product, - product_class, - product_concept_feature, - product_concept_feature_association, - product_concept_feature_category, - product_concept_feature_category_usage, - product_definition, - product_definition_formation, - product_definition_formation_relationship, - product_definition_group_assignment, - product_definition_occurrence, - product_definition_occurrence_reference, - product_definition_relationship, - product_definition_substitute, - product_identification, - product_process_plan, - project_item, - property_definition, - property_definition_representation, - representation_relationship, - requirement_assignment, - requirement_for_action_resource, - requirement_view_definition_relationship, - value_representation_item); -END_TYPE; - -TYPE change_relationship_select = SELECT - (action_relationship, - alternative_solution_relationship, - product_definition_formation_relationship, - product_definition_relationship, - shape_aspect_relationship); -END_TYPE; - -TYPE change_request_item = SELECT - (product_definition_formation); -END_TYPE; - -TYPE character_spacing_select = SELECT - (descriptive_measure, - length_measure, - measure_with_unit, - ratio_measure); -END_TYPE; - -TYPE character_style_select = SELECT - (character_glyph_style_outline, - character_glyph_style_stroke, - text_style_for_defined_font); -END_TYPE; - -TYPE characterized_action_definition = SELECT - (action, - action_method, - action_method_relationship, - action_relationship); -END_TYPE; - -TYPE characterized_definition = SELECT - (characterized_item, - characterized_object, - characterized_product_definition, - shape_definition); -END_TYPE; - -TYPE characterized_item = SELECT - (dimensional_size, - geometric_tolerance, - item_identified_representation_usage); -END_TYPE; - -TYPE characterized_material_property = SELECT - (material_property_representation, - product_material_composition_relationship); -END_TYPE; - -TYPE characterized_product_composition_value = SELECT - (measure_with_unit); -END_TYPE; - -TYPE characterized_product_definition = SELECT - (product_definition, - product_definition_occurrence, - product_definition_relationship, - product_definition_relationship_relationship); -END_TYPE; - -TYPE characterized_property_representation = SELECT - (action_property_representation, - dimensional_characteristic_representation, - property_definition_representation, - resource_property_representation); -END_TYPE; - -TYPE characterized_resource_definition = SELECT - (action_resource, - action_resource_relationship, - action_resource_requirement); -END_TYPE; - -TYPE chordal_deviation = positive_length_measure; -END_TYPE; - -TYPE class_usage_effectivity_context_item = SELECT - (product_definition); -END_TYPE; - -TYPE classification_item = SELECT - (action, - action_directive, - action_directive_relationship, - action_method, - action_method_relationship, - action_property, - action_property_representation, - action_relationship, - action_request_solution, - action_request_status, - action_resource, - action_resource_relationship, - address, - alternate_product_relationship, - alternative_solution_relationship, - analysis_assignment, - applied_action_assignment, - applied_action_method_assignment, - applied_action_request_assignment, - applied_approval_assignment, - applied_certification_assignment, - applied_classification_assignment_relationship, - applied_contract_assignment, - applied_date_and_time_assignment, - applied_date_assignment, - applied_description_text_assignment, - applied_description_text_assignment_relationship, - applied_document_reference, - applied_document_usage_constraint_assignment, - applied_effectivity_assignment, - applied_event_occurrence_assignment, - applied_external_identification_assignment, - applied_external_identification_assignment_relationship, - applied_identification_assignment, - applied_ineffectivity_assignment, - applied_organizational_project_assignment, - applied_organization_assignment, - applied_person_and_organization_assignment, - applied_security_classification_assignment, - applied_time_interval_assignment, - applied_usage_right, - approval, - approval_person_organization, - approval_relationship, - approval_status, - assembly_component_usage_substitute, - assignment_object_relationship, - attribute_language_assignment, - breakdown_context, - breakdown_element_realization, - breakdown_of, - calendar_date, - certification, - change_element_sequence, - change_group, - characterized_class, - characterized_object, - class, - classified_item, - configuration_design, - configuration_effectivity, - configuration_item, - configuration_item_relationship, - context_dependent_unit, - contract, - contract_relationship, - conversion_based_unit, - date_and_time, - date_and_time_assignment, - date_assignment, - definitional_representation_relationship, - derived_unit, - descriptive_representation_item, - directed_action, - directed_action_assignment, - document_file, - document_relationship, - document_type, - effectivity, - effectivity_relationship, - envelope, - envelope_relationship, - evaluated_characteristic, - event_occurrence, - event_occurrence_relationship, - evidence, - executed_action, - feature_definition, - general_feature, - general_property, - general_property_relationship, - generic_property_relationship, - group, - group_relationship, - identification_assignment, - identification_assignment_relationship, - information_right, - information_usage_right, - interface_connection, - interface_connector_as_planned, - interface_connector_as_realized, - interface_connector_design, - interface_connector_design_to_planned, - interface_connector_design_to_realized, - interface_connector_occurrence, - interface_connector_planned_to_realized, - interface_definition_connection, - interface_definition_for, - in_zone, - language, - link_motion_relationship, - local_time, - location, - location_relationship, - material_designation, - material_designation_characterization, - measure_qualification, - measure_representation_item, - measure_with_unit, - message_relationship, - multi_language_attribute_assignment, - named_unit, - organization, - organizational_address, - organizational_project, - organizational_project_relationship, - organization_relationship, - person, - person_and_organization, - person_and_organization_address, - plus_minus_tolerance, - process_operation, - process_plan, - process_product_association, - product, - product_concept, - product_concept_context, - product_concept_feature, - product_concept_feature_association, - product_concept_feature_category, - product_concept_feature_category_usage, - product_concept_relationship, - product_definition, - product_definition_context, - product_definition_formation, - product_definition_formation_relationship, - product_definition_relationship, - product_definition_usage, - product_definition_usage_relationship, - product_design_to_individual, - product_design_version_to_individual, - product_group, - product_group_membership, - product_group_relationship, - product_process_plan, - product_relationship, - property_definition, - property_definition_representation, - representation, - representation_context, - representation_item, - representation_relationship, - requirement_assignment, - requirement_for_action_resource, - requirement_source, - resource_property, - retention, - satisfies_requirement, - security_classification, - security_classification_level, - shape_aspect, - shape_aspect_relationship, - shape_feature_definition_relationship, - state_definition_to_state_assignment_relationship, - state_observed, - state_observed_assignment, - state_observed_relationship, - state_observed_role, - state_type, - state_type_assignment, - state_type_relationship, - structured_message, - time_interval_relationship, - type_qualifier, - uncertainty_measure_with_unit, - usage_association, - validation, - verification, - versioned_action_request, - versioned_action_request_relationship); -END_TYPE; - -TYPE classified_item = SELECT - (product, - product_definition, - product_definition_formation); -END_TYPE; - -TYPE closed_or_open_shell_select = SELECT - (closed_shell, - open_shell); -END_TYPE; - -TYPE colour_type_enum = ENUMERATION OF - (rgb8, - rgbt8); -END_TYPE; - -TYPE common_datum_list = LIST[2:?] OF datum_reference_element; -WHERE - WR1: SIZEOF( QUERY(dre <* SELF | dre\shape_aspect.of_shape <> SELF[1]\shape_aspect.of_shape)) = 0; -END_TYPE; - -TYPE compound_inner_area_boundary = SELECT - (set_inner_area_boundary); -END_TYPE; - -TYPE compound_item_definition = SELECT - (list_representation_item, - set_representation_item); -END_TYPE; - -TYPE conductance_measure = REAL; -END_TYPE; - -TYPE configuration_design_item = SELECT - (product_definition, - product_definition_formation, - product_definition_occurrence); -END_TYPE; - -TYPE configured_effectivity_context_item = SELECT - (product_concept_feature_association); -END_TYPE; - -TYPE configured_effectivity_item = SELECT - (action_relationship, - process_plan, - product_definition, - product_process_plan); -END_TYPE; - -TYPE connected_edge_with_length_set_items = SELECT - (connected_edge_set, - path, - vertex_on_edge); -END_TYPE; - -TYPE constraint_group_member = SELECT - (explicit_constraint, - simultaneous_constraint_group); -END_TYPE; - -TYPE constructive_geometry_representation_or_shape_representation = SELECT - (constructive_geometry_representation, - shape_representation); -END_TYPE; - -TYPE context_dependent_measure = REAL; -END_TYPE; - -TYPE contract_item = SELECT - (action_directive, - action_method, - action_method_relationship, - alternate_product_relationship, - applied_action_method_assignment, - applied_classification_assignment, - applied_description_text_assignment, - applied_external_identification_assignment, - applied_identification_assignment, - applied_organization_assignment, - applied_person_and_organization_assignment, - directed_action, - drawing_revision, - executed_action, - information_usage_right, - interface_connector_as_planned, - interface_connector_as_realized, - interface_connector_design, - organization, - organizational_project, - person_and_organization, - product, - product_definition, - product_definition_context, - product_definition_formation, - product_definition_formation_relationship, - product_definition_relationship, - product_group, - product_group_relationship, - product_identification, - requirement_assignment, - requirement_source, - security_classification, - structured_message, - validation, - verification, - versioned_action_request); -END_TYPE; - -TYPE contracted_item = SELECT - (product_definition_formation); -END_TYPE; - -TYPE count_measure = NUMBER; -END_TYPE; - -TYPE csg_2d_area_select = SELECT - (axis2_placement_2d, - csg_primitive_solid_2d); -END_TYPE; - -TYPE csg_2d_shape_select = SELECT - (axis2_placement_2d, - csg_solid_2d, - mapped_item); -END_TYPE; - -TYPE csg_primitive = SELECT - (block, - bounded_primitive_2d, - cyclide_segment_solid, - eccentric_cone, - ellipsoid, - faceted_primitive, - rectangular_pyramid, - right_angular_wedge, - right_circular_cone, - right_circular_cylinder, - sphere, - torus); -END_TYPE; - -TYPE csg_select = SELECT - (boolean_result, - csg_primitive); -END_TYPE; - -TYPE csg_select_2d = SELECT - (boolean_result_2d, - bounded_primitive_2d); -END_TYPE; - -TYPE current_element_assignment_select = SELECT - (add_element, - modify_element); -END_TYPE; - -TYPE curve_font_or_scaled_curve_font_select = SELECT - (curve_style_font_and_scaling, - curve_style_font_select); -END_TYPE; - -TYPE curve_on_surface = SELECT - (composite_curve_on_surface, - pcurve, - surface_curve); -END_TYPE; - -TYPE curve_or_annotation_curve_occurrence = SELECT - (annotation_curve_occurrence, - curve); -END_TYPE; - -TYPE curve_or_curve_set = SELECT - (curve, - geometric_curve_set); -END_TYPE; - -TYPE curve_or_render = SELECT - (curve_style, - curve_style_rendering); -END_TYPE; - -TYPE curve_or_surface_constraint_element = SELECT - (curve, - surface); -END_TYPE; - -TYPE curve_style_font_select = SELECT - (curve_style_font, - externally_defined_curve_font, - pre_defined_curve_font); -END_TYPE; - -TYPE curves_or_area = ENUMERATION OF - (curves, - area); -END_TYPE; - -TYPE date_and_time_item = SELECT - (action, - action_directive, - action_method, - action_property, - action_relationship, - action_request_solution, - alternate_product_relationship, - analysis_assignment, - applied_action_assignment, - applied_action_method_assignment, - applied_certification_assignment, - applied_classification_assignment, - applied_contract_assignment, - applied_document_reference, - applied_document_usage_constraint_assignment, - applied_effectivity_assignment, - applied_event_occurrence_assignment, - applied_identification_assignment, - applied_organizational_project_assignment, - applied_organization_assignment, - applied_person_and_organization_assignment, - applied_security_classification_assignment, - applied_usage_right, - approval, - approval_person_organization, - approval_status, - ascribable_state, - assembly_component_usage_substitute, - certification, - class, - class_system, - configuration_design, - configuration_item, - configured_effectivity_assignment, - contract, - data_equivalence_definition, - data_quality_definition, - date_and_time_assignment, - date_assignment, - directed_action, - document, - document_file, - draughting_model, - drawing_revision, - effectivity, - envelope, - event_occurrence, - evidence, - executed_action, - general_property, - general_property_relationship, - information_usage_right, - interface_connection, - interface_connector_as_planned, - interface_connector_as_realized, - interface_connector_design_to_planned, - interface_connector_design_to_realized, - interface_connector_occurrence, - interface_connector_planned_to_realized, - interface_definition_connection, - interface_definition_for, - material_designation, - mechanical_design_geometric_presentation_representation, - organizational_address, - organizational_project, - organization_relationship, - person, - person_and_organization, - presentation_area, - product, - product_concept, - product_concept_feature, - product_concept_feature_association, - product_concept_feature_category, - product_concept_feature_category_usage, - product_definition, - product_definition_context, - product_definition_formation, - product_definition_formation_relationship, - product_definition_relationship, - product_definition_substitute, - product_group, - product_group_membership, - product_group_relationship, - product_identification, - property_definition, - property_definition_representation, - representation, - requirement_assignment, - requirement_for_action_resource, - requirement_source, - resource_property, - rule_action, - security_classification, - security_classification_level, - shape_representation, - state_observed, - state_observed_assignment, - state_observed_relationship, - state_type, - state_type_assignment, - state_type_relationship, - structured_message, - validation, - verification, - verification_relationship, - versioned_action_request); -END_TYPE; - -TYPE date_item = SELECT - (action, - action_directive, - action_method, - action_property, - action_relationship, - action_request_solution, - alternate_product_relationship, - analysis_assignment, - applied_action_assignment, - applied_action_method_assignment, - applied_certification_assignment, - applied_classification_assignment, - applied_contract_assignment, - applied_document_reference, - applied_document_usage_constraint_assignment, - applied_effectivity_assignment, - applied_event_occurrence_assignment, - applied_identification_assignment, - applied_organizational_project_assignment, - applied_organization_assignment, - applied_person_and_organization_assignment, - applied_security_classification_assignment, - applied_usage_right, - approval, - approval_person_organization, - approval_status, - ascribable_state, - assembly_component_usage_substitute, - certification, - class, - class_system, - configuration_design, - configuration_item, - configured_effectivity_assignment, - contract, - data_equivalence_definition, - data_quality_definition, - date_and_time_assignment, - date_assignment, - directed_action, - document, - document_file, - draughting_model, - drawing_revision, - effectivity, - envelope, - event_occurrence, - evidence, - executed_action, - general_property, - general_property_relationship, - information_usage_right, - interface_connection, - interface_connector_as_planned, - interface_connector_as_realized, - interface_connector_design_to_planned, - interface_connector_design_to_realized, - interface_connector_occurrence, - interface_connector_planned_to_realized, - interface_definition_connection, - interface_definition_for, - material_designation, - mechanical_design_geometric_presentation_representation, - organizational_address, - organizational_project, - organization_relationship, - person, - person_and_organization, - presentation_area, - product, - product_concept, - product_concept_feature, - product_concept_feature_association, - product_concept_feature_category, - product_concept_feature_category_usage, - product_definition, - product_definition_context, - product_definition_formation, - product_definition_formation_relationship, - product_definition_relationship, - product_definition_substitute, - product_group, - product_group_membership, - product_group_relationship, - product_identification, - property_definition, - property_definition_representation, - representation, - requirement_assignment, - requirement_for_action_resource, - requirement_source, - resource_property, - security_classification, - security_classification_level, - shape_representation, - state_observed, - state_observed_assignment, - state_observed_relationship, - state_type, - state_type_assignment, - state_type_relationship, - structured_message, - validation, - verification, - verification_relationship, - versioned_action_request); -END_TYPE; - -TYPE date_time_item = SELECT - (approval_person_organization, - certification, - change, - change_request, - contract, - product_definition, - security_classification, - start_request, - start_work); -END_TYPE; - -TYPE date_time_or_event_occurrence = SELECT - (date_time_select, - event_occurrence); -END_TYPE; - -TYPE date_time_select = SELECT - (date, - date_and_time, - local_time); -END_TYPE; - -TYPE datum_or_common_datum = SELECT - (common_datum_list, - datum); -END_TYPE; - -TYPE datum_reference_modifier = SELECT - (datum_reference_modifier_with_value, - simple_datum_reference_modifier); -END_TYPE; - -TYPE datum_reference_modifier_type = ENUMERATION OF - (circular_or_cylindrical, - distance, - projected, - spherical); -END_TYPE; - -TYPE datum_system_or_reference = SELECT - (datum_reference, - datum_system); -END_TYPE; - -TYPE day_in_month_number = INTEGER; -WHERE - WR1: {1 <= SELF <= 31}; -END_TYPE; - -TYPE day_in_week_number = INTEGER; -WHERE - WR1: { 1 <= SELF <= 7 }; -END_TYPE; - -TYPE day_in_year_number = INTEGER; -WHERE - WR1: {1 <= SELF <= 366}; -END_TYPE; - -TYPE defined_glyph_select = SELECT - (externally_defined_character_glyph, - pre_defined_character_glyph); -END_TYPE; - -TYPE defined_symbol_select = SELECT - (externally_defined_symbol, - pre_defined_symbol); -END_TYPE; - -TYPE derived_property_select = SELECT - (action_property, - dimensional_location, - dimensional_size, - geometric_tolerance, - property_definition, - resource_property); -END_TYPE; - -TYPE description_attribute_select = SELECT - (action_request_solution, - application_context, - approval_role, - configuration_design, - context_dependent_shape_representation, - date_role, - date_time_role, - effectivity, - external_source, - organizational_project, - organization_role, - person_and_organization, - person_and_organization_role, - property_definition_representation, - representation); -END_TYPE; - -TYPE description_item = SELECT - (action, - action_directive, - action_directive_relationship, - action_method, - action_method_relationship, - action_property, - action_property_representation, - action_relationship, - address, - alternate_product_relationship, - alternative_solution_relationship, - analysis_representation_context, - applied_action_assignment, - applied_action_method_assignment, - applied_action_request_assignment, - applied_approval_assignment, - applied_certification_assignment, - applied_classification_assignment, - applied_classification_assignment_relationship, - applied_contract_assignment, - applied_description_text_assignment, - applied_description_text_assignment_relationship, - applied_document_reference, - applied_document_usage_constraint_assignment, - applied_effectivity_assignment, - applied_event_occurrence_assignment, - applied_external_identification_assignment, - applied_external_identification_assignment_relationship, - applied_identification_assignment, - applied_ineffectivity_assignment, - applied_location_assignment, - applied_location_representation_assignment, - applied_organizational_project_assignment, - applied_organization_assignment, - applied_person_and_organization_assignment, - applied_security_classification_assignment, - applied_state_observed_assignment, - applied_state_type_assignment, - applied_time_interval_assignment, - applied_usage_right, - approval, - approval_relationship, - ascribable_state, - ascribable_state_relationship, - assembly_component_usage_substitute, - assignment_object_relationship, - breakdown_element_group_assignment, - certification, - change_element_sequence, - change_group, - configuration_design, - configuration_effectivity, - configuration_item, - configuration_item_relationship, - contract, - contract_relationship, - data_environment, - date_and_time_assignment, - date_assignment, - directed_action_assignment, - document_file, - document_relationship, - effectivity, - effectivity_relationship, - envelope, - envelope_relationship, - evaluated_characteristic, - event_occurrence, - event_occurrence_relationship, - exclusive_product_concept_feature_category, - general_property, - general_property_relationship, - generic_property_relationship, - geometric_item_specific_usage, - global_uncertainty_assigned_context, - global_unit_assigned_context, - group, - group_relationship, - location, - location_relationship, - material_designation_characterization, - measure_qualification, - measure_with_unit, - message_relationship, - organization, - organizational_address, - organizational_project, - organizational_project_relationship, - organization_relationship, - organization_type, - package_product_concept_feature, - person, - person_and_organization, - person_and_organization_address, - process_operation, - process_plan, - process_product_association, - product, - product_concept, - product_concept_context, - product_concept_feature, - product_concept_feature_association, - product_concept_feature_category, - product_concept_feature_category_usage, - product_concept_relationship, - product_definition, - product_definition_context, - product_definition_formation, - product_definition_formation_relationship, - product_definition_group_assignment, - product_definition_relationship, - product_definition_usage, - product_definition_usage_relationship, - product_group_membership, - product_group_relationship, - product_process_plan, - product_relationship, - property_definition, - property_definition_representation, - representation, - representation_context, - representation_item, - representation_relationship, - requirement_for_action_resource, - retention, - satisfies_requirement, - security_classification, - shape_aspect, - shape_aspect_relationship, - shape_feature_definition, - shape_feature_definition_relationship, - state_definition_to_state_assignment_relationship, - state_observed, - state_observed_assignment, - state_observed_relationship, - state_observed_role, - state_type, - state_type_assignment, - state_type_relationship, - state_type_role, - structured_message, - time_interval, - time_interval_relationship, - uncertainty_measure_with_unit, - uncertainty_qualifier, - usage_association, - verification_relationship, - versioned_action_request, - versioned_action_request_relationship); -END_TYPE; - -TYPE descriptive_measure = STRING; -END_TYPE; - -TYPE detailed_report_style_type = ENUMERATION OF - (inspected_element, - defective_element); -END_TYPE; - -TYPE detailed_report_type = ENUMERATION OF - (measured_element, - inferior_quality_element); -END_TYPE; - -TYPE dimension_count = INTEGER; -WHERE - WR1: SELF > 0; -END_TYPE; - -TYPE dimension_extent_usage = ENUMERATION OF - (origin, - target); -END_TYPE; - -TYPE dimensional_characteristic = SELECT - (dimensional_location, - dimensional_size); -END_TYPE; - -TYPE directed_tolerance_zone_type = ENUMERATION OF - (perpendicular, - parallel, - including); -END_TYPE; - -TYPE direction_count_select = SELECT - (u_direction_count, - v_direction_count); -END_TYPE; - -TYPE document_identifier_assigned_item = SELECT - (document); -END_TYPE; - -TYPE document_reference_item = SELECT - (action_directive, - action_method, - action_method_relationship, - action_property, - action_property_representation, - action_relationship, - analysis_assignment, - applied_action_assignment, - applied_action_method_assignment, - applied_action_request_assignment, - applied_approval_assignment, - applied_certification_assignment, - applied_classification_assignment, - applied_contract_assignment, - applied_description_text_assignment, - applied_description_text_assignment_relationship, - applied_document_reference, - applied_document_usage_constraint_assignment, - applied_effectivity_assignment, - applied_event_occurrence_assignment, - applied_external_identification_assignment, - applied_identification_assignment, - applied_ineffectivity_assignment, - applied_organizational_project_assignment, - applied_organization_assignment, - applied_person_and_organization_assignment, - applied_security_classification_assignment, - applied_time_interval_assignment, - applied_usage_right, - approval, - approval_person_organization, - approval_relationship, - assembly_component_usage, - assembly_component_usage_substitute, - breakdown_context, - breakdown_of, - certification, - change_group, - characterized_class, - characterized_object, - class, - class_system, - condition, - configuration_design, - configuration_item, - contract, - contract_relationship, - date_and_time_assignment, - date_assignment, - descriptive_representation_item, - dimensional_size, - directed_action_assignment, - document_relationship, - effectivity, - effectivity_relationship, - evaluated_characteristic_of_product_as_individual_test_result, - evidence, - exclusive_product_concept_feature_category, - executed_action, - externally_conditioned_data_quality_criterion, - externally_defined_dimension_definition, - externally_defined_item, - feature_definition, - frozen_assignment, - general_property, - general_property_relationship, - group, - group_relationship, - identification_assignment_relationship, - information_right, - information_usage_right, - interface_connection, - interface_connector_as_planned, - interface_connector_as_realized, - interface_connector_design, - interface_connector_design_to_planned, - interface_connector_design_to_realized, - interface_connector_occurrence, - interface_connector_planned_to_realized, - interface_definition_connection, - in_zone, - material_designation, - material_designation_characterization, - measure_representation_item, - organization, - organizational_address, - organizational_project, - organizational_project_relationship, - organization_relationship, - package_product_concept_feature, - person, - person_and_organization, - person_and_organization_address, - presentation_area, - process_plan, - product, - product_category, - product_concept, - product_concept_feature, - product_concept_feature_association, - product_concept_feature_category, - product_concept_feature_category_usage, - product_definition, - product_definition_context, - product_definition_formation, - product_definition_formation_relationship, - product_definition_group_assignment, - product_definition_process, - product_definition_relationship, - product_definition_substitute, - product_definition_usage, - product_design_to_individual, - product_design_version_to_individual, - product_group, - product_group_membership, - product_group_relationship, - product_process_plan, - product_related_product_category, - product_relationship, - property_definition, - property_definition_representation, - representation, - representation_item, - representation_relationship, - requirement_assignment, - requirement_for_action_resource, - requirement_source, - resource_requirement_type, - retention, - rule_set, - security_classification, - shape_aspect, - shape_aspect_relationship, - state_observed, - state_type, - structured_message, - time_interval, - time_interval_relationship, - usage_association, - validation, - value_representation_item, - verification, - verification_relationship, - versioned_action_request); -END_TYPE; - -TYPE dose_equivalent_measure = REAL; -END_TYPE; - -TYPE draughting_callout_element = SELECT - (annotation_curve_occurrence, - annotation_fill_area_occurrence, - annotation_placeholder_occurrence, - annotation_symbol_occurrence, - annotation_text_occurrence, - tessellated_annotation_occurrence); -END_TYPE; - -TYPE draughting_model_item_association_select = SELECT - (annotation_occurrence, - draughting_callout); -END_TYPE; - -TYPE draughting_model_item_definition = SELECT - (angularity_tolerance, - applied_action_assignment, - applied_action_method_assignment, - applied_action_request_assignment, - applied_approval_assignment, - applied_certification_assignment, - applied_classification_assignment, - applied_contract_assignment, - applied_date_and_time_assignment, - applied_date_assignment, - applied_document_reference, - applied_document_usage_constraint_assignment, - applied_effectivity_assignment, - applied_event_occurrence_assignment, - applied_external_identification_assignment, - applied_group_assignment, - applied_identification_assignment, - applied_ineffectivity_assignment, - applied_name_assignment, - applied_organizational_project_assignment, - applied_organization_assignment, - applied_person_and_organization_assignment, - applied_security_classification_assignment, - applied_time_interval_assignment, - applied_usage_right, - circular_runout_tolerance, - coaxiality_tolerance, - concentricity_tolerance, - cylindricity_tolerance, - dimensional_location, - dimensional_size, - flatness_tolerance, - geometric_tolerance, - geometric_tolerance_with_datum_reference, - geometric_tolerance_with_defined_area_unit, - geometric_tolerance_with_defined_unit, - geometric_tolerance_with_maximum_tolerance, - geometric_tolerance_with_modifiers, - line_profile_tolerance, - modified_geometric_tolerance, - parallelism_tolerance, - perpendicularity_tolerance, - position_tolerance, - product_definition_relationship, - product_definition_shape, - property_definition, - roundness_tolerance, - shape_aspect, - shape_aspect_relationship, - straightness_tolerance, - surface_profile_tolerance, - symmetry_tolerance, - total_runout_tolerance, - unequally_disposed_geometric_tolerance); -END_TYPE; - -TYPE draughting_model_item_select = SELECT - (axis2_placement, - camera_model, - draughting_callout, - mapped_item, - styled_item); -END_TYPE; - -TYPE draughting_subfigure_representation_item = SELECT - (annotation_occurrence, - axis2_placement, - draughting_callout); -END_TYPE; - -TYPE draughting_symbol_representation_item = SELECT - (annotation_curve_occurrence, - annotation_fill_area_occurrence, - annotation_symbol_occurrence, - annotation_text_occurrence, - axis2_placement); -END_TYPE; - -TYPE draughting_titled_item = SELECT - (drawing_revision, - drawing_sheet_revision); -END_TYPE; - -TYPE edge_or_curve = SELECT - (curve, - edge); -END_TYPE; - -TYPE effectivity_item = SELECT - (action, - action_directive, - action_directive_relationship, - action_method, - action_method_relationship, - action_property, - action_property_representation, - action_relationship, - alternative_solution_relationship, - applied_action_assignment, - applied_action_method_assignment, - applied_action_request_assignment, - applied_approval_assignment, - applied_certification_assignment, - applied_classification_assignment_relationship, - applied_contract_assignment, - applied_description_text_assignment, - applied_description_text_assignment_relationship, - applied_document_reference, - applied_document_usage_constraint_assignment, - applied_effectivity_assignment, - applied_event_occurrence_assignment, - applied_external_identification_assignment, - applied_external_identification_assignment_relationship, - applied_identification_assignment, - applied_ineffectivity_assignment, - applied_organizational_project_assignment, - applied_organization_assignment, - applied_person_and_organization_assignment, - applied_security_classification_assignment, - applied_time_interval_assignment, - applied_usage_right, - approval_relationship, - assembly_component_usage_substitute, - assignment_object_relationship, - breakdown_of, - class, - class_system, - condition, - conditional_effectivity, - configuration_design, - configuration_item, - configuration_item_relationship, - configured_effectivity_assignment, - contract, - date_and_time_assignment, - date_assignment, - directed_action_assignment, - document_file, - document_relationship, - draughting_model, - drawing_revision, - effectivity_relationship, - event_occurrence_relationship, - evidence, - exclusive_product_concept_feature_category, - executed_action, - externally_defined_general_property, - frozen_assignment, - general_property, - general_property_relationship, - generic_property_relationship, - group, - identification_assignment_relationship, - inclusion_product_concept_feature, - interface_connection, - interface_connector_design_to_planned, - interface_connector_design_to_realized, - interface_connector_occurrence, - interface_connector_planned_to_realized, - interface_definition_for, - in_zone, - link_motion_relationship, - material_designation, - material_designation_characterization, - measure_representation_item, - mechanical_design_geometric_presentation_representation, - multi_language_attribute_assignment, - organization, - organizational_address, - organizational_project, - organizational_project_relationship, - organization_relationship, - package_product_concept_feature, - person_and_organization, - person_and_organization_address, - presentation_area, - process_operation, - process_plan, - product, - product_class, - product_concept, - product_concept_feature, - product_concept_feature_association, - product_concept_feature_category, - product_concept_feature_category_usage, - product_concept_relationship, - product_definition, - product_definition_formation, - product_definition_formation_relationship, - product_definition_relationship, - product_definition_substitute, - product_definition_usage, - product_definition_usage_relationship, - product_design_to_individual, - product_design_version_to_individual, - product_group, - product_group_membership, - product_group_relationship, - product_identification, - product_process_plan, - product_relationship, - property_definition, - property_definition_representation, - representation, - representation_relationship, - requirement_assignment, - requirement_for_action_resource, - requirement_source, - resource_property, - security_classification, - shape_aspect, - shape_aspect_relationship, - shape_representation, - structured_message, - time_interval_relationship, - usage_association, - validation, - value_representation_item, - verification, - verification_relationship, - versioned_action_request_relationship); -END_TYPE; - -TYPE electric_charge_measure = REAL; -END_TYPE; - -TYPE electric_current_measure = REAL; -END_TYPE; - -TYPE electric_potential_measure = REAL; -END_TYPE; - -TYPE elementary_function_enumerators = ENUMERATION OF - (ef_and, - ef_or, - ef_not, - ef_xor, - ef_negate_i, - ef_add_i, - ef_subtract_i, - ef_multiply_i, - ef_divide_i, - ef_mod_i, - ef_exponentiate_i, - ef_eq_i, - ef_ne_i, - ef_gt_i, - ef_lt_i, - ef_ge_i, - ef_le_i, - ef_abs_i, - ef_max_i, - ef_min_i, - ef_if_i, - ef_negate_r, - ef_reciprocal_r, - ef_add_r, - ef_subtract_r, - ef_multiply_r, - ef_divide_r, - ef_mod_r, - ef_exponentiate_r, - ef_exponentiate_ri, - ef_eq_r, - ef_ne_r, - ef_gt_r, - ef_lt_r, - ef_ge_r, - ef_le_r, - ef_abs_r, - ef_max_r, - ef_min_r, - ef_acos_r, - ef_asin_r, - ef_atan2_r, - ef_cos_r, - ef_exp_r, - ef_ln_r, - ef_log2_r, - ef_log10_r, - ef_sin_r, - ef_sqrt_r, - ef_tan_r, - ef_if_r, - ef_form_c, - ef_rpart_c, - ef_ipart_c, - ef_negate_c, - ef_reciprocal_c, - ef_add_c, - ef_subtract_c, - ef_multiply_c, - ef_divide_c, - ef_exponentiate_c, - ef_exponentiate_ci, - ef_eq_c, - ef_ne_c, - ef_conjugate_c, - ef_abs_c, - ef_arg_c, - ef_cos_c, - ef_exp_c, - ef_ln_c, - ef_sin_c, - ef_sqrt_c, - ef_tan_c, - ef_if_c, - ef_subscript_s, - ef_eq_s, - ef_ne_s, - ef_gt_s, - ef_lt_s, - ef_ge_s, - ef_le_s, - ef_subsequence_s, - ef_concat_s, - ef_size_s, - ef_format, - ef_value, - ef_like, - ef_if_s, - ef_subscript_b, - ef_eq_b, - ef_ne_b, - ef_gt_b, - ef_lt_b, - ef_ge_b, - ef_le_b, - ef_subsequence_b, - ef_concat_b, - ef_size_b, - ef_if_b, - ef_subscript_t, - ef_eq_t, - ef_ne_t, - ef_concat_t, - ef_size_t, - ef_entuple, - ef_detuple, - ef_insert, - ef_remove, - ef_if_t, - ef_sum_it, - ef_product_it, - ef_add_it, - ef_subtract_it, - ef_scalar_mult_it, - ef_dot_prod_it, - ef_sum_rt, - ef_product_rt, - ef_add_rt, - ef_subtract_rt, - ef_scalar_mult_rt, - ef_dot_prod_rt, - ef_norm_rt, - ef_sum_ct, - ef_product_ct, - ef_add_ct, - ef_subtract_ct, - ef_scalar_mult_ct, - ef_dot_prod_ct, - ef_norm_ct, - ef_if, - ef_ensemble, - ef_member_of); -END_TYPE; - -TYPE elementary_space_enumerators = ENUMERATION OF - (es_numbers, - es_complex_numbers, - es_reals, - es_integers, - es_logicals, - es_booleans, - es_strings, - es_binarys, - es_maths_spaces, - es_maths_functions, - es_generics); -END_TYPE; - -TYPE energy_measure = REAL; -END_TYPE; - -TYPE equivalence_detected_difference_select = SELECT - (a3ms_inspected_equivalence_element_select, - area_measure, - assembly_component_usage, - binary_assembly_constraint, - cartesian_point, - connected_face_set, - context_dependent_shape_representation, - count_measure, - edge, - face, - length_measure, - multi_level_reference_designator, - point_on_curve, - point_on_surface, - volume_measure); -END_TYPE; - -TYPE equivalence_measured_value_select = SELECT - (a3ma_length_measure_and_context_dependent_measure_pair, - area_measure, - boolean_value, - context_dependent_measure, - length_measure, - plane_angle_measure, - volume_measure); -END_TYPE; - -TYPE equivalence_product_data_select = SELECT - (product_definition_or_reference, - product_definition_relationship); -END_TYPE; - -TYPE event_occurrence_item = SELECT - (action, - action_directive, - action_method, - action_property, - action_request_solution, - alternate_product_relationship, - applied_action_assignment, - applied_classification_assignment, - assembly_component_usage_substitute, - certification, - class, - class_system, - configuration_design, - configuration_effectivity, - configuration_item, - configured_effectivity_assignment, - contract, - draughting_model, - drawing_revision, - executed_action, - general_organizational_data_select, - general_property, - material_designation, - mechanical_design_geometric_presentation_representation, - organizational_project, - organization_relationship, - person_and_organization, - presentation_area, - product, - product_concept, - product_concept_feature, - product_concept_feature_association, - product_concept_feature_category, - product_concept_feature_category_usage, - product_definition_formation, - product_definition_formation_relationship, - product_definition_relationship, - product_definition_substitute, - property_definition, - requirement_for_action_resource, - resource_property, - security_classification_level, - shape_representation); -END_TYPE; - -TYPE evidence_item = SELECT - (action_property, - action_property_representation, - analysis_assignment, - applied_action_assignment, - applied_approval_assignment, - applied_certification_assignment, - applied_classification_assignment, - applied_contract_assignment, - applied_effectivity_assignment, - applied_event_occurrence_assignment, - applied_external_identification_assignment, - applied_ineffectivity_assignment, - applied_organizational_project_assignment, - applied_organization_assignment, - applied_person_and_organization_assignment, - applied_security_classification_assignment, - date_and_time_assignment, - date_assignment, - measure_representation_item, - person, - person_and_organization, - product, - product_definition, - product_definition_context, - product_definition_formation, - product_definition_formation_relationship, - product_definition_relationship, - product_relationship, - property_definition, - property_definition_representation, - representation, - representation_context, - representation_item, - state_type, - structured_message, - validation, - value_representation_item, - verification); -END_TYPE; - -TYPE expression_extension_select = SELECT - (expression_extension_numeric, - expression_extension_string); -END_TYPE; - -TYPE extension_options = ENUMERATION OF - (eo_none, - eo_cont, - eo_cont_right, - eo_cont_left); -END_TYPE; - -TYPE external_identification_item = SELECT - (action_directive, - action_method, - action_method_relationship, - action_relationship, - action_request_status, - address, - analysis_model, - analysis_representation_context, - applied_action_method_assignment, - applied_classification_assignment, - applied_external_identification_assignment, - applied_organization_assignment, - applied_person_and_organization_assignment, - approval, - approval_person_organization, - approval_status, - assembly_bond_definition, - assembly_joint, - assembly_component_usage, - breakdown_context, - certification, - class, - composite_curve, - condition, - configuration_effectivity, - contract, - curve, - date_and_time_assignment, - date_assignment, - derived_unit, - document_file, - effectivity, - evaluated_characteristic_of_product_as_individual_test_result, - event_occurrence, - evidence, - exclusive_product_concept_feature_category, - executed_action, - externally_defined_class, - externally_defined_context_dependent_unit, - externally_defined_conversion_based_unit, - externally_defined_general_property, - externally_defined_representation_item, - external_source, - general_property, - generic_product_definition_reference, - group, - information_right, - information_usage_right, - interface_connection, - interface_connector_definition, - interface_connector_occurrence, - interface_connector_version, - interface_definition_connection, - interface_definition_for, - interface_specification_definition, - interface_specification_version, - loop, - material_designation, - named_unit, - organization, - organizational_address, - organizational_project, - oriented_surface, - package_product_concept_feature, - person, - person_and_organization, - point_on_curve, - precision_qualifier, - process_operation, - process_plan, - product, - product_concept, - product_concept_context, - product_concept_feature, - product_concept_feature_category, - product_definition, - product_definition_context, - product_definition_formation, - product_definition_occurrence, - product_definition_occurrence_reference, - product_group, - product_identification, - product_process_plan, - product_specification, - property_definition, - representation, - representation_item, - requirement_source, - satisfies_requirement, - security_classification, - shape_representation, - state_observed, - state_type, - structured_message, - surface, - time_interval, - trimmed_curve, - type_qualifier, - uncertainty_qualifier, - validation, - verification, - versioned_action_request, - vertex_point); -END_TYPE; - -TYPE face_or_surface = SELECT - (face, - surface); -END_TYPE; - -TYPE fill_area_style_tile_shape_select = SELECT - (externally_defined_tile, - fill_area_style_tile_coloured_region, - fill_area_style_tile_curve_with_style, - fill_area_style_tile_symbol_with_style, - pre_defined_tile); -END_TYPE; - -TYPE fill_style_select = SELECT - (externally_defined_hatch_style, - externally_defined_tile_style, - fill_area_style_colour, - fill_area_style_hatching, - fill_area_style_tiles, - texture_style_specification); -END_TYPE; - -TYPE font_select = SELECT - (externally_defined_text_font, - pre_defined_text_font, - text_font); -END_TYPE; - -TYPE force_measure = REAL; -END_TYPE; - -TYPE founded_item_select = SELECT - (founded_item, - representation_item); -END_TYPE; - -TYPE frequency_measure = REAL; -END_TYPE; - -TYPE general_organizational_data_select = SELECT - (action_directive, - action_method, - action_method_relationship, - action_property, - action_property_representation, - action_relationship, - action_request_solution, - alternate_product_relationship, - alternative_solution_relationship, - applied_action_assignment, - applied_action_method_assignment, - applied_action_request_assignment, - applied_approval_assignment, - applied_certification_assignment, - applied_classification_assignment, - applied_contract_assignment, - applied_description_text_assignment, - applied_description_text_assignment_relationship, - applied_document_reference, - applied_document_usage_constraint_assignment, - applied_effectivity_assignment, - applied_event_occurrence_assignment, - applied_external_identification_assignment, - applied_identification_assignment, - applied_ineffectivity_assignment, - applied_organizational_project_assignment, - applied_organization_assignment, - applied_person_and_organization_assignment, - applied_security_classification_assignment, - applied_time_interval_assignment, - applied_usage_right, - approval, - approval_person_organization, - approval_relationship, - approval_status, - assembly_component_usage, - assembly_component_usage_substitute, - breakdown_element_group_assignment, - breakdown_element_realization, - breakdown_of, - certification, - characterized_product_concept_feature, - characterized_product_concept_feature_category, - class, - class_system, - condition, - conditional_concept_feature, - conditional_effectivity, - configuration_design, - configuration_effectivity, - configuration_item, - configured_effectivity_assignment, - contract, - date_and_time_assignment, - date_assignment, - directed_action_assignment, - document_file, - drawing_revision, - drawing_sheet_revision, - effectivity, - evaluated_characteristic_of_product_as_individual_test_result, - exclusive_product_concept_feature_category, - executed_action, - frozen_assignment, - general_property, - general_property_relationship, - group, - group_relationship, - identification_assignment_relationship, - inclusion_product_concept_feature, - information_usage_right, - material_designation, - material_designation_characterization, - measure_representation_item, - organization, - organizational_address, - organizational_project, - organization_relationship, - package_product_concept_feature, - person, - person_and_organization, - person_and_organization_address, - presentation_area, - process_operation, - process_plan, - product, - product_class, - product_concept, - product_concept_feature, - product_concept_feature_association, - product_concept_feature_category, - product_concept_feature_category_usage, - product_definition, - product_definition_formation, - product_definition_formation_relationship, - product_definition_group_assignment, - product_definition_occurrence, - product_definition_occurrence_reference, - product_definition_relationship, - product_definition_substitute, - product_definition_usage, - product_design_to_individual, - product_design_version_to_individual, - product_process_plan, - product_relationship, - property_definition, - property_definition_representation, - representation, - representation_item, - representation_relationship, - requirement_assignment, - requirement_for_action_resource, - requirement_source, - requirement_view_definition_relationship, - security_classification, - shape_representation, - value_representation_item, - versioned_action_request); -END_TYPE; - -TYPE generalized_surface_select = SELECT - (face_surface, - surface, - surfaced_open_shell); -END_TYPE; - -TYPE generic_property_definition_select = SELECT - (action_property, - dimensional_location, - dimensional_size, - property_definition, - resource_property); -END_TYPE; - -TYPE geometric_constraint_element = SELECT - (curve, - direction, - point, - surface, - vector); -END_TYPE; - -TYPE geometric_item_specific_usage_select = SELECT - (shape_aspect, - shape_aspect_relationship); -END_TYPE; - -TYPE geometric_model_item = SELECT - (connected_face_set, - edge_loop, - geometric_representation_item); -END_TYPE; - -TYPE geometric_set_select = SELECT - (annotation_text, - curve, - placement, - planar_box, - point, - surface); -END_TYPE; - -TYPE geometric_tolerance_auxiliary_classification_enum = ENUMERATION OF - (all_over, - unless_otherwise_specified); -END_TYPE; - -TYPE geometric_tolerance_modifier = ENUMERATION OF - (any_cross_section, - associated_least_square_feature, - associated_maximum_inscribed_feature, - associated_minimum_inscribed_feature, - associated_minmax_feature, - associated_tangent_feature, - circle_a, - common_zone, - each_radial_element, - free_state, - least_material_requirement, - line_element, - major_diameter, - maximum_material_requirement, - minor_diameter, - not_convex, - peak_height, - pitch_diameter, - reciprocity_requirement, - reference_least_square_feature_with_external_material_constraint, - reference_least_square_feature_with_internal_material_constraint, - reference_least_square_feature_without_constraint, - reference_maximum_inscribed_feature, - reference_minimax_feature_with_external_material_constraint, - reference_minimax_feature_with_internal_material_constraint, - reference_minimax_feature_without_constraint, - reference_minimum_circumscribed_feature, - separate_requirement, - standard_deviation, - statistical_tolerance, - tangent_plane, - total_range_deviations, - united_feature, - valley_depth); -END_TYPE; - -TYPE geometric_tolerance_target = SELECT - (dimensional_location, - dimensional_size, - product_definition_shape, - shape_aspect); -END_TYPE; - -TYPE gps_filtration_specification_target = SELECT - (geometric_tolerance); -END_TYPE; - -TYPE gps_filtration_type = SELECT - (geometric_tolerance_modifier); -END_TYPE; - -TYPE groupable_item = SELECT ( - address, - alternate_product_relationship, - applied_action_assignment, - applied_action_method_assignment, - applied_action_request_assignment, - applied_approval_assignment, - applied_attribute_classification_assignment, - applied_certification_assignment, - applied_classification_assignment, - applied_contract_assignment, - applied_description_text_assignment, - applied_document_reference, - applied_document_usage_constraint_assignment, - applied_effectivity_assignment, - applied_event_occurrence_assignment, - applied_external_identification_assignment, - applied_group_assignment, - applied_identification_assignment, - applied_location_assignment, - applied_location_representation_assignment, - applied_name_assignment, - applied_organization_assignment, - applied_organization_type_assignment, - applied_organizational_project_assignment, - applied_person_and_organization_assignment, - applied_security_classification_assignment, - approval, - approval_person_organization, - approval_relationship, - approval_status, - ascribable_state, - ascribable_state_relationship, - assembly_component_usage, - assembly_component_usage_substitute, - attribute_language_assignment, - breakdown_element_group_assignment, - calendar_date, - certification, - component_feature, - configuration_design, - configuration_item, - configuration_item_relationship, - context_dependent_shape_representation, - contract, - contract_relationship, - coordinated_universal_time_offset, - date_and_time, - date_and_time_assignment, - date_assignment, - derived_unit, - derived_unit_element, - description_text, - document_file, - document_relationship, - effectivity, - effectivity_relationship, - event_occurrence, - event_occurrence_relationship, - evidence, - external_source, - general_property, - general_property_relationship, - geometric_item_specific_usage, - geometric_representation_item, - group_relationship, - instanced_feature, - interface_connector_definition, - interface_definition_connection, - interface_definition_for, - item_defined_transformation, - local_time, - mapped_item, - measure_qualification, - measure_with_unit, - multi_language_attribute_assignment, - named_unit, - organization, - organization_relationship, - organization_type, - organizational_project, - organizational_project_relationship, - package_product_concept_feature, - person, - person_and_organization, - precision_qualifier, - product, - product_concept, - product_concept_context, - product_concept_feature, - product_definition, - product_definition_context, - product_definition_formation, - product_definition_formation_relationship, - product_definition_group_assignment, - product_definition_relationship, - product_group_membership, - product_group_relationship, - product_relationship, - property_definition, - property_definition_representation, - replicate_feature, - representation, - representation_context, - representation_item, - representation_relationship, - representation_relationship_with_transformation, - security_classification, - shape_aspect, - shape_aspect_relationship, - shape_representation_relationship, - state_observed, - state_observed_assignment, - state_observed_relationship, - state_observed_role, - state_type, - state_type_assignment, - state_type_relationship, - styled_item, - time_interval, - time_interval_assignment, - time_interval_relationship, - time_interval_role, - topological_representation_item, - transition_feature, - type_qualifier, - uncertainty_qualifier, - verification_relationship, - versioned_action_request); - WHERE - WR1: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GROUP' IN TYPEOF(SELF)); -END_TYPE; - -TYPE hour_in_day = INTEGER; -WHERE - WR1: { 0 <= SELF < 24 }; -END_TYPE; - -TYPE id_attribute_select = SELECT - (action, - address, - application_context, - ascribable_state_relationship, - dimensional_size, - geometric_tolerance, - group, - organizational_project, - product_category, - property_definition, - representation, - shape_aspect, - shape_aspect_relationship, - topological_representation_item); -END_TYPE; - -TYPE identification_item = SELECT - (action, - action_directive, - action_directive_relationship, - action_method, - action_method_relationship, - action_property, - action_property_representation, - action_relationship, - address, - alternate_product_relationship, - alternative_solution_relationship, - analysis_assignment, - analysis_representation_context, - applied_action_assignment, - applied_action_method_assignment, - applied_action_request_assignment, - applied_approval_assignment, - applied_certification_assignment, - applied_classification_assignment_relationship, - applied_contract_assignment, - applied_description_text_assignment, - applied_description_text_assignment_relationship, - applied_document_reference, - applied_document_usage_constraint_assignment, - applied_effectivity_assignment, - applied_event_occurrence_assignment, - applied_external_identification_assignment, - applied_external_identification_assignment_relationship, - applied_identification_assignment, - applied_ineffectivity_assignment, - applied_organizational_project_assignment, - applied_organization_assignment, - applied_person_and_organization_assignment, - applied_security_classification_assignment, - applied_time_interval_assignment, - applied_usage_right, - approval, - approval_relationship, - approval_status, - ascribable_state, - ascribable_state_relationship, - assembly_component_usage, - assembly_component_usage_substitute, - assignment_object_relationship, - breakdown_element_realization, - breakdown_of, - certification, - change_group, - characterized_class, - class, - class_system, - configuration_effectivity, - configuration_item, - configuration_item_relationship, - contract, - contract_relationship, - date_and_time_assignment, - date_assignment, - degenerate_pcurve, - dimensional_size, - dimensional_size_with_path, - directed_action_assignment, - document_file, - document_relationship, - document_type, - draughting_model, - effectivity, - effectivity_relationship, - envelope, - envelope_relationship, - evaluated_characteristic, - event_occurrence, - event_occurrence_relationship, - evidence, - exclusive_product_concept_feature_category, - executed_action, - general_property, - general_property_relationship, - generic_property_relationship, - group, - group_relationship, - identification_assignment_relationship, - information_right, - information_usage_right, - interface_connection, - interface_connector_as_planned, - interface_connector_as_realized, - interface_connector_definition, - interface_connector_design, - interface_connector_occurrence, - interface_connector_version, - interface_definition_connection, - interface_definition_for, - interface_specification_definition, - interface_specification_version, - link_motion_relationship, - material_designation, - material_designation_characterization, - measure_representation_item, - mechanical_design_geometric_presentation_representation, - message_relationship, - organization, - organizational_address, - organizational_project, - organizational_project_relationship, - organization_relationship, - package_product_concept_feature, - person, - person_and_organization, - person_and_organization_address, - point_on_surface, - presentation_area, - process_operation, - process_plan, - product, - product_category, - product_class, - product_concept, - product_concept_context, - product_concept_feature, - product_concept_feature_category, - product_concept_relationship, - product_definition, - product_definition_formation, - product_definition_formation_relationship, - product_definition_occurrence, - product_definition_occurrence_reference, - product_definition_relationship, - product_definition_usage, - product_definition_usage_relationship, - product_group, - product_group_membership, - product_group_relationship, - product_identification, - product_process_plan, - product_relationship, - property_definition, - property_definition_relationship, - property_definition_representation, - representation, - representation_context, - representation_relationship, - requirement_assignment, - requirement_for_action_resource, - requirement_source, - retention, - rule_set, - satisfies_requirement, - security_classification, - security_classification_level, - shape_aspect, - shape_aspect_relationship, - shape_feature_definition, - shape_feature_definition_relationship, - shape_representation, - state_definition_to_state_assignment_relationship, - state_observed, - state_observed_assignment, - state_observed_relationship, - state_type, - state_type_assignment, - state_type_relationship, - structured_message, - time_interval, - time_interval_relationship, - usage_association, - validation, - verification, - verification_relationship, - versioned_action_request, - versioned_action_request_relationship); -END_TYPE; - -TYPE identifier = STRING; -END_TYPE; - -TYPE idrm_marked_item = SELECT - (document_file, - product_definition); -END_TYPE; - -TYPE illuminance_measure = REAL; -END_TYPE; - -TYPE inductance_measure = REAL; -END_TYPE; - -TYPE input_selector = positive_integer; -END_TYPE; - -TYPE inspected_ecdq_element_select = inspected_element_select; -WHERE - wr1 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_OR_COMPOSITE_CURVE_SELECT' IN TYPEOF(SELF)); - wr2 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_OR_RECTANGULAR_COMPOSITE_SURFACE_SELECT' IN TYPEOF(SELF)); - wr3 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLOSED_OR_OPEN_SHELL_SELECT' IN TYPEOF(SELF)); - wr4 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SET' IN TYPEOF(SELF)); - wr5 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE' IN TYPEOF(SELF)); - wr6 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIRECTION' IN TYPEOF(SELF)); - wr7 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE' IN TYPEOF(SELF)); - wr8 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN TYPEOF(SELF)); - wr9 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE' IN TYPEOF(SELF)); - wr10 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SOLID_BREP' IN TYPEOF(SELF)); - wr11 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' IN TYPEOF(SELF)); - wr12 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT' IN TYPEOF(SELF)); - wr13 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE' IN TYPEOF(SELF)); - wr14 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN TYPEOF(SELF)); -END_TYPE; - -TYPE inspected_element_select = SELECT - (assembly_component_usage, - axis2_placement_3d, - b_spline_or_composite_curve_select, - b_spline_or_rectangular_composite_surface_select, - cartesian_transformation_operator_3d, - closed_or_open_shell_select, - connected_face_set, - curve, - direction, - edge_curve, - edge_loop, - face_surface, - global_uncertainty_assigned_context, - global_unit_assigned_context, - group, - manifold_solid_brep, - placement, - point, - presentation_layer_assignment, - representation_item, - styled_item, - surface, - vertex_point); -END_TYPE; - -TYPE inspected_equivalence_element_select = SELECT - (connected_edge_set, - connected_face_set, - externally_defined_representation_item, - manifold_solid_brep, - point_cloud_dataset, - product_definition_or_reference, - shape_representation, - shell_based_surface_model, - shell_based_wireframe_model, - vertex_point); -END_TYPE; - -TYPE inspected_shape_element_select = inspected_element_select; -WHERE - wr1 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ASSEMBLY_COMPONENT_USAGE' IN TYPEOF(SELF)); - wr2 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D' IN TYPEOF(SELF)); - wr3 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CARTESIAN_TRANSFORMATION_OPERATOR_3D' IN TYPEOF(SELF)); - wr4 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT' IN TYPEOF(SELF)); - wr5 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GLOBAL_UNIT_ASSIGNED_CONTEXT' IN TYPEOF(SELF)); - wr6 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GROUP' IN TYPEOF(SELF)); - wr7 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_LAYER_ASSIGNMENT' IN TYPEOF(SELF)); - wr8 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_ITEM' IN TYPEOF(SELF)); - wr9 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN TYPEOF(SELF)); -END_TYPE; - -TYPE instance_usage_context_select = SELECT - (process_product_association, - product_definition_group_assignment, - product_definition_relationship, - product_definition_usage); -END_TYPE; - -TYPE internal_or_reflected_shape_aspect = SELECT - (identifier, - shape_aspect); -END_TYPE; - -TYPE interpolation_type = ENUMERATION OF - (undefined_interpolation_type, - discontinuous_interpolation_type, - synchronous_interpolation_type, - linear_interpolation_type); -END_TYPE; - -TYPE invisibility_context = SELECT - (draughting_model, - presentation_representation, - presentation_set); -END_TYPE; - -TYPE invisible_item = SELECT - (draughting_callout, - presentation_layer_assignment, - representation, - styled_item); -END_TYPE; - -TYPE ir_usage_item = action_items; -END_TYPE; - -TYPE item_identified_representation_usage_definition = SELECT - (applied_action_assignment, - applied_action_method_assignment, - applied_action_request_assignment, - applied_approval_assignment, - applied_certification_assignment, - applied_classification_assignment, - applied_contract_assignment, - applied_date_and_time_assignment, - applied_date_assignment, - applied_document_reference, - applied_document_usage_constraint_assignment, - applied_effectivity_assignment, - applied_event_occurrence_assignment, - applied_external_identification_assignment, - applied_group_assignment, - applied_identification_assignment, - applied_ineffectivity_assignment, - applied_name_assignment, - applied_organizational_project_assignment, - applied_organization_assignment, - applied_person_and_organization_assignment, - applied_security_classification_assignment, - applied_time_interval_assignment, - applied_usage_right, - characterized_object, - dimensional_size, - geometric_tolerance, - product_definition_relationship, - property_definition, - represented_definition); -END_TYPE; - -TYPE item_identified_representation_usage_select = SELECT - (list_representation_item, - representation_item, - set_representation_item); -END_TYPE; - -TYPE kinematic_analysis_definition = SELECT - (interpolated_configuration_sequence, - prescribed_path); -END_TYPE; - -TYPE kinematic_link_representation_items = SELECT - (curve, - point, - rigid_placement, - surface); -END_TYPE; - -TYPE kinematic_result = SELECT - (interpolated_configuration_sequence, - resulting_path); -END_TYPE; - -TYPE kinematic_topology_representation_select = SELECT - (kinematic_topology_directed_structure, - kinematic_topology_network_structure, - kinematic_topology_structure); -END_TYPE; - -TYPE knot_type = ENUMERATION OF - (uniform_knots, - quasi_uniform_knots, - piecewise_bezier_knots, - unspecified); -END_TYPE; - -TYPE label = STRING; -END_TYPE; - -TYPE layered_item = SELECT - (presentation_representation, - representation_item); -END_TYPE; - -TYPE length_measure = REAL; -END_TYPE; - -TYPE length_or_plane_angle_measure_with_unit_select = SELECT - (length_measure_with_unit, - plane_angle_measure_with_unit); -END_TYPE; - -TYPE length_to_height_ratio = ratio_measure; -END_TYPE; - -TYPE limit_condition = ENUMERATION OF - (maximum_material_condition, - least_material_condition, - regardless_of_feature_size); -END_TYPE; - -TYPE linear_geometry_constraint_element = SELECT - (direction, - line, - plane, - vector); -END_TYPE; - -TYPE linearly_independent_enum = ENUMERATION OF - (independent, - not_independent, - not_tested); -END_TYPE; - -TYPE link_or_shape_representation = SELECT - (kinematic_link_representation, - shape_representation); -END_TYPE; - -TYPE list_item_defined_transformation = LIST [2 : ?] OF item_defined_transformation; -END_TYPE; - -TYPE list_of_reversible_topology_item = LIST [0 : ?] OF reversible_topology_item; -END_TYPE; - -TYPE list_representation_item = LIST [1 : ?] OF representation_item; -END_TYPE; - -TYPE locally_refined_spline_type_enum = ENUMERATION OF - (analysis_suitable_t_spline, - hierarchical_b_spline, - lr_b_spline, - semi_standard_t_spline, - standard_t_spline); -END_TYPE; - -TYPE location_in_aggregate_item = LIST [1 : ?] OF integer_representation_item; -END_TYPE; - -TYPE location_item = SELECT - (assembly_component_usage, - document_file, - interface_connection, - interface_connector_occurrence, - interface_definition_connection, - organization, - organizational_project, - organization_type, - person, - person_and_organization, - product, - product_definition, - product_definition_formation, - product_definition_relationship, - product_group); -END_TYPE; - -TYPE location_of_extreme_value_select = SELECT - (boundary_curve_of_b_spline_or_rectangular_composite_surface, - b_spline_curve_knot_locator, - b_spline_curve_segment, - b_spline_surface_knot_locator, - b_spline_surface_patch, - b_spline_surface_strip, - composite_curve_transition_locator, - face_bound, - inspected_shape_element_select, - oriented_edge, - point_on_edge_curve, - point_on_face_surface, - rectangular_composite_surface_transition_locator, - subedge, - subface); -END_TYPE; - -TYPE location_representation_item = SELECT - (organizational_address, - person_and_organization_address, - product, - product_definition_formation); -END_TYPE; - -TYPE lower_upper = ENUMERATION OF - (lower, - upper); -END_TYPE; - -TYPE luminous_flux_measure = REAL; -END_TYPE; - -TYPE luminous_intensity_measure = REAL; -END_TYPE; - -TYPE machining_feature_definition = SELECT - (boss, - compound_feature, - externally_defined_feature_definition, - flat_face, - gear, - marking, - outer_round, - outside_profile, - pocket, - protrusion, - removal_volume, - replicate_feature, - revolved_profile, - rib_top, - round_hole, - rounded_end, - spherical_cap, - step, - slot, - thread, - turned_knurl); -END_TYPE; - -TYPE magnetic_flux_density_measure = REAL; -END_TYPE; - -TYPE magnetic_flux_measure = REAL; -END_TYPE; - -TYPE marker_select = SELECT - (marker_type, - pre_defined_marker); -END_TYPE; - -TYPE marker_type = ENUMERATION OF - (dot, - x, - plus, - asterisk, - ring, - square, - triangle); -END_TYPE; - -TYPE mass_measure = REAL; -END_TYPE; - -TYPE maths_atom = SELECT - (maths_enum_atom, - maths_simple_atom); -END_TYPE; - -TYPE maths_boolean = BOOLEAN; -END_TYPE; - -TYPE maths_enum_atom = SELECT - (elementary_function_enumerators, - elementary_space_enumerators, - extension_options, - lower_upper, - open_closed, - ordering_type, - repackage_options, - space_constraint_type, - symmetry_type); -END_TYPE; - -TYPE maths_expression = SELECT - (atom_based_value, - generic_expression, - maths_tuple); -END_TYPE; - -TYPE maths_function_select = SELECT - (elementary_function_enumerators, - maths_function); -END_TYPE; - -TYPE maths_integer = INTEGER; -END_TYPE; - -TYPE maths_logical = LOGICAL; -END_TYPE; - -TYPE maths_number = NUMBER; -END_TYPE; - -TYPE maths_real = REAL; -END_TYPE; - -TYPE maths_simple_atom = SELECT - (maths_boolean, - maths_integer, - maths_logical, - maths_number, - maths_real, - maths_string); -END_TYPE; - -TYPE maths_space_or_function = SELECT - (maths_function, - maths_space); -END_TYPE; - -TYPE maths_string = STRING; -END_TYPE; - -TYPE maths_tuple = LIST [0 : ?] OF maths_value; -END_TYPE; - -TYPE maths_value = SELECT - (atom_based_value, - maths_tuple, - generic_expression); -WHERE - constancy: NOT ('GENERIC_EXPRESSION' IN stripped_typeof(SELF)) OR - expression_is_constant(SELF); -END_TYPE; - -TYPE maximum_edge_length = positive_length_measure; -END_TYPE; - -TYPE measure_value = SELECT - (absorbed_dose_measure, - acceleration_measure, - amount_of_substance_measure, - area_measure, - capacitance_measure, - celsius_temperature_measure, - conductance_measure, - context_dependent_measure, - count_measure, - descriptive_measure, - dose_equivalent_measure, - electric_charge_measure, - electric_current_measure, - electric_potential_measure, - energy_measure, - force_measure, - frequency_measure, - illuminance_measure, - inductance_measure, - length_measure, - luminous_flux_measure, - luminous_intensity_measure, - magnetic_flux_density_measure, - magnetic_flux_measure, - mass_measure, - non_negative_length_measure, - numeric_measure, - parameter_value, - plane_angle_measure, - positive_length_measure, - positive_plane_angle_measure, - positive_ratio_measure, - power_measure, - pressure_measure, - radioactivity_measure, - ratio_measure, - resistance_measure, - solid_angle_measure, - thermodynamic_temperature_measure, - time_measure, - velocity_measure, - volume_measure); -END_TYPE; - -TYPE measured_value_select = SELECT - (boolean_value, - measure_value, - plane_angle_and_length_pair, - plane_angle_and_ratio_pair); -END_TYPE; - -TYPE mechanical_design_and_draughting_relationship_select = SELECT - (draughting_model, - mechanical_design_geometric_presentation_representation, - mechanical_design_presentation_representation_with_draughting, - mechanical_design_shaded_presentation_representation, - shape_representation); -END_TYPE; - -TYPE mechanical_design_geometric_presentation_area_items = SELECT - (axis2_placement, - mapped_item); -END_TYPE; - -TYPE mechanical_design_geometric_presentation_representation_items = SELECT - (axis2_placement, - camera_model_d3, - mapped_item, - styled_item); -END_TYPE; - -TYPE mechanical_design_shaded_presentation_area_items = SELECT - (axis2_placement, - mapped_item); -END_TYPE; - -TYPE mechanical_design_shaded_presentation_representation_items = SELECT - (axis2_placement, - camera_model_d3, - mapped_item, - styled_item); -END_TYPE; - -TYPE message = STRING; -END_TYPE; - -TYPE minute_in_hour = INTEGER; -WHERE - WR1: { 0 <= SELF <= 59 }; -END_TYPE; - -TYPE month_in_year_number = INTEGER; -WHERE - WR1: { 1 <= SELF <= 12 }; -END_TYPE; - -TYPE multi_language_attribute_item = SELECT - (action, - action_directive, - action_directive_relationship, - action_method, - action_method_relationship, - action_property, - action_property_representation, - action_relationship, - actuated_kinematic_pair, - alternate_product_relationship, - alternative_solution_relationship, - analysis_assignment, - analysis_representation_context, - application_context, - applied_action_assignment, - applied_action_method_assignment, - applied_action_request_assignment, - applied_approval_assignment, - applied_certification_assignment, - applied_classification_assignment_relationship, - applied_contract_assignment, - applied_description_text_assignment, - applied_description_text_assignment_relationship, - applied_document_reference, - applied_document_usage_constraint_assignment, - applied_effectivity_assignment, - applied_event_occurrence_assignment, - applied_external_identification_assignment, - applied_external_identification_assignment_relationship, - applied_identification_assignment, - applied_ineffectivity_assignment, - applied_organizational_project_assignment, - applied_organization_assignment, - applied_person_and_organization_assignment, - applied_time_interval_assignment, - applied_usage_right, - approval, - approval_relationship, - approval_status, - ascribable_state, - assembly_component_usage_substitute, - assignment_object_relationship, - attribute_value_assignment, - breakdown_context, - breakdown_element_realization, - breakdown_of, - certification, - certification_type, - change_element_sequence, - change_group, - class, - colour, - configuration_design, - configuration_effectivity, - configuration_item, - configuration_item_relationship, - contract, - contract_relationship, - data_environment, - date_role, - date_time_role, - descriptive_representation_item, - directed_action_assignment, - document_file, - document_relationship, - document_usage_role, - draughting_title, - effectivity, - effectivity_relationship, - envelope, - envelope_relationship, - evaluated_characteristic, - event_occurrence, - event_occurrence_relationship, - evidence, - exclusive_product_concept_feature_category, - executed_action, - externally_defined_class, - external_source, - general_property, - general_property_relationship, - generic_property_relationship, - geometric_representation_item, - geometric_tolerance, - global_uncertainty_assigned_context, - global_unit_assigned_context, - group, - group_relationship, - identification_assignment_relationship, - identification_role, - information_right, - information_usage_right, - interface_connection, - interface_connector_occurrence, - interface_definition_connection, - interface_definition_for, - in_zone, - kinematic_pair, - link_motion_relationship, - make_from_usage_option, - mapped_item, - material_designation_characterization, - measure_qualification, - measure_with_unit, - message_relationship, - name_assignment, - object_role, - organization, - organizational_address, - organizational_project, - organizational_project_relationship, - organizational_project_role, - organization_relationship, - organization_role, - package_product_concept_feature, - person, - person_and_organization, - person_and_organization_address, - person_and_organization_role, - presentation_layer_assignment, - process_operation, - process_plan, - process_product_association, - product, - product_concept, - product_concept_context, - product_concept_feature, - product_concept_feature_association, - product_concept_feature_category, - product_concept_feature_category_usage, - product_concept_relationship, - product_definition, - product_definition_context, - product_definition_formation, - product_definition_formation_relationship, - product_definition_relationship, - product_definition_shape, - product_definition_substitute, - product_definition_usage, - product_definition_usage_relationship, - product_design_to_individual, - product_design_version_to_individual, - product_group, - product_group_relationship, - product_identification, - product_process_plan, - product_related_product_category, - product_relationship, - product_specification, - property_definition, - property_definition_relationship, - property_definition_representation, - qualitative_uncertainty, - representation, - representation_context, - representation_item, - representation_relationship, - representation_relationship_with_transformation, - requirement_assignment, - requirement_for_action_resource, - requirement_source, - resource_property, - resource_requirement_type, - retention, - satisfies_requirement, - security_classification, - security_classification_assignment, - shape_aspect, - shape_aspect_relationship, - shape_feature_definition, - shape_feature_definition_relationship, - shape_representation, - state_definition_to_state_assignment_relationship, - state_observed, - state_observed_assignment, - state_observed_relationship, - state_type, - state_type_assignment, - state_type_relationship, - structured_message, - styled_item, - time_interval, - time_interval_relationship, - time_interval_role, - topological_representation_item, - uncertainty_measure_with_unit, - uncertainty_qualifier, - usage_association, - validation, - verification, - verification_relationship, - versioned_action_request, - versioned_action_request_relationship); -END_TYPE; - -TYPE multi_or_next_assembly_usage_occurrence = SELECT - (multi_level_reference_designator, - next_assembly_usage_occurrence); -END_TYPE; - -TYPE name_attribute_select = SELECT - (action_request_solution, - address, - configuration_design, - context_dependent_shape_representation, - derived_unit, - effectivity, - person_and_organization, - product_definition, - product_definition_substitute, - property_definition_representation); -END_TYPE; - -TYPE name_item = SELECT - (applied_action_assignment, - applied_action_method_assignment, - assembly_component_usage, - external_class_library, - group, - group_relationship, - product, - product_definition); -END_TYPE; - -TYPE non_negative_length_measure = length_measure; -WHERE - WR1: SELF >= 0.0; -END_TYPE; - -TYPE non_negative_real = REAL; -WHERE - WR1: 0.0 <= SELF; -END_TYPE; - -TYPE nonnegative_integer = INTEGER; -WHERE -nonnegativity: SELF >= 0; -END_TYPE; - -TYPE null_style = ENUMERATION OF - (null); -END_TYPE; - -TYPE numeric_measure = NUMBER; -END_TYPE; - -TYPE one_or_two = positive_integer; -WHERE in_range: (SELF = 1) OR (SELF = 2); -END_TYPE; - -TYPE open_closed = ENUMERATION OF - (open, - closed); -END_TYPE; - -TYPE ordering_type = ENUMERATION OF - (by_rows, - by_columns); -END_TYPE; - -TYPE organization_item = SELECT - (action, - action_directive, - action_method, - action_property, - action_relationship, - action_request_solution, - alternate_product_relationship, - applied_action_assignment, - applied_action_method_assignment, - applied_certification_assignment, - applied_classification_assignment, - applied_contract_assignment, - applied_document_reference, - applied_document_usage_constraint_assignment, - applied_effectivity_assignment, - applied_event_occurrence_assignment, - applied_identification_assignment, - applied_organizational_project_assignment, - applied_organization_assignment, - applied_person_and_organization_assignment, - applied_security_classification_assignment, - approval, - approval_status, - ascribable_state, - assembly_component_usage_substitute, - certification, - class, - class_system, - configuration_design, - configuration_effectivity, - configuration_item, - configured_effectivity_assignment, - contract, - data_equivalence_definition, - data_quality_definition, - date_and_time_assignment, - date_assignment, - document_file, - document_type, - draughting_model, - drawing_revision, - effectivity, - envelope, - event_occurrence, - evidence, - executed_action, - general_property, - general_property_relationship, - information_right, - information_usage_right, - interface_connection, - interface_connector_as_planned, - interface_connector_as_realized, - interface_connector_occurrence, - interface_definition_connection, - interface_definition_for, - material_designation, - mechanical_design_geometric_presentation_representation, - organization, - organizational_address, - organizational_project, - organization_relationship, - person_and_organization, - presentation_area, - product, - product_concept, - product_concept_feature, - product_concept_feature_association, - product_concept_feature_category, - product_concept_feature_category_usage, - product_definition, - product_definition_context, - product_definition_formation, - product_definition_formation_relationship, - product_definition_relationship, - product_definition_substitute, - product_group, - product_group_membership, - product_group_relationship, - property_definition, - property_definition_representation, - representation, - requirement_assignment, - requirement_for_action_resource, - requirement_source, - resource_property, - rule_action, - satisfies_requirement, - security_classification, - security_classification_level, - shape_representation, - state_observed, - state_observed_assignment, - state_observed_relationship, - state_type, - state_type_assignment, - state_type_relationship, - structured_message, - validation, - verification, - versioned_action_request); -END_TYPE; - -TYPE organization_type_item = SELECT - (organization); -END_TYPE; - -TYPE orientation_basis_select = SELECT - (axis2_placement_3d, - min_and_major_ply_orientation_basis); -END_TYPE; - -TYPE oriented_tolerance_zone_type = ENUMERATION OF - (perpendicular, - parallel, - angular); -END_TYPE; - -TYPE parallel_offset_type = ENUMERATION OF - (curve_2d_offset, - curve_3d_offset, - surface_offset); -END_TYPE; - -TYPE parameter_value = REAL; -END_TYPE; - -TYPE path_or_composite_curve = SELECT - (composite_curve, - path); -END_TYPE; - -TYPE pcurve_or_surface = SELECT - (pcurve, - surface); -END_TYPE; - -TYPE person_and_organization_item = SELECT - (action, - action_directive, - action_method, - action_property, - action_relationship, - action_request_solution, - alternate_product_relationship, - applied_action_assignment, - applied_action_method_assignment, - applied_certification_assignment, - applied_classification_assignment, - applied_contract_assignment, - applied_document_reference, - applied_document_usage_constraint_assignment, - applied_effectivity_assignment, - applied_event_occurrence_assignment, - applied_identification_assignment, - applied_organizational_project_assignment, - applied_organization_assignment, - applied_person_and_organization_assignment, - applied_security_classification_assignment, - approval, - approval_status, - ascribable_state, - assembly_component_usage_substitute, - certification, - class, - class_system, - configuration_design, - configuration_effectivity, - configuration_item, - configured_effectivity_assignment, - contract, - data_equivalence_definition, - data_quality_definition, - date_and_time_assignment, - date_assignment, - document_file, - document_type, - draughting_model, - drawing_revision, - effectivity, - envelope, - event_occurrence, - evidence, - executed_action, - general_property, - general_property_relationship, - information_usage_right, - interface_connection, - interface_connector_as_planned, - interface_connector_as_realized, - interface_connector_occurrence, - interface_definition_connection, - interface_definition_for, - material_designation, - mechanical_design_geometric_presentation_representation, - organization, - organizational_address, - organizational_project, - organization_relationship, - person_and_organization, - presentation_area, - product, - product_concept, - product_concept_feature, - product_concept_feature_association, - product_concept_feature_category, - product_concept_feature_category_usage, - product_definition, - product_definition_context, - product_definition_formation, - product_definition_formation_relationship, - product_definition_relationship, - product_definition_substitute, - product_group, - product_group_membership, - product_group_relationship, - property_definition, - property_definition_representation, - representation, - requirement_assignment, - requirement_for_action_resource, - requirement_source, - resource_property, - rule_action, - security_classification, - security_classification_level, - shape_representation, - state_observed, - state_observed_assignment, - state_observed_relationship, - state_type, - state_type_assignment, - state_type_relationship, - structured_message, - validation, - verification, - versioned_action_request); -END_TYPE; - -TYPE person_organization_select = SELECT - (organization, - person, - person_and_organization); -END_TYPE; - -TYPE picture_representation_item_select = SELECT - (axis2_placement_2d, - planar_box, - styled_item); -END_TYPE; - -TYPE planar_curve_select = SELECT - (line, - conic, - trimmed_curve, - pcurve, - surface_curve); -WHERE - WR1: SELF\geometric_representation_item.dim = 3; - WR2: check_curve_planarity(SELF); -END_TYPE; - -TYPE plane_angle_measure = REAL; -END_TYPE; - -TYPE plane_or_planar_box = SELECT - (planar_box, - plane); -END_TYPE; - -TYPE point_and_vector_member = SELECT - (direction, - point); -END_TYPE; - -TYPE point_and_vector_members = LIST [2 : 3] OF point_and_vector_member; -END_TYPE; - -TYPE point_array_members = LIST [1 : ?] OF point_and_vector; -END_TYPE; - -TYPE point_cloud_set_or_superset = SELECT - (point_cloud_dataset, - point_cloud_superdataset); -END_TYPE; - -TYPE point_curve_or_surface_constraint_element = SELECT - (curve, - point, - surface); -END_TYPE; - -TYPE point_path_members = LIST [1 : ?] OF point_and_vector; -END_TYPE; - -TYPE point_placement_shape_representation_item = SELECT - (axis2_placement_3d, - compound_representation_item, - mapped_item); -END_TYPE; - -TYPE positive_integer = nonnegative_integer; -WHERE positivity: SELF > 0; -END_TYPE; - -TYPE positive_length_measure = non_negative_length_measure; -WHERE - WR1: SELF > 0.0; -END_TYPE; - -TYPE positive_plane_angle_measure = plane_angle_measure; -WHERE - WR1: SELF > 0.0; -END_TYPE; - -TYPE positive_ratio_measure = ratio_measure; -WHERE - WR1: SELF > 0.0; -END_TYPE; - -TYPE power_measure = REAL; -END_TYPE; - -TYPE preferred_ordering = ENUMERATION OF - (extremity_order, - detected_order); -END_TYPE; - -TYPE preferred_report_ordering = ENUMERATION OF - (in_notable_order, - in_detected_order); -END_TYPE; - -TYPE preferred_surface_curve_representation = ENUMERATION OF - (curve_3d, - pcurve_s1, - pcurve_s2); -END_TYPE; - -TYPE presentable_text = STRING; -WHERE - WR1: control_characters_free(SELF); -END_TYPE; - -TYPE presentation_representation_select = SELECT - (presentation_representation, - presentation_set); -END_TYPE; - -TYPE presentation_size_assignment_select = SELECT - (area_in_set, - presentation_area, - presentation_view); -END_TYPE; - -TYPE presentation_style_select = SELECT - (curve_style, - externally_defined_style, - fill_area_style, - null_style, - point_style, - surface_style_usage, - symbol_style, - texture_style_tessellation_specification, - text_style); -END_TYPE; - -TYPE presented_item_select = SELECT - (action, - action_method, - action_relationship, - product_concept, - product_concept_feature, - product_concept_feature_category, - product_definition, - product_definition_formation, - product_definition_relationship); -END_TYPE; - -TYPE pressure_measure = REAL; -END_TYPE; - -TYPE previous_element_assignment_select = SELECT - (delete_element, - modify_element); -END_TYPE; - -TYPE product_definition_occurrence_or_reference = SELECT - (product_definition_occurrence, - product_definition_occurrence_reference); -END_TYPE; - -TYPE product_definition_or_assembly_relationship = SELECT - (assembly_component_usage, - product_definition); -END_TYPE; - -TYPE product_definition_or_breakdown_element_usage = SELECT - (product, - product_definition, - product_definition_formation, - product_definition_usage); -END_TYPE; - -TYPE product_definition_or_product_definition_relationship = SELECT - (interface_connector_occurrence, - product, - product_definition, - product_definition_usage, - product_group); -END_TYPE; - -TYPE product_definition_or_reference = SELECT - (generic_product_definition_reference, - product_definition, - product_definition_occurrence); -END_TYPE; - -TYPE product_definition_or_reference_or_occurrence = product_definition_or_reference; -END_TYPE; - -TYPE product_or_formation_or_definition = SELECT - (product, - product_definition, - product_definition_formation); -END_TYPE; - -TYPE product_select = SELECT - (product, - product_concept, - product_definition_formation, - product_group); -END_TYPE; - -TYPE product_space = SELECT - (uniform_product_space); -END_TYPE; - -TYPE project_item = SELECT - (action_method, - action_method_relationship, - applied_action_assignment, - applied_action_method_assignment, - assembly_component_usage, - configuration_item, - executed_action, - measure_representation_item, - product, - product_concept, - product_definition, - product_definition_formation, - product_definition_occurrence, - product_definition_occurrence_reference, - product_group, - product_group_membership, - product_group_relationship, - product_identification, - property_definition_representation, - representation, - representation_item, - value_representation_item); -END_TYPE; - -TYPE property_or_shape_select = SELECT - (property_definition, - shape_definition); -END_TYPE; - -TYPE property_variable_rep_select = SELECT - (dimensional_size, - representation); -END_TYPE; - -TYPE radial_geometry_constraint_element = SELECT - (circle, - conical_surface, - cylindrical_surface, - right_circular_cone, - right_circular_cylinder, - sphere, - spherical_surface); -END_TYPE; - -TYPE radioactivity_measure = REAL; -END_TYPE; - -TYPE ratio_measure = REAL; -END_TYPE; - -TYPE real_interval = SELECT - (real_interval_from_min, - real_interval_to_max, - finite_real_interval, - elementary_space); -WHERE - WR1: NOT ('ELEMENTARY_SPACE' IN stripped_typeof(SELF)) OR - (SELF\elementary_space.space_id = es_reals); -END_TYPE; - -TYPE rendering_properties_select = SELECT - (surface_style_reflectance_ambient, - surface_style_transparent); -END_TYPE; - -TYPE repackage_options = ENUMERATION OF - (ro_nochange, - ro_wrap_as_tuple, - ro_unwrap_tuple); -END_TYPE; - -TYPE representation_or_representation_reference = SELECT - (representation, - representation_reference); -END_TYPE; - -TYPE representation_proxy_select = SELECT - (product_definition_formation); -END_TYPE; - -TYPE representative_value_type = ENUMERATION OF - (average_value, - max_value, - min_value, - min_max_value); -END_TYPE; - -TYPE represented_definition = SELECT - (general_property, - property_definition, - property_definition_relationship, - shape_aspect, - shape_aspect_relationship); -END_TYPE; - -TYPE requirement_assigned_item = SELECT - (action_method, - alternate_product_relationship, - applied_action_method_assignment, - applied_state_observed_assignment, - applied_state_type_assignment, - assembly_component_usage, - assembly_component_usage_substitute, - characterized_object, - configuration_item, - descriptive_representation_item, - dimensional_location, - dimensional_size, - geometric_tolerance, - interface_connector_occurrence, - organizational_project, - product, - product_class, - product_definition, - product_definition_formation, - product_definition_group_assignment, - product_definition_relationship, - product_group, - product_group_membership, - quantified_assembly_component_usage, - representation, - shape_aspect, - state_observed, - state_type, - validation, - verification, - versioned_action_request); -END_TYPE; - -TYPE requirement_satisfaction_item = SELECT - (requirement_assigned_item); -END_TYPE; - -TYPE requirement_source_item = SELECT - (action_method, - applied_action_method_assignment, - applied_state_observed_assignment, - applied_state_type_assignment, - characterized_object, - contract, - dimensional_location, - dimensional_size, - executed_action, - geometric_tolerance, - group, - group_relationship, - interface_connector_occurrence, - organization, - organizational_project, - person_and_organization, - product, - product_definition, - product_definition_formation, - product_definition_relationship, - shape_aspect, - state_observed, - state_type, - validation, - verification); -END_TYPE; - -TYPE resistance_measure = REAL; -END_TYPE; - -TYPE reversible_topology = SELECT - (list_of_reversible_topology_item, - reversible_topology_item, - set_of_reversible_topology_item); -END_TYPE; - -TYPE reversible_topology_item = SELECT - (closed_shell, - edge, - face, - face_bound, - open_shell, - path); -END_TYPE; - -TYPE rigid_placement = SELECT - (axis2_placement_3d, - su_parameters); -END_TYPE; - -TYPE role_select = SELECT - (action_assignment, - action_request_assignment, - approval_assignment, - approval_date_time, - certification_assignment, - contract_assignment, - directed_action_assignment, - document_reference, - effectivity_assignment, - group_assignment, - name_assignment, - security_classification_assignment); -END_TYPE; - -TYPE rule_superseded_item = SELECT - (product_definition_formation); -END_TYPE; - -TYPE same_as_item = SELECT - (address, - applied_external_identification_assignment, - approval, - approval_status, - attribute_language_assignment, - calendar_date, - certification, - contract, - coordinated_universal_time_offset, - date_and_time, - derived_unit, - derived_unit_element, - event_occurrence, - external_source, - general_property, - information_right, - information_usage_right, - language, - local_time, - measure_with_unit, - named_unit, - organization, - person, - product_definition_context, - representation_context, - requirement_source, - security_classification, - time_interval, - usage_association); -END_TYPE; - -TYPE second_in_minute = REAL; -WHERE - WR1: { 0 <= SELF < 60.0 }; -END_TYPE; - -TYPE security_classification_item = SELECT - (action, - action_directive, - action_method, - action_method_relationship, - action_property, - action_property_representation, - applied_action_assignment, - applied_action_method_assignment, - applied_classification_assignment, - applied_description_text_assignment, - applied_description_text_assignment_relationship, - applied_document_reference, - applied_document_usage_constraint_assignment, - applied_external_identification_assignment, - applied_identification_assignment, - assembly_component_usage, - assembly_component_usage_substitute, - class_system, - conditional_effectivity, - configuration_design, - configuration_effectivity, - configured_effectivity_assignment, - document, - document_file, - draughting_model, - drawing_revision, - envelope, - evaluated_characteristic_of_product_as_individual_test_result, - evidence, - exclusive_product_concept_feature_category, - executed_action, - externally_defined_general_property, - general_property, - group, - identification_assignment_relationship, - interface_connection, - interface_connector_as_planned, - interface_connector_as_realized, - interface_connector_design, - interface_connector_occurrence, - interface_definition_connection, - interface_definition_for, - make_from_usage_option, - material_designation, - mechanical_design_geometric_presentation_representation, - organizational_project, - package_product_concept_feature, - presentation_area, - process_plan, - product, - product_class, - product_concept, - product_concept_feature, - product_concept_feature_category, - product_definition, - product_definition_formation, - product_definition_formation_relationship, - product_definition_group_assignment, - product_definition_relationship, - product_definition_usage, - product_design_to_individual, - product_design_version_to_individual, - product_group, - product_group_membership, - product_group_relationship, - product_identification, - product_process_plan, - product_relationship, - property_definition, - property_definition_representation, - representation, - requirement_assignment, - requirement_source, - requirement_view_definition_relationship, - resource_property, - shape_representation, - structured_message, - validation, - verification, - versioned_action_request); -END_TYPE; - -TYPE set_inner_area_boundary = SET [1 : ?] OF bounded_primitive_2d; -END_TYPE; - -TYPE set_item_defined_transformation = SET [2 : ?] OF item_defined_transformation; -END_TYPE; - -TYPE set_of_reversible_topology_item = SET [0 : ?] OF reversible_topology_item; -END_TYPE; - -TYPE set_representation_item = SET [1 : ?] OF representation_item; -END_TYPE; - -TYPE shading_curve_method = ENUMERATION OF - (constant_colour, - linear_colour); -END_TYPE; - -TYPE shading_surface_method = ENUMERATION OF - (constant_shading, - colour_shading, - dot_shading, - normal_shading); -END_TYPE; - -TYPE shape_aspect_or_characterized_object = SELECT - (characterized_object, - shape_aspect); -END_TYPE; - -TYPE shape_data_quality_assessment_specification_select = SELECT - (shape_data_quality_assessment_by_logical_test, - shape_data_quality_assessment_by_numerical_test); -END_TYPE; - -TYPE shape_data_quality_value_limit_type_select = SELECT - (shape_data_quality_value_limit, - shape_data_quality_value_range); -END_TYPE; - -TYPE shape_definition = SELECT - (product_definition_shape, - shape_aspect, - shape_aspect_relationship); -END_TYPE; - -TYPE shape_dimension_representation_item = SELECT - (compound_representation_item, - descriptive_representation_item, - measure_representation_item, - placement); -END_TYPE; - -TYPE shape_model = SELECT - (constructive_geometry_representation, - shape_representation); -END_TYPE; - -TYPE shape_representation_item = SELECT - (geometric_representation_item, - topological_representation_item); -END_TYPE; - -TYPE shape_representation_with_parameters_items = SELECT - (descriptive_representation_item, - direction, - measure_representation_item, - placement); -END_TYPE; - -TYPE shell = SELECT - (closed_shell, - open_shell, - vertex_shell, - wire_shell); -END_TYPE; - -TYPE si_prefix = ENUMERATION OF - (exa, - peta, - tera, - giga, - mega, - kilo, - hecto, - deca, - deci, - centi, - milli, - micro, - nano, - pico, - femto, - atto); -END_TYPE; - -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; - -TYPE simple_datum_reference_modifier = ENUMERATION OF - (any_cross_section, - any_longitudinal_section, - basic, - contacting_feature, - degree_of_freedom_constraint_u, - degree_of_freedom_constraint_v, - degree_of_freedom_constraint_w, - degree_of_freedom_constraint_x, - degree_of_freedom_constraint_y, - degree_of_freedom_constraint_z, - distance_variable, - free_state, - least_material_requirement, - line, - major_diameter, - maximum_material_requirement, - minor_diameter, - orientation, - pitch_diameter, - plane, - point, - translation); -END_TYPE; - -TYPE size_select = SELECT - (descriptive_measure, - measure_with_unit, - positive_length_measure); -END_TYPE; - -TYPE sketch_basis_select = SELECT - (curve_bounded_surface, - face_surface, - planar_curve_select); -END_TYPE; - -TYPE sketch_element_select = SELECT ( - curve, - point); - WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(SELF); -END_TYPE; - -TYPE sketch_type_select = SELECT - (neutral_sketch_representation, - positioned_sketch, - subsketch); -END_TYPE; - -TYPE solid_angle_measure = REAL; -END_TYPE; - -TYPE source = ENUMERATION OF - (made, - bought, - not_known); -END_TYPE; - -TYPE source_item = SELECT - (identifier, - message); -END_TYPE; - -TYPE space_constraint_type = ENUMERATION OF - (sc_equal, - sc_subspace, - sc_member); -END_TYPE; - -TYPE spatial_rotation = SELECT - (rotation_about_direction, - ypr_rotation); -END_TYPE; - -TYPE specified_item = SELECT - (drawing_revision); -END_TYPE; - -TYPE spherical_pair_select = SELECT - (spherical_pair, - spherical_pair_with_pin); -END_TYPE; - -TYPE spline_knot_values = LIST [2: ?] OF REAL; -WHERE -WR1 : increasing_values_in_list(SELF); -END_TYPE; - -TYPE start_request_item = SELECT - (product_definition_formation); -END_TYPE; - -TYPE state_observed_of_item = SELECT - (alternate_product_relationship, - applied_action_method_assignment, - applied_external_identification_assignment, - approval, - assembly_component_usage, - assembly_component_usage_substitute, - attachment_slot_design_to_planned, - attachment_slot_design_to_realized, - attachment_slot_on_product, - attachment_slot_planned_to_realized, - breakdown_element_group_assignment, - breakdown_element_usage, - certification, - configuration_item, - contract, - document_file, - evidence, - final_solution, - group, - interface_connection, - interface_connector_as_planned, - interface_connector_as_realized, - interface_connector_definition, - interface_connector_design, - interface_connector_occurrence, - interface_connector_version, - interface_definition_connection, - interface_specification_definition, - interface_specification_version, - organization, - organizational_project, - person_and_organization, - product, - product_category, - product_concept, - product_definition, - product_definition_formation, - product_definition_group_assignment, - product_definition_relationship, - product_in_attachment_slot, - security_classification, - structured_message, - validation, - verification); -END_TYPE; - -TYPE state_type_of_item = SELECT - (action_method, - alternate_product_relationship, - applied_action_method_assignment, - applied_external_identification_assignment, - approval, - assembly_component_usage, - assembly_component_usage_substitute, - attachment_slot_design_to_planned, - attachment_slot_design_to_realized, - attachment_slot_on_product, - attachment_slot_planned_to_realized, - breakdown_element_group_assignment, - breakdown_element_usage, - certification, - configuration_item, - contract, - document_file, - evidence, - final_solution, - interface_connection, - interface_connector_as_planned, - interface_connector_as_realized, - interface_connector_definition, - interface_connector_design, - interface_connector_occurrence, - interface_connector_version, - interface_definition_connection, - interface_specification_definition, - interface_specification_version, - organization, - organizational_project, - person_and_organization, - product, - product_category, - product_concept, - product_definition, - product_definition_formation, - product_definition_group_assignment, - product_definition_relationship, - product_group, - product_in_attachment_slot, - security_classification, - validation, - verification); -END_TYPE; - -TYPE statistical_value_type = ENUMERATION OF - (number_of_inspected_instances, - number_of_quality_defects_detected); -END_TYPE; - -TYPE string_representation_item_select = SELECT - (descriptive_representation_item, - included_text_block, - structured_text_composition); -END_TYPE; - -TYPE style_context_select = SELECT - (context_dependent_shape_representation, - group, - presentation_layer_assignment, - presentation_set, - representation, - representation_item, - representation_relationship); -END_TYPE; - -TYPE styled_item_target = SELECT - (geometric_representation_item, - mapped_item, - representation_or_representation_reference, - topological_representation_item); -END_TYPE; - -TYPE summary_report_style_type = ENUMERATION OF - (conclusion, - number_of_defects, - number_of_inspections); -END_TYPE; - -TYPE summary_report_type = ENUMERATION OF - (unspecified, - conclusion_only, - number_of_quality_defects, - number_of_inspections_and_conclusion, - full_statistics); -END_TYPE; - -TYPE supported_item = SELECT - (action, - action_directive, - action_method); -END_TYPE; - -TYPE surface_boundary_type = ENUMERATION OF - (u_parameter_min, - v_parameter_min, - u_parameter_max, - v_parameter_max); -END_TYPE; - -TYPE surface_model = SELECT - (face_based_surface_model, - shell_based_surface_model); -END_TYPE; - -TYPE surface_or_solid_model = SELECT - (solid_model, - surface_model); -END_TYPE; - -TYPE surface_side = ENUMERATION OF - (positive, - negative, - both); -END_TYPE; - -TYPE surface_side_style_select = SELECT - (pre_defined_surface_side_style, - surface_side_style); -END_TYPE; - -TYPE surface_style_element_select = SELECT - (surface_style_boundary, - surface_style_control_grid, - surface_style_fill_area, - surface_style_parameter_line, - surface_style_rendering, - surface_style_segmentation_curve, - surface_style_silhouette); -END_TYPE; - -TYPE swept_surface_or_solid = SELECT - (swept_area_solid, - swept_face_solid, - swept_surface); -END_TYPE; - -TYPE symbol_style_select = SELECT - (symbol_colour); -END_TYPE; - -TYPE symmetry_type = ENUMERATION OF - (identity, - skew, - hermitian, - skew_hermitian); -END_TYPE; - -TYPE tangent_contact_type = ENUMERATION OF - (point_contact, - curve_contact, - surface_contact); -END_TYPE; - -TYPE target_annotated_3d_model_select = SELECT - (shape_representation_relationship); -END_TYPE; - -TYPE tessellated_edge_or_vertex = SELECT - (tessellated_edge, - tessellated_vertex); -END_TYPE; - -TYPE tessellated_facet_long_short_edge_ratio = ratio_measure; -END_TYPE; - -TYPE tessellated_surface_item = SELECT - (tessellated_face, - tessellated_shell, - tessellated_solid, - tessellated_surface_set); -END_TYPE; - -TYPE tessellation_accuracy_parameter_item = SELECT - (angular_deviation, - chordal_deviation, - length_to_height_ratio, - maximum_edge_length, - tessellated_facet_long_short_edge_ratio); -END_TYPE; - -TYPE text = STRING; -END_TYPE; - -TYPE text_alignment = label; -END_TYPE; - -TYPE text_delineation = label; -END_TYPE; - -TYPE text_or_character = SELECT - (annotation_text, - annotation_text_character, - composite_text, - defined_character_glyph, - text_literal); -END_TYPE; - -TYPE text_path = ENUMERATION OF - (left, - right, - up, - down); -END_TYPE; - -TYPE text_string_representation_item = SELECT - (annotation_text, - annotation_text_character, - axis2_placement, - composite_text, - defined_character_glyph, - text_literal); -END_TYPE; - -TYPE texture_file_type = ENUMERATION OF - (jpeg, - png, - gif, - tiff, - bmp, - dds, - tga, - other); -END_TYPE; - -TYPE thermodynamic_temperature_measure = REAL; -END_TYPE; - -TYPE time_interval_item = SELECT - (action, - action_directive, - action_method, - action_property, - action_relationship, - action_request_solution, - alternate_product_relationship, - analysis_assignment, - applied_action_assignment, - applied_classification_assignment, - applied_person_and_organization_assignment, - approval_status, - assembly_component_usage_substitute, - certification, - class, - class_system, - configuration_design, - configuration_effectivity, - configuration_item, - configured_effectivity_assignment, - contract, - document_file, - draughting_model, - drawing_revision, - evidence, - executed_action, - general_property, - material_designation, - mechanical_design_geometric_presentation_representation, - organizational_project, - organization_relationship, - person_and_organization, - presentation_area, - product, - product_concept, - product_concept_feature, - product_concept_feature_association, - product_concept_feature_category, - product_concept_feature_category_usage, - product_definition, - product_definition_formation, - product_definition_formation_relationship, - product_definition_relationship, - product_definition_substitute, - property_definition, - requirement_for_action_resource, - resource_property, - security_classification, - security_classification_level, - shape_representation, - time_interval_based_effectivity, - validation, - verification, - verification_relationship, - versioned_action_request); -END_TYPE; - -TYPE time_measure = REAL; -END_TYPE; - -TYPE tolerance_method_definition = SELECT - (limits_and_fits, - tolerance_value); -END_TYPE; - -TYPE tolerance_value_or_limits_and_fits = SELECT - (limits_and_fits, - tolerance_value); -END_TYPE; - -TYPE tolerance_zone_target = SELECT - (dimensional_location, - dimensional_size, - general_datum_reference, - geometric_tolerance); -END_TYPE; - -TYPE transformation = SELECT - (functionally_defined_transformation, - item_defined_transformation, - list_item_defined_transformation, - set_item_defined_transformation); -END_TYPE; - -TYPE transition_code = ENUMERATION OF - (discontinuous, - continuous, - cont_same_gradient, - cont_same_gradient_same_curvature); -END_TYPE; - -TYPE trim_condition_select = SELECT - (generalized_surface_select, - length_measure, - plane_angle_measure, - solid_model); -END_TYPE; - -TYPE trim_intent = ENUMERATION OF - (blind, - offset, - through_all, - unspecified, - up_to_next); -END_TYPE; - -TYPE trimming_preference = ENUMERATION OF - (cartesian, - parameter, - unspecified); -END_TYPE; - -TYPE trimming_select = SELECT - (cartesian_point, - parameter_value); -END_TYPE; - -TYPE tuple_space = SELECT - (extended_tuple_space, - product_space); -END_TYPE; - -TYPE u_direction_count = INTEGER; -WHERE - WR1: SELF > 1; -END_TYPE; - -TYPE u_or_v_parameter = ENUMERATION OF - (u_parameter, - v_parameter); -END_TYPE; - -TYPE unit = SELECT - (derived_unit, - named_unit); -END_TYPE; - -TYPE unsigned_8_bit_integer = INTEGER; -WHERE - WR1: {0 <= SELF <= 255}; -END_TYPE; - -TYPE used_equivalence_representation_select = SELECT - (data_equivalence_criteria_representation, - data_equivalence_inspection_result_representation); -END_TYPE; - -TYPE used_quality_representation_select = SELECT - (data_quality_criteria_representation, - data_quality_inspection_result_representation); -END_TYPE; - -TYPE v_direction_count = INTEGER; -WHERE - WR1: SELF > 1; -END_TYPE; - -TYPE validation_criteria_or_results_select = SELECT - (data_equivalence_definition_representation_relationship); -END_TYPE; - -TYPE value_format_type = identifier; -WHERE - WR1: LENGTH(SELF) <= 80; -END_TYPE; -- value_format_type - -TYPE value_qualifier = SELECT - (maths_value_precision_qualifier, - precision_qualifier, - type_qualifier, - uncertainty_qualifier, - value_format_type_qualifier); -END_TYPE; - -TYPE vector_or_direction = SELECT - (direction, - vector); -END_TYPE; - -TYPE velocity_measure = REAL; -END_TYPE; - -TYPE volume_measure = REAL; -END_TYPE; - -TYPE week_in_year_number = INTEGER; -WHERE - WR1: { 1 <= SELF <= 53 }; -END_TYPE; - -TYPE work_item = SELECT - (product_definition_formation); -END_TYPE; - -TYPE year_number = INTEGER; -WHERE - WR1: (SELF > 1581); -END_TYPE; - -TYPE ypr_enumeration = ENUMERATION OF - (yaw, - pitch, - roll); -END_TYPE; - -TYPE ypr_rotation = ARRAY [ypr_index(yaw) : ypr_index(roll)] OF plane_angle_measure; -END_TYPE; - -TYPE zero_or_one = nonnegative_integer; -WHERE in_range: (SELF = 0) OR (SELF = 1); -END_TYPE; - -ENTITY a3m_equivalence_accuracy_association; - id : identifier; - name : label; - description : OPTIONAL text; - specific_accuracy : shape_measurement_accuracy; - equivalence_target : accuracy_associated_target_select; -END_ENTITY; - -ENTITY a3m_equivalence_assessment_by_logical_test - SUBTYPE OF (data_equivalence_assessment_specification); -END_ENTITY; - -ENTITY a3m_equivalence_assessment_by_numerical_test - SUBTYPE OF (data_equivalence_assessment_specification); - threshold : shape_data_quality_value_limit_type_select; -END_ENTITY; - -ENTITY a3m_equivalence_criteria_representation - SUBTYPE OF (data_equivalence_criteria_representation); -WHERE - WR1: SIZEOF(QUERY(q - <* SELF\representation.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.A3M_EQUIVALENCE_CRITERION' IN TYPEOF(q))) > - 0; -END_ENTITY; - -ENTITY a3m_equivalence_criterion - ABSTRACT SUPERTYPE OF (a3m_equivalence_criterion_with_specified_elements) - SUBTYPE OF (data_equivalence_criterion, data_equivalence_inspection_requirement); - assessment_specification : a3m_equivalence_assessment_specification_select; - comparing_element_types : LIST [1 : ?] OF a3m_element_type_name; - compared_element_types : LIST [1 : ?] OF a3m_element_type_name; - measured_data_type : a3m_measured_data_type_name; - detected_difference_types : LIST [0 : ?] OF a3m_detected_difference_type_name; - accuracy_types : LIST [0 : ?] OF a3m_accuracy_type_name; -WHERE - WR1: SIZEOF(USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_EQUIVALENCE_CRITERION_ASSESSMENT_ASSOCIATION.CRITERION')) = - 0; - WR2: SIZEOF(QUERY(i1 - <* bag_to_set(USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_ITEM_RELATIONSHIP.RELATED_REPRESENTATION_ITEM')) - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_EQUIVALENCE_CRITERION_INSPECTION_ASSOCIATION' IN - TYPEOF(i1))) = - 0; - WR3: SIZEOF(QUERY(i1 - <* bag_to_set(USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_ITEM_RELATIONSHIP.RELATING_REPRESENTATION_ITEM')) - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_EQUIVALENCE_CRITERION_INSPECTION_ASSOCIATION' IN - TYPEOF(i1))) = - 0; -END_ENTITY; - -ENTITY a3m_equivalence_criterion_for_assembly - ABSTRACT SUPERTYPE OF (ONEOF(a3m_equivalence_criterion_of_assembly_data_structure, - a3m_equivalence_criterion_of_detailed_assembly_data_content, - a3m_equivalence_criterion_of_component_property_difference, - a3m_equivalence_criterion_of_representative_assembly_property_value)) - SUBTYPE OF (a3m_equivalence_criterion); - SELF\a3m_equivalence_criterion.comparing_element_types : LIST [1 : ?] OF a3ma_element_type_name; - SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : ?] OF a3ma_element_type_name; - SELF\a3m_equivalence_criterion.measured_data_type : a3ma_measured_data_type_name; - SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : ?] OF a3ma_detected_difference_type_name; -DERIVE - SELF\a3m_equivalence_criterion.accuracy_types : LIST [0 : 0] OF a3ma_accuracy_type_name := []; -WHERE - WR1: a3ma_validate_accuracy_types(SELF, SELF); -END_ENTITY; - -ENTITY a3m_equivalence_criterion_for_shape - ABSTRACT SUPERTYPE OF (ONEOF(a3m_equivalence_criterion_of_detailed_shape_data_content, - a3m_equivalence_criterion_of_representative_shape_property_value, - a3m_equivalence_criterion_of_shape_data_structure)) - SUBTYPE OF (a3m_equivalence_criterion); - SELF\a3m_equivalence_criterion.comparing_element_types : LIST [1 : ?] OF a3ms_element_type_name; - SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : ?] OF a3ms_element_type_name; - SELF\a3m_equivalence_criterion.measured_data_type : a3ms_measured_data_type_name; - SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : ?] OF a3ms_detected_difference_type_name; - SELF\a3m_equivalence_criterion.accuracy_types : LIST [0 : ?] OF a3ms_accuracy_type_name; -WHERE - WR1: a3ms_validate_accuracy_types(SELF, SELF); -END_ENTITY; - -ENTITY a3m_equivalence_criterion_of_assembly_data_structure - ABSTRACT SUPERTYPE OF (ONEOF(different_component_identification_via_multi_level_reference, mismatch_of_component, - missing_assembly_constraint, missing_component)) - SUBTYPE OF (a3m_equivalence_criterion_for_assembly); -DERIVE - SELF\a3m_equivalence_criterion.comparing_element_types : LIST [1 : 1] OF a3ma_element_type_name := [etna_product_definition_or_reference]; - SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : 1] OF a3ma_element_type_name := [etna_product_definition_or_reference]; -END_ENTITY; - -ENTITY a3m_equivalence_criterion_of_component_property_difference - ABSTRACT SUPERTYPE OF (different_component_shape) - SUBTYPE OF (a3m_equivalence_criterion_for_assembly); - SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_logical_test; -DERIVE - SELF\a3m_equivalence_criterion.measured_data_type : a3ma_measured_data_type_name := mdna_boolean_value; -END_ENTITY; - -ENTITY a3m_equivalence_criterion_of_detailed_assembly_data_content - ABSTRACT SUPERTYPE OF (ONEOF(different_angle_of_assembly_constraint, different_assembly_constraint_type, - different_component_type, different_length_of_assembly_constraint, - different_placement_of_component)) - SUBTYPE OF (a3m_equivalence_criterion_for_assembly); -DERIVE - SELF\a3m_equivalence_criterion.comparing_element_types : LIST [1 : 1] OF a3ma_element_type_name := [etna_product_definition_or_reference]; - SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : 1] OF a3ma_element_type_name := [etna_product_definition_or_reference]; -END_ENTITY; - -ENTITY a3m_equivalence_criterion_of_detailed_shape_data_content - ABSTRACT SUPERTYPE OF (ONEOF(different_surface_normal, mismatch_of_arcwise_connected_curves, - mismatch_of_arcwise_connected_surfaces, mismatch_of_arcwise_connected_surfaces_boundary, - mismatch_of_points, mismatch_of_point_cloud_and_related_geometry, - mismatch_of_underlying_edge_geometry, mismatch_of_underlying_face_geometry)) - SUBTYPE OF (a3m_equivalence_criterion_for_shape); -END_ENTITY; - -ENTITY a3m_equivalence_criterion_of_representative_assembly_property_value - ABSTRACT SUPERTYPE OF (ONEOF(different_assembly_centroid, different_assembly_centroid_using_notional_solid, - different_assembly_volume, different_number_of_components)) - SUBTYPE OF (a3m_equivalence_criterion_for_assembly); -DERIVE - SELF\a3m_equivalence_criterion.comparing_element_types : LIST [1 : 1] OF a3ma_element_type_name := [etna_product_definition_or_reference]; - SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : 1] OF a3ma_element_type_name := [etna_product_definition_or_reference]; -END_ENTITY; - -ENTITY a3m_equivalence_criterion_of_representative_shape_property_value - ABSTRACT SUPERTYPE OF (ONEOF(different_bounding_box, different_centroid, different_curve_length, - different_number_of_closed_shell, different_number_of_geometric_elements, - different_number_of_geometric_elements_wireframe_model, - different_number_of_topological_elements, - different_number_of_topological_elements_wireframe_model, different_surface_area, - different_volume)) - SUBTYPE OF (a3m_equivalence_criterion_for_shape); -DERIVE - SELF\a3m_equivalence_criterion.comparing_element_types : LIST [1 : ?] OF a3m_element_type_name := SELF\a3m_equivalence_criterion.compared_element_types; -END_ENTITY; - -ENTITY a3m_equivalence_criterion_of_shape_data_structure - ABSTRACT SUPERTYPE OF (ONEOF(mismatch_of_edges, mismatch_of_faces, missing_edge, missing_face)) - SUBTYPE OF (a3m_equivalence_criterion_for_shape); -DERIVE - SELF\a3m_equivalence_criterion.comparing_element_types : LIST [1 : ?] OF a3m_element_type_name := SELF\a3m_equivalence_criterion.compared_element_types; -END_ENTITY; - -ENTITY a3m_equivalence_criterion_report_item_with_measured_value - SUBTYPE OF (data_equivalence_inspection_criterion_report_item); - representative_measured_value : equivalence_measured_value_select; - value_type : representative_value_type; -END_ENTITY; - -ENTITY a3m_equivalence_criterion_with_specified_elements - SUBTYPE OF (a3m_equivalence_criterion); - comparing_specified_elements : SET [1 : ?] OF inspected_equivalence_element_select; - compared_specified_elements : SET [1 : ?] OF inspected_equivalence_element_select; -END_ENTITY; - -ENTITY a3m_equivalence_inspection_instance_report_item - SUBTYPE OF (data_equivalence_inspection_instance_report_item); - measured_value_for_inspected_element : equivalence_measured_value_select; -END_ENTITY; - -ENTITY a3m_equivalence_inspection_requirement_with_values - ABSTRACT SUPERTYPE - SUBTYPE OF (data_equivalence_inspection_requirement); - applied_values : SET [1 : ?] OF measure_representation_item; -END_ENTITY; - -ENTITY a3m_equivalence_inspection_result_representation - SUBTYPE OF (data_equivalence_inspection_result_representation); -END_ENTITY; - -ENTITY a3m_equivalence_inspection_result_representation_for_assembly - SUBTYPE OF (a3m_equivalence_inspection_result_representation); -WHERE - WR1: SIZEOF(QUERY(q - <* SELF\representation.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.A3MS_EQUIVALENCE_INSPECTION_RESULT' IN - TYPEOF(q))) = - 0; -END_ENTITY; - -ENTITY a3m_equivalence_inspection_result_representation_for_shape - SUBTYPE OF (a3m_equivalence_inspection_result_representation); -WHERE - WR1: SIZEOF(QUERY(q - <* SELF\representation.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.A3MA_EQUIVALENCE_INSPECTION_RESULT' IN - TYPEOF(q))) = - 0; -END_ENTITY; - -ENTITY a3m_equivalence_summary_report_request_with_representative_value - SUBTYPE OF (data_equivalence_report_request); - report_request_type : representative_value_type; -END_ENTITY; - -ENTITY a3m_inspected_model_and_inspection_result_relationship; - inspected_model : target_annotated_3d_model_select; - equivalence_result : a3m_equivalence_inspection_result_representation; -END_ENTITY; - -ENTITY a3ma_assembly_and_shape_criteria_relationship - SUBTYPE OF (representation_item_relationship); - SELF\representation_item_relationship.relating_representation_item : different_component_shape; - SELF\representation_item_relationship.related_representation_item : a3m_equivalence_criterion_for_shape; -END_ENTITY; - -ENTITY a3ma_equivalence_criterion_assessment_threshold_relationship - SUBTYPE OF (representation_item_relationship); - SELF\representation_item_relationship.relating_representation_item : different_placement_of_component; - SELF\representation_item_relationship.related_representation_item : shape_data_quality_lower_value_limit; -END_ENTITY; - -ENTITY a3ma_equivalence_inspection_result - SUBTYPE OF (data_equivalence_inspection_result); - SELF\data_equivalence_inspection_result.criterion_inspected : a3m_equivalence_criterion_for_assembly; -WHERE - WR1: a3ma_validate_accuracy_types(SELF, SELF\data_equivalence_inspection_result.criterion_inspected); - WR2: SIZEOF(QUERY(re - <* bag_to_set(USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_EQUIVALENCE_INSPECTION_REPORT.INSPECTION_RESULT')) - | NOT (a3ma_validate_element_types(re, - SELF\data_equivalence_inspection_result.criterion_inspected)))) = - 0; - WR3: SIZEOF(QUERY(re - <* bag_to_set(USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_EQUIVALENCE_INSPECTION_REPORT.INSPECTION_RESULT')) - | NOT (a3ma_validate_detected_difference_types(re, - SELF\data_equivalence_inspection_result.criterion_inspected)))) = - 0; - WR4: SIZEOF(QUERY(re - <* bag_to_set(USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_EQUIVALENCE_INSPECTION_REPORT.INSPECTION_RESULT')) - | NOT (a3ma_validate_measured_type(re, - SELF\data_equivalence_inspection_result.criterion_inspected)))) = - 0; -END_ENTITY; - -ENTITY a3ma_length_measure_and_context_dependent_measure_pair - SUBTYPE OF (compound_representation_item); -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LIST_REPRESENTATION_ITEM' IN - TYPEOF(SELF\compound_representation_item.item_element); - WR2: SIZEOF(SELF\compound_representation_item.item_element) = 2; - WR3: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VALUE_REPRESENTATION_ITEM' IN - TYPEOF(SELF\compound_representation_item.item_element[1]); - WR4: SIZEOF(QUERY(vri - <* [SELF\compound_representation_item.item_element[1]] - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN - TYPEOF(vri.value_component))) = - 1; - WR5: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VALUE_REPRESENTATION_ITEM' IN - TYPEOF(SELF\compound_representation_item.item_element[2]); - WR6: SIZEOF(QUERY(vri - <* [SELF\compound_representation_item.item_element[2]] - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONTEXT_DEPENDENT_MEASURE' IN - TYPEOF(vri.value_component))) = - 1; -END_ENTITY; - -ENTITY a3ms_equivalence_criterion_with_specified_elements - SUBTYPE OF (a3m_equivalence_criterion_for_shape, a3m_equivalence_criterion_with_specified_elements); - SELF\a3m_equivalence_criterion_with_specified_elements.comparing_specified_elements : SET [1 : ?] OF a3ms_inspected_equivalence_element_select; - SELF\a3m_equivalence_criterion_with_specified_elements.compared_specified_elements : SET [1 : ?] OF a3ms_inspected_equivalence_element_select; -WHERE - WR1: (a3ms_get_element_type(SELF.comparing_specified_elements) = etns_external_representation_item) OR - (a3ms_get_element_type(SELF.comparing_specified_elements) IN - SELF\a3m_equivalence_criterion_for_shape.comparing_element_types); - WR2: (a3ms_get_element_type(SELF.compared_specified_elements) = etns_external_representation_item) OR - (a3ms_get_element_type(SELF.compared_specified_elements) IN - SELF\a3m_equivalence_criterion_for_shape.compared_element_types); -END_ENTITY; - -ENTITY a3ms_equivalence_inspection_result - SUBTYPE OF (data_equivalence_inspection_result); - SELF\data_equivalence_inspection_result.criterion_inspected : a3m_equivalence_criterion_for_shape; -WHERE - WR1: a3ms_validate_accuracy_types(SELF, SELF\data_equivalence_inspection_result.criterion_inspected); - WR2: SIZEOF(QUERY(re - <* bag_to_set(USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_EQUIVALENCE_INSPECTION_REPORT.INSPECTION_RESULT')) - | NOT (a3ms_validate_element_types(re, - SELF\data_equivalence_inspection_result.criterion_inspected)))) = - 0; - WR3: SIZEOF(QUERY(re - <* bag_to_set(USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_EQUIVALENCE_INSPECTION_REPORT.INSPECTION_RESULT')) - | NOT (a3ms_validate_detected_difference_types(re, - SELF\data_equivalence_inspection_result.criterion_inspected)))) = - 0; - WR4: SIZEOF(QUERY(re - <* bag_to_set(USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_EQUIVALENCE_INSPECTION_REPORT.INSPECTION_RESULT')) - | NOT (a3ms_validate_measured_type(re, - SELF\data_equivalence_inspection_result.criterion_inspected)))) = - 0; -END_ENTITY; - -ENTITY abrupt_change_of_surface_normal - SUBTYPE OF (geometry_with_local_irregularity); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - small_vector_tolerance : length_measure; - test_point_distance_tolerance : length_measure; -WHERE - WR1: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE'); - WR2: validate_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE']); - WR3: validate_locations_of_extreme_value_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_SURFACE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_SURFACE']); - WR4: validate_accuracy_types(SELF, []); -END_ENTITY; - -ENTITY abs_function - SUBTYPE OF (unary_function_call); -END_ENTITY; - -ENTITY absorbed_dose_measure_with_unit - SUBTYPE OF (measure_with_unit); -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ABSORBED_DOSE_UNIT' IN - TYPEOF(SELF\measure_with_unit.unit_component); -END_ENTITY; - -ENTITY absorbed_dose_unit - SUBTYPE OF (derived_unit); -WHERE - WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit(si_unit_name.gray); -END_ENTITY; - -ENTITY abstract_variable - SUBTYPE OF (property_definition, property_definition_representation, representation, representation_item); -END_ENTITY; - -ENTITY abstracted_expression_function - SUBTYPE OF (maths_function, quantifier_expression); -DERIVE - SELF\quantifier_expression.variables : LIST [1 : ?] OF UNIQUE generic_variable := remove_first(SELF\multiple_arity_generic_expression.operands); - expr : generic_expression := SELF\multiple_arity_generic_expression.operands[1]; -WHERE - WR1: SIZEOF(QUERY(operand <* SELF\multiple_arity_generic_expression.operands | NOT (has_values_space(operand)))) = 0; -END_ENTITY; - -ENTITY acceleration_measure_with_unit - SUBTYPE OF (measure_with_unit); -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ACCELERATION_UNIT' IN - TYPEOF(SELF\measure_with_unit.unit_component); -END_ENTITY; - -ENTITY acceleration_unit - SUBTYPE OF (derived_unit); -WHERE - WR1: derive_dimensional_exponents(SELF) = dimensional_exponents(1.0, 0.0, -2.0, 0.0, 0.0, 0.0, 0.0); -END_ENTITY; - -ENTITY acos_function - SUBTYPE OF (unary_function_call); -END_ENTITY; - -ENTITY action; - name : label; - description : OPTIONAL text; - chosen_method : action_method; -DERIVE - id : identifier := get_id_value(SELF); -WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; -END_ENTITY; - -ENTITY action_actual - SUBTYPE OF (executed_action); -END_ENTITY; - -ENTITY action_assignment - ABSTRACT SUPERTYPE OF ((ONEOF(applied_usage_right, applied_action_assignment))); - assigned_action : action; -DERIVE - role : object_role := get_role(SELF); -WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; -END_ENTITY; - -ENTITY action_directive; - name : label; - description : OPTIONAL text; - analysis : text; - comment : text; - requests : SET [1 : ?] OF versioned_action_request; -END_ENTITY; - -ENTITY action_directive_relationship; - name : label; - description : OPTIONAL STRING; - relating : action_directive; - related : action_directive; - relation_type : STRING; -WHERE - WR1: acyclic_action_directive_relationship(SELF, [related], - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ACTION_DIRECTIVE_RELATIONSHIP'); -END_ENTITY; - -ENTITY action_happening - SUBTYPE OF (action_relationship); -END_ENTITY; - -ENTITY action_method; - name : label; - description : OPTIONAL text; - consequence : text; - purpose : text; -END_ENTITY; - -ENTITY action_method_assignment - ABSTRACT SUPERTYPE; - assigned_action_method : action_method; - role : action_method_role; -END_ENTITY; - -ENTITY action_method_relationship; - name : label; - description : OPTIONAL text; - relating_method : action_method; - related_method : action_method; -END_ENTITY; - -ENTITY action_method_role; - name : label; - description : OPTIONAL text; -END_ENTITY; - -ENTITY action_property; - name : label; - description : text; - definition : characterized_action_definition; -END_ENTITY; - -ENTITY action_property_representation; - name : label; - description : text; - property : action_property; - representation : representation; -END_ENTITY; - -ENTITY action_relationship; - name : label; - description : OPTIONAL text; - relating_action : action; - related_action : action; -END_ENTITY; - -ENTITY action_request_assignment - ABSTRACT SUPERTYPE; - assigned_action_request : versioned_action_request; -DERIVE - role : object_role := get_role(SELF); -WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; -END_ENTITY; - -ENTITY action_request_solution; - method : action_method; - request : versioned_action_request; -DERIVE - description : text := get_description_value(SELF); - name : label := get_name_value(SELF); -WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= - 1; - WR2: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; -END_ENTITY; - -ENTITY action_request_status; - status : label; - assigned_request : versioned_action_request; -END_ENTITY; - -ENTITY action_resource; - name : label; - description : OPTIONAL text; - usage : SET [1 : ?] OF supported_item; - kind : action_resource_type; -END_ENTITY; - -ENTITY action_resource_relationship; - name : label; - description : OPTIONAL text; - relating_resource : action_resource; - related_resource : action_resource; -END_ENTITY; - -ENTITY action_resource_requirement; - name : label; - description : text; - kind : resource_requirement_type; - operations : SET [1 : ?] OF characterized_action_definition; -END_ENTITY; - -ENTITY action_resource_type; - name : label; -END_ENTITY; - -ENTITY action_status; - status : label; - assigned_action : executed_action; -END_ENTITY; - -ENTITY actuated_kinematic_pair - SUBTYPE OF (kinematic_pair); - t_x : OPTIONAL actuated_direction; - t_y : OPTIONAL actuated_direction; - t_z : OPTIONAL actuated_direction; - r_x : OPTIONAL actuated_direction; - r_y : OPTIONAL actuated_direction; - r_z : OPTIONAL actuated_direction; -END_ENTITY; - -ENTITY add_element - SUBTYPE OF (change_element); -END_ENTITY; - -ENTITY additive_manufacturing_build_plate_relationship - SUBTYPE OF (additive_manufacturing_setup_relationship); -END_ENTITY; - -ENTITY additive_manufacturing_setup - SUBTYPE OF (product); -END_ENTITY; - -ENTITY additive_manufacturing_setup_relationship - ABSTRACT SUPERTYPE OF (ONEOF(additive_manufacturing_build_plate_relationship, - additive_manufacturing_support_structure_geometry_relationship, - additive_manufacturing_setup_workpiece_relationship)) - SUBTYPE OF (next_assembly_usage_occurrence); -END_ENTITY; - -ENTITY additive_manufacturing_setup_workpiece_relationship - SUBTYPE OF (additive_manufacturing_setup_relationship); -END_ENTITY; - -ENTITY additive_manufacturing_support_structure_geometry_relationship - SUBTYPE OF (additive_manufacturing_setup_relationship); -END_ENTITY; - -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; - -ENTITY advanced_brep_shape_representation - SUBTYPE OF (shape_representation); -WHERE - WR1: SIZEOF(QUERY(it - <* SELF.items - | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SOLID_BREP', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACETED_BREP', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D'] * - TYPEOF(it)) = - 1))) = - 0; - WR2: SIZEOF(QUERY(it - <* SELF.items - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SOLID_BREP', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM'] * - TYPEOF(it)) = - 1))) > - 0; - WR3: SIZEOF(QUERY(msb - <* QUERY(it - <* SELF.items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SOLID_BREP' IN TYPEOF(it))) - | NOT (SIZEOF(QUERY(csh - <* msb_shells(msb) - | NOT (SIZEOF(QUERY(fcs - <* csh\connected_face_set.cfs_faces - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN - TYPEOF(fcs)))) = - 0))) = - 0))) = - 0; - WR4: SIZEOF(QUERY(msb - <* QUERY(it - <* items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SOLID_BREP' IN TYPEOF(it))) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORIENTED_CLOSED_SHELL' IN - TYPEOF(msb\manifold_solid_brep.outer)))) = - 0; - WR5: SIZEOF(QUERY(brv - <* QUERY(it - <* items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.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 - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF(it))) - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_BREP_SHAPE_REPRESENTATION' IN - TYPEOF(mi\mapped_item.mapping_source.mapped_representation)))) = - 0; -END_ENTITY; - -ENTITY advanced_face - SUBTYPE OF (face_surface); -WHERE - WR1: SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ELEMENTARY_SURFACE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_SURFACE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SWEPT_SURFACE'] * - TYPEOF(face_geometry)) = - 1; - WR2: SIZEOF(QUERY(elp_fbnds - <* QUERY(bnds - <* bounds - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound))) - | NOT (SIZEOF(QUERY(oe - <* elp_fbnds.bound\path.edge_list - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE' IN - TYPEOF(oe\oriented_edge.edge_element)))) = - 0))) = - 0; - WR3: SIZEOF(QUERY(elp_fbnds - <* QUERY(bnds - <* bounds - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound))) - | NOT (SIZEOF(QUERY(oe - <* elp_fbnds.bound\path.edge_list - | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONIC', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYLINE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_CURVE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE'] * - TYPEOF(oe.edge_element\edge_curve.edge_geometry)) = - 1))) = - 0))) = - 0; - WR4: SIZEOF(QUERY(elp_fbnds - <* QUERY(bnds - <* bounds - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound))) - | NOT (SIZEOF(QUERY(oe - <* elp_fbnds.bound\path.edge_list - | NOT ((('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN - TYPEOF(oe\edge.edge_start)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CARTESIAN_POINT' IN - TYPEOF(oe\edge.edge_start\vertex_point.vertex_geometry))) AND - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN - TYPEOF(oe\edge.edge_end)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CARTESIAN_POINT' IN - TYPEOF(oe\edge.edge_end\vertex_point.vertex_geometry)))))) = - 0))) = - 0; - WR5: SIZEOF(QUERY(elp_fbnds - <* QUERY(bnds - <* bounds - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound))) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORIENTED_PATH' IN TYPEOF(elp_fbnds.bound)))) = - 0; - WR6: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SWEPT_SURFACE' IN TYPEOF(face_geometry)) OR - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONIC', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYLINE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE'] * - TYPEOF(face_geometry\swept_surface.swept_curve)) = - 1); - WR7: SIZEOF(QUERY(vlp_fbnds - <* QUERY(bnds - <* bounds - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_LOOP' IN TYPEOF(bnds.bound))) - | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN - TYPEOF(vlp_fbnds\face_bound.bound\vertex_loop.loop_vertex)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.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(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_LOOP'] * - TYPEOF(bnd.bound)) = - 1))) = - 0; - WR9: SIZEOF(QUERY(elp_fbnds - <* QUERY(bnds - <* bounds - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound))) - | NOT (SIZEOF(QUERY(oe - <* elp_fbnds.bound\path.edge_list - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.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 ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PCURVE' IN - TYPEOF(sc_ag)))) = - 0))) = - 0))) = - 0; - WR10: (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SWEPT_SURFACE' IN TYPEOF(face_geometry)) OR - (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.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 - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound))) - | NOT (SIZEOF(QUERY(oe - <* elp_fbnds.bound\path.edge_list - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.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; - -ENTITY agc_with_dimension - SUBTYPE OF (angle_geometric_constraint); - angle_value : plane_angle_measure; -END_ENTITY; - -ENTITY aggregate_id_attribute; - attribute_value : identifier; - identified_item : SET [1 : ?] OF id_attribute_select; -END_ENTITY; - -ENTITY all_around_shape_aspect - SUBTYPE OF (continuous_shape_aspect); -END_ENTITY; - -ENTITY alternate_product_relationship; - name : label; - definition : OPTIONAL text; - alternate : product; - base : product; - basis : text; -UNIQUE - UR1: alternate, base; -WHERE - WR1: alternate :<>: base; -END_ENTITY; - -ENTITY alternative_solution_relationship - SUBTYPE OF (product_definition_formation_relationship); - relation_type : STRING; -WHERE - WR1: acyclic_alternative_solution_relationship(SELF, - [SELF\product_definition_formation_relationship.related_product_definition_formation], - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ALTERNATIVE_SOLUTION_RELATIONSHIP'); -END_ENTITY; - -ENTITY amount_of_substance_measure_with_unit - SUBTYPE OF (measure_with_unit); -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AMOUNT_OF_SUBSTANCE_UNIT' IN - TYPEOF(SELF\measure_with_unit.unit_component); -END_ENTITY; - -ENTITY amount_of_substance_unit - SUBTYPE OF (named_unit); -WHERE - WR1: (SELF\named_unit.dimensions.length_exponent = 0.0) AND (SELF\named_unit.dimensions.mass_exponent = 0.0) AND - (SELF\named_unit.dimensions.time_exponent = 0.0) AND - (SELF\named_unit.dimensions.electric_current_exponent = 0.0) AND - (SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0.0) AND - (SELF\named_unit.dimensions.amount_of_substance_exponent = 1.0) AND - (SELF\named_unit.dimensions.luminous_intensity_exponent = 0.0); -END_ENTITY; - -ENTITY analysis_assignment - SUBTYPE OF (group); -END_ENTITY; - -ENTITY analysis_item - SUBTYPE OF (group_assignment); - items : SET [1 : 1] OF analysed_item; - SELF\group_assignment.assigned_group : analysis_assignment; -END_ENTITY; - -ENTITY analysis_model - SUBTYPE OF (representation); - SELF\representation.context_of_items : analysis_representation_context; -END_ENTITY; - -ENTITY analysis_representation_context - SUBTYPE OF (representation_context); -END_ENTITY; - -ENTITY and_expression - SUBTYPE OF (multiple_arity_boolean_expression); -END_ENTITY; - -ENTITY angle_assembly_constraint_with_dimension - SUBTYPE OF (binary_assembly_constraint, agc_with_dimension); -END_ENTITY; - -ENTITY angle_direction_reference - SUBTYPE OF (representation_item_relationship, geometric_representation_item); - SELF\representation_item_relationship.relating_representation_item : orientation_basis_select; - SELF\representation_item_relationship.related_representation_item : angle_direction_reference_select; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_PATH' IN TYPEOF(related_representation_item)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MIN_AND_MAJOR_PLY_ORIENTATION_BASIS' IN - TYPEOF(relating_representation_item)) OR - NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_PATH' IN TYPEOF(related_representation_item)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D' IN - TYPEOF(relating_representation_item)); -END_ENTITY; - -ENTITY angle_geometric_constraint - SUBTYPE OF (explicit_geometric_constraint); - SELF\explicit_constraint.constrained_elements : SET [1 : ?] OF linear_geometry_constraint_element; - SELF\explicit_constraint.reference_elements : SET [0 : 1] OF linear_geometry_constraint_element; -WHERE - WR1: (SIZEOF(SELF\explicit_constraint.reference_elements) = 1) OR - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AGC_WITH_DIMENSION' IN TYPEOF(SELF)) AND - (SIZEOF(SELF\explicit_constraint.constrained_elements) = 2)); -END_ENTITY; - -ENTITY angular_dimension - SUBTYPE OF (dimension_curve_directed_callout); -END_ENTITY; - -ENTITY angular_location - SUBTYPE OF (dimensional_location); - angle_selection : angle_relator; -END_ENTITY; - -ENTITY angular_size - SUBTYPE OF (dimensional_size); - angle_selection : angle_relator; -END_ENTITY; - -ENTITY angularity_tolerance - SUBTYPE OF (geometric_tolerance_with_datum_reference); -END_ENTITY; - -ENTITY annotation_curve_occurrence - SUPERTYPE OF ((ONEOF(leader_curve, projection_curve))) - SUBTYPE OF (annotation_occurrence); - SELF\styled_item.item : curve_or_curve_set; -END_ENTITY; - -ENTITY annotation_fill_area - SUBTYPE OF (geometric_representation_item); - boundaries : SET [1 : ?] OF curve; -WHERE - WR1: (SELF\geometric_representation_item.dim = 3) OR - (SIZEOF(QUERY(curve - <* boundaries - | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCLE' IN TYPEOF(curve)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ELLIPSE' IN TYPEOF(curve)) OR - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE' IN TYPEOF(curve)) AND - (curve\b_spline_curve.closed_curve = true)) OR - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_CURVE' IN TYPEOF(curve)) AND - (curve\composite_curve.closed_curve = true)) OR - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYLINE' IN TYPEOF(curve)) AND - (curve\polyline.points[LOINDEX(curve\polyline.points)] = - curve\polyline.points[HIINDEX(curve\polyline.points)]))))) = - 0); -END_ENTITY; - -ENTITY annotation_fill_area_occurrence - SUBTYPE OF (annotation_occurrence); - fill_style_target : point; - SELF\styled_item.item : annotation_fill_area; -END_ENTITY; - -ENTITY annotation_occurrence - SUPERTYPE OF ((ONEOF(annotation_point_occurrence, annotation_curve_occurrence, annotation_fill_area_occurrence, - annotation_text_occurrence, annotation_symbol_occurrence)) ANDOR - (ONEOF(annotation_curve_occurrence, annotation_fill_area_occurrence, annotation_plane, - annotation_symbol_occurrence, annotation_text_occurrence))) - SUBTYPE OF (styled_item); -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(SELF); - WR2: SIZEOF(QUERY(reps - <* using_representations(SELF) - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_REPRESENTATION_SELECT' IN - TYPEOF(reps)))) = - 0; -END_ENTITY; - -ENTITY annotation_occurrence_associativity - SUBTYPE OF (annotation_occurrence_relationship); -WHERE - WR1: SIZEOF(TYPEOF(SELF.related_annotation_occurrence) * - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_FILL_AREA_OCCURRENCE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROJECTION_CURVE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LEADER_CURVE']) = - 1; -END_ENTITY; - -ENTITY annotation_occurrence_relationship; - name : label; - description : text; - relating_annotation_occurrence : annotation_occurrence; - related_annotation_occurrence : annotation_occurrence; -END_ENTITY; - -ENTITY annotation_placeholder_occurrence - SUBTYPE OF (annotation_occurrence, geometric_representation_item); - SELF\styled_item.item : geometric_set; - role : annotation_placeholder_occurrence_role; - line_spacing : positive_length_measure; -INVERSE - the_callout : draughting_callout FOR contents; - the_draughting_model_item_association_with_placeholders : SET [0:1] OF draughting_model_item_association_with_placeholder FOR annotation_placeholder; -WHERE - WR1: md_valid_content_in_geometric_set_for_placeholder(item); - WR2: NOT (role = annotation_placeholder_occurrence_role.gps_data) OR - ((SIZEOF(the_draughting_model_item_association_with_placeholders) = 1) AND - md_pmi_name_and_type_correlation(SELF)); -END_ENTITY; - -ENTITY annotation_plane - SUBTYPE OF (annotation_occurrence, geometric_representation_item); - elements : OPTIONAL SET [1 : ?] OF annotation_plane_element; - SELF\styled_item.item : plane_or_planar_box; -WHERE - WR1: SELF\geometric_representation_item.dim = 3; - WR2: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_BOX' IN TYPEOF(SELF\styled_item.item)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D' IN - TYPEOF(SELF\styled_item.item\planar_box.placement)); - WR3: (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_BOX' IN TYPEOF(SELF\styled_item.item)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE' IN - TYPEOF(SELF\styled_item.styles[1]\presentation_style_assignment.styles[1]))) OR - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE' IN TYPEOF(SELF\styled_item.item)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FILL_AREA_STYLE' IN - TYPEOF(SELF\styled_item.styles[1]\presentation_style_assignment.styles[1]))); - WR4: (SIZEOF(SELF\styled_item.styles) = 1) AND - (SIZEOF(SELF\styled_item.styles[1]\presentation_style_assignment.styles) = 1); -END_ENTITY; - -ENTITY annotation_point_occurrence - SUBTYPE OF (annotation_occurrence); - SELF\styled_item.item : point; -END_ENTITY; - -ENTITY annotation_subfigure_occurrence - SUBTYPE OF (annotation_symbol_occurrence); -WHERE - WR1: SIZEOF(QUERY(sty <* SELF.styles | NOT (SIZEOF(sty.styles) = 1))) = 0; - WR2: SIZEOF(QUERY(sty - <* SELF.styles - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NULL_STYLE' IN TYPEOF(sty.styles[1])))) = - 0; - WR3: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_SYMBOL' IN TYPEOF(SELF.item)); - WR4: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_SUBFIGURE_REPRESENTATION' IN - TYPEOF(SELF.item\mapped_item.mapping_source.mapped_representation)); -END_ENTITY; - -ENTITY annotation_symbol - SUBTYPE OF (mapped_item); - SELF\mapped_item.mapping_source : symbol_representation_map; - SELF\mapped_item.mapping_target : symbol_target; -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(SELF); -END_ENTITY; - -ENTITY annotation_symbol_occurrence - SUBTYPE OF (annotation_occurrence); - SELF\styled_item.item : annotation_symbol_occurrence_item; -END_ENTITY; - -ENTITY annotation_text - SUBTYPE OF (mapped_item); - SELF\mapped_item.mapping_target : axis2_placement; -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TEXT_STRING_REPRESENTATION' IN - TYPEOF(SELF\mapped_item.mapping_source.mapped_representation); - WR2: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(SELF); -END_ENTITY; - -ENTITY annotation_text_character - SUBTYPE OF (mapped_item); - alignment : text_alignment; - SELF\mapped_item.mapping_target : axis2_placement; -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CHARACTER_GLYPH_SYMBOL' IN - TYPEOF(SELF\mapped_item.mapping_source.mapped_representation); - WR2: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(SELF); -END_ENTITY; - -ENTITY annotation_text_occurrence - SUBTYPE OF (annotation_occurrence); - SELF\styled_item.item : annotation_text_occurrence_item; -END_ENTITY; - -ENTITY ap242_assignment_object_relationship - SUBTYPE OF (assignment_object_relationship); - SELF\assignment_object_relationship.related : ap242_assignment_object_select; - SELF\assignment_object_relationship.relating : ap242_assignment_object_select; -END_ENTITY; - -ENTITY apex - SUBTYPE OF (derived_shape_aspect); -END_ENTITY; - -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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= - 1; - WR2: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; -END_ENTITY; - -ENTITY application_context_element - SUPERTYPE OF (ONEOF(product_concept_context, product_context, product_definition_context)); - name : label; - frame_of_reference : application_context; -END_ENTITY; - -ENTITY application_protocol_definition; - status : label; - application_interpreted_model_schema_name : label; - application_protocol_year : year_number; - application : application_context; -END_ENTITY; - -ENTITY applied_action_assignment - SUBTYPE OF (action_assignment); - items : SET [1 : ?] OF action_items; -END_ENTITY; - -ENTITY applied_action_method_assignment - SUBTYPE OF (action_method_assignment); - items : SET [1 : ?] OF action_method_items; -END_ENTITY; - -ENTITY applied_action_request_assignment - SUBTYPE OF (action_request_assignment); - items : SET [1 : ?] OF action_request_item; -END_ENTITY; - -ENTITY applied_approval_assignment - SUBTYPE OF (approval_assignment); - items : SET [1 : ?] OF approval_item; -END_ENTITY; - -ENTITY applied_area - SUBTYPE OF (shape_aspect); -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(SELF.of_shape)); - WR2: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation)))) = - 1)))) = - 0); - WR3: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT ({2 <= SIZEOF(impl_rep.used_representation.items) <= 3})))) = - 0)))) = - 0); - WR4: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'effective length')))) = - 1)))) = - 0)))) <= - 1); - WR6: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'maximum length')))) <= - 1)))) = - 0)))) = - 0); - WR7: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' IN - TYPEOF(it)) AND - (it.name = 'orientation')))) = - 1)))) = - 0)))) = - 0); -END_ENTITY; - -ENTITY applied_attribute_classification_assignment - SUBTYPE OF (attribute_classification_assignment); - SELF\attribute_classification_assignment.assigned_class : class; - items : SET [1 : ?] OF attribute_classification_item; -END_ENTITY; - -ENTITY applied_certification_assignment - SUBTYPE OF (certification_assignment); - items : SET [1 : ?] OF certification_item; -END_ENTITY; - -ENTITY applied_classification_assignment - SUBTYPE OF (classification_assignment); - items : SET [1 : ?] OF classification_item; -END_ENTITY; - -ENTITY applied_classification_assignment_relationship - SUBTYPE OF (classification_assignment_relationship); - SELF\classification_assignment_relationship.related : applied_classification_assignment; - SELF\classification_assignment_relationship.relating : applied_classification_assignment; -END_ENTITY; - -ENTITY applied_contract_assignment - SUBTYPE OF (contract_assignment); - items : SET [1 : ?] OF contract_item; -END_ENTITY; - -ENTITY applied_date_and_time_assignment - SUBTYPE OF (date_and_time_assignment); - items : SET [1 : ?] OF date_and_time_item; -END_ENTITY; - -ENTITY applied_date_assignment - SUBTYPE OF (date_assignment); - items : SET [1 : ?] OF date_item; -END_ENTITY; - -ENTITY applied_description_text_assignment - SUBTYPE OF (description_text_assignment); - items : SET [1 : ?] OF description_item; -END_ENTITY; - -ENTITY applied_description_text_assignment_relationship - SUBTYPE OF (description_text_assignment_relationship); - SELF\description_text_assignment_relationship.related : applied_description_text_assignment; - SELF\description_text_assignment_relationship.relating : applied_description_text_assignment; -END_ENTITY; - -ENTITY applied_directed_action_assignment - SUBTYPE OF (directed_action_assignment); - items : SET [1 : ?] OF action_request_item; -END_ENTITY; - -ENTITY applied_document_reference - SUBTYPE OF (document_reference); - items : SET [1 : ?] OF document_reference_item; -END_ENTITY; - -ENTITY applied_document_usage_constraint_assignment - SUBTYPE OF (document_usage_constraint_assignment); - items : SET [1 : ?] OF document_reference_item; -END_ENTITY; - -ENTITY applied_effectivity_assignment - SUBTYPE OF (effectivity_assignment); - items : SET [1 : ?] OF effectivity_item; -END_ENTITY; - -ENTITY applied_event_occurrence_assignment - SUBTYPE OF (event_occurrence_assignment); - items : SET [1 : ?] OF event_occurrence_item; -END_ENTITY; - -ENTITY applied_external_identification_assignment - SUBTYPE OF (external_identification_assignment); - items : SET [1 : ?] OF external_identification_item; -END_ENTITY; - -ENTITY applied_external_identification_assignment_relationship - SUBTYPE OF (external_identification_assignment_relationship); - SELF\external_identification_assignment_relationship.related : applied_external_identification_assignment; - SELF\external_identification_assignment_relationship.relating : applied_external_identification_assignment; -END_ENTITY; - -ENTITY applied_group_assignment - SUBTYPE OF (group_assignment); - items : SET [1 : ?] OF groupable_item; -END_ENTITY; - -ENTITY applied_identification_assignment - SUBTYPE OF (identification_assignment); - items : SET [1 : ?] OF identification_item; -END_ENTITY; - -ENTITY applied_ineffectivity_assignment - SUBTYPE OF (effectivity_assignment); - items : SET [1 : ?] OF effectivity_item; -WHERE - WR1: SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LOT_EFFECTIVITY', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SERIAL_NUMBERED_EFFECTIVITY', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_EFFECTIVITY'] * - TYPEOF(SELF.assigned_effectivity)) = - 0; -END_ENTITY; - -ENTITY applied_location_assignment - SUBTYPE OF (location_assignment); - items : SET [1 : ?] OF location_item; -END_ENTITY; - -ENTITY applied_location_representation_assignment - SUBTYPE OF (location_representation_assignment); - items : SET [1 : ?] OF location_representation_item; -END_ENTITY; - -ENTITY applied_name_assignment - SUBTYPE OF (name_assignment); - item : name_item; -END_ENTITY; - -ENTITY applied_organization_assignment - SUBTYPE OF (organization_assignment); - items : SET [1 : ?] OF organization_item; -END_ENTITY; - -ENTITY applied_organization_type_assignment - SUBTYPE OF (organization_type_assignment); - items : SET [1 : ?] OF organization_type_item; -END_ENTITY; - -ENTITY applied_organizational_project_assignment - SUBTYPE OF (organizational_project_assignment); - items : SET [1 : ?] OF project_item; -END_ENTITY; - -ENTITY applied_person_and_organization_assignment - SUBTYPE OF (person_and_organization_assignment); - items : SET [1 : ?] OF person_and_organization_item; -END_ENTITY; - -ENTITY applied_presented_item - SUBTYPE OF (presented_item); - items : SET [1 : ?] OF presented_item_select; -END_ENTITY; - -ENTITY applied_security_classification_assignment - SUBTYPE OF (security_classification_assignment); - items : SET [1 : ?] OF security_classification_item; -END_ENTITY; - -ENTITY applied_state_observed_assignment - SUBTYPE OF (state_observed_assignment); - items : SET [1 : ?] OF state_observed_of_item; -END_ENTITY; - -ENTITY applied_state_type_assignment - SUBTYPE OF (state_type_assignment); - items : SET [1 : ?] OF state_type_of_item; -END_ENTITY; - -ENTITY applied_time_interval_assignment - SUBTYPE OF (time_interval_assignment); - items : SET [0 : ?] OF time_interval_item; -END_ENTITY; - -ENTITY applied_usage_right - SUBTYPE OF (action_assignment); - items : SET [1 : ?] OF ir_usage_item; -END_ENTITY; - -ENTITY approval; - status : approval_status; - level : label; -END_ENTITY; - -ENTITY approval_assignment - ABSTRACT SUPERTYPE; - assigned_approval : approval; -DERIVE - role : object_role := get_role(SELF); -WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; -END_ENTITY; - -ENTITY approval_date_time; - date_time : date_time_select; - dated_approval : approval; -DERIVE - role : object_role := get_role(SELF); -WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; -END_ENTITY; - -ENTITY approval_person_organization; - person_organization : person_organization_select; - authorized_approval : approval; - role : approval_role; -END_ENTITY; - -ENTITY approval_relationship; - name : label; - description : OPTIONAL text; - relating_approval : approval; - related_approval : approval; -END_ENTITY; - -ENTITY approval_role; - role : label; -DERIVE - description : text := get_description_value(SELF); -WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= - 1; -END_ENTITY; - -ENTITY approval_status; - name : label; -END_ENTITY; - -ENTITY area_in_set; - area : presentation_area; - in_set : presentation_set; -END_ENTITY; - -ENTITY area_measure_with_unit - SUBTYPE OF (measure_with_unit); -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); -END_ENTITY; - -ENTITY area_unit - SUBTYPE OF (derived_unit); -WHERE - WR1: derive_dimensional_exponents(SELF) = dimensional_exponents(2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); -END_ENTITY; - -ENTITY area_with_outer_boundary - SUBTYPE OF (half_space_2d); - SELF\half_space_2d.base_curve : composite_curve; -WHERE - WR1: base_curve\composite_curve.closed_curve = true; -END_ENTITY; - -ENTITY array_placement_group - SUPERTYPE OF (ONEOF(linear_array_placement_group_component, rectangular_array_placement_group_component)) - SUBTYPE OF (assembly_group_component); -END_ENTITY; - -ENTITY ascribable_state; - name : label; - description : OPTIONAL text; - pertaining_state_type : state_type; - ascribed_state_observed : state_observed; -END_ENTITY; - -ENTITY ascribable_state_relationship; - name : label; - description : OPTIONAL text; - relating_ascribable_state : ascribable_state; - related_ascribable_state : ascribable_state; -DERIVE - id : identifier := get_id_value(SELF); -WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; -END_ENTITY; - -ENTITY asin_function - SUBTYPE OF (unary_function_call); -END_ENTITY; - -ENTITY assembly_bond_definition - SUBTYPE OF ( shape_aspect ); - UNIQUE - ur1 : SELF\shape_aspect.name; -END_ENTITY; - -ENTITY assembly_joint - SUBTYPE OF (component_feature_joint); -WHERE - WR1: acyclic_shape_aspect_relationship(SELF, [SELF\shape_aspect_relationship.related_shape_aspect], - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ASSEMBLY_JOINT'); -END_ENTITY; - -ENTITY component_mating_constraint_condition - SUBTYPE OF ( shape_aspect ); - UNIQUE - ur1 : SELF\shape_aspect.name, SELF\shape_aspect.of_shape; -END_ENTITY; - -ENTITY connection_zone_based_assembly_joint - SUBTYPE OF ( assembly_joint ); -END_ENTITY; - -ENTITY assembly_component - SUBTYPE OF (component_definition, product_definition_shape); -DERIVE - SELF\property_definition.definition : assembly_component := SELF; -WHERE - WR1: NOT EXISTS(SELF\property_definition.description); -END_ENTITY; - -ENTITY assembly_component_usage - SUPERTYPE OF (quantified_assembly_component_usage ANDOR - ONEOF(multi_level_reference_designator, next_assembly_usage_occurrence, promissory_usage_occurrence, - specified_higher_usage_occurrence)) - SUBTYPE OF (product_definition_usage); - reference_designator : OPTIONAL identifier; -END_ENTITY; - -ENTITY assembly_component_usage_substitute; - name : label; - definition : OPTIONAL text; - base : assembly_component_usage; - substitute : assembly_component_usage; -UNIQUE - UR1: base, substitute; -WHERE - WR1: base.relating_product_definition :=: substitute.relating_product_definition; - WR2: base :<>: substitute; -END_ENTITY; - -ENTITY assembly_geometric_constraint - ABSTRACT SUPERTYPE OF (ONEOF(binary_assembly_constraint, fixed_constituent_assembly_constraint)) - SUBTYPE OF (explicit_constraint); -END_ENTITY; - -ENTITY assembly_group_component - SUBTYPE OF (assembly_component); -END_ENTITY; - -ENTITY assembly_group_component_definition_placement_link - SUBTYPE OF (product_definition, product_definition_relationship); - SELF\product_definition_relationship.relating_product_definition : assembly_component; - SELF\product_definition_relationship.related_product_definition : assembly_component; -WHERE - WR1: SELF\product_definition_relationship.related_product_definition :<>: - SELF\product_definition_relationship.relating_product_definition; - WR2: acyclic_product_definition_relationship(SELF, [SELF\product_definition_relationship.related_product_definition], - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ASSEMBLY_GROUP_COMPONENT_DEFINITION_PLACEMENT_LINK'); -END_ENTITY; - -ENTITY assembly_shape_constraint - SUBTYPE OF (shape_aspect); -END_ENTITY; - -ENTITY assembly_shape_constraint_item_relationship - SUBTYPE OF (shape_aspect_relationship); - SELF\shape_aspect_relationship.relating_shape_aspect : assembly_shape_constraint; -END_ENTITY; - -ENTITY assembly_shape_joint - SUBTYPE OF (shape_aspect); -END_ENTITY; - -ENTITY assembly_shape_joint_item_relationship - SUBTYPE OF (shape_aspect_relationship); - SELF\shape_aspect_relationship.relating_shape_aspect : assembly_shape_joint; -END_ENTITY; - -ENTITY assigned_analysis - SUBTYPE OF (group_assignment); - items : SET [1 : 1] OF product_definition_formation; - SELF\group_assignment.assigned_group : analysis_assignment; -END_ENTITY; - -ENTITY assigned_requirement - SUBTYPE OF (group_assignment); - SELF\group_assignment.assigned_group : requirement_assignment; - items : SET [1 : 1] OF product_definition; -END_ENTITY; - -ENTITY assignment_object_relationship; - id : OPTIONAL identifier; - description : OPTIONAL text; - relating : assignment_object_select; - related : assignment_object_select; - relation_type : STRING; -WHERE - WR1: acyclic_assignment_object_relationship(SELF, [related], - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ASSIGNMENT_OBJECT_RELATIONSHIP'); -END_ENTITY; - -ENTITY atan_function - SUBTYPE OF (binary_function_call); -END_ENTITY; - -ENTITY atom_based_literal - SUBTYPE OF (generic_literal); - lit_value : atom_based_value; -END_ENTITY; - -ENTITY atomic_formula - SUBTYPE OF (compound_representation_item); -END_ENTITY; - -ENTITY attachment_slot_as_planned - SUBTYPE OF (product_definition_formation); -END_ENTITY; - -ENTITY attachment_slot_as_realized - SUBTYPE OF (product_definition_formation); -END_ENTITY; - -ENTITY attachment_slot_design - SUBTYPE OF (product_definition_formation); -END_ENTITY; - -ENTITY attachment_slot_design_to_planned - SUBTYPE OF (product_definition_formation_relationship); - SELF\product_definition_formation_relationship.relating_product_definition_formation : attachment_slot_design; - SELF\product_definition_formation_relationship.related_product_definition_formation : attachment_slot_as_planned; -WHERE - WR1: SELF.relating_product_definition_formation.of_product :=: SELF.related_product_definition_formation.of_product; -END_ENTITY; - -ENTITY attachment_slot_design_to_realized - SUBTYPE OF (product_definition_formation_relationship); - SELF\product_definition_formation_relationship.relating_product_definition_formation : attachment_slot_design; - SELF\product_definition_formation_relationship.related_product_definition_formation : attachment_slot_as_realized; -WHERE - WR1: SELF.relating_product_definition_formation.of_product :=: SELF.related_product_definition_formation.of_product; -END_ENTITY; - -ENTITY attachment_slot_on_product - SUBTYPE OF (product_definition_relationship); -END_ENTITY; - -ENTITY attachment_slot_planned_to_realized - SUBTYPE OF (product_definition_formation_relationship); - SELF\product_definition_formation_relationship.relating_product_definition_formation : attachment_slot_as_planned; - SELF\product_definition_formation_relationship.related_product_definition_formation : attachment_slot_as_realized; -WHERE - WR1: SELF.relating_product_definition_formation.of_product :=: SELF.related_product_definition_formation.of_product; -END_ENTITY; - -ENTITY attribute_assertion - SUBTYPE OF (fact_type, property_definition_representation, representation); -END_ENTITY; - -ENTITY attribute_classification_assignment - ABSTRACT SUPERTYPE; - assigned_class : group; - attribute_name : label; - role : classification_role; -END_ENTITY; - -ENTITY attribute_language_assignment - SUBTYPE OF (attribute_classification_assignment); - SELF\attribute_classification_assignment.assigned_class : language; - items : SET [1 : ?] OF attribute_language_item; -WHERE - WR1: SELF\attribute_classification_assignment.role.name IN ['primary','translated']; - WR2: SELF\attribute_classification_assignment.attribute_name <> ''; -END_ENTITY; - -ENTITY attribute_value_assignment - ABSTRACT SUPERTYPE; - attribute_name : label; - attribute_value : attribute_type; - role : attribute_value_role; -END_ENTITY; - -ENTITY attribute_value_role; - name : label; - description : OPTIONAL text; -END_ENTITY; - -ENTITY auxiliary_geometric_representation_item - SUBTYPE OF (geometric_representation_item, variational_representation_item); -END_ENTITY; - -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; - -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; - -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; - -ENTITY b_spline_basis - SUBTYPE OF (maths_function, generic_literal); - degree : nonnegative_integer; - repeated_knots : LIST [2 : ?] OF REAL; -DERIVE - order : positive_integer := degree + 1; - num_basis : positive_integer := SIZEOF(repeated_knots) - order; -WHERE - WR1: num_basis >= order; - WR2: nondecreasing(repeated_knots); - WR3: repeated_knots[order] < repeated_knots[num_basis + 1]; -END_ENTITY; - -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: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.UNIFORM_CURVE' IN TYPEOF(SELF)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.QUASI_UNIFORM_CURVE' IN TYPEOF(SELF)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BEZIER_CURVE' IN TYPEOF(SELF)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE_WITH_KNOTS' IN TYPEOF(SELF)); -END_ENTITY; - -ENTITY b_spline_curve_knot_locator - SUBTYPE OF (founded_item); - basis_curve : b_spline_curve; - knot_index : INTEGER; -WHERE - WR1: SIZEOF(using_representations(SELF.basis_curve) * relating_shape_representations_of_extreme_values(SELF)) > 0; -END_ENTITY; - -ENTITY b_spline_curve_segment - SUBTYPE OF (founded_item); - basis_curve : b_spline_curve; - start_knot_index : INTEGER; -WHERE - WR1: SIZEOF(using_representations(SELF.basis_curve) * relating_shape_representations_of_extreme_values(SELF)) > 0; -END_ENTITY; - -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; - -ENTITY b_spline_function - SUBTYPE OF (maths_function, unary_generic_expression); - SELF\unary_generic_expression.operand : maths_function; - basis : LIST [1 : ?] OF b_spline_basis; -DERIVE - coef : maths_function := SELF\unary_generic_expression.operand; -WHERE - WR1: function_is_table(coef); - WR2: (space_dimension(coef.range) = 1) AND (number_superspace_of(factor1(coef.range)) = the_reals); - WR3: SIZEOF(basis) <= SIZEOF(shape_of_array(coef)); - WR4: compare_basis_and_coef(basis, coef); -END_ENTITY; - -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: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.UNIFORM_SURFACE' IN TYPEOF(SELF)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.QUASI_UNIFORM_SURFACE' IN TYPEOF(SELF)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BEZIER_SURFACE' IN TYPEOF(SELF)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_SURFACE_WITH_KNOTS' IN TYPEOF(SELF)); -END_ENTITY; - -ENTITY b_spline_surface_knot_locator - SUBTYPE OF (founded_item); - basis_surface : b_spline_surface; - knot_index : INTEGER; - surface_parameter : u_or_v_parameter; -WHERE - WR1: SIZEOF(using_representations(SELF.basis_surface) * relating_shape_representations_of_extreme_values(SELF)) > 0; -END_ENTITY; - -ENTITY b_spline_surface_patch - SUBTYPE OF (founded_item); - basis_surface : b_spline_surface; - u_start_knot_index : INTEGER; - v_start_knot_index : INTEGER; -WHERE - WR1: SIZEOF(using_representations(SELF.basis_surface) * relating_shape_representations_of_extreme_values(SELF)) > 0; -END_ENTITY; - -ENTITY b_spline_surface_strip - SUBTYPE OF (founded_item); - basis_surface : b_spline_surface; - start_knot_index : INTEGER; - surface_parameter : u_or_v_parameter; -WHERE - WR1: SIZEOF(using_representations(SELF.basis_surface) * relating_shape_representations_of_extreme_values(SELF)) > 0; -END_ENTITY; - -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; - -ENTITY b_spline_volume - SUPERTYPE OF (ONEOF(b_spline_volume_with_knots, uniform_volume, quasi_uniform_volume, bezier_volume) ANDOR - rational_b_spline_volume) - SUBTYPE OF (volume); - u_degree : INTEGER; - v_degree : INTEGER; - w_degree : INTEGER; - control_points_list : LIST [2 : ?] OF LIST [2 : ?] OF LIST [2 : ?] OF cartesian_point; -DERIVE - u_upper : INTEGER := SIZEOF(control_points_list) - - 1; - v_upper : INTEGER := SIZEOF(control_points_list[1]) - - 1; - w_upper : INTEGER := SIZEOF(control_points_list[1][1]) - - 1; - control_points : ARRAY [0 : u_upper] OF ARRAY [0 : v_upper] OF ARRAY [0 : w_upper] OF cartesian_point := make_array_of_array_of_array(control_points_list, - 0, - u_upper, - 0, - v_upper, - 0, - w_upper); -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BEZIER_VOLUME' IN TYPEOF(SELF)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.UNIFORM_VOLUME' IN TYPEOF(SELF)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.QUASI_UNIFORM_VOLUME' IN TYPEOF(SELF)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_VOLUME_WITH_KNOTS' IN TYPEOF(SELF)); -END_ENTITY; - -ENTITY b_spline_volume_with_knots - SUBTYPE OF (b_spline_volume); - u_multiplicities : LIST [2 : ?] OF INTEGER; - v_multiplicities : LIST [2 : ?] OF INTEGER; - w_multiplicities : LIST [2 : ?] OF INTEGER; - u_knots : LIST [2 : ?] OF parameter_value; - v_knots : LIST [2 : ?] OF parameter_value; - w_knots : LIST [2 : ?] OF parameter_value; -DERIVE - knot_u_upper : INTEGER := SIZEOF(u_knots); - knot_v_upper : INTEGER := SIZEOF(v_knots); - knot_w_upper : INTEGER := SIZEOF(w_knots); -WHERE - WR1: constraints_param_b_spline(SELF\b_spline_volume.u_degree, knot_u_upper, SELF\b_spline_volume.u_upper, - u_multiplicities, u_knots); - WR2: constraints_param_b_spline(SELF\b_spline_volume.v_degree, knot_v_upper, SELF\b_spline_volume.v_upper, - v_multiplicities, v_knots); - WR3: constraints_param_b_spline(SELF\b_spline_volume.w_degree, knot_w_upper, SELF\b_spline_volume.w_upper, - w_multiplicities, w_knots); - WR4: SIZEOF(u_multiplicities) = knot_u_upper; - WR5: SIZEOF(v_multiplicities) = knot_v_upper; - WR6: SIZEOF(w_multiplicities) = knot_w_upper; -END_ENTITY; - -ENTITY back_chaining_rule - SUBTYPE OF (rule_definition); -END_ENTITY; - -ENTITY back_chaining_rule_body - SUBTYPE OF (property_definition, property_definition_representation, representation); -END_ENTITY; - -ENTITY background_colour - SUBTYPE OF (colour); - presentation : area_or_view; -UNIQUE - UR1: presentation; -END_ENTITY; - -ENTITY banded_matrix - SUBTYPE OF (linearized_table_function); - default_entry : maths_value; - below : INTEGER; - above : INTEGER; - order : ordering_type; -WHERE - WR1: SIZEOF(SELF\explicit_table_function.shape) = 2; - WR2: -below <= above; - WR3: member_of(default_entry, factor1(SELF\linearized_table_function.source.range)); -END_ENTITY; - -ENTITY barring_hole - SUBTYPE OF (feature_definition); -WHERE - WR1: SIZEOF(QUERY(sa - <* get_shape_aspects(SELF) - | (sa.name = 'hole profile') AND (sa.description = 'closed profile occurrence') AND - (SIZEOF(QUERY(sar - <* USEDIN(sa, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN - TYPEOF(sar)) AND - (sar.description = 'profile usage') AND - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_CLOSED_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NGON_CLOSED_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_CLOSED_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLOSED_PATH_PROFILE'] * - TYPEOF(sar.relating_shape_aspect)) = - 1))) = - 1))) = - 1; - WR2: SIZEOF(QUERY(sa - <* get_shape_aspects(SELF) - | (sa.name = 'barring profile') AND (sa.description = 'closed profile occurrence') AND - (SIZEOF(QUERY(sar - <* USEDIN(sa, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN - TYPEOF(sar)) AND - (sar.description = 'profile usage'))) = - 1))) = - 1; - WR3: (SIZEOF(QUERY(pdr - <* get_property_definition_representations(SELF) - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation))) = - 1) AND - (SIZEOF(QUERY(pdr - <* get_property_definition_representations(SELF) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - {1 <= SIZEOF(pdr.used_representation.items) <= 2})) = - 1); - WR4: SIZEOF(QUERY(pdr - <* get_property_definition_representations(SELF) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF(QUERY(i - <* pdr.used_representation.items - | NOT (i.name IN ['orientation','base radius']))) > - 0))) = - 0; - WR5: SIZEOF(QUERY(pdr - <* get_property_definition_representations(SELF) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF(QUERY(i - <* pdr.used_representation.items - | (i.name = 'base radius') AND - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(i)) = - 2))) <> - 1))) = - 0; -END_ENTITY; - -ENTITY basic_sparse_matrix - SUBTYPE OF (explicit_table_function, multiple_arity_generic_expression); - SELF\multiple_arity_generic_expression.operands : LIST [3 : 3] OF maths_function; - default_entry : maths_value; - order : ordering_type; -DERIVE - index : maths_function := SELF\multiple_arity_generic_expression.operands[1]; - loc : maths_function := SELF\multiple_arity_generic_expression.operands[2]; - val : maths_function := SELF\multiple_arity_generic_expression.operands[3]; -WHERE - WR1: function_is_1d_table(index); - WR2: function_is_1d_table(loc); - WR3: function_is_1d_table(val); - WR4: check_sparse_index_domain(index.domain, index_base, shape, order); - WR5: check_sparse_index_to_loc(index.range, loc.domain); - WR6: loc.domain = val.domain; - WR7: check_sparse_loc_range(loc.range, index_base, shape, order); - WR8: member_of(default_entry, val.range); -END_ENTITY; - -ENTITY bead - SUBTYPE OF (feature_definition); -WHERE - WR1: (SIZEOF(QUERY(pdr - <* get_property_definition_representations(SELF) - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation))) <= - 1) AND - (SIZEOF(QUERY(pdr - <* get_property_definition_representations(SELF) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF(pdr.used_representation.items) > 2))) = - 0); - WR2: SIZEOF(QUERY(pdr - <* get_property_definition_representations(SELF) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF(QUERY(i - <* pdr.used_representation.items - | NOT (i.name IN ['orientation','base radius']))) > - 0))) = - 0; - WR3: SIZEOF(QUERY(pdr - <* get_property_definition_representations(SELF) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF(QUERY(i - <* pdr.used_representation.items - | (i.name = 'base radius') AND - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(i)) = - 2))) > - 1))) = - 0; - WR4: SIZEOF(QUERY(sa - <* get_shape_aspects(SELF) - | (sa.name = 'sweep path') AND (sa.description = 'path feature component occurrence') AND - (SIZEOF(QUERY(sar - <* USEDIN(sa, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN - TYPEOF(sar)) AND - (sar.description = 'path feature component usage') AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PATH_FEATURE_COMPONENT' IN - TYPEOF(sar.relating_shape_aspect)))) = - 1))) = - 1; - WR5: SIZEOF(QUERY(sa - <* get_shape_aspects(SELF) - | (sa.name = 'bead profile') AND (sa.description = 'open profile occurrence') AND - (SIZEOF(QUERY(sar - <* USEDIN(sa, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN - TYPEOF(sar)) AND - (sar.description = 'profile usage') AND - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OPEN_PATH_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PARTIAL_CIRCULAR_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROUNDED_U_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SQUARE_U_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TEE_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VEE_PROFILE'] * - TYPEOF(sar.relating_shape_aspect)) = - 1))) = - 1))) = - 1; - WR6: SIZEOF(QUERY(sa - <* get_shape_aspects(SELF) - | (sa.name = 'end condition') AND (sa.description = 'bead end occurrence') AND - (SIZEOF(QUERY(sar - <* USEDIN(sa, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN - TYPEOF(sar)) AND - (sar.name = 'bead end usage') AND (sar.description = 'starting') AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BEAD_END' IN - TYPEOF(sar.relating_shape_aspect)))) = - 1))) = - 1; - WR7: SIZEOF(QUERY(sa - <* get_shape_aspects(SELF) - | (sa.name = 'end condition') AND (sa.description = 'bead end occurrence') AND - (SIZEOF(QUERY(sar - <* USEDIN(sa, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN - TYPEOF(sar)) AND - (sar.name = 'bead end usage') AND (sar.description = 'ending') AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BEAD_END' IN - TYPEOF(sar.relating_shape_aspect)))) = - 1))) = - 1; -END_ENTITY; - -ENTITY bead_end - SUBTYPE OF (shape_aspect); -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN - TYPEOF(SELF.of_shape.definition); - WR2: SELF.description IN ['linear','open','radiused']; - WR3: (SELF.description <> 'linear') XOR - (SIZEOF(QUERY(pdr - <* get_shape_aspect_property_definition_representations(SELF) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)))) > - 0); - WR4: (SELF.description <> 'linear') OR - (SIZEOF(QUERY(pdr - <* get_shape_aspect_property_definition_representations(SELF) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF(pdr.used_representation.items) = 2))) = - 1); - WR5: (SELF.description <> 'linear') OR - (SIZEOF(QUERY(pdr - <* get_shape_aspect_property_definition_representations(SELF) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF(QUERY(i - <* pdr.used_representation.items - | (i.name = 'end length') AND - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(i)) = - 2))) = - 1))) = - 1); - WR6: (SELF.description <> 'linear') OR - (SIZEOF(QUERY(pdr - <* get_shape_aspect_property_definition_representations(SELF) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF(QUERY(i - <* pdr.used_representation.items - | (i.name = 'end shape') AND - (i\descriptive_representation_item.description IN ['straight','tapered']) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN - TYPEOF(i)))) = - 1))) = - 1); - WR7: SIZEOF(QUERY(sar - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN - TYPEOF(sar)) AND - (sar.name = 'bead end usage') AND (sar.description IN ['starting','ending']) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BEAD' IN - TYPEOF(sar.related_shape_aspect.of_shape.definition)) AND - (sar.related_shape_aspect.of_shape.definition\characterized_object.name = 'end condition') AND - (sar.related_shape_aspect.of_shape.definition\characterized_object.description = - 'bead end occurrence'))) = - 1; -END_ENTITY; - -ENTITY between_shape_aspect - SUBTYPE OF (continuous_shape_aspect); -WHERE - WR1: SIZEOF(QUERY(sar - <* SELF\composite_shape_aspect.component_relationships - | sar\shape_aspect_relationship.name = 'start feature')) = - 1; - WR2: SIZEOF(QUERY(sar - <* SELF\composite_shape_aspect.component_relationships - | sar\shape_aspect_relationship.name = 'end feature')) = - 1; -END_ENTITY; - -ENTITY beveled_sheet_representation - SUBTYPE OF (shape_representation); -END_ENTITY; - -ENTITY bezier_curve - SUBTYPE OF (b_spline_curve); -END_ENTITY; - -ENTITY bezier_surface - SUBTYPE OF (b_spline_surface); -END_ENTITY; - -ENTITY bezier_volume - SUBTYPE OF (b_spline_volume); -END_ENTITY; - -ENTITY binary_assembly_constraint - ABSTRACT SUPERTYPE OF (ONEOF(parallel_assembly_constraint, surface_distance_assembly_constraint_with_dimension, - angle_assembly_constraint_with_dimension, perpendicular_assembly_constraint, - incidence_assembly_constraint, coaxial_assembly_constraint, tangent_assembly_constraint)) - SUBTYPE OF (assembly_geometric_constraint, representation_relationship_with_transformation); - SELF\representation_relationship.rep_1 : representative_shape_representation; - SELF\representation_relationship.rep_2 : representative_shape_representation; -WHERE - WR1: (SELF\explicit_constraint.constrained_elements[1]\geometric_representation_item.dim = 3) AND - (SELF\explicit_constraint.reference_elements[1]\geometric_representation_item.dim = 3); - WR2: (SELF\representation_relationship.rep_1 IN - (using_representations(SELF\representation_relationship_with_transformation.transformation_operator\item_defined_transformation.transform_item_1) + - using_representation_with_mapping(SELF\representation_relationship_with_transformation.transformation_operator\item_defined_transformation.transform_item_1))) AND - (SELF\representation_relationship.rep_2 IN - (using_representations(SELF\representation_relationship_with_transformation.transformation_operator\item_defined_transformation.transform_item_2) + - using_representation_with_mapping(SELF\representation_relationship_with_transformation.transformation_operator\item_defined_transformation.transform_item_2))); - WR3: (SIZEOF(SELF\explicit_constraint.constrained_elements) = 1) AND - (SIZEOF(SELF\explicit_constraint.reference_elements) = 1); - WR4: (SELF\representation_relationship_with_transformation.transformation_operator\item_defined_transformation.transform_item_1 = - SELF\explicit_constraint.reference_elements[1]) AND - (SELF\representation_relationship_with_transformation.transformation_operator\item_defined_transformation.transform_item_2 = - SELF\explicit_constraint.constrained_elements[1]); -END_ENTITY; - -ENTITY binary_boolean_expression - ABSTRACT SUPERTYPE OF (ONEOF(xor_expression, equals_expression)) - SUBTYPE OF (boolean_expression, binary_generic_expression); -END_ENTITY; - -ENTITY binary_function_call - ABSTRACT SUPERTYPE - SUBTYPE OF (binary_numeric_expression); -END_ENTITY; - -ENTITY binary_generic_expression - ABSTRACT SUPERTYPE - SUBTYPE OF (generic_expression); - operands : LIST [2 : 2] OF generic_expression; -END_ENTITY; - -ENTITY binary_numeric_expression - ABSTRACT SUPERTYPE OF (ONEOF(minus_expression, div_expression, mod_expression, slash_expression, power_expression, - binary_function_call)) - SUBTYPE OF (numeric_expression, binary_generic_expression); - SELF\binary_generic_expression.operands : LIST [2 : 2] OF numeric_expression; -END_ENTITY; - -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; - -ENTITY block_volume - SUBTYPE OF (volume); - position : axis2_placement_3d; - x : positive_length_measure; - y : positive_length_measure; - z : positive_length_measure; -END_ENTITY; - -ENTITY boolean_defined_function - ABSTRACT SUPERTYPE - SUBTYPE OF (defined_function, boolean_expression); -END_ENTITY; - -ENTITY boolean_expression - ABSTRACT SUPERTYPE OF (ONEOF(simple_boolean_expression, unary_boolean_expression, binary_boolean_expression, - multiple_arity_boolean_expression, comparison_expression, interval_expression, - boolean_defined_function)) - SUBTYPE OF (expression); -END_ENTITY; - -ENTITY boolean_literal - SUBTYPE OF (simple_boolean_expression, generic_literal); - the_value : BOOLEAN; -END_ENTITY; - -ENTITY boolean_representation_item - SUBTYPE OF (representation_item, boolean_literal); -END_ENTITY; - -ENTITY boolean_result - SUBTYPE OF (geometric_representation_item); - operator : boolean_operator; - first_operand : boolean_operand; - second_operand : boolean_operand; -END_ENTITY; - -ENTITY boolean_result_2d - SUBTYPE OF (boolean_result); - SELF\boolean_result.first_operand : boolean_operand_2d; - SELF\boolean_result.second_operand : boolean_operand_2d; -END_ENTITY; - -ENTITY boolean_variable - SUBTYPE OF (simple_boolean_expression, variable); -END_ENTITY; - -ENTITY boss - SUBTYPE OF (feature_definition); -WHERE - WR1: SELF\characterized_object.description IN ['circular','complex','rectangular']; - WR2: SIZEOF(QUERY(pds - <* QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd)) - | NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | (sa_occ.description = 'boss height occurrence') AND - (SIZEOF(QUERY(sdr - <* QUERY(sar - <* USEDIN(sa_occ, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | (sar.description = - 'path feature component usage') AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN - TYPEOF(sar))) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - ({1 <= SIZEOF(pdr.used_representation.items) <= 2}))) = - 1)) = - 1; - WR4: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - | NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.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, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd)) - | NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | (sa_occ.description = 'circular profile occurrence') AND - (SIZEOF(QUERY(sdr - <* QUERY(sar - <* USEDIN(sa_occ, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | (sar.description = 'profile usage') AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN - TYPEOF(sar))) - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_CLOSED_PROFILE' IN - TYPEOF(sdr.relating_shape_aspect))) = - 1))) = - 1))) = - 0); - WR7: SIZEOF(QUERY(pds - <* QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd))) - | (NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | ((sa_occ.description = 'top condition occurrence') AND - (SIZEOF(QUERY(fcr - <* QUERY(sar - <* USEDIN(sa_occ, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | ((sar.description = 'boss top usage') AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN - TYPEOF(sar)))) - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.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, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd)) - | NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | (sa_occ.description = 'change in diameter occurrence') AND - (SIZEOF(QUERY(fcr - <* QUERY(sar - <* USEDIN(sa_occ, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | (sar.description = 'taper usage') AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN - TYPEOF(sar))) - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TAPER' IN - TYPEOF(fcr.related_shape_aspect)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.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, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd)) - | NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | (sa_occ.description = 'enclosed boundary occurrence') AND - (SIZEOF(QUERY(sdr - <* QUERY(sar - <* USEDIN(sa_occ, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | (sar.description = 'profile usage') AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN - TYPEOF(sar))) - | SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NGON_CLOSED_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.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, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd)) - | NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | (sa_occ.description = 'change in boundary occurrence') AND - (SIZEOF(QUERY(fcr - <* QUERY(sar - <* USEDIN(sa_occ, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') - | (sar.description = 'taper usage') AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN - TYPEOF(sar))) - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TAPER' IN - TYPEOF(fcr.related_shape_aspect)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.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, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd)) - | NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | (sa_occ.description = 'rectangular profile occurrence') AND - (SIZEOF(QUERY(sdr - <* QUERY(sar - <* USEDIN(sa_occ, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | (sar.description = 'profile usage') AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN - TYPEOF(sar))) - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_CLOSED_PROFILE' IN - TYPEOF(sdr.relating_shape_aspect))) = - 1))) = - 1))) = - 0); - WR12: SIZEOF(QUERY(pdr - <* get_property_definition_representations(SELF) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN - TYPEOF(pdr.used_representation)) AND - (pdr.used_representation.name = 'maximum feature limit'))) >= - 0; -END_ENTITY; - -ENTITY boss_top - SUBTYPE OF (shape_aspect); -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIRECTION_SHAPE_REPRESENTATION') IN - TYPEOF(pdr.used_representation)))) = - 1)))) = - 0)); - WR4: ((NOT (SELF.description = 'planar')) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LOCATION_SHAPE_REPRESENTATION') IN - TYPEOF(pdr.used_representation)))) = - 1)))) = - 0)); - WR5: (NOT (SELF.description = 'complex')) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION') IN - TYPEOF(pdr.used_representation))) = - 1)))) = - 0); - WR6: (SIZEOF(QUERY(fcr - <* QUERY(sar - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') - | ((sar.description = 'boss top usage') AND - (sar.name IN ['boss height start','boss height end'])) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN - TYPEOF(sar))) - | ((fcr.related_shape_aspect.description = 'top condition occurrence') AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOSS' IN - TYPEOF(fcr.related_shape_aspect.of_shape.definition)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOSS_TOP' IN - TYPEOF(fcr.relating_shape_aspect))))) >= - 1); - WR7: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation)))) <= - 1)))) = - 0); - WR8: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - | NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'top radius'))) <= - 1))) = - 0))) = - 0; -END_ENTITY; - -ENTITY bound_parameter_environment - SUBTYPE OF (environment); -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOUND_VARIATIONAL_PARAMETER' IN - TYPEOF(SELF\environment.syntactic_representation)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.INSTANCE_ATTRIBUTE_REFERENCE' IN - TYPEOF(SELF\environment.semantics)); -END_ENTITY; - -ENTITY bound_variable_semantics - SUBTYPE OF (variable_semantics); -END_ENTITY; - -ENTITY bound_variational_parameter - SUBTYPE OF (variational_parameter); -DERIVE - SELF\variational_parameter.parameter_current_value : maths_value := ?; -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOUND_PARAMETER_ENVIRONMENT' IN - TYPEOF(SELF\generic_variable.interpretation); -END_ENTITY; - -ENTITY boundary_curve - SUBTYPE OF (composite_curve_on_surface); -WHERE - WR1: SELF\composite_curve.closed_curve; -END_ENTITY; - -ENTITY boundary_curve_of_b_spline_or_rectangular_composite_surface - SUBTYPE OF (founded_item); - basis_surface : b_spline_or_rectangular_composite_surface_select; - boundary_type : surface_boundary_type; -WHERE - WR1: SIZEOF(using_representations(SELF.basis_surface) * relating_shape_representations_of_extreme_values(SELF)) > 0; -END_ENTITY; - -ENTITY bounded_curve - SUPERTYPE OF (ONEOF(polyline, b_spline_curve, trimmed_curve, bounded_pcurve, bounded_surface_curve, composite_curve, - locally_refined_spline_curve)) - SUBTYPE OF (curve); -END_ENTITY; - -ENTITY bounded_pcurve - SUBTYPE OF (pcurve, bounded_curve); -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOUNDED_CURVE' IN - TYPEOF(SELF\pcurve.reference_to_curve.items[1])); -END_ENTITY; - -ENTITY bounded_surface - SUPERTYPE OF (ONEOF(b_spline_surface, rectangular_trimmed_surface, curve_bounded_surface, - rectangular_composite_surface, locally_refined_spline_surface)) - SUBTYPE OF (surface); -END_ENTITY; - -ENTITY bounded_surface_curve - SUBTYPE OF (surface_curve, bounded_curve); -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOUNDED_CURVE' IN TYPEOF(SELF\surface_curve.curve_3d)); -END_ENTITY; - -ENTITY box_domain - SUBTYPE OF (founded_item); - corner : cartesian_point; - xlength : positive_length_measure; - ylength : positive_length_measure; - zlength : positive_length_measure; -WHERE - WR1: SIZEOF(QUERY(item - <* USEDIN(SELF, '') - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOXED_HALF_SPACE' IN TYPEOF(item)))) = - 0; -END_ENTITY; - -ENTITY boxed_half_space - SUBTYPE OF (half_space_solid); - enclosure : box_domain; -END_ENTITY; - -ENTITY breakdown_context - SUBTYPE OF (product_definition_relationship); -END_ENTITY; - -ENTITY breakdown_element_group_assignment - SUBTYPE OF (group_assignment); - SELF\group_assignment.assigned_group : product_definition_element_relationship; - items : SET [1 : 1] OF product_definition_or_breakdown_element_usage; -END_ENTITY; - -ENTITY breakdown_element_realization - SUBTYPE OF (characterized_object, product_definition_element_relationship); -END_ENTITY; - -ENTITY breakdown_element_usage - SUBTYPE OF (product_definition_relationship); -END_ENTITY; - -ENTITY breakdown_of - SUBTYPE OF (product_definition_relationship); -END_ENTITY; - -ENTITY brep_with_voids - SUBTYPE OF (manifold_solid_brep); - voids : SET [1 : ?] OF oriented_closed_shell; -END_ENTITY; - -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; - -ENTITY camera_image - SUPERTYPE OF (ONEOF(camera_image_2d_with_scale, camera_image_3d_with_scale)) - SUBTYPE OF (mapped_item); - SELF\mapped_item.mapping_source : camera_usage; - SELF\mapped_item.mapping_target : planar_box; -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(SELF); -END_ENTITY; - -ENTITY camera_image_2d_with_scale - SUBTYPE OF (camera_image); -DERIVE - scale : positive_ratio_measure := (SELF\mapped_item.mapping_target\planar_extent.size_in_x) / - (SELF\mapped_item.mapping_source.mapping_origin\camera_model_d2.view_window\planar_extent.size_in_x); -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CAMERA_MODEL_D2' IN - TYPEOF(SELF\mapped_item.mapping_source.mapping_origin)); - WR2: aspect_ratio(SELF\mapped_item.mapping_target) = - aspect_ratio(SELF\mapped_item.mapping_source.mapping_origin\camera_model_d2.view_window); - WR3: SELF\mapped_item.mapping_source.mapping_origin\camera_model_d2.view_window_clipping; -END_ENTITY; - -ENTITY camera_image_3d_with_scale - SUBTYPE OF (camera_image); -DERIVE - scale : positive_ratio_measure := ((SELF\mapped_item.mapping_target\planar_extent.size_in_x) / - (SELF\mapped_item.mapping_source.mapping_origin\camera_model_d3.perspective_of_volume.view_window.size_in_x)); -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CAMERA_MODEL_D3' IN - TYPEOF(SELF\mapped_item.mapping_source.mapping_origin)); - WR2: aspect_ratio(SELF\mapped_item.mapping_target) = - aspect_ratio(SELF\mapped_item.mapping_source.mapping_origin\camera_model_d3.perspective_of_volume.view_window); - WR3: SELF\mapped_item.mapping_source.mapping_origin\camera_model_d3.perspective_of_volume.front_plane_clipping AND - SELF\mapped_item.mapping_source.mapping_origin\camera_model_d3.perspective_of_volume.view_volume_sides_clipping; - WR4: (SELF\mapped_item.mapping_target\planar_extent.size_in_x > 0) AND - (SELF\mapped_item.mapping_target\planar_extent.size_in_y > 0); - WR5: (SELF\mapped_item.mapping_source.mapping_origin\camera_model_d3.perspective_of_volume.view_window.size_in_x > - 0) AND - (SELF\mapped_item.mapping_source.mapping_origin\camera_model_d3.perspective_of_volume.view_window.size_in_y > 0); - WR6: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_2D' IN - TYPEOF(SELF\mapped_item.mapping_target\planar_box.placement)) AND - NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D' IN - TYPEOF(SELF\mapped_item.mapping_target\planar_box.placement)); -END_ENTITY; - -ENTITY camera_model - ABSTRACT SUPERTYPE OF (ONEOF(camera_model_d2, camera_model_d3)) - SUBTYPE OF (geometric_representation_item); -WHERE - WR1: (SIZEOF(USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ITEM_DEFINED_TRANSFORMATION.TRANSFORM_ITEM_1')) + - SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_MAP.MAPPING_ORIGIN'))) > - 0; - WR2: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM.ITEM')) = 0; -END_ENTITY; - -ENTITY camera_model_d2 - SUBTYPE OF (camera_model); - view_window : planar_box; - view_window_clipping : BOOLEAN; -WHERE - WR1: SELF\geometric_representation_item.dim = 2; -END_ENTITY; - -ENTITY camera_model_d3 - SUBTYPE OF (camera_model); - view_reference_system : axis2_placement_3d; - perspective_of_volume : view_volume; -WHERE - WR1: SELF\geometric_representation_item.dim = 3; -END_ENTITY; - -ENTITY camera_model_d3_multi_clipping - SUBTYPE OF (camera_model_d3); - shape_clipping : SET [1 : ?] OF camera_model_d3_multi_clipping_intersection_select; -END_ENTITY; - -ENTITY camera_model_d3_multi_clipping_intersection - SUBTYPE OF (geometric_representation_item); - shape_clipping : SET [2 : ?] OF camera_model_d3_multi_clipping_intersection_select; -END_ENTITY; - -ENTITY camera_model_d3_multi_clipping_union - SUBTYPE OF (geometric_representation_item); - shape_clipping : SET [2 : ?] OF camera_model_d3_multi_clipping_union_select; -END_ENTITY; - -ENTITY camera_model_d3_with_hlhsr - SUBTYPE OF (camera_model_d3); - hidden_line_surface_removal : BOOLEAN; -END_ENTITY; - -ENTITY camera_model_with_light_sources - SUBTYPE OF (camera_model_d3); - sources : SET [1 : ?] OF light_source; -END_ENTITY; - -ENTITY camera_usage - SUBTYPE OF (representation_map); - SELF\representation_map.mapping_origin : camera_model; -WHERE - WR1: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_REPRESENTATION' IN - TYPEOF(SELF\representation_map.mapped_representation)); -END_ENTITY; - -ENTITY capacitance_measure_with_unit - SUBTYPE OF (measure_with_unit); -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CAPACITANCE_UNIT' IN - TYPEOF(SELF\measure_with_unit.unit_component); -END_ENTITY; - -ENTITY capacitance_unit - SUBTYPE OF (derived_unit); -WHERE - WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit(si_unit_name.farad); -END_ENTITY; - -ENTITY cartesian_11 - SUBTYPE OF (geometric_representation_item); -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D' IN TYPEOF(SELF); -END_ENTITY; - -ENTITY cartesian_complex_number_region - SUBTYPE OF (maths_space, generic_literal); - real_constraint : real_interval; - imag_constraint : real_interval; -WHERE - WR1: min_exists(real_constraint) OR max_exists(real_constraint) OR min_exists(imag_constraint) OR - max_exists(imag_constraint); -END_ENTITY; - -ENTITY cartesian_point - SUPERTYPE OF (ONEOF(cylindrical_point, polar_point, spherical_point)) - SUBTYPE OF (point); - coordinates : LIST [1 : 3] OF length_measure; -END_ENTITY; - -ENTITY cartesian_transformation_operator - SUPERTYPE OF (ONEOF(cartesian_transformation_operator_2d, cartesian_transformation_operator_3d)) - SUBTYPE OF (geometric_representation_item, functionally_defined_transformation); - axis1 : OPTIONAL direction; - axis2 : OPTIONAL direction; - local_origin : cartesian_point; - scale : OPTIONAL REAL; -DERIVE - scl : REAL := NVL(scale, 1.0); -WHERE - WR1: scl > 0.0; -END_ENTITY; - -ENTITY cartesian_transformation_operator_2d - SUBTYPE OF (cartesian_transformation_operator); -DERIVE - u : LIST [2 : 2] OF direction := base_axis(2, SELF\cartesian_transformation_operator.axis1, - SELF\cartesian_transformation_operator.axis2, ?); -WHERE - WR1: SELF\geometric_representation_item.dim = 2; -END_ENTITY; - -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; - -ENTITY cc_design_approval - SUBTYPE OF (approval_assignment); - items : SET [1 : ?] OF approved_item; -END_ENTITY; - -ENTITY cc_design_certification - SUBTYPE OF (certification_assignment); - items : SET [1 : ?] OF certified_item; -END_ENTITY; - -ENTITY cc_design_contract - SUBTYPE OF (contract_assignment); - items : SET [1 : ?] OF contracted_item; -END_ENTITY; - -ENTITY cc_design_date_and_time_assignment - SUBTYPE OF (date_and_time_assignment); - items : SET [1 : ?] OF date_time_item; -END_ENTITY; - -ENTITY cc_design_person_and_organization_assignment - SUBTYPE OF (person_and_organization_assignment); - items : SET [1 : ?] OF cc_person_organization_item; -WHERE - WR1: cc_design_person_and_organization_correlation(SELF); -END_ENTITY; - -ENTITY cc_design_security_classification - SUBTYPE OF (security_classification_assignment); - items : SET [1 : ?] OF cc_classified_item; -END_ENTITY; - -ENTITY cc_design_specification_reference - SUBTYPE OF (document_reference); - items : SET [1 : ?] OF cc_specified_item; -END_ENTITY; - -ENTITY cdgc_with_dimension - SUBTYPE OF (curve_distance_geometric_constraint); - distance_value : non_negative_length_measure; -END_ENTITY; - -ENTITY celsius_temperature_measure_with_unit - SUBTYPE OF (measure_with_unit); -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.THERMODYNAMIC_TEMPERATURE_UNIT' IN - TYPEOF(SELF\measure_with_unit.unit_component); -END_ENTITY; - -ENTITY centre_of_symmetry - SUBTYPE OF (derived_shape_aspect); -END_ENTITY; - -ENTITY certification; - name : label; - purpose : text; - kind : certification_type; -END_ENTITY; - -ENTITY certification_assignment - ABSTRACT SUPERTYPE; - assigned_certification : certification; -DERIVE - role : object_role := get_role(SELF); -WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; -END_ENTITY; - -ENTITY certification_type; - description : label; -END_ENTITY; - -ENTITY chain_based_geometric_item_specific_usage - SUBTYPE OF (geometric_item_specific_usage, chain_based_item_identified_representation_usage); -END_ENTITY; - -ENTITY chain_based_item_identified_representation_usage - SUBTYPE OF (item_identified_representation_usage); - nodes : LIST [2 : ?] OF UNIQUE representation; - undirected_link : LIST [1 : ?] OF chained_representation_link; -DERIVE - root : representation := nodes[1]; - directed_link : LIST [1 : ?] OF representation_relationship := get_directed_link(nodes, undirected_link); - leaf : representation := SELF\item_identified_representation_usage.used_representation; -WHERE - WR1: EXISTS(directed_link); -END_ENTITY; - -ENTITY chamfer - SUBTYPE OF (transition_feature); -WHERE - WR1: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.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, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN - TYPEOF(sar))) - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CHAMFER_OFFSET' IN - TYPEOF(fcr.related_shape_aspect)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CHAMFER' IN - TYPEOF(fcr.relating_shape_aspect)) AND - (fcr.related_shape_aspect.description = 'first offset')))) = - 1); - WR3: (SIZEOF(QUERY(fcr - <* QUERY(sar - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN - TYPEOF(sar))) - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CHAMFER_OFFSET' IN - TYPEOF(fcr.related_shape_aspect)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CHAMFER' IN - TYPEOF(fcr.relating_shape_aspect)) AND - (fcr.related_shape_aspect.description = 'second offset')))) = - 1); -END_ENTITY; - -ENTITY chamfer_offset - SUBTYPE OF (shape_aspect); -WHERE - WR1: (SELF.description IN ['first offset','second offset']); - WR2: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation)))) = - 1)))) = - 0); - WR3: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'offset amount')) OR - ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.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, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP') IN - TYPEOF(sar))) - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CHAMFER' IN - TYPEOF(sdr.relating_shape_aspect)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CHAMFER_OFFSET' IN - TYPEOF(sdr.related_shape_aspect))))) = - 1); -END_ENTITY; - -ENTITY change - SUBTYPE OF (action_assignment); - items : SET [1 : ?] OF work_item; -END_ENTITY; - -ENTITY change_composition_relationship - SUBTYPE OF (group_relationship); - SELF\group_relationship.relating_group : change_group; - SELF\group_relationship.related_group : change_element; -DERIVE - composition : change_group := SELF\group_relationship.relating_group; - element : change_element := SELF\group_relationship.related_group; -END_ENTITY; - -ENTITY change_element - ABSTRACT SUPERTYPE OF (ONEOF(modify_element, delete_element, add_element)) - SUBTYPE OF (group, characterized_object); -END_ENTITY; - -ENTITY change_element_sequence - SUBTYPE OF (group_relationship); - SELF\group_relationship.relating_group : change_element; - SELF\group_relationship.related_group : change_element; -DERIVE - next : change_element := SELF\group_relationship.related_group; - previous : change_element := SELF\group_relationship.relating_group; -END_ENTITY; - -ENTITY change_group - SUBTYPE OF (group); -END_ENTITY; - -ENTITY change_group_assignment - SUBTYPE OF (group_assignment); - SELF\group_assignment.assigned_group : change_group; - item : change_relationship_select; -END_ENTITY; - -ENTITY change_request - SUBTYPE OF (action_request_assignment); - items : SET [1 : ?] OF change_request_item; -END_ENTITY; - -ENTITY character_glyph_font_usage; - character : generic_character_glyph_symbol; - font : text_font; -END_ENTITY; - -ENTITY character_glyph_style_outline - SUBTYPE OF (founded_item); - outline_style : curve_style; -END_ENTITY; - -ENTITY character_glyph_style_stroke - SUBTYPE OF (founded_item); - stroke_style : curve_style; -END_ENTITY; - -ENTITY character_glyph_symbol - SUBTYPE OF (generic_character_glyph_symbol); - character_box : planar_extent; - baseline_ratio : ratio_measure; -DERIVE - box_height : length_measure := character_box.size_in_y; -WHERE - WR1: {0.0 <= baseline_ratio <= 1.0}; - WR2: item_in_context(character_box, SELF\representation.context_of_items); - WR3: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF(box_height); -END_ENTITY; - -ENTITY character_glyph_symbol_outline - SUBTYPE OF (character_glyph_symbol); - outlines : SET [1 : ?] OF annotation_fill_area; -WHERE - WR1: outlines <= SELF\representation.items; -END_ENTITY; - -ENTITY character_glyph_symbol_stroke - SUBTYPE OF (character_glyph_symbol); - strokes : SET [1 : ?] OF curve; -WHERE - WR1: strokes <= SELF\representation.items; -END_ENTITY; - -ENTITY characteristic_data_column_header - SUBTYPE OF (general_property); -END_ENTITY; - -ENTITY characteristic_data_column_header_link - SUBTYPE OF (general_property_relationship); -END_ENTITY; - -ENTITY characteristic_data_table_header - SUBTYPE OF (general_property); -END_ENTITY; - -ENTITY characteristic_data_table_header_decomposition - SUBTYPE OF (general_property_relationship); -END_ENTITY; - -ENTITY characteristic_type - SUBTYPE OF (group); -END_ENTITY; - -ENTITY characterized_chain_based_item_within_representation - SUBTYPE OF (characterized_item_within_representation); - nodes : LIST [2 : ?] OF UNIQUE representation; - undirected_link : LIST [1 : ?] OF chained_representation_link; -DERIVE - root : representation := nodes[1]; - directed_link : LIST [1 : ?] OF representation_relationship := get_directed_link(nodes, undirected_link); - leaf : representation := SELF\characterized_item_within_representation.rep; -WHERE - WR1: EXISTS(directed_link); -END_ENTITY; - -ENTITY characterized_class - SUBTYPE OF (characterized_object, class); -END_ENTITY; - -ENTITY characterized_item_within_representation - SUBTYPE OF (characterized_object); - item : representation_item; - rep : representation; -UNIQUE - UR1: item, rep; -WHERE - WR1: rep IN using_representations(item); -END_ENTITY; - -ENTITY characterized_location_object - SUBTYPE OF (characterized_object, location); -END_ENTITY; - -ENTITY characterized_object; - name : label; - description : OPTIONAL text; -END_ENTITY; - -ENTITY characterized_object_relationship; - name : label; - description : OPTIONAL text; - relating_object : characterized_object; - related_object : characterized_object; -END_ENTITY; - -ENTITY characterized_product_concept_feature - SUBTYPE OF (product_concept_feature, characterized_object); -END_ENTITY; - -ENTITY characterized_product_concept_feature_category - SUBTYPE OF (product_concept_feature_category, characterized_object); -END_ENTITY; - -ENTITY characterized_representation - SUBTYPE OF (representation, characterized_object); -DERIVE - SELF\characterized_object.name : label := SELF\representation.name; - SELF\characterized_object.description : text := SELF\representation.description; -END_ENTITY; - -ENTITY circle - SUBTYPE OF (conic); - radius : positive_length_measure; -END_ENTITY; - -ENTITY circular_area - SUBTYPE OF (primitive_2d); - centre : cartesian_point; - radius : positive_length_measure; -END_ENTITY; - -ENTITY circular_closed_profile - SUBTYPE OF (shape_aspect); -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN - TYPEOF(SELF.of_shape.definition)); - WR2: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation)))) = - 1)))) = - 0); - WR3: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' IN - TYPEOF(it)) AND - (it.name = 'orientation')))) = - 1))) = - 0)))) = - 0); - WR5: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'diameter')))) = - 1)))) = - 0)))) = - 0); -END_ENTITY; - -ENTITY circular_involute - SUBTYPE OF (curve); - position : axis2_placement; - base_radius : positive_length_measure; -END_ENTITY; - -ENTITY circular_path - SUBTYPE OF (path_node); - via_point : cartesian_point; -END_ENTITY; - -ENTITY circular_pattern - SUBTYPE OF (replicate_feature); -WHERE - WR1: (SIZEOF(QUERY(pds - <* QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd))) - | (NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | ((SIZEOF(QUERY(sdr - <* QUERY(sar - <* USEDIN(sa_occ, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') - | ((('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP') IN - TYPEOF(sar)))) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT' IN - TYPEOF(sdr.related_shape_aspect)))) = - 1)))) <= - 3)))) = - 0); - WR2: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation)))) = - 1)))) = - 0); - WR3: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'diameter')))) <= - 1)))) = - 0)))) = - 0); - WR5: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'base feature rotation')))) <= - 1)))) = - 0)))) = - 0); - WR6: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN - TYPEOF(it)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'angular spacing')))) = - 1)))) = - 0)))) = - 0); - WR8: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' IN - TYPEOF(it)) AND - (it.name = 'orientation')))) = - 1)))) = - 0)))) = - 0); -END_ENTITY; - -ENTITY circular_runout_tolerance - SUBTYPE OF (geometric_tolerance_with_datum_reference); -END_ENTITY; - -ENTITY class - SUBTYPE OF (group); -END_ENTITY; - -ENTITY class_by_extension - SUBTYPE OF (class); -END_ENTITY; - -ENTITY class_by_intension - SUBTYPE OF (class); -END_ENTITY; - -ENTITY class_system - SUBTYPE OF (group); -END_ENTITY; - -ENTITY class_usage_effectivity_context_assignment - SUBTYPE OF (effectivity_context_assignment); - items : SET [1 : ?] OF class_usage_effectivity_context_item; -WHERE - WR1: SELF.role.name = 'class usage influence'; - WR2: SIZEOF(QUERY(i - <* SELF.items - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF(i)))) = - 0; - WR3: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.APPLIED_EFFECTIVITY_ASSIGNMENT' IN - TYPEOF(SELF.assigned_effectivity_assignment)) AND - (SIZEOF(TYPEOF(SELF.assigned_effectivity_assignment.assigned_effectivity)) = 1) AND - (SELF.assigned_effectivity_assignment.assigned_effectivity.id = 'class usage') AND - (SIZEOF(QUERY(i - <* SELF.assigned_effectivity_assignment\applied_effectivity_assignment.items - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_CONCEPT_FEATURE_CATEGORY_USAGE' IN - TYPEOF(i)))) = - 0); -END_ENTITY; - -ENTITY classification_assignment - ABSTRACT SUPERTYPE; - assigned_class : group; - role : classification_role; -END_ENTITY; - -ENTITY classification_assignment_relationship; - id : OPTIONAL identifier; - description : OPTIONAL text; - relating : classification_assignment; - related : classification_assignment; - relation_type : STRING; -WHERE - WR1: acyclic_classification_assignment_relationship(SELF, [related], - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLASSIFICATION_ASSIGNMENT_RELATIONSHIP'); -END_ENTITY; - -ENTITY classification_role; - name : label; - description : OPTIONAL text; -END_ENTITY; - -ENTITY clgc_with_dimension - SUBTYPE OF (curve_length_geometric_constraint); - length_value : positive_length_measure; -END_ENTITY; - -ENTITY closed_curve_style_parameters - SUBTYPE OF (curve_style_parameters_representation); -END_ENTITY; - -ENTITY closed_path_profile - SUBTYPE OF (shape_aspect); -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN - TYPEOF(SELF.of_shape.definition)); - WR2: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation)))) = - 1)))) = - 0); - WR3: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' IN - TYPEOF(it)) AND - (it.name = 'orientation')))) = - 1)))) = - 0)))) = - 0); - WR5: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PATH_SHAPE_REPRESENTATION') IN - TYPEOF(pdr.used_representation)))) = - 1)))) = - 0); -END_ENTITY; - -ENTITY closed_shell - SUBTYPE OF (connected_face_set); -END_ENTITY; - -ENTITY clothoid - SUBTYPE OF (curve); - position : axis2_placement; - clothoid_constant : length_measure; -END_ENTITY; - -ENTITY coaxial_assembly_constraint - SUBTYPE OF (binary_assembly_constraint, coaxial_geometric_constraint); -END_ENTITY; - -ENTITY coaxial_geometric_constraint - SUBTYPE OF (explicit_geometric_constraint); - SELF\explicit_constraint.constrained_elements : SET [1 : ?] OF axial_geometry_constraint_element; - SELF\explicit_constraint.reference_elements : SET [0 : 1] OF axial_geometry_constraint_element; -WHERE - WR1: SIZEOF(QUERY(q - <* SELF\explicit_constraint.reference_elements - | SIZEOF(TYPEOF(q) * - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SPHERICAL_SURFACE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SPHERE']) > - 0)) = - 0; -END_ENTITY; - -ENTITY coaxiality_tolerance - SUBTYPE OF (geometric_tolerance_with_datum_reference); -END_ENTITY; - -ENTITY collection - SUBTYPE OF (product); -END_ENTITY; - -ENTITY collection_assignment - SUBTYPE OF (applied_group_assignment); -END_ENTITY; - -ENTITY collection_membership - SUBTYPE OF (applied_group_assignment); -END_ENTITY; - -ENTITY collection_relationship - SUBTYPE OF (product_relationship); - SELF\product_relationship.relating_product : collection; - SELF\product_relationship.related_product : collection; -DERIVE - related_collection : collection := SELF\product_relationship.related_product; - relating_collection : collection := SELF\product_relationship.relating_product; -END_ENTITY; - -ENTITY collection_version - SUBTYPE OF (product_definition_formation); - SELF\product_definition_formation.of_product : collection; -DERIVE - of_collection : collection := SELF\product_definition_formation.of_product; -END_ENTITY; - -ENTITY collection_version_relationship - SUBTYPE OF (product_definition_formation_relationship); - SELF\product_definition_formation_relationship.relating_product_definition_formation : collection_version; - SELF\product_definition_formation_relationship.related_product_definition_formation : collection_version; -DERIVE - related_version : collection_version := SELF\product_definition_formation_relationship.related_product_definition_formation; - relating_version : collection_version := SELF\product_definition_formation_relationship.relating_product_definition_formation; -END_ENTITY; - -ENTITY collection_version_sequence_relationship - SUBTYPE OF (product_definition_formation_relationship); - SELF\product_definition_formation_relationship.relating_product_definition_formation : collection_version; - SELF\product_definition_formation_relationship.related_product_definition_formation : collection_version; -DERIVE - predecessor : collection_version := SELF\product_definition_formation_relationship.relating_product_definition_formation; - successor : collection_version := SELF\product_definition_formation_relationship.related_product_definition_formation; -END_ENTITY; - -ENTITY collection_view_definition - SUBTYPE OF (product_definition); - SELF\product_definition.formation : collection_version; -DERIVE - defined_version : collection_version := SELF\product_definition.formation; -END_ENTITY; - -ENTITY colour; -END_ENTITY; - -ENTITY colour_rgb - SUBTYPE OF (colour_specification); - red : REAL; - green : REAL; - blue : REAL; -WHERE - WR1: {0.0 <= red <= 1.0}; - WR2: {0.0 <= green <= 1.0}; - WR3: {0.0 <= blue <= 1.0}; -END_ENTITY; - -ENTITY colour_specification - SUBTYPE OF (colour); - name : label; -END_ENTITY; - -ENTITY common_datum - SUBTYPE OF (composite_shape_aspect, datum); -WHERE - WR1: SIZEOF(SELF\composite_shape_aspect.component_relationships) = 2; - WR2: SIZEOF(QUERY(sar - <* SELF\composite_shape_aspect.component_relationships - | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATUM' IN - TYPEOF(sar.related_shape_aspect)) AND - NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMMON_DATUM' IN - TYPEOF(sar.related_shape_aspect))))) = - 0; -END_ENTITY; - -ENTITY comparison_equal - SUBTYPE OF (comparison_expression); -END_ENTITY; - -ENTITY comparison_expression - ABSTRACT SUPERTYPE OF (ONEOF(comparison_equal, comparison_greater, comparison_greater_equal, comparison_less, - comparison_less_equal, comparison_not_equal, like_expression)) - SUBTYPE OF (boolean_expression, binary_generic_expression); - SELF\binary_generic_expression.operands : LIST [2 : 2] OF expression; -WHERE - WR1: (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NUMERIC_EXPRESSION' IN - TYPEOF(SELF\binary_generic_expression.operands[1])) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NUMERIC_EXPRESSION' IN - TYPEOF(SELF\binary_generic_expression.operands[2]))) OR - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_EXPRESSION' IN - TYPEOF(SELF\binary_generic_expression.operands[1])) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_EXPRESSION' IN - TYPEOF(SELF\binary_generic_expression.operands[2]))) OR - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STRING_EXPRESSION' IN - TYPEOF(SELF\binary_generic_expression.operands[1])) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STRING_EXPRESSION' IN - TYPEOF(SELF\binary_generic_expression.operands[2]))); -END_ENTITY; - -ENTITY comparison_greater - SUBTYPE OF (comparison_expression); -END_ENTITY; - -ENTITY comparison_greater_equal - SUBTYPE OF (comparison_expression); -END_ENTITY; - -ENTITY comparison_less - SUBTYPE OF (comparison_expression); -END_ENTITY; - -ENTITY comparison_less_equal - SUBTYPE OF (comparison_expression); -END_ENTITY; - -ENTITY comparison_not_equal - SUBTYPE OF (comparison_expression); -END_ENTITY; - -ENTITY complex_area - ABSTRACT SUPERTYPE OF (path_area_with_parameters ANDOR primitive_2d_with_inner_boundary) - SUBTYPE OF (primitive_2d); -END_ENTITY; - -ENTITY complex_clause - SUBTYPE OF (compound_representation_item); -END_ENTITY; - -ENTITY complex_conjunctive_clause - SUBTYPE OF (complex_clause); -END_ENTITY; - -ENTITY complex_disjunctive_clause - SUBTYPE OF (complex_clause); -END_ENTITY; - -ENTITY complex_number_literal - SUBTYPE OF (generic_literal); - real_part : REAL; - imag_part : REAL; -END_ENTITY; - -ENTITY complex_number_literal_polar - SUBTYPE OF (complex_number_literal); - modulus : REAL; - argument : REAL; -DERIVE - SELF\complex_number_literal.real_part : REAL := modulus * COS(argument); - SELF\complex_number_literal.imag_part : REAL := modulus * SIN(argument); -WHERE - WR1: modulus >= 0; - WR2: {0 <= argument <= 2 * PI}; -END_ENTITY; - -ENTITY complex_shelled_solid - SUBTYPE OF (shelled_solid); - thickened_face_list : LIST [1 : ?] OF SET [1 : ?] OF face_surface; - thickness_list : LIST [1 : ?] OF length_measure; -WHERE - WR1: SIZEOF(thickened_face_list) = SIZEOF(thickness_list); - WR2: SIZEOF(QUERY(q <* thickness_list | (q = 0))) = 0; -END_ENTITY; - -ENTITY complex_triangulated_face - SUBTYPE OF (tessellated_face); - pnindex : LIST [0 : ?] OF INTEGER; - triangle_strips : LIST [0 : ?] OF LIST [3 : ?] OF INTEGER; - triangle_fans : LIST [0 : ?] OF LIST [3 : ?] OF INTEGER; -WHERE - WR1: ((SIZEOF(pnindex) = 0) OR (SIZEOF(pnindex) = SELF\tessellated_face.pnmax)); - WR2: NOT ((SIZEOF(pnindex) = 0) AND (SELF\tessellated_face.pnmax <> coordinates.npoints)); - WR3: NOT ((SIZEOF(triangle_strips) = 0) AND (SIZEOF(triangle_fans) = 0)); -END_ENTITY; - -ENTITY complex_triangulated_surface_set - SUBTYPE OF (tessellated_surface_set); - pnindex : LIST [0 : ?] OF INTEGER; - triangle_strips : LIST [0 : ?] OF LIST [3 : ?] OF INTEGER; - triangle_fans : LIST [0 : ?] OF LIST [3 : ?] OF INTEGER; -WHERE - WR1: ((SIZEOF(pnindex) = 0) OR (SIZEOF(pnindex) = SELF\tessellated_surface_set.pnmax)); - WR2: NOT ((SIZEOF(pnindex) = 0) AND (SELF\tessellated_surface_set.pnmax <> coordinates.npoints)); - WR3: NOT ((SIZEOF(triangle_strips) = 0) AND (SIZEOF(triangle_fans) = 0)); -END_ENTITY; - -ENTITY component_definition - SUBTYPE OF (product_definition, product_definition_relationship); -DERIVE - SELF\product_definition_relationship.related_product_definition : component_definition := SELF; -WHERE - WR1: NOT EXISTS(SELF\product_definition_relationship.description); - WR2: NOT EXISTS(SELF\property_definition.description); - WR3: SELF\product_definition_relationship.id = SELF\product_definition.id; - WR4: SELF\product_definition_relationship.name = 'definition usage'; - WR5: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_USAGE' IN TYPEOF(SELF)); -END_ENTITY; - -ENTITY component_feature - SUBTYPE OF (shape_aspect); - SELF\shape_aspect.of_shape : assembly_component; -END_ENTITY; - -ENTITY component_feature_joint - SUBTYPE OF (shape_aspect_relationship, shape_aspect); - SELF\shape_aspect_relationship.relating_shape_aspect : component_feature; - SELF\shape_aspect_relationship.related_shape_aspect : component_feature; -END_ENTITY; - -ENTITY component_feature_relationship - SUBTYPE OF (shape_aspect_relationship); - SELF\shape_aspect_relationship.relating_shape_aspect : component_feature; - SELF\shape_aspect_relationship.related_shape_aspect : component_feature; -WHERE - WR1: SELF\shape_aspect_relationship.related_shape_aspect :<>: SELF\shape_aspect_relationship.relating_shape_aspect; -END_ENTITY; - -ENTITY component_path_shape_aspect - SUBTYPE OF (shape_aspect); - location : multi_or_next_assembly_usage_occurrence; - component_shape_aspect : internal_or_reflected_shape_aspect; -UNIQUE - UR1: location, component_shape_aspect; -END_ENTITY; - -ENTITY component_terminal - SUBTYPE OF (component_feature); -END_ENTITY; - -ENTITY composite_assembly_sequence_definition - SUBTYPE OF (product_definition); -WHERE - WR1: SIZEOF(QUERY(pdr - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_RELATIONSHIP.RELATING_PRODUCT_DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NEXT_ASSEMBLY_USAGE_OCCURRENCE' IN - TYPEOF(pdr))) > - 0; -END_ENTITY; - -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; - -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; - -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: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOUNDED_CURVE' IN TYPEOF(parent_curve)); -END_ENTITY; - -ENTITY composite_curve_transition_locator - SUBTYPE OF (founded_item); - basis_curve : composite_curve; - transition_index : INTEGER; -WHERE - WR1: SIZEOF(using_representations(SELF.basis_curve) * relating_shape_representations_of_extreme_values(SELF)) > 0; -END_ENTITY; - -ENTITY composite_group_shape_aspect - SUBTYPE OF (composite_shape_aspect); -END_ENTITY; - -ENTITY composite_hole - SUBTYPE OF (compound_feature); -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXPLICIT_COMPOSITE_HOLE' IN TYPEOF(SELF)) XOR - (SELF\characterized_object.description IN ['counterbore','countersunk']); - WR2: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXPLICIT_COMPOSITE_HOLE' IN TYPEOF(SELF)) XOR - (SIZEOF(QUERY(pds - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pds)) AND - (SIZEOF(QUERY(csa - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN - TYPEOF(csa)) AND - (SIZEOF(QUERY(sar - <* csa.component_relationships - | ((('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN - TYPEOF(sar)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROUND_HOLE' IN - TYPEOF(sar.related_shape_aspect)))))) = - 2)))) = - 1)))) = - 1); - WR3: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXPLICIT_COMPOSITE_HOLE' IN TYPEOF(SELF)) XOR - ((NOT (SELF\characterized_object.description = 'countersunk')) OR - (SIZEOF(QUERY(pds - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pds)) AND - (SIZEOF(QUERY(csa - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN - TYPEOF(csa)) AND - (SIZEOF(QUERY(sar - <* csa.component_relationships - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROUND_HOLE' IN - TYPEOF(sar.related_shape_aspect)) AND - (NOT (SIZEOF(QUERY(pds - <* QUERY(pd - <* USEDIN(sar.related_shape_aspect, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd))) - | (NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | ((sa_occ.description = - 'change in diameter occurrence') AND - (SIZEOF(QUERY(fcr2 - <* QUERY(sar2 - <* USEDIN(sa_occ, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') - | ((sar2.description = - 'taper usage') AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN - TYPEOF(sar2)))) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TAPER' IN - TYPEOF(fcr2.related_shape_aspect)))) = - 1)))) = - 0)))) = - 0))))) = - 1)))) = - 1)))) = - 1)); -END_ENTITY; - -ENTITY composite_material_designation - SUBTYPE OF (material_designation); -END_ENTITY; - -ENTITY composite_shape_aspect - SUPERTYPE OF (ONEOF(continuous_shape_aspect, common_datum, composite_group_shape_aspect)) - SUBTYPE OF (shape_aspect); -INVERSE - component_relationships : SET [2:?] OF shape_aspect_relationship FOR relating_shape_aspect; -END_ENTITY; - -ENTITY composite_sheet_representation - SUBTYPE OF (shape_representation); -WHERE - WR1: SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRICALLY_BOUNDED_SURFACE_SHAPE_REPRESENTATION', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SURFACE_SHAPE_REPRESENTATION'] * - TYPEOF(SELF)) = - 1; -END_ENTITY; - -ENTITY composite_text - SUBTYPE OF (geometric_representation_item); - collected_text : SET [2 : ?] OF text_or_character; -WHERE - WR1: acyclic_composite_text(SELF, collected_text); -END_ENTITY; - -ENTITY composite_text_with_associated_curves - SUBTYPE OF (composite_text); - associated_curves : SET [1 : ?] OF curve; -END_ENTITY; - -ENTITY composite_text_with_blanking_box - SUBTYPE OF (composite_text); - blanking : planar_box; -END_ENTITY; - -ENTITY composite_text_with_delineation - SUBTYPE OF (composite_text); - delineation : text_delineation; -END_ENTITY; - -ENTITY composite_text_with_extent - SUBTYPE OF (composite_text); - extent : planar_extent; -END_ENTITY; - -ENTITY composite_unit_shape_aspect - SUBTYPE OF (composite_shape_aspect); -END_ENTITY; - -ENTITY compound_feature - SUBTYPE OF (feature_definition); -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXPLICIT_COMPOSITE_HOLE' IN TYPEOF(SELF)) XOR - (SIZEOF(QUERY(pds - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pds)) AND - (SIZEOF(QUERY(csa - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | ((csa.name = 'compound feature in solid') AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN - TYPEOF(csa))))) = - 1))) = - 1); - WR2: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXPLICIT_COMPOSITE_HOLE' IN TYPEOF(SELF)) XOR - (SIZEOF(QUERY(pds - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pds)) AND - (SIZEOF(QUERY(csa - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN - TYPEOF(csa))) = - 1))) = - 1); - WR3: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXPLICIT_COMPOSITE_HOLE' IN TYPEOF(SELF)) XOR - (SIZEOF(QUERY(pds - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pds)) AND - (SIZEOF(QUERY(csa - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN - TYPEOF(csa)) AND - (SIZEOF(QUERY(fcr - <* csa.component_relationships - | (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN - TYPEOF(fcr))))) = - 0)))) = - 1)))) = - 1); - WR4: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXPLICIT_COMPOSITE_HOLE' IN TYPEOF(SELF)) XOR - (SIZEOF(QUERY(pds - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pds)) AND - (SIZEOF(QUERY(csa - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN - TYPEOF(csa)))) = - 1))) = - 1); - WR5: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXPLICIT_COMPOSITE_HOLE' IN TYPEOF(SELF)) XOR - (SIZEOF(QUERY(pds - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pds)) AND - (SIZEOF(QUERY(csa - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN - TYPEOF(csa)) AND - (SIZEOF(QUERY(sar - <* csa.component_relationships - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.THREAD' IN - TYPEOF(sar.related_shape_aspect)))) = - 0)))) = - 1)))) = - 1); - WR6: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXPLICIT_COMPOSITE_HOLE' IN TYPEOF(SELF)) XOR - (SIZEOF(QUERY(pds - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pds)) AND - (SIZEOF(QUERY(csa - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN - TYPEOF(csa)) AND - (SIZEOF(QUERY(sar - <* csa.component_relationships - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.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; - -ENTITY compound_representation_item - SUPERTYPE OF ((ONEOF(point_and_vector, point_array)) ANDOR - ((ONEOF(row_representation_item, table_representation_item)))) - SUBTYPE OF (representation_item); - item_element : compound_item_definition; -END_ENTITY; - -ENTITY compound_shape_representation - SUBTYPE OF (shape_representation); -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_REPRESENTATION_CONTEXT' IN - TYPEOF(SELF.context_of_items)) AND - (SELF.context_of_items\geometric_representation_context.coordinate_space_dimension = 3); - WR2: SIZEOF(QUERY(cbsr_i - <* SELF.items - | SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_BASED_WIREFRAME_MODEL', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_BASED_SURFACE_MODEL', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D'] * - TYPEOF(cbsr_i)) <> - 1)) = - 0; - WR3: SIZEOF(QUERY(cbsr_i - <* SELF.items - | SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_BASED_WIREFRAME_MODEL', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_BASED_SURFACE_MODEL', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM'] * - TYPEOF(cbsr_i)) = - 1)) > - 0; - WR4: SIZEOF(QUERY(cbsr_i - <* SELF.items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF(cbsr_i)) AND - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOUND_SHAPE_REPRESENTATION', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_BASED_WIREFRAME_SHAPE_REPRESENTATION', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NON_MANIFOLD_SURFACE_SHAPE_REPRESENTATION'] * - TYPEOF(cbsr_i\mapped_item.mapping_source)) <> - 1))) = - 0; -END_ENTITY; - -ENTITY concat_expression - SUBTYPE OF (string_expression, multiple_arity_generic_expression); - SELF\multiple_arity_generic_expression.operands : LIST [2 : ?] OF string_expression; -END_ENTITY; - -ENTITY concentricity_tolerance - SUBTYPE OF (geometric_tolerance_with_datum_reference); -END_ENTITY; - -ENTITY concept_feature_operator; - name : label; - description : OPTIONAL text; -END_ENTITY; - -ENTITY concept_feature_relationship; - name : label; - description : OPTIONAL text; - relating_product_concept_feature : product_concept_feature; - related_product_concept_feature : product_concept_feature; -END_ENTITY; - -ENTITY concept_feature_relationship_with_condition - SUBTYPE OF (concept_feature_relationship); - conditional_operator : concept_feature_operator; -END_ENTITY; - -ENTITY condition - SUBTYPE OF (action_method); -END_ENTITY; - -ENTITY conditional_concept_feature - SUBTYPE OF (product_concept_feature); - condition : concept_feature_relationship_with_condition; -END_ENTITY; - -ENTITY conditional_effectivity - SUBTYPE OF (condition, effectivity); -END_ENTITY; - -ENTITY conductance_measure_with_unit - SUBTYPE OF (measure_with_unit); -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONDUCTANCE_UNIT' IN - TYPEOF(SELF\measure_with_unit.unit_component); -END_ENTITY; - -ENTITY conductance_unit - SUBTYPE OF (derived_unit); -WHERE - WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit(si_unit_name.siemens); -END_ENTITY; - -ENTITY configurable_item - SUBTYPE OF (configuration_item); - item_concept_feature : SET [1 : ?] OF product_concept_feature_association; -END_ENTITY; - -ENTITY configuration_design; - configuration : configuration_item; - design : configuration_design_item; -DERIVE - name : label := get_name_value(SELF); - description : text := get_description_value(SELF); -UNIQUE - UR1: configuration, design; -WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; - WR2: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= - 1; -END_ENTITY; - -ENTITY configuration_effectivity - SUBTYPE OF (product_definition_effectivity); - configuration : configuration_design; -UNIQUE - UR1: configuration, SELF\product_definition_effectivity.usage, SELF\effectivity.id; -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_USAGE' IN - TYPEOF(SELF\product_definition_effectivity.usage); -END_ENTITY; - -ENTITY configuration_item; - id : identifier; - name : label; - description : OPTIONAL text; - item_concept : product_concept; - purpose : OPTIONAL label; -END_ENTITY; - -ENTITY configuration_item_hierarchical_relationship - SUBTYPE OF (configuration_item_relationship); -END_ENTITY; - -ENTITY configuration_item_relationship; - name : label; - description : OPTIONAL text; - relating_configuration_item : configuration_item; - related_configuration_item : configuration_item; -END_ENTITY; - -ENTITY configuration_item_revision_sequence - SUBTYPE OF (configuration_item_relationship); -END_ENTITY; - -ENTITY configured_effectivity_assignment - SUBTYPE OF (effectivity_assignment); - items : SET [1 : ?] OF configured_effectivity_item; -WHERE - WR1: (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EFFECTIVITY'] * TYPEOF(SELF.assigned_effectivity)) = - 1) AND - (SELF.assigned_effectivity.id = 'configuration validity'); - WR2: SIZEOF(SELF.items) = 1; - WR3: SIZEOF(QUERY(i - <* SELF.items - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF(i)) OR - NOT (i\product_definition.frame_of_reference.name IN - ['conceptual definition', - 'part occurrence', - 'functional definition', - 'alternative definition']))) = - 0; - WR4: SELF.role.name IN ['design','usage']; - WR5: (SELF.role.name <> 'design') OR - (SIZEOF(QUERY(i - <* SELF.items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF(i)) AND - (i\product_definition.frame_of_reference.name = 'part occurrence'))) = - 0); - WR6: (SELF.role.name <> 'usage') OR - (SIZEOF(QUERY(i - <* SELF.items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF(i)) AND - (i\product_definition.frame_of_reference.name = 'conceptual definition'))) = - 0); - WR7: SELF.role.description IN ['exception','inherited','local']; - WR8: SIZEOF(QUERY(x - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EFFECTIVITY_CONTEXT_ASSIGNMENT.ASSIGNED_EFFECTIVITY_ASSIGNMENT') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONFIGURED_EFFECTIVITY_CONTEXT_ASSIGNMENT' IN - TYPEOF(x))) = - 1; -END_ENTITY; - -ENTITY configured_effectivity_context_assignment - SUBTYPE OF (effectivity_context_assignment); - SELF\effectivity_context_assignment.assigned_effectivity_assignment : configured_effectivity_assignment; - items : SET [1 : ?] OF configured_effectivity_context_item; -WHERE - WR1: SIZEOF(SELF.items) = 1; -END_ENTITY; - -ENTITY conic - SUPERTYPE OF (ONEOF(circle, ellipse, hyperbola, parabola)) - SUBTYPE OF (curve); - position : axis2_placement; -END_ENTITY; - -ENTITY conical_stepped_hole_transition - SUBTYPE OF (geometric_representation_item); - transition_number : positive_integer; - cone_apex_angle : plane_angle_measure; - cone_base_radius : positive_length_measure; -END_ENTITY; - -ENTITY conical_surface - SUBTYPE OF (elementary_surface); - radius : length_measure; - semi_angle : plane_angle_measure; -WHERE - WR1: radius >= 0.0; -END_ENTITY; - -ENTITY connected_edge_set - SUBTYPE OF (topological_representation_item); - ces_edges : SET [1 : ?] OF edge; -END_ENTITY; - -ENTITY connected_edge_with_length_set_representation - SUBTYPE OF (representation); - SELF\representation.items : SET [1 : ?] OF connected_edge_with_length_set_items; -WHERE - WR1: SIZEOF(QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_EDGE_SET' IN TYPEOF(it))) = - 1; -END_ENTITY; - -ENTITY connected_face_set - SUPERTYPE OF (ONEOF(closed_shell, open_shell)) - SUBTYPE OF (topological_representation_item); - cfs_faces : SET [1 : ?] OF face; -END_ENTITY; - -ENTITY connected_face_sub_set - SUBTYPE OF (connected_face_set); - parent_face_set : connected_face_set; -END_ENTITY; - -ENTITY connected_volume_set - SUBTYPE OF (topological_representation_item); - cvs_volumes : SET [1 : ?] OF volume_with_faces; -END_ENTITY; - -ENTITY connected_volume_sub_set - SUBTYPE OF (connected_volume_set); - parent_volume_set : connected_volume_set; -END_ENTITY; - -ENTITY connection_zone_interface_plane_relationship - SUBTYPE OF (shape_aspect, shape_aspect_relationship); -UNIQUE - UR1: SELF\shape_aspect_relationship.name; -END_ENTITY; - -ENTITY connectivity_definition - SUBTYPE OF (shape_aspect); -END_ENTITY; - -ENTITY connectivity_definition_item_relationship - SUBTYPE OF (shape_aspect_relationship); - SELF\shape_aspect_relationship.relating_shape_aspect : connectivity_definition; -END_ENTITY; - -ENTITY constant_function - SUBTYPE OF (maths_function, generic_literal); - sole_output : maths_value; - source_of_domain : maths_space_or_function; -WHERE - WR1: no_cyclic_domain_reference(source_of_domain, [SELF]); - WR2: expression_is_constant(domain_from(source_of_domain)); -END_ENTITY; - -ENTITY constituent_shape_aspect - SUBTYPE OF (shape_aspect); - parent : shape_aspect; -DERIVE - SELF\shape_aspect.of_shape : product_definition_shape := get_root_shape_aspect(SELF); -END_ENTITY; - -ENTITY constrained_kinematic_motion_representation - SUBTYPE OF (representation_relationship_with_transformation); - SELF\representation_relationship.rep_1 : representative_shape_representation; - SELF\representation_relationship.rep_2 : representative_shape_representation; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D' IN - TYPEOF(SELF\representation_relationship_with_transformation.transformation_operator\item_defined_transformation.transform_item_1)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D' IN - TYPEOF(SELF\representation_relationship_with_transformation.transformation_operator\item_defined_transformation.transform_item_2)); - WR2: ((dimension_of(SELF\representation_relationship_with_transformation.transformation_operator\item_defined_transformation.transform_item_1) = - 3) AND - (dimension_of(SELF\representation_relationship_with_transformation.transformation_operator\item_defined_transformation.transform_item_2) = - 3)); - WR3: (SELF\representation_relationship.rep_1 IN - (using_representations(SELF\representation_relationship_with_transformation.transformation_operator\item_defined_transformation.transform_item_1) + - using_representation_with_mapping(SELF\representation_relationship_with_transformation.transformation_operator\item_defined_transformation.transform_item_1))) AND - (SELF\representation_relationship.rep_2 IN - (using_representations(SELF\representation_relationship_with_transformation.transformation_operator\item_defined_transformation.transform_item_2) + - using_representation_with_mapping(SELF\representation_relationship_with_transformation.transformation_operator\item_defined_transformation.transform_item_2))); - WR4: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.KINEMATIC_PAIR' IN - TYPEOF(SELF\representation_relationship_with_transformation.transformation_operator); -END_ENTITY; - -ENTITY constructive_geometry_representation - SUBTYPE OF (representation); -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_REPRESENTATION_CONTEXT' IN - TYPEOF(SELF\representation.context_of_items)) AND - ({2 <= SELF\representation.context_of_items\geometric_representation_context.coordinate_space_dimension <= 3}); - WR2: SIZEOF(QUERY(cgr_i - <* SELF.items - | SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SET', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_EDGE_SET', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT'] * - TYPEOF(cgr_i)) <> - 1)) = - 0; - WR3: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_RELATIONSHIP.REP_2')) > 0; -END_ENTITY; - -ENTITY constructive_geometry_representation_relationship - SUBTYPE OF (representation_relationship); - SELF\representation_relationship.rep_1 : constructive_geometry_representation_or_shape_representation; - SELF\representation_relationship.rep_2 : constructive_geometry_representation; -WHERE - WR1: (SELF.rep_1.context_of_items :=: SELF.rep_2.context_of_items) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_REPRESENTATION_CONTEXT' IN - TYPEOF(SELF.rep_1.context_of_items)); - WR2: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION' IN - TYPEOF(SELF)); -END_ENTITY; - -ENTITY contact_feature - SUBTYPE OF (shape_aspect); -END_ENTITY; - -ENTITY contact_feature_definition - SUBTYPE OF (shape_feature_definition); -END_ENTITY; - -ENTITY contact_feature_definition_fit_relationship - SUBTYPE OF (shape_feature_definition_fit_relationship); - SELF\characterized_object_relationship.relating_object : contact_feature_definition; - SELF\characterized_object_relationship.related_object : contact_feature_definition; -END_ENTITY; - -ENTITY contact_feature_fit_relationship - SUBTYPE OF (shape_feature_fit_relationship); - SELF\shape_aspect_relationship.relating_shape_aspect : contact_feature; - SELF\shape_aspect_relationship.related_shape_aspect : contact_feature; -END_ENTITY; - -ENTITY contact_ratio_representation - SUBTYPE OF (representation); -WHERE - WR1: (SIZEOF(SELF.items) = 1) AND - (SIZEOF(QUERY(i - <* SELF.items - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VALUE_RANGE'] * - TYPEOF(i)) = - 1) AND - (i.name = 'ratio value'))) = - 1); - WR2: (SIZEOF(QUERY(pdr - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION') - | pdr\property_definition_representation.name = 'contact ratio reference')) = - 1) AND - (SIZEOF(QUERY(pdr - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION') - | (pdr\property_definition_representation.name = 'contact ratio reference') AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION' IN - TYPEOF(pdr\property_definition_representation.definition\property_definition.definition)))) = - 1); - WR3: (SIZEOF(USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION')) = - 1) AND - (SIZEOF(QUERY(pdr - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION') - | SIZEOF(QUERY(gpa - <* USEDIN(pdr.definition, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GENERAL_PROPERTY_ASSOCIATION.DERIVED_DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GENERAL_PROPERTY' IN - TYPEOF(gpa\general_property_association.base_definition)) AND - (gpa\general_property_association.base_definition\general_property.name = - 'surface_condition'))) = - 1)) = - 1); -END_ENTITY; - -ENTITY contacting_feature - SUBTYPE OF (shape_aspect); -WHERE - WR1: SELF\shape_aspect.product_definitional = false; -END_ENTITY; - -ENTITY containing_message - SUBTYPE OF (group_assignment); - items : SET [1 : 1] OF structured_message; - SELF\group_assignment.assigned_group : message_contents_group; -DERIVE - message_contents_group : message_contents_group := SELF\group_assignment.assigned_group; -END_ENTITY; - -ENTITY context_dependent_invisibility - SUBTYPE OF (invisibility); - presentation_context : invisibility_context; -END_ENTITY; - -ENTITY context_dependent_kinematic_link_representation; - representation_relation : kinematic_link_representation_association; - represented_product_relation : product_definition_relationship_kinematics; -END_ENTITY; - -ENTITY context_dependent_over_riding_styled_item - SUBTYPE OF (over_riding_styled_item); - style_context : LIST [1 : ?] OF style_context_select; -WHERE - WR1: (SIZEOF(QUERY(sc - <* style_context - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_ITEM' IN TYPEOF(sc))) = - 1) OR - (SIZEOF(QUERY(sc - <* style_context - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF(sc)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONTEXT_DEPENDENT_SHAPE_REPRESENTATION' IN - TYPEOF(sc)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_RELATIONSHIP' IN - TYPEOF(sc)))) = - SIZEOF(style_context)); -END_ENTITY; - -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: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_RELATIONSHIP' IN - TYPEOF(SELF.represented_product_relation.definition); - WR2: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= - 1; - WR3: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; -END_ENTITY; - -ENTITY context_dependent_unit - SUBTYPE OF (named_unit); - name : label; -END_ENTITY; - -ENTITY continuous_shape_aspect - SUPERTYPE OF (ONEOF(between_shape_aspect, all_around_shape_aspect)) - SUBTYPE OF (composite_shape_aspect); -END_ENTITY; - -ENTITY contract; - name : label; - purpose : text; - kind : contract_type; -END_ENTITY; - -ENTITY contract_assignment - ABSTRACT SUPERTYPE; - assigned_contract : contract; -DERIVE - role : object_role := get_role(SELF); -WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; -END_ENTITY; - -ENTITY contract_relationship; - id : identifier; - name : label; - description : OPTIONAL text; - relating_contract : contract; - related_contract : contract; -END_ENTITY; - -ENTITY contract_type; - description : label; -END_ENTITY; - -ENTITY conversion_based_unit - SUBTYPE OF (named_unit); - name : label; - conversion_factor : measure_with_unit; -WHERE - WR1: SELF\named_unit.dimensions = derive_dimensional_exponents(conversion_factor\measure_with_unit.unit_component); -END_ENTITY; - -ENTITY convex_hexahedron - SUBTYPE OF (faceted_primitive); -WHERE - WR1: SIZEOF(points) = 8; - WR2: above_plane(points[1], points[2], points[3], points[4]) = 0.0; - WR3: above_plane(points[5], points[8], points[7], points[6]) = 0.0; - WR4: above_plane(points[1], points[4], points[8], points[5]) = 0.0; - WR5: above_plane(points[4], points[3], points[7], points[8]) = 0.0; - WR6: above_plane(points[3], points[2], points[6], points[7]) = 0.0; - WR7: above_plane(points[1], points[5], points[6], points[2]) = 0.0; - WR8: same_side([points[1],points[2],points[3]], [points[5],points[6],points[7],points[8]]); - WR9: same_side([points[1],points[4],points[8]], [points[3],points[7],points[6],points[2]]); - WR10: same_side([points[1],points[2],points[5]], [points[3],points[7],points[8],points[4]]); - WR11: same_side([points[5],points[6],points[7]], [points[1],points[2],points[3],points[4]]); - WR12: same_side([points[3],points[7],points[6]], [points[1],points[4],points[8],points[5]]); - WR13: same_side([points[3],points[7],points[8]], [points[1],points[5],points[6],points[2]]); -END_ENTITY; - -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 < 24}; - WR2: {0 <= actual_minute_offset <= 59}; - WR3: NOT (((hour_offset <> 0) OR (actual_minute_offset <> 0)) AND (sense = exact)); -END_ENTITY; - -ENTITY coordinates_list - SUBTYPE OF (tessellated_item); - npoints : INTEGER; - position_coords : LIST [1 : ?] OF LIST [3 : 3] OF REAL; -WHERE - WR1: npoints = SIZEOF(position_coords); - WR2: SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPOSITIONED_TESSELLATED_ITEM'] * TYPEOF(SELF)) = 0; -END_ENTITY; - -ENTITY cos_function - SUBTYPE OF (unary_function_call); -END_ENTITY; - -ENTITY counterbore_hole_definition - SUBTYPE OF (explicit_composite_hole); - counterbore : LIST [1 : ?] OF UNIQUE explicit_round_hole; - drilled_hole_depth : OPTIONAL positive_length_measure_with_unit; - drilled_hole_depth_tolerance : OPTIONAL tolerance_value; - drilled_hole_diameter : positive_length_measure_with_unit; - drilled_hole_diameter_tolerance : OPTIONAL tolerance_value_or_limits_and_fits; - through_hole : BOOLEAN; -WHERE - WR1: through_hole XOR EXISTS(drilled_hole_depth); - WR2: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN - TYPEOF(drilled_hole_depth_tolerance\tolerance_value.lower_bound); - WR3: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN - TYPEOF(drilled_hole_depth_tolerance\tolerance_value.upper_bound); - WR4: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TOLERANCE_VALUE' IN - TYPEOF(drilled_hole_diameter_tolerance)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN - TYPEOF(drilled_hole_diameter_tolerance\tolerance_value.lower_bound)); - WR5: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TOLERANCE_VALUE' IN - TYPEOF(drilled_hole_diameter_tolerance)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN - TYPEOF(drilled_hole_diameter_tolerance\tolerance_value.upper_bound)); -END_ENTITY; - -ENTITY counterbore_hole_occurrence - SUBTYPE OF (shape_aspect_occurrence); - SELF\shape_aspect_occurrence.definition : counterbore_hole_definition; -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION' IN - TYPEOF(SELF\shape_aspect.of_shape\property_definition.definition); - WR2: SELF\shape_aspect.product_definitional = true; -END_ENTITY; - -ENTITY counterbore_hole_occurrence_in_assembly - SUBTYPE OF (counterbore_hole_occurrence); - modified_components : LIST [1 : ?] OF UNIQUE multi_level_reference_designator; -END_ENTITY; - -ENTITY counterdrill_hole_definition - SUBTYPE OF (explicit_composite_hole); - counterbore : explicit_round_hole; - counterdrill_angle : positive_plane_angle_measure_with_unit; - counterdrill_angle_tolerance : tolerance_value; - drilled_hole_depth : OPTIONAL positive_length_measure_with_unit; - drilled_hole_depth_tolerance : OPTIONAL tolerance_value; - drilled_hole_diameter : positive_length_measure_with_unit; - drilled_hole_diameter_tolerance : OPTIONAL tolerance_value_or_limits_and_fits; - through_hole : BOOLEAN; -WHERE - WR1: through_hole XOR EXISTS(drilled_hole_depth); - WR2: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' IN - TYPEOF(counterdrill_angle_tolerance\tolerance_value.lower_bound); - WR3: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' IN - TYPEOF(counterdrill_angle_tolerance\tolerance_value.upper_bound); - WR4: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN - TYPEOF(drilled_hole_depth_tolerance\tolerance_value.lower_bound); - WR5: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN - TYPEOF(drilled_hole_depth_tolerance\tolerance_value.upper_bound); - WR6: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TOLERANCE_VALUE' IN - TYPEOF(drilled_hole_diameter_tolerance)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN - TYPEOF(drilled_hole_diameter_tolerance\tolerance_value.lower_bound)); - WR7: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TOLERANCE_VALUE' IN - TYPEOF(drilled_hole_diameter_tolerance)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN - TYPEOF(drilled_hole_diameter_tolerance\tolerance_value.upper_bound)); -END_ENTITY; - -ENTITY counterdrill_hole_occurrence - SUBTYPE OF (shape_aspect_occurrence); - SELF\shape_aspect_occurrence.definition : counterdrill_hole_definition; -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION' IN - TYPEOF(SELF\shape_aspect.of_shape\property_definition.definition); - WR2: SELF\shape_aspect.product_definitional = true; -END_ENTITY; - -ENTITY counterdrill_hole_occurrence_in_assembly - SUBTYPE OF (counterdrill_hole_occurrence); - modified_components : LIST [1 : ?] OF UNIQUE multi_level_reference_designator; -END_ENTITY; - -ENTITY countersink_hole_definition - SUBTYPE OF (explicit_composite_hole); - countersink_angle : positive_plane_angle_measure_with_unit; - countersink_angle_tolerance : tolerance_value; - countersink_diameter : positive_length_measure_with_unit; - countersink_diameter_tolerance : OPTIONAL tolerance_value_or_limits_and_fits; - drilled_hole_depth : OPTIONAL positive_length_measure_with_unit; - drilled_hole_depth_tolerance : OPTIONAL tolerance_value; - drilled_hole_diameter : positive_length_measure_with_unit; - drilled_hole_diameter_tolerance : OPTIONAL tolerance_value_or_limits_and_fits; - through_hole : BOOLEAN; -WHERE - WR1: through_hole XOR EXISTS(drilled_hole_depth); - WR2: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' IN - TYPEOF(countersink_angle_tolerance\tolerance_value.lower_bound); - WR3: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' IN - TYPEOF(countersink_angle_tolerance\tolerance_value.upper_bound); - WR4: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TOLERANCE_VALUE' IN - TYPEOF(countersink_diameter_tolerance)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN - TYPEOF(countersink_diameter_tolerance\tolerance_value.lower_bound)); - WR5: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TOLERANCE_VALUE' IN - TYPEOF(countersink_diameter_tolerance)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN - TYPEOF(countersink_diameter_tolerance\tolerance_value.upper_bound)); - WR6: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN - TYPEOF(drilled_hole_depth_tolerance\tolerance_value.lower_bound); - WR7: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN - TYPEOF(drilled_hole_depth_tolerance\tolerance_value.upper_bound); - WR8: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TOLERANCE_VALUE' IN - TYPEOF(drilled_hole_diameter_tolerance)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN - TYPEOF(drilled_hole_diameter_tolerance\tolerance_value.lower_bound)); - WR9: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TOLERANCE_VALUE' IN - TYPEOF(drilled_hole_diameter_tolerance)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN - TYPEOF(drilled_hole_diameter_tolerance\tolerance_value.upper_bound)); -END_ENTITY; - -ENTITY countersink_hole_occurrence - SUBTYPE OF (shape_aspect_occurrence); - SELF\shape_aspect_occurrence.definition : countersink_hole_definition; -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION' IN - TYPEOF(SELF\shape_aspect.of_shape\property_definition.definition); - WR2: SELF\shape_aspect.product_definitional = true; -END_ENTITY; - -ENTITY countersink_hole_occurrence_in_assembly - SUBTYPE OF (countersink_hole_occurrence); - modified_components : LIST [1 : ?] OF UNIQUE multi_level_reference_designator; -END_ENTITY; - -ENTITY criterion_report_item_with_number_of_instances - SUBTYPE OF (data_equivalence_inspection_criterion_report_item); - statistical_value : count_measure; - value_type : summary_report_style_type; -END_ENTITY; - -ENTITY criterion_report_item_with_value - SUBTYPE OF (data_equivalence_inspection_criterion_report_item); - report_value : measure_with_unit; - value_type : label; -END_ENTITY; - -ENTITY cross_sectional_alternative_shape_element - SUBTYPE OF (cross_sectional_part_shape_element); -INVERSE - items : SET [2:?] OF shape_aspect_relationship FOR relating_shape_aspect; -END_ENTITY; - -ENTITY cross_sectional_group_shape_element - SUPERTYPE OF (ONEOF(cross_sectional_group_shape_element_with_tubular_cover, - cross_sectional_group_shape_element_with_lacing, twisted_cross_sectional_group_shape_element)) - SUBTYPE OF (cross_sectional_part_shape_element); -INVERSE - items : SET [1:?] OF shape_aspect_relationship FOR relating_shape_aspect; -END_ENTITY; - -ENTITY cross_sectional_group_shape_element_with_lacing - SUBTYPE OF (cross_sectional_group_shape_element); -END_ENTITY; - -ENTITY cross_sectional_group_shape_element_with_tubular_cover - SUBTYPE OF (cross_sectional_group_shape_element); -END_ENTITY; - -ENTITY cross_sectional_occurrence_shape_element - SUBTYPE OF (shape_aspect); -END_ENTITY; - -ENTITY cross_sectional_part_shape_element - SUPERTYPE OF (ONEOF(cross_sectional_alternative_shape_element, cross_sectional_group_shape_element)) - SUBTYPE OF (shape_aspect); -END_ENTITY; - -ENTITY csg_2d_shape_representation - SUBTYPE OF (shape_representation); - SELF\representation.items : SET [1 : ?] OF csg_2d_shape_select; -WHERE - WR1: SELF.context_of_items\geometric_representation_context.coordinate_space_dimension = 2; - WR2: SIZEOF(QUERY(it - <* SELF.items - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CSG_SOLID'] * TYPEOF(it)) = 1) OR - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF(it)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CSG_2D_SHAPE_REPRESENTATION' IN - TYPEOF(it\mapped_item.mapping_source.mapped_representation))))) >= - 1; - WR3: SIZEOF(QUERY(it - <* SELF.items - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF(it)) AND - (NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CSG_2D_SHAPE_REPRESENTATION') IN - TYPEOF(it\mapped_item.mapping_source.mapped_representation)))))) = - 0; -END_ENTITY; - -ENTITY csg_primitive_solid_2d - SUBTYPE OF (csg_solid_2d); - SELF\csg_solid.tree_root_expression : bounded_primitive_2d; -END_ENTITY; - -ENTITY csg_shape_representation - SUBTYPE OF (shape_representation); -WHERE - WR1: SELF.context_of_items\geometric_representation_context.coordinate_space_dimension = 3; - WR2: SIZEOF(QUERY(it - <* SELF.items - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CSG_SOLID', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SOLID_REPLICA', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REVOLVED_FACE_SOLID', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXTRUDED_FACE_SOLID'] * - TYPEOF(it)) <> - 1))) = - 0; - WR3: SIZEOF(QUERY(mi - <* QUERY(it - <* SELF.items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF(it))) - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CSG_SHAPE_REPRESENTATION' IN - TYPEOF(mi\mapped_item.mapping_source.mapped_representation)))) = - 0; - WR4: SIZEOF(QUERY(sr - <* QUERY(it - <* SELF.items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SOLID_REPLICA' IN TYPEOF(it))) - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CSG_SOLID', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REVOLVED_FACE_SOLID', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXTRUDED_FACE_SOLID'] * - TYPEOF(sr\solid_replica.parent_solid)) = - 0))) = - 0; - WR5: SIZEOF(QUERY(it - <* SELF.items - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D' IN TYPEOF(it)))) > - 0; -END_ENTITY; - -ENTITY csg_solid - SUBTYPE OF (solid_model); - tree_root_expression : csg_select; -END_ENTITY; - -ENTITY csg_solid_2d - SUBTYPE OF (csg_solid); - SELF\csg_solid.tree_root_expression : csg_select_2d; -WHERE - WR1: valid_csg_2d_primitives(SELF); -END_ENTITY; - -ENTITY cubic_bezier_tessellated_edge - SUBTYPE OF (tessellated_edge); - SELF\tessellated_edge.line_strip : LIST [4 : ?] OF INTEGER; -END_ENTITY; - -ENTITY cubic_bezier_triangulated_face - SUBTYPE OF (tessellated_face); - ctriangles : LIST [1 : ?] OF LIST [10 : 10] OF INTEGER; -WHERE - WR1: SIZEOF(SELF\tessellated_face.normals) = 0; -END_ENTITY; - -ENTITY cubic_tessellated_connecting_edge - SUBTYPE OF (cubic_bezier_tessellated_edge); - smooth : LOGICAL; - face1 : cubic_bezier_triangulated_face; - face2 : cubic_bezier_triangulated_face; -END_ENTITY; - -ENTITY currency - ABSTRACT SUPERTYPE OF ((ONEOF(externally_defined_currency, iso4217_currency))) - SUBTYPE OF (context_dependent_unit); -WHERE - WR1: ((SELF\named_unit.dimensions.length_exponent = 0.0) AND (SELF\named_unit.dimensions.mass_exponent = 0.0) AND - (SELF\named_unit.dimensions.time_exponent = 0.0) AND - (SELF\named_unit.dimensions.electric_current_exponent = 0.0) AND - (SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0.0) AND - (SELF\named_unit.dimensions.amount_of_substance_exponent = 0.0) AND - (SELF\named_unit.dimensions.luminous_intensity_exponent = 0.0)); -END_ENTITY; - -ENTITY currency_measure_with_unit - SUBTYPE OF (measure_with_unit); - SELF\measure_with_unit.unit_component : currency; -END_ENTITY; - -ENTITY current_change_element_assignment - SUBTYPE OF (group_assignment); - SELF\group_assignment.assigned_group : current_element_assignment_select; - items : SET [1 : ?] OF change_management_object; -END_ENTITY; - -ENTITY curve - SUPERTYPE OF (ONEOF(line, conic, clothoid, circular_involute, pcurve, surface_curve, offset_curve_2d, - offset_curve_3d, curve_replica)) - SUBTYPE OF (geometric_representation_item); -END_ENTITY; - -ENTITY curve_11 - SUBTYPE OF (geometric_representation_item); -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE' IN TYPEOF(SELF)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(SELF)); -END_ENTITY; - -ENTITY curve_based_path - SUBTYPE OF (path_node); - path_curve : curve; -END_ENTITY; - -ENTITY curve_based_path_with_orientation - SUBTYPE OF (kinematic_path_segment); - position_curve : bounded_curve; - orientation_curve : bounded_curve; -WHERE - WR1: TYPEOF(position_curve) = TYPEOF(orientation_curve); -END_ENTITY; - -ENTITY curve_based_path_with_orientation_and_parameters - SUBTYPE OF (curve_based_path_with_orientation); - parameters : path_parameter_representation; -END_ENTITY; - -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 - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OUTER_BOUNDARY_CURVE' IN TYPEOF(temp))) = - 0); - WR2: (NOT (implicit_outer)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOUNDED_SURFACE' IN TYPEOF(basis_surface)); - WR3: SIZEOF(QUERY(temp - <* boundaries - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.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; - -ENTITY curve_dimension - SUBTYPE OF (dimension_curve_directed_callout); -END_ENTITY; - -ENTITY curve_distance_geometric_constraint - SUBTYPE OF (explicit_geometric_constraint); - SELF\explicit_constraint.constrained_elements : SET [1 : 2] OF curve; - SELF\explicit_constraint.reference_elements : SET [0 : 4] OF point_curve_or_surface_constraint_element; - near_points : SET [0 : 4] OF near_point_relationship; -WHERE - WR1: (SIZEOF(SELF\explicit_constraint.reference_elements) > 0) OR - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CDGC_WITH_DIMENSION' IN TYPEOF(SELF)) AND - (SIZEOF(SELF\explicit_constraint.constrained_elements) = 2)); - WR2: SIZEOF(near_points) <= SIZEOF(SELF\explicit_constraint.reference_elements); - WR3: SIZEOF(QUERY(q - <* near_points - | NOT (q\representation_item_relationship.relating_representation_item IN - SELF\explicit_constraint.reference_elements))) = - 0; -END_ENTITY; - -ENTITY curve_length_geometric_constraint - SUBTYPE OF (explicit_geometric_constraint); - SELF\explicit_constraint.constrained_elements : SET [1 : ?] OF bounded_curve; -WHERE - WR1: SIZEOF(SELF\explicit_constraint.reference_elements) = 0; -END_ENTITY; - -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; - -ENTITY curve_segment_set - SUBTYPE OF (geometric_representation_item); - segments : SET [1 : ?] OF composite_curve_segment; -END_ENTITY; - -ENTITY curve_smoothness_geometric_constraint - SUBTYPE OF (explicit_geometric_constraint); - SELF\explicit_constraint.constrained_elements : SET [1 : 1] OF curve_segment_set; - smoothness : transition_code; -WHERE - WR1: SIZEOF(SELF\explicit_constraint.reference_elements) = 0; -END_ENTITY; - -ENTITY curve_style - SUBTYPE OF (founded_item); - name : label; - curve_font : OPTIONAL curve_font_or_scaled_curve_font_select; - curve_width : OPTIONAL size_select; - curve_colour : OPTIONAL colour; -WHERE - WR1: EXISTS(curve_font) OR EXISTS(curve_width) OR EXISTS(curve_colour); -END_ENTITY; - -ENTITY curve_style_font - SUBTYPE OF (founded_item); - name : label; - pattern_list : LIST [1 : ?] OF curve_style_font_pattern; -END_ENTITY; - -ENTITY curve_style_font_and_scaling - SUBTYPE OF (founded_item); - name : label; - curve_font : curve_style_font_select; - curve_font_scaling : REAL; -END_ENTITY; - -ENTITY curve_style_font_pattern - SUBTYPE OF (founded_item); - visible_segment_length : positive_length_measure; - invisible_segment_length : positive_length_measure; -END_ENTITY; - -ENTITY curve_style_parameters_representation - SUBTYPE OF (representation); -END_ENTITY; - -ENTITY curve_style_parameters_with_ends - SUBTYPE OF (curve_style_parameters_representation); -END_ENTITY; - -ENTITY curve_style_rendering; - rendering_method : shading_curve_method; - rendering_properties : surface_rendering_properties; -END_ENTITY; - -ENTITY curve_swept_solid_shape_representation - SUBTYPE OF (shape_representation); -WHERE - WR1: SIZEOF(QUERY(it - <* SELF.items - | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SWEPT_AREA_SOLID', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SWEPT_DISK_SOLID', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D'] * - TYPEOF(it)) = - 1))) = - 0; - WR2: SIZEOF(QUERY(it - <* SELF.items - | SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SWEPT_AREA_SOLID', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SWEPT_DISK_SOLID', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM'] * - TYPEOF(it)) = - 1)) > - 0; - WR3: SIZEOF(QUERY(mi - <* QUERY(it <* items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF(it)) - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_SWEPT_SOLID_SHAPE_REPRESENTATION' IN - TYPEOF(mi\mapped_item.mapping_source.mapped_representation)))) = - 0; - WR4: SIZEOF(QUERY(scsas - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_CURVE_SWEPT_AREA_SOLID' IN - TYPEOF(it)) - | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_CURVE' IN - TYPEOF(scsas\surface_curve_swept_area_solid.directrix)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PCURVE' IN - TYPEOF(scsas\surface_curve_swept_area_solid.directrix))))) = - 0; -END_ENTITY; - -ENTITY curve_with_excessive_segments - SUBTYPE OF (overcomplex_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN - TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' IN - value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE'); - WR3: validate_inspected_elements_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_OR_COMPOSITE_CURVE_SELECT']); - WR4: validate_locations_of_extreme_value_type(SELF, []); - WR5: validate_accuracy_types(SELF, []); -END_ENTITY; - -ENTITY curve_with_small_curvature_radius - SUBTYPE OF (geometry_with_local_near_degeneracy); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' IN - TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN - value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE'); - WR3: validate_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE']); - WR4: validate_locations_of_extreme_value_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_CURVE']); - WR5: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); -END_ENTITY; - -ENTITY cyclide_segment_solid - SUBTYPE OF (geometric_representation_item); - position : axis2_placement_3d; - radius1 : positive_length_measure; - radius2 : positive_length_measure; - cone_angle1 : plane_angle_measure; - cone_angle2 : plane_angle_measure; - turn_angle : plane_angle_measure; -END_ENTITY; - -ENTITY cylindrical_11 - SUBTYPE OF (geometric_representation_item); -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE' IN TYPEOF(SELF)); -END_ENTITY; - -ENTITY cylindrical_pair - SUBTYPE OF (low_order_kinematic_pair); -DERIVE - SELF\low_order_kinematic_pair.t_x : BOOLEAN := false; - SELF\low_order_kinematic_pair.t_y : BOOLEAN := false; - SELF\low_order_kinematic_pair.t_z : BOOLEAN := true; - SELF\low_order_kinematic_pair.r_x : BOOLEAN := false; - SELF\low_order_kinematic_pair.r_y : BOOLEAN := false; - SELF\low_order_kinematic_pair.r_z : BOOLEAN := true; -END_ENTITY; - -ENTITY cylindrical_pair_value - SUBTYPE OF (pair_value); - SELF\pair_value.applies_to_pair : cylindrical_pair; - actual_translation : length_measure; - actual_rotation : plane_angle_measure; -END_ENTITY; - -ENTITY cylindrical_pair_with_range - SUBTYPE OF (cylindrical_pair); - lower_limit_actual_translation : OPTIONAL length_measure; - upper_limit_actual_translation : OPTIONAL length_measure; - lower_limit_actual_rotation : OPTIONAL plane_angle_measure; - upper_limit_actual_rotation : OPTIONAL plane_angle_measure; -WHERE - WR1: (NOT EXISTS(lower_limit_actual_translation) OR NOT EXISTS(upper_limit_actual_translation)) XOR - (lower_limit_actual_translation < upper_limit_actual_translation); - WR2: (NOT EXISTS(lower_limit_actual_rotation) OR NOT EXISTS(upper_limit_actual_rotation)) XOR - (lower_limit_actual_rotation < upper_limit_actual_rotation); -END_ENTITY; - -ENTITY cylindrical_point - SUBTYPE OF (cartesian_point); - r : length_measure; - theta : plane_angle_measure; - z : length_measure; -DERIVE - SELF\cartesian_point.coordinates : LIST [3 : 3] OF length_measure := [r * COS(theta),r * SIN(theta),z]; -WHERE - WR1: r >= 0.0; -END_ENTITY; - -ENTITY cylindrical_surface - SUBTYPE OF (elementary_surface); - radius : positive_length_measure; -END_ENTITY; - -ENTITY cylindrical_volume - SUBTYPE OF (volume); - position : axis2_placement_3d; - radius : positive_length_measure; - height : positive_length_measure; -END_ENTITY; - -ENTITY cylindricity_tolerance - SUBTYPE OF (geometric_tolerance); -WHERE - WR1: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' IN TYPEOF(SELF)); -END_ENTITY; - -ENTITY data_environment; - name : label; - description : text; - elements : SET [1 : ?] OF characterized_property_representation; -END_ENTITY; - -ENTITY data_equivalence_assessment_specification; - id : identifier; - name : label; - description : OPTIONAL text; -END_ENTITY; - -ENTITY data_equivalence_criteria_representation - SUBTYPE OF (representation); -WHERE - WR1: SIZEOF(QUERY(q - <* SELF\representation.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_EQUIVALENCE_CRITERION' IN TYPEOF(q))) > - 0; -END_ENTITY; - -ENTITY data_equivalence_criterion - SUBTYPE OF (representation_item); -WHERE - WR1: SIZEOF(QUERY(q - <* bag_to_set(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION.ITEMS')) - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_EQUIVALENCE_INSPECTION_RESULT_REPRESENTATION' IN - TYPEOF(q))) = - 0; -END_ENTITY; - -ENTITY data_equivalence_definition; - id : identifier; - name : label; - description : OPTIONAL text; -END_ENTITY; - -ENTITY data_equivalence_definition_relationship; - id : identifier; - name : label; - description : OPTIONAL text; - relating_data_equivalence_definition : data_equivalence_definition; - related_data_equivalence_definition : data_equivalence_definition; -END_ENTITY; - -ENTITY data_equivalence_definition_representation_relationship; - id : identifier; - name : label; - description : OPTIONAL text; - definition : data_equivalence_definition; - used_representation : used_equivalence_representation_select; -END_ENTITY; - -ENTITY data_equivalence_inspected_element_pair - SUBTYPE OF (representation_item); - comparing_elements : SET [1 : ?] OF inspected_equivalence_element_select; - compared_elements : SET [1 : ?] OF inspected_equivalence_element_select; -WHERE - WR1: SIZEOF(QUERY(q - <* bag_to_set(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION.ITEMS')) - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_EQUIVALENCE_CRITERIA_REPRESENTATION' IN - TYPEOF(q))) = - 0; -END_ENTITY; - -ENTITY data_equivalence_inspection_criterion_report - SUBTYPE OF (data_equivalence_inspection_report); - statistical_values : SET [1 : ?] OF data_equivalence_inspection_criterion_report_item; -END_ENTITY; - -ENTITY data_equivalence_inspection_criterion_report_item - ABSTRACT SUPERTYPE OF ((ONEOF(criterion_report_item_with_number_of_instances, - criterion_report_item_with_value)) ANDOR - (ONEOF(a3m_equivalence_criterion_report_item_with_measured_value, - criterion_report_item_with_number_of_instances, criterion_report_item_with_value))) - SUBTYPE OF (representation_item); -INVERSE - criterion_report : data_equivalence_inspection_criterion_report FOR statistical_values; -WHERE - WR1: SIZEOF(QUERY(q - <* bag_to_set(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION.ITEMS')) - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_EQUIVALENCE_CRITERIA_REPRESENTATION' IN - TYPEOF(q))) = - 0; -END_ENTITY; - -ENTITY data_equivalence_inspection_instance_report - SUBTYPE OF (data_equivalence_inspection_report); - inspected_instances : LIST [1 : ?] OF data_equivalence_inspection_instance_report_item; -END_ENTITY; - -ENTITY data_equivalence_inspection_instance_report_item - SUBTYPE OF (representation_item); - inspected_element : data_equivalence_inspected_element_pair; -WHERE - WR1: SIZEOF(QUERY(q - <* bag_to_set(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION.ITEMS')) - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_EQUIVALENCE_CRITERIA_REPRESENTATION' IN - TYPEOF(q))) = - 0; -END_ENTITY; - -ENTITY data_equivalence_inspection_report - ABSTRACT SUPERTYPE OF (ONEOF(data_equivalence_inspection_criterion_report, - data_equivalence_inspection_instance_report)) - SUBTYPE OF (representation_item); - inspection_result : data_equivalence_inspection_result; -WHERE - WR1: SIZEOF(QUERY(q - <* bag_to_set(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION.ITEMS')) - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_EQUIVALENCE_CRITERIA_REPRESENTATION' IN - TYPEOF(q))) = - 0; -END_ENTITY; - -ENTITY data_equivalence_inspection_requirement - SUBTYPE OF (representation_item); -WHERE - WR1: SIZEOF(QUERY(q - <* bag_to_set(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION.ITEMS')) - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_EQUIVALENCE_INSPECTION_RESULT_REPRESENTATION' IN - TYPEOF(q))) = - 0; -END_ENTITY; - -ENTITY data_equivalence_inspection_result - SUBTYPE OF (representation_item); - criterion_inspected : data_equivalence_criterion; -WHERE - WR1: SIZEOF(QUERY(q - <* bag_to_set(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION.ITEMS')) - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_EQUIVALENCE_CRITERIA_REPRESENTATION' IN - TYPEOF(q))) = - 0; -END_ENTITY; - -ENTITY data_equivalence_inspection_result_representation - SUBTYPE OF (representation); - criteria_inspected : data_equivalence_criteria_representation; -WHERE - WR1: SIZEOF(QUERY(q - <* SELF\representation.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_EQUIVALENCE_INSPECTION_RESULT' IN - TYPEOF(q))) > - 0; -END_ENTITY; - -ENTITY data_equivalence_inspection_result_with_judgement - SUBTYPE OF (data_equivalence_inspection_result); - judgement : BOOLEAN; -END_ENTITY; - -ENTITY data_equivalence_report_request; - id : identifier; - name : label; - description : OPTIONAL text; - criterion_of_report_request : data_equivalence_criterion; -END_ENTITY; - -ENTITY data_quality_assessment_measurement_association; - assessment_specification : data_quality_criterion_assessment_association; - measurement_requirement : data_quality_criterion_measurement_association; -WHERE - WR1: SELF.measurement_requirement\representation_item_relationship.relating_representation_item :=: - SELF.assessment_specification.criterion; -END_ENTITY; - -ENTITY data_quality_assessment_specification; - description : text; -END_ENTITY; - -ENTITY data_quality_criteria_representation - SUBTYPE OF (representation); -WHERE - WR1: SIZEOF(QUERY(q - <* SELF\representation.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_QUALITY_CRITERION' IN TYPEOF(q))) > - 0; -END_ENTITY; - -ENTITY data_quality_criterion - SUBTYPE OF (representation_item); -WHERE - WR1: SIZEOF(QUERY(q - <* bag_to_set(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION.ITEMS')) - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_QUALITY_INSPECTION_RESULT_REPRESENTATION' IN - TYPEOF(q))) = - 0; -END_ENTITY; - -ENTITY data_quality_criterion_assessment_association; - criterion : data_quality_criterion; - assessment_specification : data_quality_assessment_specification; -END_ENTITY; - -ENTITY data_quality_criterion_measurement_association - SUBTYPE OF (representation_item_relationship); - SELF\representation_item_relationship.relating_representation_item : data_quality_criterion; - SELF\representation_item_relationship.related_representation_item : data_quality_measurement_requirement; -END_ENTITY; - -ENTITY data_quality_definition; - description : text; -END_ENTITY; - -ENTITY data_quality_definition_relationship; - description : text; - relating_data_quality_definition : data_quality_definition; - related_data_quality_definition : data_quality_definition; -END_ENTITY; - -ENTITY data_quality_definition_representation_relationship; - description : text; - definition : data_quality_definition; - used_representation : used_quality_representation_select; -END_ENTITY; - -ENTITY data_quality_inspection_criterion_report - SUBTYPE OF (data_quality_inspection_report); - statistical_values : SET [1 : 2] OF data_quality_inspection_criterion_report_item; -WHERE - WR1: SIZEOF(QUERY(i1 - <* bag_to_set(USEDIN(SELF\data_quality_inspection_report.inspection_result.criterion_inspected, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_QUALITY_REPORT_REQUEST.CRITERION_OF_REPORT_REQUEST')) - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SUMMARY_REPORT_REQUEST' IN TYPEOF(i1))) > - 0; - WR2: (SIZEOF(SELF.statistical_values) = 1) OR - (SELF.statistical_values[1].value_type <> SELF.statistical_values[2].value_type); -END_ENTITY; - -ENTITY data_quality_inspection_criterion_report_item - SUBTYPE OF (representation_item); - statistical_value : INTEGER; - value_type : statistical_value_type; -WHERE - WR1: SIZEOF(QUERY(q - <* bag_to_set(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION.ITEMS')) - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_QUALITY_CRITERIA_REPRESENTATION' IN - TYPEOF(q))) = - 0; -END_ENTITY; - -ENTITY data_quality_inspection_instance_report - SUBTYPE OF (data_quality_inspection_report); - inspected_instances : LIST [1 : ?] OF data_quality_inspection_instance_report_item; -WHERE - WR1: SIZEOF(QUERY(i1 - <* bag_to_set(USEDIN(SELF\data_quality_inspection_report.inspection_result.criterion_inspected, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_QUALITY_REPORT_REQUEST.CRITERION_OF_REPORT_REQUEST')) - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DETAILED_REPORT_REQUEST' IN TYPEOF(i1))) > - 0; -END_ENTITY; - -ENTITY data_quality_inspection_instance_report_item - SUBTYPE OF (representation_item); - inspected_elements : SET [1 : ?] OF inspected_element_select; -WHERE - WR1: SIZEOF(QUERY(q - <* bag_to_set(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION.ITEMS')) - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_QUALITY_CRITERIA_REPRESENTATION' IN - TYPEOF(q))) = - 0; -END_ENTITY; - -ENTITY data_quality_inspection_report - SUPERTYPE OF (ONEOF(data_quality_inspection_criterion_report, data_quality_inspection_instance_report)) - SUBTYPE OF (representation_item); - inspection_result : data_quality_inspection_result; -WHERE - WR1: SIZEOF(QUERY(q - <* bag_to_set(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION.ITEMS')) - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_QUALITY_CRITERIA_REPRESENTATION' IN - TYPEOF(q))) = - 0; -END_ENTITY; - -ENTITY data_quality_inspection_result - SUBTYPE OF (representation_item); - criterion_inspected : data_quality_criterion; -WHERE - WR1: SIZEOF(QUERY(q - <* bag_to_set(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION.ITEMS')) - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_QUALITY_CRITERIA_REPRESENTATION' IN - TYPEOF(q))) = - 0; -END_ENTITY; - -ENTITY data_quality_inspection_result_representation - SUBTYPE OF (representation); - criteria_inspected : data_quality_criteria_representation; -WHERE - WR1: SIZEOF(QUERY(q - <* SELF\representation.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_QUALITY_INSPECTION_RESULT' IN TYPEOF(q))) > - 0; - WR2: SIZEOF(inspected_product_definition(SELF)) > 0; -END_ENTITY; - -ENTITY data_quality_inspection_result_with_judgement - SUBTYPE OF (data_quality_inspection_result); - judgement : BOOLEAN; -END_ENTITY; - -ENTITY data_quality_measurement_requirement - SUBTYPE OF (representation_item); -WHERE - WR1: SIZEOF(QUERY(q - <* bag_to_set(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION.ITEMS')) - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_QUALITY_INSPECTION_RESULT_REPRESENTATION' IN - TYPEOF(q))) = - 0; -END_ENTITY; - -ENTITY data_quality_report_measurement_association - SUBTYPE OF (representation_item_relationship); - SELF\representation_item_relationship.relating_representation_item : data_quality_measurement_requirement; - SELF\representation_item_relationship.related_representation_item : data_quality_inspection_report; -END_ENTITY; - -ENTITY data_quality_report_request - ABSTRACT SUPERTYPE OF (ONEOF(summary_report_request, detailed_report_request)); - description : text; - criterion_of_report_request : data_quality_criterion; -END_ENTITY; - -ENTITY date - SUPERTYPE OF (ONEOF(calendar_date, ordinal_date, week_of_year_and_day_date, year_month)); - year_component : year_number; -END_ENTITY; - -ENTITY date_and_time; - date_component : date; - time_component : local_time; -END_ENTITY; - -ENTITY date_and_time_assignment - ABSTRACT SUPERTYPE; - assigned_date_and_time : date_and_time; - role : date_time_role; -END_ENTITY; - -ENTITY date_assignment - ABSTRACT SUPERTYPE; - assigned_date : date; - role : date_role; -END_ENTITY; - -ENTITY date_representation_item - SUBTYPE OF (representation_item, date); -END_ENTITY; - -ENTITY date_role; - name : label; -DERIVE - description : text := get_description_value(SELF); -WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= - 1; -END_ENTITY; - -ENTITY date_time_representation_item - SUBTYPE OF (representation_item, date_and_time); -END_ENTITY; - -ENTITY date_time_role; - name : label; -DERIVE - description : text := get_description_value(SELF); -WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= - 1; -END_ENTITY; - -ENTITY dated_effectivity - SUBTYPE OF (effectivity); - effectivity_end_date : OPTIONAL date_time_or_event_occurrence; - effectivity_start_date : OPTIONAL date_time_or_event_occurrence; -WHERE - WR1: EXISTS(effectivity_end_date) OR EXISTS(effectivity_start_date); -END_ENTITY; - -ENTITY datum - SUBTYPE OF (shape_aspect); - identification : identifier; -INVERSE - established_by_relationships : SET [1:?] OF shape_aspect_relationship FOR related_shape_aspect; -UNIQUE - UR1: identification, SELF\shape_aspect.of_shape; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMMON_DATUM' IN TYPEOF(SELF)) XOR - ((SIZEOF(QUERY(x - <* SELF\datum.established_by_relationships - | SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATUM_FEATURE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATUM_TARGET'] * - TYPEOF(x\shape_aspect_relationship.relating_shape_aspect)) = - 1)) >= - 1)); - WR2: SIZEOF(QUERY(x - <* SELF\datum.established_by_relationships - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATUM_FEATURE' IN - TYPEOF(x\shape_aspect_relationship.relating_shape_aspect)))) <= - 1; - WR3: SELF\shape_aspect.product_definitional = false; - WR4: SELF\shape_aspect.name = ''; -END_ENTITY; - -ENTITY datum_feature - SUPERTYPE OF (ONEOF(dimensional_location_with_datum_feature, dimensional_size_with_datum_feature)) - SUBTYPE OF (shape_aspect); -INVERSE - feature_basis_relationship : SET [1:?] OF shape_aspect_relationship FOR relating_shape_aspect; -WHERE - WR1: SIZEOF(QUERY(sar - <* SELF\datum_feature.feature_basis_relationship - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATUM' IN - TYPEOF(sar\shape_aspect_relationship.related_shape_aspect)))) = - 1; - WR2: SELF\shape_aspect.product_definitional = true; -END_ENTITY; - -ENTITY datum_feature_callout - SUBTYPE OF (draughting_callout); -END_ENTITY; - -ENTITY datum_reference; - precedence : INTEGER; - referenced_datum : datum; -WHERE - WR1: precedence > 0; -END_ENTITY; - -ENTITY datum_reference_compartment - SUBTYPE OF (general_datum_reference); -INVERSE - owner : datum_system FOR constituents; -END_ENTITY; - -ENTITY datum_reference_element - SUBTYPE OF (general_datum_reference); -DERIVE - owner : general_datum_reference := sts_get_general_datum_reference(SELF); -WHERE - WR1: SELF <> owner; - WR2: EXISTS(owner); - WR3: SELF\shape_aspect.of_shape = owner\shape_aspect.of_shape; -END_ENTITY; - -ENTITY datum_reference_modifier_with_value; - modifier_type : datum_reference_modifier_type; - modifier_value : length_measure_with_unit; -WHERE - WR1: modifier_value\measure_with_unit.value_component > 0.0; -END_ENTITY; - -ENTITY datum_system - SUBTYPE OF (shape_aspect); - constituents : LIST [1 : 3] OF UNIQUE datum_reference_compartment; -UNIQUE - UR1: SELF\shape_aspect.of_shape, SELF\shape_aspect.name; -WHERE - WR1: SELF\shape_aspect.product_definitional = false; -END_ENTITY; - -ENTITY datum_target - SUBTYPE OF (shape_aspect); - target_id : identifier; -INVERSE - target_basis_relationship : SET [1:?] OF shape_aspect_relationship FOR relating_shape_aspect; -WHERE - WR1: SIZEOF(QUERY(sar - <* SELF\datum_target.target_basis_relationship - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATUM' IN - TYPEOF(sar\shape_aspect_relationship.related_shape_aspect)))) = - 1; - WR2: SELF\shape_aspect.product_definitional = true; -END_ENTITY; - -ENTITY datum_target_callout - SUBTYPE OF (draughting_callout); -END_ENTITY; - -ENTITY default_model_geometric_view - SUBTYPE OF (model_geometric_view, shape_aspect); -DERIVE - SELF\shape_aspect.product_definitional : LOGICAL := false; -UNIQUE - UR1: of_shape; -WHERE - WR1: SELF\characterized_object.name = SELF\shape_aspect.name; - WR2: NOT EXISTS(SELF\characterized_object.description); - WR3: NOT EXISTS(SELF\shape_aspect.description); -END_ENTITY; - -ENTITY default_tolerance_table - SUBTYPE OF (representation); -WHERE - WR1: SIZEOF(QUERY(i - <* SELF.items - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DEFAULT_TOLERANCE_TABLE_CELL' IN - TYPEOF(i)))) = - 0; - WR2: (SIZEOF(QUERY(rr - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_RELATIONSHIP.REP_1') - | rr.name < 'general tolerance definition')) = - 0) AND - (SIZEOF(QUERY(rr - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_RELATIONSHIP.REP_1') - | (rr.name = 'general tolerance definition') AND (rr.rep_2.name < 'default tolerance'))) = - 0) AND - (SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_RELATIONSHIP.REP_2')) = 0); -END_ENTITY; - -ENTITY default_tolerance_table_cell - SUBTYPE OF (compound_representation_item); -WHERE - WR1: SIZEOF(QUERY(x - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION.ITEMS') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DEFAULT_TOLERANCE_TABLE' IN TYPEOF(x))) = - 1; - WR2: default_tolerance_table_cell_wr2(SELF\compound_representation_item.item_element); - WR3: default_tolerance_table_cell_wr3(SELF\compound_representation_item.item_element); - WR4: default_tolerance_table_cell_wr4(SELF\compound_representation_item.item_element); - WR5: default_tolerance_table_cell_wr5(SELF\compound_representation_item.item_element); -END_ENTITY; - -ENTITY defined_character_glyph - SUBTYPE OF (geometric_representation_item); - definition : defined_glyph_select; - placement : axis2_placement; -END_ENTITY; - -ENTITY defined_constraint - ABSTRACT SUPERTYPE OF (equal_parameter_constraint) - SUBTYPE OF (explicit_constraint); -END_ENTITY; - -ENTITY defined_function - ABSTRACT SUPERTYPE OF ((ONEOF(numeric_defined_function, string_defined_function, boolean_defined_function)) ANDOR - sql_mappable_defined_function); -END_ENTITY; - -ENTITY defined_symbol - SUBTYPE OF (geometric_representation_item); - definition : defined_symbol_select; - target : symbol_target; -END_ENTITY; - -ENTITY definite_integral_expression - SUBTYPE OF (quantifier_expression); - lower_limit_neg_infinity : BOOLEAN; - upper_limit_pos_infinity : BOOLEAN; -DERIVE - integrand : generic_expression := SELF\multiple_arity_generic_expression.operands[1]; - variable_of_integration : maths_variable := SELF\multiple_arity_generic_expression.operands[2]; - SELF\quantifier_expression.variables : LIST [1 : 1] OF UNIQUE generic_variable := [variable_of_integration]; -WHERE - WR1: has_values_space(integrand); - WR2: space_is_continuum(values_space_of(integrand)); - WR3: definite_integral_expr_check(SELF\multiple_arity_generic_expression.operands, lower_limit_neg_infinity, - upper_limit_pos_infinity); -END_ENTITY; - -ENTITY definite_integral_function - SUBTYPE OF (maths_function, unary_generic_expression); - SELF\unary_generic_expression.operand : maths_function; - variable_of_integration : input_selector; - lower_limit_neg_infinity : BOOLEAN; - upper_limit_pos_infinity : BOOLEAN; -DERIVE - integrand : maths_function := SELF\unary_generic_expression.operand; -WHERE - WR1: space_is_continuum(integrand.range); - WR2: definite_integral_check(integrand.domain, variable_of_integration, lower_limit_neg_infinity, - upper_limit_pos_infinity); -END_ENTITY; - -ENTITY definitional_product_definition_usage - SUBTYPE OF (product_definition_usage); -UNIQUE - UR1: relating_product_definition, related_product_definition; -END_ENTITY; - -ENTITY definitional_representation - SUBTYPE OF (representation); -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PARAMETRIC_REPRESENTATION_CONTEXT' IN - TYPEOF(SELF\representation.context_of_items); -END_ENTITY; - -ENTITY definitional_representation_relationship - SUBTYPE OF (representation_relationship); -WHERE - WR1: acyclic_representation_relationship(SELF, [SELF\representation_relationship.rep_2], - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION'); -END_ENTITY; - -ENTITY definitional_representation_relationship_with_same_context - SUBTYPE OF (definitional_representation_relationship); -WHERE - WR1: SELF\representation_relationship.rep_1.context_of_items :=: - SELF\representation_relationship.rep_2.context_of_items; -END_ENTITY; - -ENTITY degenerate_pcurve - SUBTYPE OF (point); - basis_surface : surface; - reference_to_curve : definitional_representation; -WHERE - WR1: SIZEOF(reference_to_curve\representation.items) = 1; - WR2: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE' IN TYPEOF(reference_to_curve\representation.items[1]); - WR3: reference_to_curve\representation.items[1]\geometric_representation_item.dim = 2; -END_ENTITY; - -ENTITY degenerate_toroidal_surface - SUBTYPE OF (toroidal_surface); - select_outer : BOOLEAN; -WHERE - WR1: major_radius < minor_radius; -END_ENTITY; - -ENTITY delete_element - SUBTYPE OF (change_element); -END_ENTITY; - -ENTITY dependent_variable_definition - SUBTYPE OF (unary_generic_expression); - name : label; - description : text; -END_ENTITY; - -ENTITY derived_shape_aspect - SUPERTYPE OF (ONEOF(apex, centre_of_symmetry, geometric_alignment, geometric_contact, geometric_intersection, - parallel_offset, perpendicular_to, extension, tangent)) - SUBTYPE OF (shape_aspect); -INVERSE - deriving_relationships : SET [1:?] OF shape_aspect_deriving_relationship FOR relating_shape_aspect; -END_ENTITY; - -ENTITY derived_unit - SUPERTYPE OF (ONEOF(absorbed_dose_unit, acceleration_unit, radioactivity_unit, area_unit, capacitance_unit, - dose_equivalent_unit, electric_charge_unit, conductance_unit, electric_potential_unit, - energy_unit, magnetic_flux_density_unit, force_unit, frequency_unit, illuminance_unit, - inductance_unit, magnetic_flux_unit, power_unit, pressure_unit, resistance_unit, velocity_unit, - volume_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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; -END_ENTITY; - -ENTITY derived_unit_element; - unit : named_unit; - exponent : REAL; -END_ENTITY; - -ENTITY description_attribute; - attribute_value : text; - described_item : description_attribute_select; -END_ENTITY; - -ENTITY description_text; - description : text; -END_ENTITY; - -ENTITY description_text_assignment - ABSTRACT SUPERTYPE; - description : description_text; -END_ENTITY; - -ENTITY description_text_assignment_relationship; - id : OPTIONAL identifier; - description : OPTIONAL text; - relating : description_text_assignment; - related : description_text_assignment; - relation_type : STRING; -WHERE - WR1: acyclic_description_text_assignment_relationship(SELF, [related], - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTION_TEXT_ASSIGNMENT_RELATIONSHIP'); -END_ENTITY; - -ENTITY descriptive_representation_item - SUPERTYPE OF (ONEOF(tagged_text_item, uniform_resource_identifier)) - SUBTYPE OF (representation_item); - description : text; -END_ENTITY; - -ENTITY design_context - SUBTYPE OF (product_definition_context); -WHERE - WR1: SELF.life_cycle_stage = 'design'; -END_ENTITY; - -ENTITY design_make_from_relationship - SUBTYPE OF (product_definition_relationship); -END_ENTITY; - -ENTITY detailed_equivalence_report_request - SUBTYPE OF (data_equivalence_report_request); - report_request_type : detailed_report_style_type; - report_sequence : preferred_report_ordering; -END_ENTITY; - -ENTITY detailed_equivalence_report_request_with_number_of_instances - SUBTYPE OF (detailed_equivalence_report_request); - number_of_instances : INTEGER; -DERIVE - SELF\detailed_equivalence_report_request.report_request_type : detailed_report_style_type := inspected_element; -END_ENTITY; - -ENTITY detailed_report_request - SUBTYPE OF (data_quality_report_request); - detailed_report_request_type : detailed_report_type; - report_sequence : preferred_ordering; -END_ENTITY; - -ENTITY detailed_report_request_with_number_of_data - SUBTYPE OF (detailed_report_request); - number_of_data : INTEGER; -DERIVE - SELF\detailed_report_request.detailed_report_request_type : detailed_report_type := measured_element; -END_ENTITY; - -ENTITY diameter_dimension - SUBTYPE OF (dimension_curve_directed_callout); -END_ENTITY; - -ENTITY dielectric_constant_measure_with_unit - SUBTYPE OF (ratio_measure_with_unit); -END_ENTITY; - -ENTITY different_angle_of_assembly_constraint - SUBTYPE OF (a3m_equivalence_criterion_of_detailed_assembly_data_content); - SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_numerical_test; -DERIVE - SELF\a3m_equivalence_criterion.measured_data_type : a3ma_measured_data_type_name := mdna_plane_angle_measure; - SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF a3ma_detected_difference_type_name := [ddna_binary_assembly_constraint]; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN - TYPEOF(SELF\a3m_equivalence_criterion.assessment_specification\a3m_equivalence_assessment_by_numerical_test.threshold)) AND - (a3ma_get_value_limit_type(SELF\a3m_equivalence_criterion.assessment_specification\a3m_equivalence_assessment_by_numerical_test.threshold) = - SELF.measured_data_type); -END_ENTITY; - -ENTITY different_assembly_centroid - SUBTYPE OF (a3m_equivalence_criterion_of_representative_assembly_property_value); - SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_numerical_test; -DERIVE - SELF\a3m_equivalence_criterion.measured_data_type : a3ma_measured_data_type_name := mdna_length_measure; - SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF a3ma_detected_difference_type_name := [ddna_cartesian_point]; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN - TYPEOF(SELF\a3m_equivalence_criterion.assessment_specification\a3m_equivalence_assessment_by_numerical_test.threshold)) AND - (a3ma_get_value_limit_type(SELF\a3m_equivalence_criterion.assessment_specification\a3m_equivalence_assessment_by_numerical_test.threshold) = - SELF.measured_data_type); -END_ENTITY; - -ENTITY different_assembly_centroid_using_notional_solid - SUBTYPE OF (a3m_equivalence_criterion_of_representative_assembly_property_value); - SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_numerical_test; -DERIVE - SELF\a3m_equivalence_criterion.measured_data_type : a3ma_measured_data_type_name := mdna_length_measure; - SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF a3ma_detected_difference_type_name := [ddna_cartesian_point]; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN - TYPEOF(SELF\a3m_equivalence_criterion.assessment_specification\a3m_equivalence_assessment_by_numerical_test.threshold)) AND - (a3ma_get_value_limit_type(SELF\a3m_equivalence_criterion.assessment_specification\a3m_equivalence_assessment_by_numerical_test.threshold) = - SELF.measured_data_type); -END_ENTITY; - -ENTITY different_assembly_constraint_type - SUBTYPE OF (a3m_equivalence_criterion_of_detailed_assembly_data_content); - SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_logical_test; -DERIVE - SELF\a3m_equivalence_criterion.measured_data_type : a3ma_measured_data_type_name := mdna_boolean_value; - SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF a3ma_detected_difference_type_name := [ddna_binary_assembly_constraint]; -END_ENTITY; - -ENTITY different_assembly_volume - SUBTYPE OF (a3m_equivalence_criterion_of_representative_assembly_property_value); - SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_numerical_test; -DERIVE - SELF\a3m_equivalence_criterion.measured_data_type : a3ma_measured_data_type_name := mdna_volume_measure; - SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF a3ma_detected_difference_type_name := [ddna_volume_measure]; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN - TYPEOF(SELF\a3m_equivalence_criterion.assessment_specification\a3m_equivalence_assessment_by_numerical_test.threshold)) AND - (a3ma_get_value_limit_type(SELF\a3m_equivalence_criterion.assessment_specification\a3m_equivalence_assessment_by_numerical_test.threshold) = - SELF.measured_data_type); -END_ENTITY; - -ENTITY different_bounding_box - SUBTYPE OF (a3m_equivalence_criterion_of_representative_shape_property_value, - a3m_equivalence_inspection_requirement_with_values); - SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_numerical_test; -DERIVE - SELF\a3m_equivalence_criterion.compared_element_types : LIST [3 : 3] OF a3ms_element_type_name := [etns_manifold_solid_brep, - etns_shell_based_surface_model, - etns_shell_based_wireframe_model]; - SELF\a3m_equivalence_criterion.measured_data_type : a3ms_measured_data_type_name := mdns_length_measure; - SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF a3ms_detected_difference_type_name := [ddns_two_cartesian_points]; - SELF\a3m_equivalence_criterion.accuracy_types : LIST [0 : 0] OF a3ms_accuracy_type_name := []; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN - TYPEOF(SELF\a3m_equivalence_criterion.assessment_specification\a3m_equivalence_assessment_by_numerical_test.threshold)) AND - (a3ms_get_value_limit_type(SELF\a3m_equivalence_criterion.assessment_specification\a3m_equivalence_assessment_by_numerical_test.threshold) = - SELF.measured_data_type); - WR2: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN - TYPEOF(SELF\a3m_equivalence_inspection_requirement_with_values.applied_values[1])) AND - (SELF\a3m_equivalence_inspection_requirement_with_values.applied_values[1].name = 'approximation_tolerance'); -END_ENTITY; - -ENTITY different_centroid - SUBTYPE OF (a3m_equivalence_criterion_of_representative_shape_property_value, - a3m_equivalence_inspection_requirement_with_values); - SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_numerical_test; -DERIVE - SELF\a3m_equivalence_criterion.compared_element_types : LIST [3 : 3] OF a3ms_element_type_name := [etns_manifold_solid_brep, - etns_shell_based_surface_model, - etns_shell_based_wireframe_model]; - SELF\a3m_equivalence_criterion.measured_data_type : a3ms_measured_data_type_name := mdns_length_measure; - SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF a3ms_detected_difference_type_name := [ddns_cartesian_point]; - SELF\a3m_equivalence_criterion.accuracy_types : LIST [1 : 1] OF a3ms_accuracy_type_name := [atns_length_measure]; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN - TYPEOF(SELF\a3m_equivalence_criterion.assessment_specification\a3m_equivalence_assessment_by_numerical_test.threshold)) AND - (a3ms_get_value_limit_type(SELF\a3m_equivalence_criterion.assessment_specification\a3m_equivalence_assessment_by_numerical_test.threshold) = - SELF.measured_data_type); - WR2: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN - TYPEOF(SELF\a3m_equivalence_inspection_requirement_with_values.applied_values[1])) AND - (SELF\a3m_equivalence_inspection_requirement_with_values.applied_values[1].name = 'approximation_tolerance'); -END_ENTITY; - -ENTITY different_component_identification_via_multi_level_reference - SUBTYPE OF (a3m_equivalence_criterion_of_assembly_data_structure); - SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_logical_test; -DERIVE - SELF\a3m_equivalence_criterion.measured_data_type : a3ma_measured_data_type_name := mdna_boolean_value; - SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF a3ma_detected_difference_type_name := [ddna_multi_level_reference_designator]; -END_ENTITY; - -ENTITY different_component_shape - SUBTYPE OF (a3m_equivalence_criterion_of_component_property_difference); -DERIVE - SELF\a3m_equivalence_criterion.comparing_element_types : LIST [1 : 1] OF a3ma_element_type_name := [etna_shape_representation]; - SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : 1] OF a3ma_element_type_name := [etna_shape_representation]; - SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF a3ma_detected_difference_type_name := [ddna_a3ms_inspected_equivalence_element_select]; -INVERSE - shape_criteria : SET [1:?] OF a3ma_assembly_and_shape_criteria_relationship FOR relating_representation_item; -END_ENTITY; - -ENTITY different_component_type - SUBTYPE OF (a3m_equivalence_criterion_of_detailed_assembly_data_content); - SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_logical_test; -DERIVE - SELF\a3m_equivalence_criterion.measured_data_type : a3ma_measured_data_type_name := mdna_boolean_value; - SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF a3ma_detected_difference_type_name := [ddna_assembly_component_usage]; -END_ENTITY; - -ENTITY different_curve_length - SUBTYPE OF (a3m_equivalence_criterion_of_representative_shape_property_value, - a3m_equivalence_inspection_requirement_with_values); - SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_numerical_test; -DERIVE - SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : 1] OF a3ms_element_type_name := [etns_connected_edge_set]; - SELF\a3m_equivalence_criterion.measured_data_type : a3ms_measured_data_type_name := mdns_length_measure; - SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF a3ms_detected_difference_type_name := [ddns_length_measure]; - SELF\a3m_equivalence_criterion.accuracy_types : LIST [1 : 1] OF a3ms_accuracy_type_name := [atns_length_measure]; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN - TYPEOF(SELF\a3m_equivalence_criterion.assessment_specification\a3m_equivalence_assessment_by_numerical_test.threshold)) AND - (a3ms_get_value_limit_type(SELF\a3m_equivalence_criterion.assessment_specification\a3m_equivalence_assessment_by_numerical_test.threshold) = - SELF.measured_data_type); - WR2: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN - TYPEOF(SELF\a3m_equivalence_inspection_requirement_with_values.applied_values[1])) AND - (SELF\a3m_equivalence_inspection_requirement_with_values.applied_values[1].name = 'approximation_tolerance'); -END_ENTITY; - -ENTITY different_length_of_assembly_constraint - SUBTYPE OF (a3m_equivalence_criterion_of_detailed_assembly_data_content); - SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_numerical_test; -DERIVE - SELF\a3m_equivalence_criterion.measured_data_type : a3ma_measured_data_type_name := mdna_length_measure; - SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF a3ma_detected_difference_type_name := [ddna_binary_assembly_constraint]; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN - TYPEOF(SELF\a3m_equivalence_criterion.assessment_specification\a3m_equivalence_assessment_by_numerical_test.threshold)) AND - (a3ma_get_value_limit_type(SELF\a3m_equivalence_criterion.assessment_specification\a3m_equivalence_assessment_by_numerical_test.threshold) = - SELF.measured_data_type); -END_ENTITY; - -ENTITY different_number_of_closed_shell - SUBTYPE OF (a3m_equivalence_criterion_of_representative_shape_property_value); - SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_logical_test; -DERIVE - SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : 1] OF a3ms_element_type_name := [etns_manifold_solid_brep]; - SELF\a3m_equivalence_criterion.measured_data_type : a3ms_measured_data_type_name := mdns_boolean_value; - SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF a3ms_detected_difference_type_name := [ddns_count_measure]; - SELF\a3m_equivalence_criterion.accuracy_types : LIST [0 : 0] OF a3ms_accuracy_type_name := []; -END_ENTITY; - -ENTITY different_number_of_components - SUBTYPE OF (a3m_equivalence_criterion_of_representative_assembly_property_value); - SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_logical_test; -DERIVE - SELF\a3m_equivalence_criterion.measured_data_type : a3ma_measured_data_type_name := mdna_boolean_value; - SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF a3ma_detected_difference_type_name := [ddna_count_measure]; -END_ENTITY; - -ENTITY different_number_of_geometric_elements - SUBTYPE OF (a3m_equivalence_criterion_of_representative_shape_property_value); - SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_logical_test; -DERIVE - SELF\a3m_equivalence_criterion.compared_element_types : LIST [2 : 2] OF a3ms_element_type_name := [etns_manifold_solid_brep, - etns_shell_based_surface_model]; - SELF\a3m_equivalence_criterion.measured_data_type : a3ms_measured_data_type_name := mdns_boolean_value; - SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF a3ms_detected_difference_type_name := [ddns_three_count_measure]; - SELF\a3m_equivalence_criterion.accuracy_types : LIST [0 : 0] OF a3ms_accuracy_type_name := []; -END_ENTITY; - -ENTITY different_number_of_geometric_elements_wireframe_model - SUBTYPE OF (a3m_equivalence_criterion_of_representative_shape_property_value); - SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_logical_test; -DERIVE - SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : 1] OF a3ms_element_type_name := [etns_shell_based_wireframe_model]; - SELF\a3m_equivalence_criterion.measured_data_type : a3ms_measured_data_type_name := mdns_boolean_value; - SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF a3ms_detected_difference_type_name := [ddns_two_count_measure]; - SELF\a3m_equivalence_criterion.accuracy_types : LIST [0 : 0] OF a3ms_accuracy_type_name := []; -END_ENTITY; - -ENTITY different_number_of_topological_elements - SUBTYPE OF (a3m_equivalence_criterion_of_representative_shape_property_value); - SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_logical_test; -DERIVE - SELF\a3m_equivalence_criterion.compared_element_types : LIST [2 : 2] OF a3ms_element_type_name := [etns_manifold_solid_brep, - etns_shell_based_surface_model]; - SELF\a3m_equivalence_criterion.measured_data_type : a3ms_measured_data_type_name := mdns_boolean_value; - SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF a3ms_detected_difference_type_name := [ddns_five_count_measure]; - SELF\a3m_equivalence_criterion.accuracy_types : LIST [0 : 0] OF a3ms_accuracy_type_name := []; -END_ENTITY; - -ENTITY different_number_of_topological_elements_wireframe_model - SUBTYPE OF (a3m_equivalence_criterion_of_representative_shape_property_value); - SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_logical_test; -DERIVE - SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : 1] OF a3ms_element_type_name := [etns_shell_based_wireframe_model]; - SELF\a3m_equivalence_criterion.measured_data_type : a3ms_measured_data_type_name := mdns_boolean_value; - SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF a3ms_detected_difference_type_name := [ddns_four_count_measure]; - SELF\a3m_equivalence_criterion.accuracy_types : LIST [0 : 0] OF a3ms_accuracy_type_name := []; -END_ENTITY; - -ENTITY different_placement_of_component - SUBTYPE OF (a3m_equivalence_criterion_of_detailed_assembly_data_content); - SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_numerical_test; -DERIVE - SELF\a3m_equivalence_criterion.measured_data_type : a3ma_measured_data_type_name := mdna_length_measure_and_context_dependent_measure; - SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF a3ma_detected_difference_type_name := [ddna_context_dependent_shape_representation]; -INVERSE - assessment_threshold_2 : a3ma_equivalence_criterion_assessment_threshold_relationship FOR relating_representation_item; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN - TYPEOF(SELF\a3m_equivalence_criterion.assessment_specification\a3m_equivalence_assessment_by_numerical_test.threshold)) AND - (a3ma_get_value_limit_type(SELF\a3m_equivalence_criterion.assessment_specification\a3m_equivalence_assessment_by_numerical_test.threshold) = - mdna_length_measure); - WR2: (a3ma_get_value_limit_type(SELF.assessment_threshold_2\representation_item_relationship.related_representation_item) = - mdna_context_dependent_measure) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONTEXT_DEPENDENT_UNIT' IN - TYPEOF(SELF.assessment_threshold_2\representation_item_relationship.related_representation_item\measure_with_unit.unit_component)); -END_ENTITY; - -ENTITY different_surface_area - SUBTYPE OF (a3m_equivalence_criterion_of_representative_shape_property_value, - a3m_equivalence_inspection_requirement_with_values); - SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_numerical_test; -DERIVE - SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : 1] OF a3ms_element_type_name := [etns_connected_face_set]; - SELF\a3m_equivalence_criterion.measured_data_type : a3ms_measured_data_type_name := mdns_area_measure; - SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF a3ms_detected_difference_type_name := [ddns_area_measure]; - SELF\a3m_equivalence_criterion.accuracy_types : LIST [1 : 1] OF a3ms_accuracy_type_name := [atns_area_measure]; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN - TYPEOF(SELF\a3m_equivalence_criterion.assessment_specification\a3m_equivalence_assessment_by_numerical_test.threshold)) AND - (a3ms_get_value_limit_type(SELF\a3m_equivalence_criterion.assessment_specification\a3m_equivalence_assessment_by_numerical_test.threshold) = - SELF.measured_data_type); - WR2: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN - TYPEOF(SELF\a3m_equivalence_inspection_requirement_with_values.applied_values[1])) AND - (SELF\a3m_equivalence_inspection_requirement_with_values.applied_values[1].name = 'approximation_tolerance'); -END_ENTITY; - -ENTITY different_surface_normal - SUBTYPE OF (a3m_equivalence_criterion_of_detailed_shape_data_content, - a3m_equivalence_inspection_requirement_with_values); - SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_numerical_test; -DERIVE - SELF\a3m_equivalence_criterion.comparing_element_types : LIST [1 : 1] OF a3ms_element_type_name := [etns_connected_face_set]; - SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : 1] OF a3ms_element_type_name := [etns_connected_face_set]; - SELF\a3m_equivalence_criterion.measured_data_type : a3ms_measured_data_type_name := mdns_plane_angle_measure; - SELF\a3m_equivalence_criterion.detected_difference_types : LIST [2 : 2] OF a3ms_detected_difference_type_name := [ddns_cartesian_point, - ddns_point_on_surface]; - SELF\a3m_equivalence_criterion.accuracy_types : LIST [1 : 1] OF a3ms_accuracy_type_name := [atns_plane_angle_measure]; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN - TYPEOF(SELF\a3m_equivalence_criterion.assessment_specification\a3m_equivalence_assessment_by_numerical_test.threshold)) AND - (a3ms_get_value_limit_type(SELF\a3m_equivalence_criterion.assessment_specification\a3m_equivalence_assessment_by_numerical_test.threshold) = - SELF.measured_data_type); - WR2: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN - TYPEOF(SELF\a3m_equivalence_inspection_requirement_with_values.applied_values[1])) AND - (SELF\a3m_equivalence_inspection_requirement_with_values.applied_values[1].name = - 'discretization_distance_tolerance'); -END_ENTITY; - -ENTITY different_volume - SUBTYPE OF (a3m_equivalence_criterion_of_representative_shape_property_value, - a3m_equivalence_inspection_requirement_with_values); - SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_numerical_test; -DERIVE - SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : 1] OF a3ms_element_type_name := [etns_manifold_solid_brep]; - SELF\a3m_equivalence_criterion.measured_data_type : a3ms_measured_data_type_name := mdns_volume_measure; - SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF a3ms_detected_difference_type_name := [ddns_volume_measure]; - SELF\a3m_equivalence_criterion.accuracy_types : LIST [1 : 1] OF a3ms_accuracy_type_name := [atns_volume_measure]; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN - TYPEOF(SELF\a3m_equivalence_criterion.assessment_specification\a3m_equivalence_assessment_by_numerical_test.threshold)) AND - (a3ms_get_value_limit_type(SELF\a3m_equivalence_criterion.assessment_specification\a3m_equivalence_assessment_by_numerical_test.threshold) = - SELF.measured_data_type); - WR2: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN - TYPEOF(SELF\a3m_equivalence_inspection_requirement_with_values.applied_values[1])) AND - (SELF\a3m_equivalence_inspection_requirement_with_values.applied_values[1].name = 'approximation_tolerance'); -END_ENTITY; - -ENTITY dimension_callout - SUBTYPE OF (draughting_callout); -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LEADER_DIRECTED_CALLOUT' IN (TYPEOF(SELF))) XOR - (SIZEOF(QUERY(dce_1 - <* SELF\draughting_callout.contents - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LEADER_CURVE' IN (TYPEOF(dce_1))))) = - 0); - WR2: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROJECTION_DIRECTED_CALLOUT' IN (TYPEOF(SELF))) XOR - (SIZEOF(QUERY(dce_1 - <* SELF\draughting_callout.contents - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROJECTION_CURVE' IN (TYPEOF(dce_1))))) = - 0); - WR3: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSION_CURVE_DIRECTED_CALLOUT' IN (TYPEOF(SELF))) XOR - (SIZEOF(QUERY(dce_1 - <* SELF\draughting_callout.contents - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSION_CURVE' IN (TYPEOF(dce_1))))) = - 0); -END_ENTITY; - -ENTITY dimension_callout_component_relationship - SUBTYPE OF (draughting_callout_relationship); -WHERE - WR1: SELF.name IN ['prefix','suffix']; - WR2: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STRUCTURED_DIMENSION_CALLOUT' IN - TYPEOF(SELF.relating_draughting_callout); - WR3: SIZEOF(TYPEOF(SELF.related_draughting_callout) * - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LEADER_DIRECTED_CALLOUT', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROJECTION_DIRECTED_CALLOUT', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSION_CURVE_DIRECTED_CALLOUT', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STRUCTURED_DIMENSION_CALLOUT']) = - 0; - WR4: SELF.related_draughting_callout.contents * SELF.relating_draughting_callout.contents = - SELF.related_draughting_callout.contents; - WR5: ((SELF.name = 'prefix') AND - (SIZEOF(QUERY(ato - <* QUERY(con - <* SELF.related_draughting_callout.contents - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN - TYPEOF(con))) - | NOT (ato.name = 'prefix text'))) = - 0)); - WR6: ((SELF.name = 'suffix') AND - (SIZEOF(QUERY(ato - <* QUERY(con - <* SELF.related_draughting_callout.contents - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN - TYPEOF(con))) - | NOT (ato.name = 'suffix text'))) = - 0)); -END_ENTITY; - -ENTITY dimension_callout_relationship - SUBTYPE OF (draughting_callout_relationship); -WHERE - WR1: SELF.name IN ['primary','secondary']; - WR2: SIZEOF(TYPEOF(SELF.relating_draughting_callout) * - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANGULAR_DIMENSION', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_DIMENSION', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIAMETER_DIMENSION', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LEADER_DIRECTED_DIMENSION', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINEAR_DIMENSION', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORDINATE_DIMENSION', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RADIUS_DIMENSION']) >= - 1; - WR3: SIZEOF(TYPEOF(SELF.related_draughting_callout) * - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSION_CURVE_DIRECTED_CALLOUT', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROJECTION_DIRECTED_CALLOUT', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LEADER_DIRECTED_CALLOUT']) = - 0; - WR4: SELF.related_draughting_callout.contents * SELF.relating_draughting_callout.contents = - SELF.related_draughting_callout.contents; -END_ENTITY; - -ENTITY dimension_curve - SUBTYPE OF (annotation_curve_occurrence); -WHERE - WR1: (SIZEOF(QUERY(dct - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TERMINATOR_SYMBOL.ANNOTATED_CURVE') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSION_CURVE_TERMINATOR' IN - TYPEOF(dct))))) <= - 2); - WR2: SIZEOF(QUERY(dcdc - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_CALLOUT.CONTENTS') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSION_CURVE_DIRECTED_CALLOUT' IN - TYPEOF(dcdc)))) >= - 1; - WR3: (SIZEOF(QUERY(dct1 - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TERMINATOR_SYMBOL.ANNOTATED_CURVE') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSION_CURVE_TERMINATOR' IN - TYPEOF(dct1)) AND - (dct1\dimension_curve_terminator.role = dimension_extent_usage.origin)))) <= - 1) AND - (SIZEOF(QUERY(dct2 - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TERMINATOR_SYMBOL.ANNOTATED_CURVE') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSION_CURVE_TERMINATOR' IN - TYPEOF(dct2)) AND - (dct2\dimension_curve_terminator.role = dimension_extent_usage.target)))) <= - 1); -END_ENTITY; - -ENTITY dimension_curve_directed_callout - SUBTYPE OF (draughting_callout); -WHERE - WR1: SIZEOF(QUERY(d_c - <* SELF\draughting_callout.contents - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSION_CURVE' IN (TYPEOF(d_c)))) <= - 2; - WR2: SIZEOF(SELF\draughting_callout.contents) >= 2; -END_ENTITY; - -ENTITY dimension_curve_terminator - SUBTYPE OF (terminator_symbol); - role : dimension_extent_usage; -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSION_CURVE' IN - TYPEOF(SELF\terminator_symbol.annotated_curve); -END_ENTITY; - -ENTITY dimension_curve_terminator_to_projection_curve_associativity - SUBTYPE OF (annotation_occurrence_associativity); - SELF\annotation_occurrence_relationship.relating_annotation_occurrence : dimension_curve_terminator; - SELF\annotation_occurrence_relationship.related_annotation_occurrence : projection_curve; -END_ENTITY; - -ENTITY dimension_pair - SUBTYPE OF (draughting_callout_relationship); -WHERE - WR1: SELF.name IN ['chained','parallel']; - WR2: SIZEOF(TYPEOF(SELF.relating_draughting_callout) * - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANGULAR_DIMENSION', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_DIMENSION', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIAMETER_DIMENSION', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINEAR_DIMENSION', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORDINATE_DIMENSION', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RADIUS_DIMENSION']) = - 1; - WR3: SIZEOF(TYPEOF(SELF.related_draughting_callout) * - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANGULAR_DIMENSION', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_DIMENSION', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIAMETER_DIMENSION', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINEAR_DIMENSION', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORDINATE_DIMENSION', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RADIUS_DIMENSION']) = - 1; -END_ENTITY; - -ENTITY dimension_related_tolerance_zone_element; - related_dimension : dimensional_location; - related_element : tolerance_zone_definition; -END_ENTITY; - -ENTITY dimension_text_associativity - SUBTYPE OF (text_literal, mapped_item); -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DIMENSION_REPRESENTATION' IN - TYPEOF(SELF\mapped_item.mapping_source.mapped_representation)); - WR2: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_CALLOUT' IN - TYPEOF(SELF\mapped_item.mapping_target)); - WR3: SIZEOF(QUERY(ato - <* QUERY(si - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM.ITEM') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN - TYPEOF(si))) - | NOT (SIZEOF(QUERY(dc - <* USEDIN(ato, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_CALLOUT.CONTENTS') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_CALLOUT' IN - TYPEOF(dc))) * - [SELF\mapped_item.mapping_target]) = - 1))) = - 0; -END_ENTITY; - -ENTITY dimensional_characteristic_representation; - dimension : dimensional_characteristic; - representation : shape_dimension_representation; -END_ENTITY; - -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; - -ENTITY dimensional_location - SUPERTYPE OF (ONEOF(angular_location, dimensional_location_with_path)) - SUBTYPE OF (shape_aspect_relationship); -WHERE - WR1: SELF\shape_aspect_relationship.relating_shape_aspect :<>: SELF\shape_aspect_relationship.related_shape_aspect; - WR2: SELF\shape_aspect_relationship.relating_shape_aspect.of_shape :=: - SELF\shape_aspect_relationship.related_shape_aspect.of_shape; -END_ENTITY; - -ENTITY dimensional_location_with_datum_feature - SUBTYPE OF (datum_feature, dimensional_location); -END_ENTITY; - -ENTITY dimensional_location_with_path - SUBTYPE OF (dimensional_location); - path : shape_aspect; -END_ENTITY; - -ENTITY dimensional_size - SUPERTYPE OF (ONEOF(angular_size, dimensional_size_with_path)); - applies_to : shape_aspect; - name : label; -DERIVE - id : identifier := get_id_value(SELF); -UNIQUE - UR1: id, applies_to; -WHERE - WR1: applies_to.product_definitional = true; - WR2: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; -END_ENTITY; - -ENTITY dimensional_size_with_datum_feature - SUBTYPE OF (datum_feature, dimensional_size); -WHERE - WR1: SELF\dimensional_size.applies_to :=: SELF; -END_ENTITY; - -ENTITY dimensional_size_with_path - SUBTYPE OF (dimensional_size); - path : shape_aspect; -END_ENTITY; - -ENTITY directed_action - SUBTYPE OF (executed_action); - directive : action_directive; -END_ENTITY; - -ENTITY directed_action_assignment - ABSTRACT SUPERTYPE; - assigned_directed_action : directed_action; -DERIVE - role : object_role := get_role(SELF); -WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; -END_ENTITY; - -ENTITY directed_angle - SUBTYPE OF (shape_aspect); -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN - TYPEOF(SELF.of_shape.definition); - WR2: SIZEOF(QUERY(pdr - <* get_shape_aspect_property_definition_representations(SELF) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)))) = - 1; - WR3: SIZEOF(QUERY(pdr - <* get_shape_aspect_property_definition_representations(SELF) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF(pdr.used_representation.items) = 1))) = - 1; - WR4: SELF.description IN ['punch direction','profile normal','surface normal']; - WR5: SIZEOF(QUERY(pdr - <* get_shape_aspect_property_definition_representations(SELF) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF(QUERY(i - <* pdr.used_representation.items - | (i.name = 'angle') AND - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * - TYPEOF(i)) = - 2))) = - 1))) = - 1; -END_ENTITY; - -ENTITY directed_dimensional_location - SUBTYPE OF (dimensional_location); -END_ENTITY; - -ENTITY directed_tolerance_zone - SUBTYPE OF (tolerance_zone_with_datum); - direction : directed_tolerance_zone_type; -END_ENTITY; - -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; - -ENTITY direction_shape_representation - SUBTYPE OF (shape_representation); -WHERE - WR1: (SIZEOF(SELF.items) = 1); - WR2: (SIZEOF(QUERY(it - <* SELF.items - | (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIRECTION' IN TYPEOF(it))))) = - 0); -END_ENTITY; - -ENTITY disallowed_assembly_relationship_usage - SUBTYPE OF (externally_conditioned_data_quality_criterion); -WHERE - WR1: validate_ecdq_inspected_elements_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ASSEMBLY_COMPONENT_USAGE']); -END_ENTITY; - -ENTITY disconnected_face_set - SUBTYPE OF (erroneous_topology); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; -WHERE - WR1: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE'); - WR2: validate_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SET']); - WR3: validate_locations_of_extreme_value_type(SELF, []); - WR4: validate_accuracy_types(SELF, []); -END_ENTITY; - -ENTITY discontinuous_geometry - ABSTRACT SUPERTYPE OF (ONEOF(g1_discontinuous_curve, g2_discontinuous_curve, g1_discontinuous_surface, - g2_discontinuous_surface)) - SUBTYPE OF (inapt_geometry); -END_ENTITY; - -ENTITY div_expression - SUBTYPE OF (binary_numeric_expression); -END_ENTITY; - -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; - -ENTITY document_file - SUBTYPE OF (document, characterized_object); -WHERE - WR1: SELF\characterized_object.name = ''; - WR2: NOT EXISTS(SELF\characterized_object.description); - WR3: SIZEOF(QUERY(drt <* SELF\document.representation_types | drt.name IN ['digital','physical'])) = 1; -END_ENTITY; - -ENTITY document_identifier - SUBTYPE OF (group); -UNIQUE - UR1: SELF\group.name, SELF\group.description; -END_ENTITY; - -ENTITY document_identifier_assignment - SUBTYPE OF (group_assignment); - SELF\group_assignment.assigned_group : document_identifier; - items : SET [1 : ?] OF document_identifier_assigned_item; -END_ENTITY; - -ENTITY document_product_association; - name : label; - description : OPTIONAL text; - relating_document : document; - related_product : product_or_formation_or_definition; -END_ENTITY; - -ENTITY document_product_equivalence - SUBTYPE OF (document_product_association); -WHERE - WR1: SELF\document_product_association.name = 'equivalence'; - WR2: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT' IN - TYPEOF(SELF\document_product_association.related_product)) OR - ((SELF\document_product_association.relating_document.kind.product_data_type = - 'configuration controlled document') AND - (SIZEOF(QUERY(prpc - <* USEDIN(SELF\document_product_association.related_product, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') - | prpc.name = 'document')) = - 1)); - WR3: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_FORMATION' IN - TYPEOF(SELF.related_product)) OR - ((SELF\document_product_association.relating_document.kind.product_data_type = - 'configuration controlled document version') AND - (SIZEOF(QUERY(prpc - <* USEDIN(SELF.related_product\product_definition_formation.of_product, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') - | prpc.name = 'document')) = - 1)); - WR4: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF(SELF.related_product)) OR - ((SELF\document_product_association.relating_document.kind.product_data_type = - 'configuration controlled document definition') AND - (SIZEOF(QUERY(prpc - <* USEDIN(SELF\document_product_association.related_product\product_definition.formation.of_product, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') - | prpc.name = 'document')) = - 1)); -END_ENTITY; - -ENTITY document_reference - ABSTRACT SUPERTYPE; - assigned_document : document; - source : label; -DERIVE - role : object_role := get_role(SELF); -WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; -END_ENTITY; - -ENTITY document_relationship; - name : label; - description : OPTIONAL text; - relating_document : document; - related_document : document; -END_ENTITY; - -ENTITY document_representation_type; - name : label; - represented_document : document; -END_ENTITY; - -ENTITY document_type; - product_data_type : label; -END_ENTITY; - -ENTITY document_usage_constraint; - source : document; - subject_element : label; - subject_element_value : text; -END_ENTITY; - -ENTITY document_usage_constraint_assignment - ABSTRACT SUPERTYPE; - assigned_document_usage : document_usage_constraint; - role : document_usage_role; -END_ENTITY; - -ENTITY document_usage_role; - name : label; - description : OPTIONAL text; -END_ENTITY; - -ENTITY dose_equivalent_measure_with_unit - SUBTYPE OF (measure_with_unit); -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DOSE_EQUIVALENT_UNIT' IN - TYPEOF(SELF\measure_with_unit.unit_component); -END_ENTITY; - -ENTITY dose_equivalent_unit - SUBTYPE OF (derived_unit); -WHERE - WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit(si_unit_name.sievert); -END_ENTITY; - -ENTITY double_offset_shelled_solid - SUBTYPE OF (shelled_solid); - thickness2 : length_measure; -WHERE - WR1: thickness2 <> 0; - WR2: SELF\shelled_solid.thickness <> thickness2; -END_ENTITY; - -ENTITY draped_defined_transformation - SUBTYPE OF (transformation_with_derived_angle); -END_ENTITY; - -ENTITY draped_orientation_angle - SUBTYPE OF (ply_orientation_angle); -END_ENTITY; - -ENTITY draughting_annotation_occurrence - SUBTYPE OF (annotation_occurrence); -WHERE - WR1: (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_CURVE_OCCURRENCE' IN TYPEOF(SELF))) OR - (SIZEOF(QUERY(sty - <* SELF.styles - | NOT ((SIZEOF(sty.styles) = 1) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE' IN - TYPEOF(sty.styles[1]))))) = - 0); - WR2: (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_FILL_AREA_OCCURRENCE' IN TYPEOF(SELF))) OR - (SIZEOF(QUERY(sty - <* SELF.styles - | NOT ((SIZEOF(sty.styles) = 1) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FILL_AREA_STYLE' IN - TYPEOF(sty.styles[1]))))) = - 0); - WR3: (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_FILL_AREA_OCCURRENCE' IN TYPEOF(SELF))) OR - (SIZEOF(QUERY(bound - <* SELF.item\annotation_fill_area.boundaries - | NOT (SIZEOF(QUERY(si - <* USEDIN(bound, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM.ITEM') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_CURVE_OCCURRENCE' IN - TYPEOF(si)))) > - 0))) = - 0); - WR4: (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_SYMBOL_OCCURRENCE' IN TYPEOF(SELF))) OR - (SIZEOF(QUERY(sty - <* SELF.styles - | NOT ((SIZEOF(sty.styles) = 1) AND - (SIZEOF(TYPEOF(sty.styles[1]) * - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SYMBOL_STYLE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NULL_STYLE']) = - 1)))) = - 0); - WR5: (NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_SYMBOL_OCCURRENCE' IN TYPEOF(SELF)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_SYMBOL' IN TYPEOF(SELF.item)))) OR - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_SYMBOL_REPRESENTATION', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_SUBFIGURE_REPRESENTATION'] * - TYPEOF(SELF.item\mapped_item.mapping_source.mapped_representation)) = - 1); - WR6: (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF))) OR - (SIZEOF(QUERY(sty - <* SELF.styles - | NOT ((SIZEOF(sty.styles) = 1) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TEXT_STYLE' IN - TYPEOF(sty.styles[1]))))) = - 0); - WR7: (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF))) OR - (SIZEOF(TYPEOF(SELF.item) * - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_TEXT', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TEXT_LITERAL']) = - 1); - WR8: (NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_TEXT' IN TYPEOF(SELF.item)))) OR - (SIZEOF(QUERY(tl - <* SELF.item\composite_text.collected_text - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TEXT_LITERAL' IN TYPEOF(tl)))) = - 0); - WR9: (NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TEXT_LITERAL' IN TYPEOF(SELF.item)))) OR - (SELF.item\text_literal.alignment IN ['baseline left','baseline centre','baseline right']); - WR10: (NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_TEXT' IN TYPEOF(SELF.item)))) OR - (SIZEOF(QUERY(tl - <* QUERY(text - <* SELF.item\composite_text.collected_text - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TEXT_LITERAL' IN TYPEOF(text))) - | NOT (tl\text_literal.alignment IN ['baseline left','baseline centre','baseline right']))) = - 0); - WR11: NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_TEXT' IN TYPEOF(SELF.item))) OR - check_text_alignment(SELF.item); - WR12: NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_TEXT' IN TYPEOF(SELF.item))) OR - check_text_font(SELF.item); - WR13: (NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_TEXT' IN TYPEOF(SELF.item)))) OR - (SIZEOF(QUERY(tl - <* QUERY(text - <* SELF.item\composite_text.collected_text - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TEXT_LITERAL' IN TYPEOF(text))) - | NOT (SIZEOF(TYPEOF(tl) * - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TEXT_LITERAL_WITH_BLANKING_BOX', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TEXT_LITERAL_WITH_ASSOCIATED_CURVES']) = - 0))) = - 0); - WR14: (NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TEXT_LITERAL_WITH_ASSOCIATED_CURVES' IN - TYPEOF(SELF.item)))) OR - (SIZEOF(QUERY(crv - <* SELF.item\text_literal_with_associated_curves.associated_curves - | NOT (SIZEOF(QUERY(si - <* USEDIN(crv, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM.ITEM') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_CURVE_OCCURRENCE' IN - TYPEOF(si)))) > - 0))) = - 0); - WR15: (NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_TEXT_WITH_ASSOCIATED_CURVES' IN - TYPEOF(SELF.item)))) OR - (SIZEOF(QUERY(crv - <* SELF.item\composite_text_with_associated_curves.associated_curves - | NOT (SIZEOF(QUERY(si - <* USEDIN(crv, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM.ITEM') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_CURVE_OCCURRENCE' IN - TYPEOF(si)))) > - 0))) = - 0); - WR16: SIZEOF(QUERY(cs - <* QUERY(sty - <* SELF.styles - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE' IN - TYPEOF(sty.styles[1]))) - | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN - TYPEOF(cs.styles[1]\curve_style.curve_width)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITIVE_LENGTH_MEASURE' IN - TYPEOF(cs.styles[1]\curve_style.curve_width\measure_with_unit.value_component))))) = - 0; - WR17: SIZEOF(QUERY(fas - <* QUERY(sty - <* SELF.styles - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FILL_AREA_STYLE' IN - TYPEOF(sty.styles[1]))) - | NOT ((SIZEOF(QUERY(fs - <* fas.styles[1]\fill_area_style.fill_styles - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FILL_AREA_STYLE_TILES' IN - TYPEOF(fs)))) <= - 1) AND - (SIZEOF(QUERY(fst - <* QUERY(fs - <* fas.styles[1]\fill_area_style.fill_styles - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FILL_AREA_STYLE_TILES' IN - TYPEOF(fs))) - | NOT (SIZEOF(fst\fill_area_style_tiles.tiles) = 1))) = - 0)))) = - 0; - WR18: SIZEOF(QUERY(fas - <* QUERY(sty - <* SELF.styles - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FILL_AREA_STYLE' IN - TYPEOF(sty.styles[1]))) - | NOT (SIZEOF(QUERY(fsh - <* QUERY(fs - <* fas.styles[1]\fill_area_style.fill_styles - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FILL_AREA_STYLE_HATCHING' IN - TYPEOF(fs))) - | NOT (fsh\fill_area_style_hatching.point_of_reference_hatch_line :=: - fsh\fill_area_style_hatching.pattern_start))) = - 0))) = - 0; - WR19: SIZEOF(QUERY(ts - <* QUERY(sty - <* SELF.styles - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TEXT_STYLE' IN - TYPEOF(sty.styles[1]))) - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TEXT_STYLE_WITH_BOX_CHARACTERISTICS' IN - TYPEOF(ts.styles[1])))) = - 0; - WR20: SIZEOF(QUERY(ts - <* QUERY(sty - <* SELF.styles - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TEXT_STYLE_WITH_BOX_CHARACTERISTICS' IN - TYPEOF(sty.styles[1]))) - | NOT (SIZEOF(ts.styles[1]\text_style_with_box_characteristics.characteristics) = 4))) = - 0; -END_ENTITY; - -ENTITY draughting_callout - SUBTYPE OF (geometric_representation_item); - contents : SET [1 : ?] OF draughting_callout_element; -WHERE - WR1: (SIZEOF(QUERY(l_1 - <* SELF\draughting_callout.contents - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LEADER_CURVE' IN (TYPEOF(l_1)))) = - 0) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LEADER_DIRECTED_CALLOUT' IN (TYPEOF(SELF))) AND - (SIZEOF(QUERY(l_1 - <* SELF\draughting_callout.contents - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROJECTION_CURVE' IN (TYPEOF(l_1)))) = - 0) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROJECTION_DIRECTED_CALLOUT' IN (TYPEOF(SELF))) AND - (SIZEOF(QUERY(l_1 - <* SELF\draughting_callout.contents - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSION_CURVE' IN (TYPEOF(l_1)))) = - 0) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSION_CURVE_DIRECTED_CALLOUT' IN (TYPEOF(SELF))); -END_ENTITY; - -ENTITY draughting_callout_relationship; - name : label; - description : text; - relating_draughting_callout : draughting_callout; - related_draughting_callout : draughting_callout; -END_ENTITY; - -ENTITY draughting_elements - SUBTYPE OF (draughting_callout); -WHERE - WR1: SIZEOF(QUERY(l_c - <* QUERY(con - <* SELF.contents - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LEADER_CURVE' IN TYPEOF(con))) - | NOT (SIZEOF(QUERY(ldc - <* USEDIN(l_c, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_CALLOUT.CONTENTS') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LEADER_DIRECTED_CALLOUT' IN - TYPEOF(ldc)))) <= - 1))) = - 0; - WR2: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSION_CURVE_DIRECTED_CALLOUT' IN TYPEOF(SELF)) OR - (SIZEOF(QUERY(con - <* SELF.contents - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROJECTION_CURVE' IN TYPEOF(con)))) <= - 2); - WR3: SIZEOF(QUERY(rc - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_CALLOUT_RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSION_CALLOUT_RELATIONSHIP' IN - TYPEOF(rc)) AND - (rc.name = 'primary'))) <= - 1; - WR4: SIZEOF(QUERY(rc - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_CALLOUT_RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSION_CALLOUT_RELATIONSHIP' IN - TYPEOF(rc)) AND - (rc.name = 'secondary'))) <= - 1; - WR5: SIZEOF(QUERY(sec - <* QUERY(rc - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_CALLOUT_RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSION_CALLOUT_RELATIONSHIP' IN - TYPEOF(rc)) AND - (rc.name = 'secondary')) - | NOT (SIZEOF(QUERY(prim - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_CALLOUT_RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSION_CALLOUT_RELATIONSHIP' IN - TYPEOF(prim)) AND - (prim.name = 'primary'))) = - 1))) = - 0; -END_ENTITY; - -ENTITY draughting_model - SUBTYPE OF (representation); - SELF\representation.items : SET [1 : ?] OF draughting_model_item_select; -UNIQUE - UR1: SELF\representation.name; -WHERE - WR1: SIZEOF(QUERY(mi - <* QUERY(it - <* SELF.items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF(it))) - | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_MODEL'] * - TYPEOF(mi\mapped_item.mapping_source.mapped_representation)) = - 1))) = - 0; - WR2: SIZEOF(QUERY(smi - <* QUERY(si - <* QUERY(it - <* SELF.items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN TYPEOF(it))) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN - TYPEOF(si\styled_item.item))) - | (NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION' IN - TYPEOF(smi\styled_item.item\mapped_item.mapping_source.mapped_representation)) AND - (SIZEOF(QUERY(sty - <* smi\styled_item.styles - | (NOT (SIZEOF(QUERY(psa - <* sty.styles - | (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE' IN - TYPEOF(psa))))) = - 1)))) = - 1))))) = - 0; -END_ENTITY; - -ENTITY draughting_model_item_association - SUBTYPE OF (item_identified_representation_usage); - SELF\item_identified_representation_usage.definition : draughting_model_item_definition; - SELF\item_identified_representation_usage.used_representation : annotation_representation_select; - SELF\item_identified_representation_usage.identified_item : draughting_model_item_association_select; -END_ENTITY; - -ENTITY draughting_model_item_association_with_placeholder - SUBTYPE OF (draughting_model_item_association); - SELF\draughting_model_item_association.definition : draughting_model_item_definition; - SELF\draughting_model_item_association.used_representation : draughting_model; - SELF\item_identified_representation_usage.identified_item : draughting_callout; - annotation_placeholder : annotation_placeholder_occurrence; -END_ENTITY; - -ENTITY draughting_pre_defined_colour - SUBTYPE OF (pre_defined_colour); -WHERE - WR1: SELF\pre_defined_item.name IN ['red','green','blue','yellow','magenta','cyan','black','white']; -END_ENTITY; - -ENTITY draughting_pre_defined_curve_font - SUBTYPE OF (pre_defined_curve_font); -WHERE - WR1: SELF\pre_defined_item.name IN ['continuous','chain','chain double dash','dashed','dotted']; -END_ENTITY; - -ENTITY draughting_pre_defined_text_font - SUBTYPE OF (pre_defined_text_font); -WHERE - WR1: SELF\pre_defined_item.name[1:8] = 'ISO 3098'; -END_ENTITY; - -ENTITY draughting_specification_reference - SUBTYPE OF (document_reference); - specified_items : SET [1 : ?] OF specified_item; -WHERE - WR1: (SELF.assigned_document.kind.product_data_type = 'draughting specification'); -END_ENTITY; - -ENTITY draughting_subfigure_representation - SUBTYPE OF (symbol_representation); - SELF\representation.items : SET [1 : ?] OF draughting_subfigure_representation_item; -WHERE - WR1: SIZEOF(QUERY(item - <* SELF\representation.items - | SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_OCCURRENCE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_CALLOUT'] * - TYPEOF(item)) = - 1)) >= - 1; - WR2: SIZEOF(QUERY(srm - <* QUERY(rm - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_MAP.MAPPED_REPRESENTATION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SYMBOL_REPRESENTATION_MAP' IN - TYPEOF(rm))) - | NOT (SIZEOF(QUERY(a_s - <* QUERY(mi - <* srm.map_usage - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_SYMBOL' IN - TYPEOF(mi))) - | NOT (SIZEOF(QUERY(aso - <* USEDIN(a_s, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM.ITEM') - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_SUBFIGURE_OCCURRENCE' IN - TYPEOF(aso)))) = - 0))) = - 0))) > - 0; - WR3: SIZEOF(SELF.context_of_items.representations_in_context) = 1; -END_ENTITY; - -ENTITY draughting_symbol_representation - SUBTYPE OF (symbol_representation); - SELF\representation.items : SET [1 : ?] OF draughting_symbol_representation_item; -UNIQUE - UR1: SELF\representation.name; -WHERE - WR1: SIZEOF(QUERY(item - <* SELF\representation.items - | (SIZEOF(TYPEOF(item) * - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_CURVE_OCCURRENCE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_SYMBOL_OCCURRENCE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_FILL_AREA_OCCURRENCE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT_OCCURRENCE']) = - 1))) >= - 1; - WR2: SIZEOF(QUERY(item - <* SELF\representation.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_SUBFIGURE_OCCURRENCE' IN - TYPEOF(item))) = - 0; - WR3: SIZEOF(QUERY(rm - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_MAP.MAPPED_REPRESENTATION') - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SYMBOL_REPRESENTATION_MAP' IN - TYPEOF(rm)))) = - 0; - WR4: SIZEOF(SELF.context_of_items.representations_in_context) = 1; -END_ENTITY; - -ENTITY draughting_text_literal_with_delineation - SUBTYPE OF (text_literal_with_delineation); -WHERE - WR1: SELF.delineation IN ['underline','overline']; -END_ENTITY; - -ENTITY draughting_title; - items : SET [1 : ?] OF draughting_titled_item; - language : label; - contents : text; -END_ENTITY; - -ENTITY drawing_definition; - drawing_number : identifier; - drawing_type : OPTIONAL label; -END_ENTITY; - -ENTITY drawing_revision - SUBTYPE OF (presentation_set); - revision_identifier : identifier; - drawing_identifier : drawing_definition; - intended_scale : OPTIONAL text; -UNIQUE - UR1: revision_identifier, drawing_identifier; -END_ENTITY; - -ENTITY drawing_revision_sequence; - predecessor : drawing_revision; - successor : drawing_revision; -WHERE - WR1: predecessor :<>: successor; -END_ENTITY; - -ENTITY drawing_sheet_layout - SUBTYPE OF (draughting_symbol_representation); -END_ENTITY; - -ENTITY drawing_sheet_revision - SUBTYPE OF (presentation_area); - revision_identifier : identifier; -WHERE - WR1: SIZEOF(QUERY(item - <* SELF\representation.items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN (TYPEOF(item))) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAWING_SHEET_REVISION' IN - (TYPEOF(item\mapped_item.mapping_source.mapped_representation))))) = - 0; -END_ENTITY; - -ENTITY drawing_sheet_revision_sequence - SUBTYPE OF (representation_relationship); -WHERE - WR1: SELF\representation_relationship.rep_1 :<>: SELF\representation_relationship.rep_2; - WR2: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAWING_SHEET_REVISION' IN - TYPEOF(SELF\representation_relationship.rep_1); - WR3: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAWING_SHEET_REVISION' IN - TYPEOF(SELF\representation_relationship.rep_2); -END_ENTITY; - -ENTITY drawing_sheet_revision_usage - SUBTYPE OF (area_in_set); - sheet_number : identifier; -UNIQUE - UR1: sheet_number, SELF\area_in_set.in_set; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAWING_SHEET_REVISION' IN TYPEOF(SELF\area_in_set.area)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAWING_REVISION' IN TYPEOF(SELF\area_in_set.in_set)); -END_ENTITY; - -ENTITY dupin_cyclide_surface - SUBTYPE OF (elementary_surface); - generalised_major_radius : positive_length_measure; - generalised_minor_radius : positive_length_measure; - skewness : length_measure; -WHERE - WR1: skewness >= 0.0; -END_ENTITY; - -ENTITY eccentric_cone - SUBTYPE OF (geometric_representation_item); - position : axis2_placement_3d; - semi_axis_1 : positive_length_measure; - semi_axis_2 : positive_length_measure; - height : positive_length_measure; - x_offset : length_measure; - y_offset : length_measure; - ratio : REAL; -WHERE - WR1: ratio >= 0.0; -END_ENTITY; - -ENTITY eccentric_conical_volume - SUBTYPE OF (volume); - position : axis2_placement_3d; - semi_axis_1 : positive_length_measure; - semi_axis_2 : positive_length_measure; - height : positive_length_measure; - x_offset : length_measure; - y_offset : length_measure; - ratio : REAL; -WHERE - WR1: ratio >= 0.0; -END_ENTITY; - -ENTITY edge - SUPERTYPE OF (ONEOF(edge_curve, edge_with_length, oriented_edge, subedge)) - SUBTYPE OF (topological_representation_item); - edge_start : vertex; - edge_end : vertex; -END_ENTITY; - -ENTITY edge_based_wireframe_model - SUBTYPE OF (geometric_representation_item); - ebwm_boundary : SET [1 : ?] OF connected_edge_set; -END_ENTITY; - -ENTITY edge_based_wireframe_shape_representation - SUBTYPE OF (shape_representation); -WHERE - WR1: SIZEOF(QUERY(it - <* SELF.items - | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_BASED_WIREFRAME_MODEL', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D'] * - TYPEOF(it)) = - 1))) = - 0; - WR2: SIZEOF(QUERY(it - <* SELF.items - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_BASED_WIREFRAME_MODEL', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM'] * - TYPEOF(it)) = - 1))) >= - 1; - WR3: SIZEOF(QUERY(ebwm - <* QUERY(it - <* SELF.items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.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 ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE' IN - TYPEOF(edges)))) = - 0))) = - 0))) = - 0; - WR4: SIZEOF(QUERY(ebwm - <* QUERY(it - <* SELF.items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.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 - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.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 - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.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 (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN - TYPEOF(edges.edge_start)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN - TYPEOF(edges.edge_end))))) = - 0))) = - 0))) = - 0; - WR6: SIZEOF(QUERY(ebwm - <* QUERY(it - <* SELF.items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.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 - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.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 - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF(it))) - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.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; - -ENTITY edge_blended_solid - ABSTRACT SUPERTYPE OF (track_blended_solid ANDOR - (ONEOF(solid_with_constant_radius_edge_blend, solid_with_chamfered_edges))) - SUBTYPE OF (modified_solid); - blended_edges : LIST [1 : ?] OF UNIQUE edge_curve; -END_ENTITY; - -ENTITY edge_curve - SUBTYPE OF (edge, geometric_representation_item); - edge_geometry : curve; - same_sense : BOOLEAN; -END_ENTITY; - -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; - -ENTITY edge_round - SUBTYPE OF (transition_feature); -WHERE - WR1: (NOT (SELF\shape_aspect.description = 'constant radius')) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - | NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - | NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - | NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'second offset'))) <= - 1))) = - 0))) = - 0); - WR6: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION' IN - TYPEOF(pdr.used_representation)) AND - (pdr.used_representation.name = 'edge round face'))) <= - 1))) = - 0; - WR7: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION' IN - TYPEOF(pdr.used_representation)) AND - (pdr.used_representation.name = 'first face shape'))) <= - 1))) = - 0; - WR8: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION' IN - TYPEOF(pdr.used_representation)) AND - (pdr.used_representation.name = 'second face shape'))) <= - 1))) = - 0; -END_ENTITY; - -ENTITY edge_with_excessive_segments - SUBTYPE OF (overcomplex_topology_and_geometry_relationship); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN - TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' IN - value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE'); - WR3: validate_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE']); - WR4: validate_locations_of_extreme_value_type(SELF, []); - WR5: validate_accuracy_types(SELF, []); -END_ENTITY; - -ENTITY edge_with_length - SUBTYPE OF (edge); - edge_length : positive_length_measure; -END_ENTITY; - -ENTITY effectivity - SUPERTYPE OF (ONEOF(serial_numbered_effectivity, dated_effectivity, lot_effectivity, - time_interval_based_effectivity)); - id : identifier; -DERIVE - name : label := get_name_value(SELF); - description : text := get_description_value(SELF); -WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; - WR2: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= - 1; -END_ENTITY; - -ENTITY effectivity_assignment - ABSTRACT SUPERTYPE; - assigned_effectivity : effectivity; -DERIVE - role : object_role := get_role(SELF); -WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; -END_ENTITY; - -ENTITY effectivity_context_assignment - ABSTRACT SUPERTYPE; - assigned_effectivity_assignment : effectivity_assignment; - role : effectivity_context_role; -END_ENTITY; - -ENTITY effectivity_context_role; - name : label; - description : OPTIONAL text; -END_ENTITY; - -ENTITY effectivity_relationship; - name : label; - description : OPTIONAL text; - related_effectivity : effectivity; - relating_effectivity : effectivity; -END_ENTITY; - -ENTITY electric_charge_measure_with_unit - SUBTYPE OF (measure_with_unit); -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ELECTRIC_CHARGE_UNIT' IN - TYPEOF(SELF\measure_with_unit.unit_component); -END_ENTITY; - -ENTITY electric_charge_unit - SUBTYPE OF (derived_unit); -WHERE - WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit(si_unit_name.coulomb); -END_ENTITY; - -ENTITY electric_current_measure_with_unit - SUBTYPE OF (measure_with_unit); -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ELECTRIC_CURRENT_UNIT' IN - TYPEOF(SELF\measure_with_unit.unit_component); -END_ENTITY; - -ENTITY electric_current_unit - SUBTYPE OF (named_unit); -WHERE - WR1: (SELF\named_unit.dimensions.length_exponent = 0.0) AND (SELF\named_unit.dimensions.mass_exponent = 0.0) AND - (SELF\named_unit.dimensions.time_exponent = 0.0) AND - (SELF\named_unit.dimensions.electric_current_exponent = 1.0) AND - (SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0.0) AND - (SELF\named_unit.dimensions.amount_of_substance_exponent = 0.0) AND - (SELF\named_unit.dimensions.luminous_intensity_exponent = 0.0); -END_ENTITY; - -ENTITY electric_potential_measure_with_unit - SUBTYPE OF (measure_with_unit); -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ELECTRIC_POTENTIAL_UNIT' IN - TYPEOF(SELF\measure_with_unit.unit_component); -END_ENTITY; - -ENTITY electric_potential_unit - SUBTYPE OF (derived_unit); -WHERE - WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit(si_unit_name.volt); -END_ENTITY; - -ENTITY elementary_brep_shape_representation - SUBTYPE OF (shape_representation); -WHERE - WR1: SIZEOF(QUERY(it - <* SELF.items - | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SOLID_BREP', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACETED_BREP', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D'] * - TYPEOF(it)) = - 1))) = - 0; - WR2: SIZEOF(QUERY(it - <* SELF.items - | SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SOLID_BREP', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM'] * - TYPEOF(it)) = - 1)) > - 0; - WR3: SIZEOF(QUERY(msb - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SOLID_BREP' IN TYPEOF(it)) - | NOT (SIZEOF(QUERY(csh - <* msb_shells(msb) - | NOT (SIZEOF(QUERY(fcs - <* csh.cfs_faces - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE' IN - TYPEOF(fcs)))) = - 0))) = - 0))) = - 0; - WR4: SIZEOF(QUERY(msb - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SOLID_BREP' IN TYPEOF(it)) - | NOT (SIZEOF(QUERY(csh - <* msb_shells(msb) - | NOT (SIZEOF(QUERY(fcs - <* csh\connected_face_set.cfs_faces - | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ELEMENTARY_SURFACE' IN - TYPEOF(fcs\face_surface.face_geometry))))) = - 0))) = - 0))) = - 0; - WR5: SIZEOF(QUERY(msb - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SOLID_BREP' IN TYPEOF(it)) - | NOT (SIZEOF(QUERY(csh - <* msb_shells(msb) - | NOT (SIZEOF(QUERY(fcs - <* csh\connected_face_set.cfs_faces - | NOT (SIZEOF(QUERY(elp_fbnds - <* QUERY(bnds - <* fcs.bounds - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN - TYPEOF(bnds.bound)) - | NOT (SIZEOF(QUERY(oe - <* elp_fbnds.bound\path.edge_list - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE' IN - TYPEOF(oe.edge_element)))) = - 0))) = - 0))) = - 0))) = - 0))) = - 0; - WR6: SIZEOF(QUERY(msb - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SOLID_BREP' IN TYPEOF(it)) - | NOT (SIZEOF(QUERY(csh - <* msb_shells(msb) - | NOT (SIZEOF(QUERY(fcs - <* csh\connected_face_set.cfs_faces - | NOT (SIZEOF(QUERY(elp_fbnds - <* QUERY(bnds - <* fcs.bounds - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN - TYPEOF(bnds.bound)) - | NOT (SIZEOF(QUERY(oe - <* elp_fbnds.bound\path.edge_list - | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONIC', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYLINE'] * - TYPEOF(oe.edge_element\edge_curve.edge_geometry)) = - 1))) = - 0))) = - 0))) = - 0))) = - 0))) = - 0; - WR7: SIZEOF(QUERY(msb - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SOLID_BREP' IN TYPEOF(it)) - | NOT (SIZEOF(QUERY(csh - <* msb_shells(msb) - | NOT (SIZEOF(QUERY(fcs - <* csh\connected_face_set.cfs_faces - | NOT (SIZEOF(QUERY(elp_fbnds - <* QUERY(bnds - <* fcs.bounds - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN - TYPEOF(bnds.bound)) - | NOT (SIZEOF(QUERY(oe - <* elp_fbnds.bound\path.edge_list - | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN - TYPEOF(oe.edge_start)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN - TYPEOF(oe.edge_end))))) = - 0))) = - 0))) = - 0))) = - 0))) = - 0; - WR8: SIZEOF(QUERY(msb - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SOLID_BREP' IN TYPEOF(it)) - | NOT (SIZEOF(QUERY(csh - <* msb_shells(msb) - | NOT (SIZEOF(QUERY(fcs - <* csh\connected_face_set.cfs_faces - | NOT (SIZEOF(QUERY(elp_fbnds - <* QUERY(bnds - <* fcs.bounds - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN - TYPEOF(bnds.bound)) - | NOT (SIZEOF(QUERY(oe - <* elp_fbnds.bound\path.edge_list - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYLINE' IN - TYPEOF(oe.edge_element\edge_curve.edge_geometry)) AND - (NOT (SIZEOF(oe\oriented_edge.edge_element\edge_curve.edge_geometry\polyline.points) >= - 3)))) = - 0))) = - 0))) = - 0))) = - 0))) = - 0; - WR9: SIZEOF(QUERY(msb - <* QUERY(it - <* items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SOLID_BREP' IN TYPEOF(it)) - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORIENTED_CLOSED_SHELL' IN - TYPEOF(msb\manifold_solid_brep.outer))) = - 0; - WR10: SIZEOF(QUERY(brv - <* QUERY(it - <* items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BREP_WITH_VOIDS' IN TYPEOF(it)) - | NOT (SIZEOF(QUERY(csh <* brv\brep_with_voids.voids | csh\oriented_closed_shell.orientation)) = - 0))) = - 0; - WR11: SIZEOF(QUERY(mi - <* QUERY(it - <* items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF(it)) - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ELEMENTARY_BREP_SHAPE_REPRESENTATION' IN - TYPEOF(mi\mapped_item.mapping_source.mapped_representation)))) = - 0; - WR12: SIZEOF(QUERY(msb - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SOLID_BREP' IN TYPEOF(it)) - | NOT (SIZEOF(QUERY(csh - <* msb_shells(msb) - | NOT (SIZEOF(QUERY(fcs - <* csh\connected_face_set.cfs_faces - | NOT (SIZEOF(QUERY(vlp_fbnds - <* QUERY(bnds - <* fcs.bounds - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_LOOP' IN - TYPEOF(bnds.bound)) - | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN - TYPEOF(vlp_fbnds\face_bound.bound\vertex_loop.loop_vertex)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CARTESIAN_POINT' IN - TYPEOF(vlp_fbnds\face_bound.bound\vertex_loop.loop_vertex\vertex_point.vertex_geometry))))) = - 0))) = - 0))) = - 0))) = - 0; -END_ENTITY; - -ENTITY elementary_function - SUBTYPE OF (maths_function, generic_literal); - func_id : elementary_function_enumerators; -END_ENTITY; - -ENTITY elementary_space - SUBTYPE OF (maths_space, generic_literal); - space_id : elementary_space_enumerators; -END_ENTITY; - -ENTITY elementary_surface - SUPERTYPE OF (ONEOF(plane, cylindrical_surface, conical_surface, spherical_surface, toroidal_surface)) - SUBTYPE OF (surface); - position : axis2_placement_3d; -END_ENTITY; - -ENTITY ellipse - SUBTYPE OF (conic); - semi_axis_1 : positive_length_measure; - semi_axis_2 : positive_length_measure; -END_ENTITY; - -ENTITY ellipsoid - SUBTYPE OF (geometric_representation_item); - position : axis2_placement_3d; - semi_axis_1 : positive_length_measure; - semi_axis_2 : positive_length_measure; - semi_axis_3 : positive_length_measure; -END_ENTITY; - -ENTITY ellipsoid_volume - SUBTYPE OF (volume); - position : axis2_placement_3d; - semi_axis_1 : positive_length_measure; - semi_axis_2 : positive_length_measure; - semi_axis_3 : positive_length_measure; -END_ENTITY; - -ENTITY elliptic_area - SUBTYPE OF (primitive_2d); - position : axis2_placement_2d; - semi_axis_1 : positive_length_measure; - semi_axis_2 : positive_length_measure; -END_ENTITY; - -ENTITY energy_measure_with_unit - SUBTYPE OF (measure_with_unit); -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ENERGY_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); -END_ENTITY; - -ENTITY energy_unit - SUBTYPE OF (derived_unit); -WHERE - WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit(si_unit_name.joule); -END_ENTITY; - -ENTITY entirely_narrow_face - SUBTYPE OF (topology_related_to_nearly_degenerate_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - width_tolerance : length_measure; -WHERE - WR1: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE'); - WR2: validate_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE']); - WR3: validate_locations_of_extreme_value_type(SELF, []); - WR4: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); -END_ENTITY; - -ENTITY entirely_narrow_solid - SUBTYPE OF (inapt_manifold_solid_brep); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - width_tolerance : length_measure; -WHERE - WR1: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE'); - WR2: validate_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SOLID_BREP']); - WR3: validate_locations_of_extreme_value_type(SELF, []); - WR4: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); -END_ENTITY; - -ENTITY entirely_narrow_surface - SUBTYPE OF (nearly_degenerate_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - width_tolerance : length_measure; -WHERE - WR1: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE'); - WR2: validate_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOUNDED_SURFACE']); - WR3: validate_locations_of_extreme_value_type(SELF, []); - WR4: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); -END_ENTITY; - -ENTITY entity_assertion - SUBTYPE OF (fact_type); -END_ENTITY; - -ENTITY enum_reference_prefix - SUBTYPE OF (descriptive_representation_item); -END_ENTITY; - -ENTITY envelope - SUBTYPE OF (characterized_object, product); -END_ENTITY; - -ENTITY envelope_relationship - SUBTYPE OF (product_relationship); -END_ENTITY; - -ENTITY environment; - syntactic_representation : generic_variable; - semantics : variable_semantics; -END_ENTITY; - -ENTITY equal_parameter_constraint - SUBTYPE OF (defined_constraint); - SELF\explicit_constraint.constrained_elements : SET [1 : ?] OF variational_parameter; - SELF\explicit_constraint.reference_elements : SET [0 : 1] OF variational_parameter; -WHERE - WR1: SIZEOF(SELF\explicit_constraint.constrained_elements + SELF\explicit_constraint.reference_elements) >= 2; -END_ENTITY; - -ENTITY equals_expression - SUBTYPE OF (binary_boolean_expression); -END_ENTITY; - -ENTITY equivalence_instance_report_item_with_notable_instances - SUBTYPE OF (a3m_equivalence_inspection_instance_report_item); - notable_instances : LIST [1 : ?] OF equivalence_notable_instance; -END_ENTITY; - -ENTITY equivalence_notable_instance; - comparing_elements : LIST [0 : ?] OF equivalence_detected_difference_select; - compared_elements : LIST [0 : ?] OF equivalence_detected_difference_select; - measured_value : equivalence_measured_value_select; -WHERE - WR1: (SIZEOF(comparing_elements) <> 0) OR (SIZEOF(compared_elements) <> 0); -END_ENTITY; - -ENTITY erroneous_b_spline_curve_definition - SUBTYPE OF (erroneous_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; -WHERE - WR1: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE'); - WR2: validate_inspected_elements_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE_WITH_KNOTS']); - WR3: validate_locations_of_extreme_value_type(SELF, []); - WR4: validate_accuracy_types(SELF, []); -END_ENTITY; - -ENTITY erroneous_b_spline_surface_definition - SUBTYPE OF (erroneous_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; -WHERE - WR1: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE'); - WR2: validate_inspected_elements_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_SURFACE_WITH_KNOTS']); - WR3: validate_locations_of_extreme_value_type(SELF, []); - WR4: validate_accuracy_types(SELF, []); -END_ENTITY; - -ENTITY erroneous_data - ABSTRACT SUPERTYPE OF (ONEOF(erroneous_topology, erroneous_geometry, erroneous_topology_and_geometry_relationship, - erroneous_manifold_solid_brep)) - SUBTYPE OF (shape_data_quality_criterion); -END_ENTITY; - -ENTITY erroneous_geometry - ABSTRACT SUPERTYPE OF (ONEOF(inconsistent_curve_transition_code, erroneous_b_spline_curve_definition, - inconsistent_surface_transition_code, erroneous_b_spline_surface_definition)) - SUBTYPE OF (erroneous_data); -END_ENTITY; - -ENTITY erroneous_manifold_solid_brep - ABSTRACT SUPERTYPE OF (ONEOF(wrongly_oriented_void, wrongly_placed_void, intersecting_shells_in_solid, - solid_with_wrong_number_of_voids)) - SUBTYPE OF (erroneous_data); -END_ENTITY; - -ENTITY erroneous_topology - ABSTRACT SUPERTYPE OF (ONEOF(open_edge_loop, open_closed_shell, inconsistent_adjacent_face_normals, - disconnected_face_set)) - SUBTYPE OF (erroneous_data); -END_ENTITY; - -ENTITY erroneous_topology_and_geometry_relationship - ABSTRACT SUPERTYPE OF (ONEOF(inconsistent_edge_and_curve_directions, inconsistent_face_and_surface_normals, - inconsistent_face_and_closed_shell_normals, intersecting_loops_in_face, - wrongly_placed_loop)) - SUBTYPE OF (erroneous_data); -END_ENTITY; - -ENTITY evaluated_characteristic - SUBTYPE OF (representation, representation_relationship); -UNIQUE - UR1: SELF\representation_relationship.rep_1, SELF\representation_relationship.rep_2; -WHERE - WR1: SELF\representation_relationship.rep_1 <> SELF\representation_relationship.rep_2; -END_ENTITY; - -ENTITY evaluated_characteristic_of_product_as_individual_test_result - SUBTYPE OF (evaluated_characteristic); -END_ENTITY; - -ENTITY evaluated_degenerate_pcurve - SUBTYPE OF (degenerate_pcurve); - equivalent_point : cartesian_point; -END_ENTITY; - -ENTITY evaluation_product_definition - SUBTYPE OF (product_definition); -END_ENTITY; - -ENTITY event_occurrence; - id : identifier; - name : label; - description : OPTIONAL text; -END_ENTITY; - -ENTITY event_occurrence_assignment - ABSTRACT SUPERTYPE; - assigned_event_occurrence : event_occurrence; - role : event_occurrence_role; -END_ENTITY; - -ENTITY event_occurrence_relationship; - name : label; - description : OPTIONAL text; - relating_event : event_occurrence; - related_event : event_occurrence; -END_ENTITY; - -ENTITY event_occurrence_role; - name : label; - description : OPTIONAL text; -END_ENTITY; - -ENTITY evidence - SUBTYPE OF (group_assignment); - items : SET [1 : ?] OF evidence_item; -END_ENTITY; - -ENTITY excessive_use_of_groups - SUBTYPE OF (externally_conditioned_data_quality_criterion); -WHERE - WR1: validate_ecdq_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GROUP']); -END_ENTITY; - -ENTITY excessive_use_of_layers - SUBTYPE OF (externally_conditioned_data_quality_criterion); -WHERE - WR1: validate_ecdq_inspected_elements_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_LAYER_ASSIGNMENT']); -END_ENTITY; - -ENTITY excessively_high_degree_curve - SUBTYPE OF (overcomplex_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN - TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' IN - value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE'); - WR3: validate_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE']); - WR4: validate_locations_of_extreme_value_type(SELF, []); - WR5: validate_accuracy_types(SELF, []); -END_ENTITY; - -ENTITY excessively_high_degree_surface - SUBTYPE OF (overcomplex_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN - TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' IN - value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE'); - WR3: validate_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_SURFACE']); - WR4: validate_locations_of_extreme_value_type(SELF, []); - WR5: validate_accuracy_types(SELF, []); -END_ENTITY; - -ENTITY exclusive_product_concept_feature_category - SUBTYPE OF (product_concept_feature_category); -END_ENTITY; - -ENTITY executed_action - SUBTYPE OF (action); -END_ENTITY; - -ENTITY exp_function - SUBTYPE OF (unary_function_call); -END_ENTITY; - -ENTITY expanded_uncertainty - SUBTYPE OF (standard_uncertainty); - coverage_factor : REAL; -END_ENTITY; - -ENTITY explicit_composite_hole - SUBTYPE OF (composite_hole); - placement : shape_representation; -INVERSE - explicit_shape : SET [0:?] OF item_identified_representation_usage FOR definition; -WHERE - WR1: SIZEOF(QUERY(ri - <* placement\representation.items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D' IN TYPEOF(ri)))) = - 1; - WR2: (SIZEOF(explicit_shape) = 0) OR - (SIZEOF(QUERY(es - <* explicit_shape - | NOT (placement = es\item_identified_representation_usage.used_representation))) = - 0); -END_ENTITY; - -ENTITY explicit_constraint - ABSTRACT SUPERTYPE OF (ONEOF(defined_constraint, free_form_constraint)) - SUBTYPE OF (variational_representation_item); - description : OPTIONAL text; - constrained_elements : SET [1 : ?] OF representation_item; - reference_elements : SET [0 : ?] OF representation_item; -WHERE - WR1: SIZEOF(constrained_elements * reference_elements) = 0; -END_ENTITY; - -ENTITY explicit_geometric_constraint - ABSTRACT SUPERTYPE OF (ONEOF(fixed_element_geometric_constraint, parallel_geometric_constraint, - point_distance_geometric_constraint, skew_line_distance_geometric_constraint, - curve_distance_geometric_constraint, surface_distance_geometric_constraint, - radius_geometric_constraint, curve_length_geometric_constraint, - parallel_offset_geometric_constraint, angle_geometric_constraint, - perpendicular_geometric_constraint, incidence_geometric_constraint, - coaxial_geometric_constraint, tangent_geometric_constraint, - symmetry_geometric_constraint, swept_point_curve_geometric_constraint, - swept_curve_surface_geometric_constraint, curve_smoothness_geometric_constraint, - surface_smoothness_geometric_constraint)) - SUBTYPE OF (defined_constraint, geometric_representation_item); - SELF\explicit_constraint.constrained_elements : SET [1 : ?] OF geometric_representation_item; - SELF\explicit_constraint.reference_elements : SET [0 : ?] OF geometric_representation_item; -END_ENTITY; - -ENTITY explicit_procedural_geometric_representation_item_relationship - SUBTYPE OF (explicit_procedural_representation_item_relationship); - SELF\representation_item_relationship.relating_representation_item : procedural_shape_representation_sequence; - SELF\representation_item_relationship.related_representation_item : geometric_representation_item; -WHERE - WR1: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROCEDURAL_SHAPE_REPRESENTATION_SEQUENCE' IN - TYPEOF(SELF\representation_item_relationship.related_representation_item)); -END_ENTITY; - -ENTITY explicit_procedural_representation_item_relationship - SUBTYPE OF (representation_item_relationship); - SELF\representation_item_relationship.relating_representation_item : procedural_representation_sequence; -WHERE - WR1: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROCEDURAL_REPRESENTATION_SEQUENCE' IN - TYPEOF(SELF\representation_item_relationship.related_representation_item)); - WR2: SIZEOF(QUERY(q - <* using_representations(SELF\representation_item_relationship.related_representation_item) - | item_in_context(SELF\representation_item_relationship.relating_representation_item, - q.context_of_items))) > - 0; -END_ENTITY; - -ENTITY explicit_procedural_representation_relationship - SUBTYPE OF (representation_relationship); - SELF\representation_relationship.rep_1 : procedural_representation; -WHERE - WR1: (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROCEDURAL_REPRESENTATION' IN - TYPEOF(SELF\representation_relationship.rep_2))) AND - (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VARIATIONAL_REPRESENTATION' IN - TYPEOF(SELF\representation_relationship.rep_2))); - WR2: SELF\representation_relationship.rep_1.context_of_items :=: - SELF\representation_relationship.rep_2.context_of_items; -END_ENTITY; - -ENTITY explicit_procedural_shape_representation_relationship - SUBTYPE OF (explicit_procedural_representation_relationship); - SELF\representation_relationship.rep_1 : procedural_shape_representation; - SELF\representation_relationship.rep_2 : shape_representation; -END_ENTITY; - -ENTITY explicit_round_hole - SUBTYPE OF (round_hole); - depth : positive_length_measure_with_unit; - depth_tolerance : OPTIONAL tolerance_value; - diameter : positive_length_measure_with_unit; - diameter_tolerance : OPTIONAL tolerance_value_or_limits_and_fits; - placement : shape_representation; -WHERE - WR1: SIZEOF(QUERY(ri - <* placement\representation.items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D' IN TYPEOF(ri)))) = - 1; - WR2: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN - TYPEOF(depth_tolerance\tolerance_value.lower_bound); - WR3: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN - TYPEOF(depth_tolerance\tolerance_value.upper_bound); - WR4: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TOLERANCE_VALUE' IN TYPEOF(diameter_tolerance)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN - TYPEOF(diameter_tolerance\tolerance_value.lower_bound)); - WR5: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TOLERANCE_VALUE' IN TYPEOF(diameter_tolerance)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN - TYPEOF(diameter_tolerance\tolerance_value.upper_bound)); -END_ENTITY; - -ENTITY explicit_table_function - ABSTRACT SUPERTYPE OF (ONEOF(listed_real_data, listed_integer_data, listed_logical_data, listed_string_data, - listed_complex_number_data, listed_data, externally_listed_data, - linearized_table_function, basic_sparse_matrix)) - SUBTYPE OF (maths_function); - index_base : zero_or_one; - shape : LIST [1 : ?] OF positive_integer; -END_ENTITY; - -ENTITY expression - ABSTRACT SUPERTYPE OF (ONEOF(numeric_expression, boolean_expression, string_expression)) - SUBTYPE OF (generic_expression); -END_ENTITY; - -ENTITY expression_conversion_based_unit - SUBTYPE OF (context_dependent_unit, variable_semantics); -INVERSE - associated_variable_environment : environment FOR semantics; -END_ENTITY; - -ENTITY expression_denoted_function - SUBTYPE OF (maths_function, unary_generic_expression); -DERIVE - expr : generic_expression := SELF\unary_generic_expression.operand; -WHERE - WR1: (schema_prefix + 'FUNCTION_SPACE') IN TYPEOF(values_space_of(expr)); -END_ENTITY; - -ENTITY expression_extension_numeric - SUBTYPE OF (measure_with_unit, numeric_expression); -END_ENTITY; - -ENTITY expression_extension_string - SUBTYPE OF (measure_with_unit, string_expression); -END_ENTITY; - -ENTITY expression_extension_to_select; - type_expression_associated : expression_extension_select; -END_ENTITY; - -ENTITY extended_tuple_space - SUBTYPE OF (maths_space, generic_literal); - base : tuple_space; - extender : maths_space; -WHERE - WR1: expression_is_constant(base) AND expression_is_constant(extender); - WR2: no_cyclic_space_reference(SELF, []); - WR3: extender <> the_empty_space; -END_ENTITY; - -ENTITY extension - SUBTYPE OF (derived_shape_aspect); -WHERE - WR1: SIZEOF(SELF\derived_shape_aspect.deriving_relationships) = 1; -END_ENTITY; - -ENTITY extent - SUBTYPE OF (characterized_object); -END_ENTITY; - -ENTITY external_class_library - SUBTYPE OF (external_source); -END_ENTITY; - -ENTITY external_identification_assignment - ABSTRACT SUPERTYPE - SUBTYPE OF (identification_assignment); - source : external_source; -END_ENTITY; - -ENTITY external_identification_assignment_relationship; - id : OPTIONAL identifier; - description : OPTIONAL text; - relating : external_identification_assignment; - related : external_identification_assignment; - relation_type : STRING; -WHERE - WR1: acyclic_external_identification_assignment_relationship(SELF, [related], - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXTERNAL_IDENTIFICATION_ASSIGNMENT_RELATIONSHIP'); -END_ENTITY; - -ENTITY external_source; - source_id : source_item; -DERIVE - description : text := get_description_value(SELF); -WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= - 1; -END_ENTITY; - -ENTITY external_source_relationship; - name : label; - description : OPTIONAL text; - relating_source : external_source; - related_source : external_source; -END_ENTITY; - -ENTITY externally_conditioned_data_quality_criteria_representation - SUBTYPE OF (data_quality_criteria_representation); -WHERE - WR1: SIZEOF(QUERY(q - <* SELF\representation.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXTERNALLY_CONDITIONED_DATA_QUALITY_CRITERION' IN - TYPEOF(q))) > - 0; -END_ENTITY; - -ENTITY externally_conditioned_data_quality_criterion - SUBTYPE OF (data_quality_criterion, data_quality_measurement_requirement); -WHERE - WR1: SIZEOF(USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_QUALITY_CRITERION_ASSESSMENT_ASSOCIATION.CRITERION')) = - 0; - WR2: SIZEOF(QUERY(i1 - <* bag_to_set(USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_ITEM_RELATIONSHIP.RELATED_REPRESENTATION_ITEM')) - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_QUALITY_CRITERION_MEASUREMENT_ASSOCIATION' IN - TYPEOF(i1))) = - 0; - WR3: SIZEOF(QUERY(i1 - <* bag_to_set(USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_ITEM_RELATIONSHIP.RELATING_REPRESENTATION_ITEM')) - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_QUALITY_CRITERION_MEASUREMENT_ASSOCIATION' IN - TYPEOF(i1))) = - 0; -END_ENTITY; - -ENTITY externally_conditioned_data_quality_inspection_instance_report_item - SUBTYPE OF (data_quality_inspection_instance_report_item); - SELF\data_quality_inspection_instance_report_item.inspected_elements : SET [1 : ?] OF inspected_ecdq_element_select; -WHERE - WR1: SIZEOF(QUERY(i1 - <* bag_to_set(USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_QUALITY_INSPECTION_INSTANCE_REPORT.INSPECTED_INSTANCES')) - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXTERNALLY_CONDITIONED_DATA_QUALITY_INSPECTION_RESULT' IN - TYPEOF(i1.inspection_result)))) = - 0; -END_ENTITY; - -ENTITY externally_conditioned_data_quality_inspection_result - SUBTYPE OF (data_quality_inspection_result); -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXTERNALLY_CONDITIONED_DATA_QUALITY_CRITERION' IN - TYPEOF(SELF\data_quality_inspection_result.criterion_inspected); -END_ENTITY; - -ENTITY externally_conditioned_data_quality_inspection_result_representation - SUBTYPE OF (data_quality_inspection_result_representation); -WHERE - WR1: SIZEOF(QUERY(q - <* SELF\representation.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXTERNALLY_CONDITIONED_DATA_QUALITY_INSPECTION_RESULT' IN - TYPEOF(q))) > - 0; -END_ENTITY; - -ENTITY externally_defined_character_glyph - SUBTYPE OF (externally_defined_item); -END_ENTITY; - -ENTITY externally_defined_class - SUBTYPE OF (class, externally_defined_item); -END_ENTITY; - -ENTITY externally_defined_colour - SUBTYPE OF (colour_specification, externally_defined_item); -END_ENTITY; - -ENTITY externally_defined_context_dependent_unit - SUBTYPE OF (context_dependent_unit, externally_defined_item); -END_ENTITY; - -ENTITY externally_defined_conversion_based_unit - SUBTYPE OF (conversion_based_unit, externally_defined_item); -END_ENTITY; - -ENTITY externally_defined_currency - SUBTYPE OF (currency, externally_defined_context_dependent_unit); -END_ENTITY; - -ENTITY externally_defined_curve_font - SUBTYPE OF (externally_defined_item); -END_ENTITY; - -ENTITY externally_defined_dimension_definition - SUBTYPE OF (dimensional_size, externally_defined_item); -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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.APPLIED_DOCUMENT_REFERENCE.ITEMS') - | (adr.assigned_document.description = 'external size dimension specification'))); -END_ENTITY; - -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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - ({5 <= SIZEOF(pdr.used_representation.items) <= 10}))) = - 1)) = - 1)); - WR3: ((NOT (SELF\characterized_object.description = 'marking')) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.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, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd))) - | (NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | ((sa_occ.description = 'partial area occurrence') AND - (SIZEOF(QUERY(sdr - <* QUERY(sar - <* USEDIN(sa_occ, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | ((sar.description = 'applied area usage') AND - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') IN - TYPEOF(sar)))) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.APPLIED_AREA' IN - TYPEOF(sdr.relating_shape_aspect)))) = - 1)))) <= - 1)))) = - 0); - WR6: ((NOT (SELF\characterized_object.description = 'marking')) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN - TYPEOF(it)) AND - (it.name = 'qualifier')))) <= - 1)))) = - 0)))) = - 0)); - WR9: ((NOT (SELF\characterized_object.description = 'thread')) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN - TYPEOF(it)) AND - (it.name = 'hand')))) = - 1)))) = - 0)))) = - 0)); - WR10: ((NOT (SELF\characterized_object.description = 'thread')) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN - TYPEOF(it)) AND - (it.name = 'fit class')))) = - 1)))) = - 0)))) = - 0)); - WR11: ((NOT (SELF\characterized_object.description = 'thread')) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN - TYPEOF(it)) AND - (it.name = 'form')))) = - 1)))) = - 0)))) = - 0)); - WR12: ((NOT (SELF\characterized_object.description = 'thread')) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'major diameter')))) <= - 1)))) = - 0)))) = - 0)); - WR13: ((NOT (SELF\characterized_object.description = 'thread')) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RATIO_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'number of threads')))) = - 1)))) = - 0)))) = - 0)); - WR14: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN - TYPEOF(it)) AND - (it.name = 'fit class 2')))) <= - 1)))) = - 0)))) = - 0); - WR15: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'nominal size')))) <= - 1)))) = - 0)))) = - 0); - WR16: (NOT (SELF\characterized_object.description IN ['knurl','gear','thread'])) OR - (SIZEOF(QUERY(pds - <* QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd))) - | (NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | ((SIZEOF(QUERY(sdr - <* QUERY(sar - <* USEDIN(sa_occ, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | ((sar.description = 'applied shape') AND - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') IN - TYPEOF(sar)))) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT' IN - TYPEOF(sdr.relating_shape_aspect)))) = - 1)))) <= - 1)))) = - 0); - WR17: ((NOT (SELF\characterized_object.description IN ['gear'])) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (10 <= SIZEOF(pdr.used_representation.items)) AND - (SIZEOF(pdr.used_representation.items) >= 11))) = - 1)) = - 1)); - WR18: ((NOT (SELF\characterized_object.description IN ['gear'])) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RATIO_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'number of teeth')))) = - 1)))) = - 0)))) = - 0)); - WR19: ((NOT (SELF\characterized_object.description IN ['gear'])) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'reference pressure angle')))) = - 1)))) = - 0)))) = - 0)); - WR20: ((NOT (SELF\characterized_object.description IN ['gear'])) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'rake shift factor')))) = - 1)))) = - 0)))) = - 0)); - WR21: ((NOT (SELF\characterized_object.description IN ['gear'])) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'nominal tooth depth')))) = - 1)))) = - 0)))) = - 0)); - WR22: ((NOT (SELF\characterized_object.description IN ['gear'])) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'face width')))) = - 1)))) = - 0)))) = - 0)); - WR23: ((NOT (SELF\characterized_object.description IN ['gear'])) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'tip diameter')))) = - 1)))) = - 0)))) = - 0)); - WR24: ((NOT (SELF\characterized_object.description IN ['gear'])) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN - TYPEOF(it)) AND - (it.name = 'module or diametral pitch') AND - ((it.description = 'module') OR - (it.description = 'diametral pitch'))))) = - 1)))) = - 0)))) = - 0)); - WR25: ((NOT (SELF\characterized_object.description IN ['gear'])) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'normal attribute')))) = - 1)))) = - 0)))) = - 0)); - WR26: ((NOT (SELF\characterized_object.description IN ['gear'])) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN - TYPEOF(it)) AND - (it.name = 'internal or external gear') AND - ((it.description = 'internal') OR - (it.description = 'external'))))) = - 1)))) = - 0)))) = - 0)); - WR27: ((NOT (SELF\characterized_object.description IN ['gear'])) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'root fillet radius')))) <= - 1)))) = - 0)))) = - 0)); -END_ENTITY; - -ENTITY externally_defined_general_property - SUBTYPE OF (general_property, externally_defined_item); -END_ENTITY; - -ENTITY externally_defined_hatch_style - SUBTYPE OF (externally_defined_item, geometric_representation_item); -END_ENTITY; - -ENTITY externally_defined_item; - item_id : source_item; - source : external_source; -END_ENTITY; - -ENTITY externally_defined_item_relationship; - name : label; - description : OPTIONAL text; - relating_item : externally_defined_item; - related_item : externally_defined_item; -END_ENTITY; - -ENTITY externally_defined_item_with_multiple_references - SUBTYPE OF (externally_defined_item); - references : LIST [1 : ?] OF UNIQUE source_item; -UNIQUE - UR1: references; -WHERE - WR1: NOT (SELF\externally_defined_item.item_id IN references); -END_ENTITY; - -ENTITY externally_defined_marker - SUBTYPE OF (externally_defined_symbol, pre_defined_marker); -END_ENTITY; - -ENTITY externally_defined_representation - SUBTYPE OF (representation, externally_defined_item); - SELF\representation.items : SET [1 : ?] OF externally_defined_representation_item; -END_ENTITY; - -ENTITY externally_defined_representation_item - SUBTYPE OF (representation_item, externally_defined_item); -END_ENTITY; - -ENTITY externally_defined_string - SUBTYPE OF (externally_defined_representation_item); -END_ENTITY; - -ENTITY externally_defined_style - SUBTYPE OF (externally_defined_item, founded_item); -END_ENTITY; - -ENTITY externally_defined_symbol - SUBTYPE OF (externally_defined_item); -END_ENTITY; - -ENTITY externally_defined_terminator_symbol - SUBTYPE OF (externally_defined_symbol); -END_ENTITY; - -ENTITY externally_defined_text_font - SUBTYPE OF (externally_defined_item); -END_ENTITY; - -ENTITY externally_defined_tile - SUBTYPE OF (externally_defined_item); -END_ENTITY; - -ENTITY externally_defined_tile_style - SUBTYPE OF (externally_defined_item, geometric_representation_item); -END_ENTITY; - -ENTITY externally_listed_data - SUBTYPE OF (explicit_table_function, generic_literal, externally_defined_item); - value_range : maths_space; -WHERE - WR1: expression_is_constant(value_range); -END_ENTITY; - -ENTITY extreme_instance; - locations_of_extreme_value : SET [1 : ?] OF location_of_extreme_value_select; - measured_value : measured_value_select; -END_ENTITY; - -ENTITY extreme_patch_width_variation - SUBTYPE OF (geometry_with_local_irregularity); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN - TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RATIO_MEASURE' IN - value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RATIO_MEASURE'); - WR3: validate_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_SURFACE']); - WR4: validate_locations_of_extreme_value_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_SURFACE_KNOT_LOCATOR']); - WR5: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); -END_ENTITY; - -ENTITY extruded_area_solid - SUBTYPE OF (swept_area_solid); - extruded_direction : direction; - depth : positive_length_measure; -WHERE - WR1: dot_product((SELF\swept_area_solid.swept_area.basis_surface\elementary_surface.position.p[3]), - extruded_direction) <> - 0.0; -END_ENTITY; - -ENTITY extruded_face_solid - SUBTYPE OF (swept_face_solid); - extruded_direction : direction; - depth : positive_length_measure; -WHERE - WR1: dot_product((SELF\swept_face_solid.swept_face.face_geometry\elementary_surface.position.p[3]), - extruded_direction) <> - 0.0; -END_ENTITY; - -ENTITY extruded_face_solid_with_draft_angle - SUBTYPE OF (extruded_face_solid_with_trim_conditions); - draft_angle : plane_angle_measure; -WHERE - WR1: draft_angle <> 0; -END_ENTITY; - -ENTITY extruded_face_solid_with_multiple_draft_angles - SUBTYPE OF (extruded_face_solid_with_trim_conditions); - drafted_edges : LIST [2 : ?] OF SET [1 : ?] OF edge_curve; - draft_angles : LIST [2 : ?] OF plane_angle_measure; -WHERE - WR1: SIZEOF(drafted_edges) = SIZEOF(draft_angles); - WR2: SIZEOF(QUERY(q <* draft_angles | q = 0)) = 0; - WR3: SIZEOF(QUERY(q - <* drafted_edges - | (SIZEOF(QUERY(r <* q | NOT (SELF\swept_face_solid.swept_face IN using_items(r, [])))) > 0))) = - 0; -END_ENTITY; - -ENTITY extruded_face_solid_with_trim_conditions - SUPERTYPE OF (ONEOF(extruded_face_solid_with_draft_angle, extruded_face_solid_with_multiple_draft_angles)) - SUBTYPE OF (extruded_face_solid); - first_trim_condition : trim_condition_select; - second_trim_condition : trim_condition_select; - first_trim_intent : trim_intent; - second_trim_intent : trim_intent; - first_offset : non_negative_length_measure; - second_offset : non_negative_length_measure; -WHERE - WR1: NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' IN TYPEOF(first_trim_condition)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' IN TYPEOF(second_trim_condition))); - WR2: NOT ((('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN TYPEOF(first_trim_condition)) AND - ((first_trim_intent = trim_intent.offset) OR (first_trim_intent = trim_intent.up_to_next))) OR - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN TYPEOF(second_trim_condition)) AND - ((second_trim_intent = trim_intent.offset) OR (second_trim_intent = trim_intent.up_to_next)))); - WR3: NOT (((NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN - TYPEOF(first_trim_condition))) AND - ((first_trim_intent = trim_intent.blind) OR (first_trim_intent = trim_intent.through_all))) OR - ((NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN - TYPEOF(second_trim_condition))) AND - ((second_trim_intent = trim_intent.blind) OR (second_trim_intent = trim_intent.through_all)))); - WR4: (((first_trim_intent = trim_intent.offset) AND (first_offset > 0)) XOR - ((first_trim_intent <> trim_intent.offset) AND (first_offset = 0))) AND - (((second_trim_intent = trim_intent.offset) AND (second_offset > 0)) XOR - ((second_trim_intent <> trim_intent.offset) AND (second_offset = 0))); - WR5: NOT ((('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN TYPEOF(first_trim_condition)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN TYPEOF(second_trim_condition))) AND - (first_trim_condition = second_trim_condition)); -END_ENTITY; - -ENTITY face - SUPERTYPE OF (ONEOF(face_surface, subface, oriented_face)) - SUBTYPE OF (topological_representation_item); - bounds : SET [1 : ?] OF face_bound; -WHERE - WR1: NOT (mixed_loop_type_set(list_to_set(list_face_loops(SELF)))); - WR2: SIZEOF(QUERY(temp - <* bounds - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_OUTER_BOUND' IN TYPEOF(temp))) <= - 1; -END_ENTITY; - -ENTITY face_based_surface_model - SUBTYPE OF (geometric_representation_item); - fbsm_faces : SET [1 : ?] OF connected_face_set; -END_ENTITY; - -ENTITY face_bound - SUBTYPE OF (topological_representation_item); - bound : loop; - orientation : BOOLEAN; -END_ENTITY; - -ENTITY face_outer_bound - SUBTYPE OF (face_bound); -END_ENTITY; - -ENTITY face_shape_representation - SUBTYPE OF (shape_representation); -WHERE - WR1: (SIZEOF(SELF.items) >= 1); - WR2: (SIZEOF(QUERY(it - <* SELF.items - | (NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE' IN TYPEOF(it)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORIENTED_FACE' IN TYPEOF(it)))))) = - 0); -END_ENTITY; - -ENTITY face_shape_representation_relationship - SUBTYPE OF (representation_relationship); -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF(SELF.rep_1)); - WR2: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF(SELF.rep_2)); -END_ENTITY; - -ENTITY face_surface - SUBTYPE OF (face, geometric_representation_item); - face_geometry : surface; - same_sense : BOOLEAN; -WHERE - WR1: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORIENTED_SURFACE' IN TYPEOF(face_geometry)); -END_ENTITY; - -ENTITY face_surface_with_excessive_patches_in_one_direction - SUBTYPE OF (overcomplex_topology_and_geometry_relationship); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN - TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' IN - value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE'); - WR3: validate_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE']); - WR4: validate_locations_of_extreme_value_type(SELF, []); - WR5: validate_accuracy_types(SELF, []); -END_ENTITY; - -ENTITY faceted_brep - SUBTYPE OF (manifold_solid_brep); -END_ENTITY; - -ENTITY faceted_brep_shape_representation - SUBTYPE OF (shape_representation); -WHERE - WR1: SIZEOF(QUERY(it - <* items - | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACETED_BREP', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D'] * - TYPEOF(it)) = - 1))) = - 0; - WR2: SIZEOF(QUERY(it - <* items - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACETED_BREP', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM'] * - TYPEOF(it)) = - 1))) > - 0; - WR3: SIZEOF(QUERY(fbrep - <* QUERY(it - <* items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACETED_BREP' IN TYPEOF(it))) - | NOT (SIZEOF(QUERY(csh - <* msb_shells(fbrep) - | NOT (SIZEOF(QUERY(fcs - <* csh\connected_face_set.cfs_faces - | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE' IN - TYPEOF(fcs)) AND - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE' IN - TYPEOF(fcs\face_surface.face_geometry)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CARTESIAN_POINT' IN - TYPEOF(fcs\face_surface.face_geometry\elementary_surface.position.location)))))) = - 0))) = - 0))) = - 0; - WR4: SIZEOF(QUERY(fbrep - <* QUERY(it - <* items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACETED_BREP' IN TYPEOF(it))) - | NOT (SIZEOF(QUERY(csh - <* msb_shells(fbrep) - | NOT (SIZEOF(QUERY(fcs - <* csh\connected_face_set.cfs_faces - | NOT (SIZEOF(QUERY(bnds - <* fcs.bounds - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_OUTER_BOUND' IN - TYPEOF(bnds)))) = - 1))) = - 0))) = - 0))) = - 0; - WR5: SIZEOF(QUERY(msb - <* QUERY(it - <* items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SOLID_BREP' IN TYPEOF(it))) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORIENTED_CLOSED_SHELL' IN - TYPEOF(msb\manifold_solid_brep.outer)))) = - 0; - WR6: SIZEOF(QUERY(brv - <* QUERY(it - <* items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BREP_WITH_VOIDS' IN TYPEOF(it))) - | NOT (SIZEOF(QUERY(csh <* brv\brep_with_voids.voids | csh\oriented_closed_shell.orientation)) = - 0))) = - 0; - WR7: SIZEOF(QUERY(mi - <* QUERY(it - <* items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF(it))) - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACETED_BREP_SHAPE_REPRESENTATION' IN - TYPEOF(mi\mapped_item.mapping_source.mapped_representation)))) = - 0; -END_ENTITY; - -ENTITY faceted_primitive - SUPERTYPE OF (ONEOF(tetrahedron, convex_hexahedron)) - SUBTYPE OF (geometric_representation_item); - points : LIST [4 : ?] OF UNIQUE cartesian_point; -WHERE - WR1: points[1].dim = 3; -END_ENTITY; - -ENTITY fact_type - SUBTYPE OF (property_definition); -END_ENTITY; - -ENTITY feature_component_definition - SUBTYPE OF (characterized_object); -WHERE - WR1: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE')) = - 1)))) = - 0); -END_ENTITY; - -ENTITY feature_component_relationship - SUPERTYPE OF (ONEOF(pattern_omit_membership, pattern_offset_membership)) - SUBTYPE OF (shape_aspect_relationship); -WHERE - WR1: ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_SHAPE_ASPECT', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPLICATE_FEATURE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TRANSITION_FEATURE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MODIFIED_PATTERN'] * - TYPEOF(SELF.relating_shape_aspect)) = - 1) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MACHINING_FEATURE_DEFINITION' IN - TYPEOF(SELF.relating_shape_aspect.of_shape.definition)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN - TYPEOF(SELF.relating_shape_aspect.of_shape.definition))); -END_ENTITY; - -ENTITY feature_definition - SUPERTYPE OF (ONEOF(boss, compound_feature, externally_defined_feature_definition, flat_face, gear, marking, - outer_round, outside_profile, pocket, protrusion, removal_volume, replicate_feature, - revolved_profile, rib_top, round_hole, rounded_end, spherical_cap, step, slot, thread, - turned_knurl)) - SUBTYPE OF (characterized_object); -END_ENTITY; - -ENTITY feature_definition_with_connection_area - SUBTYPE OF (shape_feature_definition); -END_ENTITY; - -ENTITY feature_for_datum_target_relationship - SUBTYPE OF (shape_aspect_relationship); - SELF\shape_aspect_relationship.related_shape_aspect : datum_target; -UNIQUE - UR1: related_shape_aspect; -WHERE - WR1: relating_shape_aspect.of_shape :=: related_shape_aspect.of_shape; - WR2: relating_shape_aspect\shape_aspect.product_definitional = true; -END_ENTITY; - -ENTITY feature_in_panel - SUBTYPE OF (feature_definition); -WHERE - WR1: SELF.description IN ['pocket','boss','stairstep']; - WR2: SIZEOF(QUERY(pdr - <* get_property_definition_representations(SELF) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - NOT ({2 <= SIZEOF(pdr.used_representation.items) <= 3}))) = - 0; - WR3: SIZEOF(QUERY(pdr - <* get_property_definition_representations(SELF) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF(QUERY(i - <* pdr.used_representation.items - | NOT (i.name IN ['orientation','base radius','target radius']))) > - 0))) = - 0; - WR4: SIZEOF(QUERY(pdr - <* get_property_definition_representations(SELF) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF(QUERY(i - <* pdr.used_representation.items - | (i.name = 'base radius') AND - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(i)) = - 2))) = - 1))) = - 1; - WR5: SIZEOF(QUERY(pdr - <* get_property_definition_representations(SELF) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF(QUERY(i - <* pdr.used_representation.items - | (i.name = 'target radius') AND - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(i)) = - 2))) = - 1))) = - 1; - WR6: SIZEOF(QUERY(sa - <* get_shape_aspects(SELF) - | (sa.name = 'base boundary') AND - (sa.description IN ['directed angle occurrence','closed profile occurrence']))) = - 1; - WR7: SIZEOF(QUERY(sa - <* get_shape_aspects(SELF) - | (sa.name = 'target boundary') AND - (sa.description IN ['directed angle occurrence','closed profile occurrence']))) = - 1; - WR8: SIZEOF(QUERY(sa <* get_shape_aspects(SELF) | (sa.description = 'directed angle occurrence'))) <= 1; - WR9: SIZEOF(QUERY(sa - <* get_shape_aspects(SELF) - | (sa.description = 'directed angle occurrence') AND - (SIZEOF(QUERY(sar - <* USEDIN(sa, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN - TYPEOF(sar)) AND - (sar.name = 'directed angle usage') AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIRECTED_ANGLE' IN - TYPEOF(sar.relating_shape_aspect)))) = - 1))) = - SIZEOF(QUERY(sa <* get_shape_aspects(SELF) | (sa.description = 'directed angle occurrence'))); - WR10: SIZEOF(QUERY(sa - <* get_shape_aspects(SELF) - | (sa.description = 'closed profile occurrence') AND - (SIZEOF(QUERY(sar - <* USEDIN(sa, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN - TYPEOF(sar)) AND - (sar.description = 'profile usage') AND - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_CLOSED_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NGON_CLOSED_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_CLOSED_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLOSED_PATH_PROFILE'] * - TYPEOF(sar.relating_shape_aspect)) = - 1))) = - 1))) = - SIZEOF(QUERY(sa <* get_shape_aspects(SELF) | (sa.description = 'closed profile occurrence'))); - WR11: (SIZEOF(QUERY(pdr - <* get_property_definition_representations(SELF) - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION' IN - TYPEOF(pdr.used_representation))) <= - 1) AND - (SIZEOF(QUERY(pdr - <* get_property_definition_representations(SELF) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION' IN - TYPEOF(pdr.used_representation)) AND - NOT (pdr.used_representation.name = 'target face'))) = - 0); - WR12: (SIZEOF(QUERY(sa - <* get_shape_aspects(SELF) - | (sa.name = 'target boundary') AND (sa.description = 'directed angle occurrence'))) = - 0) OR - (SIZEOF(QUERY(pdr - <* get_property_definition_representations(SELF) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION' IN - TYPEOF(pdr.used_representation)))) = - 1); -END_ENTITY; - -ENTITY feature_pattern - SUBTYPE OF (replicate_feature); -WHERE - WR1: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF(QUERY(srwp_i - <* pdr.used_representation.items - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' IN - TYPEOF(srwp_i)))) > - 0))) > - 0)) = - 0; - WR2: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - | NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' IN - TYPEOF(it)) AND - (it.name = 'base feature placement'))) > - 1))) = - 0))) = - 0; -END_ENTITY; - -ENTITY fill_area_style - SUBTYPE OF (founded_item); - name : label; - fill_styles : SET [1 : ?] OF fill_style_select; -WHERE - WR1: SIZEOF(QUERY(fill_style - <* fill_styles - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FILL_AREA_STYLE_COLOUR' IN - TYPEOF(fill_style))) <= - 1; -END_ENTITY; - -ENTITY fill_area_style_colour; - name : label; - fill_colour : colour; -END_ENTITY; - -ENTITY fill_area_style_hatching - SUBTYPE OF (geometric_representation_item); - hatch_line_appearance : curve_style; - start_of_next_hatch_line : one_direction_repeat_factor; - point_of_reference_hatch_line : cartesian_point; - pattern_start : cartesian_point; - hatch_line_angle : plane_angle_measure; -END_ENTITY; - -ENTITY fill_area_style_tile_coloured_region - SUBTYPE OF (geometric_representation_item); - closed_curve : curve_or_annotation_curve_occurrence; - region_colour : colour; -WHERE - WR1: (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE' IN TYPEOF(closed_curve))) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCLE' IN TYPEOF(closed_curve)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ELLIPSE' IN TYPEOF(closed_curve)) OR - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE' IN TYPEOF(closed_curve)) AND - (closed_curve\b_spline_curve.closed_curve = true)) OR - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_CURVE' IN TYPEOF(closed_curve)) AND - (closed_curve\composite_curve.closed_curve = true)) OR - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYLINE' IN TYPEOF(closed_curve)) AND - (closed_curve\polyline.points[LOINDEX(closed_curve\polyline.points)] = - closed_curve\polyline.points[HIINDEX(closed_curve\polyline.points)])); -END_ENTITY; - -ENTITY fill_area_style_tile_curve_with_style - SUBTYPE OF (geometric_representation_item); - styled_curve : annotation_curve_occurrence; -END_ENTITY; - -ENTITY fill_area_style_tile_symbol_with_style - SUBTYPE OF (geometric_representation_item); - symbol : annotation_symbol_occurrence; -END_ENTITY; - -ENTITY fill_area_style_tiles - SUBTYPE OF (geometric_representation_item); - tiling_pattern : two_direction_repeat_factor; - tiles : SET [1 : ?] OF fill_area_style_tile_shape_select; - tiling_scale : positive_ratio_measure; -END_ENTITY; - -ENTITY fillet - SUBTYPE OF (transition_feature); -WHERE - WR1: (NOT (SELF\shape_aspect.description = 'constant radius')) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - | NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - | NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - | NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'second offset'))) <= - 1))) = - 0))) = - 0); - WR6: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION' IN - TYPEOF(pdr.used_representation)) AND - (pdr.used_representation.name = 'fillet face'))) = - 1))) = - 0; - WR7: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION' IN - TYPEOF(pdr.used_representation)) AND - (pdr.used_representation.name = 'first face shape'))) = - 1))) = - 0; - WR8: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION' IN - TYPEOF(pdr.used_representation)) AND - (pdr.used_representation.name = 'second face shape'))) = - 1))) = - 0; -END_ENTITY; - -ENTITY final_solution - SUBTYPE OF (product_definition_formation); - status : STRING; -INVERSE - specification : SET [1:?] OF product_definition FOR formation; -END_ENTITY; - -ENTITY finite_function - SUBTYPE OF (maths_function, generic_literal); - pairs : SET [1 : ?] OF LIST [2 : 2] OF maths_value; -WHERE - WR1: VALUE_UNIQUE(list_selected_components(pairs, 1)); -END_ENTITY; - -ENTITY finite_integer_interval - SUBTYPE OF (maths_space, generic_literal); - min : INTEGER; - max : INTEGER; -DERIVE - size : positive_integer := max - min + 1; -WHERE - WR1: min <= max; -END_ENTITY; - -ENTITY finite_real_interval - SUBTYPE OF (maths_space, generic_literal); - min : REAL; - min_closure : open_closed; - max : REAL; - max_closure : open_closed; -WHERE - WR1: min < max; -END_ENTITY; - -ENTITY fixed_constituent_assembly_constraint - SUBTYPE OF (assembly_geometric_constraint, fixed_element_geometric_constraint); - fixed_constituent : representative_shape_representation; -WHERE - WR1: SELF\explicit_constraint.constrained_elements[1]\geometric_representation_item.dim = 3; - WR2: (assembly_leaf(using_product_definition_of_shape_representation(fixed_constituent)[1])); - WR3: (SIZEOF(SELF\explicit_constraint.constrained_elements) = 1) AND - (SIZEOF(SELF\explicit_constraint.reference_elements) = 0); - WR4: fixed_constituent IN - (using_representations(SELF\explicit_constraint.constrained_elements[1]) + - using_representation_with_mapping(SELF\explicit_constraint.constrained_elements[1])); -END_ENTITY; - -ENTITY fixed_element_geometric_constraint - SUBTYPE OF (explicit_geometric_constraint); - SELF\explicit_constraint.constrained_elements : SET [1 : ?] OF geometric_constraint_element; -WHERE - WR1: SIZEOF(SELF\explicit_constraint.reference_elements) = 0; -END_ENTITY; - -ENTITY fixed_instance_attribute_set - SUBTYPE OF (variational_representation_item); - fixed_attributes : SET [1 : ?] OF instance_attribute_reference; -WHERE - WR1: SIZEOF(QUERY(q - <* using_representations(SELF) - | SIZEOF(QUERY(r - <* q.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FIXED_INSTANCE_ATTRIBUTE_SET' IN - TYPEOF(r))) > - 1)) = - 0; -END_ENTITY; - -ENTITY fixed_reference_swept_surface - SUBTYPE OF (swept_surface); - directrix : curve; - fixed_reference : direction; -END_ENTITY; - -ENTITY flat_face - SUBTYPE OF (feature_definition); -WHERE - WR1: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' IN - TYPEOF(pdr.used_representation)) AND - (pdr.used_representation.name = 'removal direction')))) = - 1)))) = - 0); - WR2: (SIZEOF(QUERY(pds - <* QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd))) - | (NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | ((sa_occ.description = 'course of travel occurrence') AND - (SIZEOF(QUERY(sdr - <* QUERY(sar - <* USEDIN(sa_occ, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | ((sar.description = - 'path feature component usage') AND - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') IN - TYPEOF(sar)))) - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PATH_FEATURE_COMPONENT' IN - TYPEOF(sdr.relating_shape_aspect)) AND - (sdr.relating_shape_aspect.description = 'linear') AND - (sdr.name = 'course of travel')))) = - 1)))) = - 1)))) = - 0); - WR3: (SIZEOF(QUERY(pds - <* QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd))) - | (NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | ((sa_occ.description = 'removal boundary occurrence') AND - (SIZEOF(QUERY(sdr - <* QUERY(sar - <* USEDIN(sa_occ, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | ((sar.description = 'profile usage') AND - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') IN - TYPEOF(sar)))) - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINEAR_PROFILE' IN - TYPEOF(sdr.relating_shape_aspect)) AND - (sdr.name = 'removal boundary')))) = - 1)))) = - 1)))) = - 0); - WR4: SIZEOF(QUERY(pds - <* QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd)) - | NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | (sa_occ.description = 'enclosed boundary occurrence') AND - (SIZEOF(QUERY(sdr - <* QUERY(sar - <* USEDIN(sa_occ, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | (sar.description = 'profile usage') AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN - TYPEOF(sar))) - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_CLOSED_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NGON_CLOSED_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_CLOSED_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLOSED_PATH_PROFILE'] * - TYPEOF(sdr.relating_shape_aspect)) = - 1) AND - (sdr.relating_shape_aspect.description = 'boundary'))) = - 1))) <= - 1))) = - 0; - WR5: SIZEOF(QUERY(pdr - <* get_property_definition_representations(SELF) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN - TYPEOF(pdr.used_representation)) AND - (pdr.used_representation.name = 'maximum feature limit'))) >= - 0; - WR6: SIZEOF(QUERY(pds - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pds)) AND - (SIZEOF(QUERY(csa - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN - TYPEOF(csa)) AND - (csa.name = 'uncut volume') AND - (SIZEOF(QUERY(sar - <* csa.component_relationships - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN - TYPEOF(sar)) AND - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOSS', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROTRUSION'] * - TYPEOF(sar.related_shape_aspect)) = - 1)))) = - 1)))) <= - 1)))) = - 1; - WR7: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - | NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'removal depth'))) <= - 1))) = - 0))) = - 0; -END_ENTITY; - -ENTITY flat_pattern_ply_representation_relationship - SUBTYPE OF (shape_representation_relationship); -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION' IN - (TYPEOF(SELF\representation_relationship.rep_1) * TYPEOF(SELF\representation_relationship.rep_2)); - WR2: SELF\representation_relationship.rep_1.context_of_items\geometric_representation_context.coordinate_space_dimension = - 3; -END_ENTITY; - -ENTITY flatness_tolerance - SUBTYPE OF (geometric_tolerance); -WHERE - WR1: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' IN TYPEOF(SELF)); -END_ENTITY; - -ENTITY force_measure_with_unit - SUBTYPE OF (measure_with_unit); -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FORCE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); -END_ENTITY; - -ENTITY force_unit - SUBTYPE OF (derived_unit); -WHERE - WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit(si_unit_name.newton); -END_ENTITY; - -ENTITY format_function - SUBTYPE OF (string_expression, binary_generic_expression); -DERIVE - value_to_format : generic_expression := SELF\binary_generic_expression.operands[1]; - format_string : generic_expression := SELF\binary_generic_expression.operands[2]; -WHERE - WR1: (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NUMERIC_EXPRESSION') IN TYPEOF(value_to_format)) AND - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STRING_EXPRESSION') IN TYPEOF(format_string)); -END_ENTITY; - -ENTITY forward_chaining_rule - SUBTYPE OF (rule_definition); -END_ENTITY; - -ENTITY forward_chaining_rule_premise - SUBTYPE OF (property_definition, property_definition_representation, representation); -END_ENTITY; - -ENTITY founded_item - SUPERTYPE OF ((ONEOF(b_spline_curve_knot_locator, b_spline_curve_segment, b_spline_surface_knot_locator, - b_spline_surface_patch, b_spline_surface_strip, - boundary_curve_of_b_spline_or_rectangular_composite_surface, box_domain, - character_glyph_style_outline, character_glyph_style_stroke, composite_curve_segment, - composite_curve_transition_locator, curve_style, curve_style_font, curve_style_font_and_scaling, - curve_style_font_pattern, externally_defined_style, fill_area_style, - interpolated_configuration_segment, kinematic_path_segment, plane_angle_and_length_pair, - plane_angle_and_ratio_pair, point_style, presentation_style_assignment, - rectangular_composite_surface_transition_locator, surface_patch, surface_side_style, - surface_style_boundary, surface_style_control_grid, surface_style_fill_area, - surface_style_parameter_line, surface_style_segmentation_curve, surface_style_silhouette, - surface_style_usage, symbol_style, text_style, view_volume)) ANDOR - (ONEOF(character_glyph_style_outline, character_glyph_style_stroke, curve_style, curve_style_font, - curve_style_font_and_scaling, curve_style_font_pattern, externally_defined_style, - fill_area_style, point_style, presentation_style_assignment, surface_side_style, - surface_style_boundary, surface_style_control_grid, surface_style_fill_area, - surface_style_parameter_line, surface_style_segmentation_curve, surface_style_silhouette, - surface_style_usage, symbol_style, text_style))); -DERIVE - users : SET [0 : ?] OF founded_item_select := using_items(SELF, []); -WHERE - WR1: SIZEOF(users) > 0; - WR2: NOT (SELF IN users); -END_ENTITY; - -ENTITY free_edge - SUBTYPE OF (inapt_topology); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; -WHERE - WR1: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE'); - WR2: validate_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SET']); - WR3: validate_locations_of_extreme_value_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE']); - WR4: validate_accuracy_types(SELF, []); - WR5: SIZEOF(QUERY(sdqr - <* bag_to_set(USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_QUALITY_INSPECTION_RESULT.CRITERION_INSPECTED')) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_INSPECTION_RESULT' IN - TYPEOF(sdqr)) AND - (SIZEOF(QUERY(sdqiir - <* bag_to_set(USEDIN(sdqr, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_QUALITY_INSPECTION_REPORT.INSPECTION_RESULT')) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT' IN - TYPEOF(sdqiir)) AND - (SIZEOF(QUERY(sdqiri - <* sdqiir.inspected_instances - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLOSED_SHELL' IN - TYPEOF(sdqiri.inspected_elements[1])))) = - 0))) = - 0))) = - 0; -END_ENTITY; - -ENTITY free_form_assignment - SUBTYPE OF (free_form_constraint); -WHERE - WR1: SIZEOF(QUERY(q - <* SELF\free_form_constraint.constrained_elements - | q IN used_variables(SELF\free_form_constraint.constraining_expression))) = - 0; - WR2: SIZEOF(QUERY(q - <* SELF\free_form_constraint.reference_elements - | NOT (q IN used_variables(SELF\free_form_constraint.constraining_expression)))) = - 0; - WR3: SIZEOF(SELF\free_form_constraint.reference_elements) >= 1; - WR4: SIZEOF(QUERY(q - <* SELF\free_form_constraint.constrained_elements - | NOT (compatible_spaces(values_space_of(SELF\free_form_constraint.constraining_expression), - q\maths_variable.values_space)))) = - 0; -END_ENTITY; - -ENTITY free_form_constraint - ABSTRACT SUPERTYPE OF (ONEOF(free_form_assignment, free_form_relation)) - SUBTYPE OF (explicit_constraint); - SELF\explicit_constraint.constrained_elements : SET [1 : ?] OF variational_parameter; - SELF\explicit_constraint.reference_elements : SET [0 : ?] OF variational_parameter; - constraining_expression : expression; -END_ENTITY; - -ENTITY free_form_relation - SUBTYPE OF (free_form_constraint); -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_EXPRESSION' IN - TYPEOF(SELF\free_form_constraint.constraining_expression); - WR2: SIZEOF(QUERY(q - <* (SELF\free_form_constraint.constrained_elements + SELF\free_form_constraint.reference_elements) - | NOT (q IN used_variables(SELF\free_form_constraint.constraining_expression)))) = - 0; -END_ENTITY; - -ENTITY free_kinematic_motion_representation - SUBTYPE OF (representation_relationship_with_transformation); - SELF\representation_relationship.rep_1 : representative_shape_representation; - SELF\representation_relationship.rep_2 : representative_shape_representation; - motion : kinematic_path; -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ITEM_DEFINED_TRANSFORMATION' IN - TYPEOF(SELF\representation_relationship_with_transformation.transformation_operator); - WR2: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN - TYPEOF(SELF\representation_relationship_with_transformation.transformation_operator\item_defined_transformation.transform_item_1)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN - TYPEOF(SELF\representation_relationship_with_transformation.transformation_operator\item_defined_transformation.transform_item_2)); - WR3: ((dimension_of(SELF\representation_relationship_with_transformation.transformation_operator\item_defined_transformation.transform_item_1) = - 3) AND - (dimension_of(SELF\representation_relationship_with_transformation.transformation_operator\item_defined_transformation.transform_item_2) = - 3)); - WR4: (SELF\representation_relationship.rep_1 IN - (using_representations(SELF\representation_relationship_with_transformation.transformation_operator\item_defined_transformation.transform_item_1) + - using_representation_with_mapping(SELF\representation_relationship_with_transformation.transformation_operator\item_defined_transformation.transform_item_1))) AND - (SELF\representation_relationship.rep_2 IN - (using_representations(SELF\representation_relationship_with_transformation.transformation_operator\item_defined_transformation.transform_item_2) + - using_representation_with_mapping(SELF\representation_relationship_with_transformation.transformation_operator\item_defined_transformation.transform_item_2))); -END_ENTITY; - -ENTITY free_variable_semantics - SUBTYPE OF (variable_semantics); -END_ENTITY; - -ENTITY frequency_measure_with_unit - SUBTYPE OF (measure_with_unit); -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FREQUENCY_UNIT' IN - TYPEOF(SELF\measure_with_unit.unit_component); -END_ENTITY; - -ENTITY frequency_unit - SUBTYPE OF (derived_unit); -WHERE - WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit(si_unit_name.hertz); -END_ENTITY; - -ENTITY frozen_assignment - SUBTYPE OF (approval_assignment); - items : SET [1 : ?] OF change_management_object; -END_ENTITY; - -ENTITY fully_constrained_pair - SUBTYPE OF (low_order_kinematic_pair); -DERIVE - SELF\low_order_kinematic_pair.t_x : BOOLEAN := false; - SELF\low_order_kinematic_pair.t_y : BOOLEAN := false; - SELF\low_order_kinematic_pair.t_z : BOOLEAN := false; - SELF\low_order_kinematic_pair.r_x : BOOLEAN := false; - SELF\low_order_kinematic_pair.r_y : BOOLEAN := false; - SELF\low_order_kinematic_pair.r_z : BOOLEAN := false; -END_ENTITY; - -ENTITY func - SUBTYPE OF (compound_representation_item); -END_ENTITY; - -ENTITY function_application - SUBTYPE OF (multiple_arity_generic_expression); - func : maths_function_select; - arguments : LIST [1 : ?] OF maths_expression; -DERIVE - SELF\multiple_arity_generic_expression.operands : LIST [2 : ?] OF generic_expression := [convert_to_maths_function(func)] + - convert_to_operands(arguments); -WHERE - WR1: function_applicability(func, arguments); -END_ENTITY; - -ENTITY function_space - SUBTYPE OF (maths_space, generic_literal); - domain_constraint : space_constraint_type; - domain_argument : maths_space; - range_constraint : space_constraint_type; - range_argument : maths_space; -WHERE - WR1: expression_is_constant(domain_argument) AND expression_is_constant(range_argument); - WR2: (domain_argument <> the_empty_space) AND (range_argument <> the_empty_space); - WR3: (domain_constraint <> sc_member) OR NOT member_of(the_empty_space, domain_argument); - WR4: (range_constraint <> sc_member) OR NOT member_of(the_empty_space, range_argument); - WR5: NOT (any_space_satisfies(domain_constraint, domain_argument) AND - any_space_satisfies(range_constraint, range_argument)); -END_ENTITY; - -ENTITY functional_breakdown_context - SUBTYPE OF (breakdown_context); -END_ENTITY; - -ENTITY functional_element_usage - SUBTYPE OF (breakdown_element_usage); -END_ENTITY; - -ENTITY functionally_defined_transformation; - name : label; - description : OPTIONAL text; -END_ENTITY; - -ENTITY g1_discontinuity_between_adjacent_faces - SUBTYPE OF (non_smooth_geometry_transition_across_edge); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN - TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' IN - value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE'); - WR3: validate_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SET']); - WR4: validate_locations_of_extreme_value_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_EDGE_CURVE']); - WR5: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE']); -END_ENTITY; - -ENTITY g1_discontinuous_curve - SUBTYPE OF (discontinuous_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN - TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' IN - value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE'); - WR3: validate_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE']); - WR4: validate_locations_of_extreme_value_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE_KNOT_LOCATOR']); - WR5: validate_accuracy_types(SELF, []); -END_ENTITY; - -ENTITY g1_discontinuous_surface - SUBTYPE OF (discontinuous_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN - TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' IN - value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE'); - WR3: validate_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_SURFACE']); - WR4: validate_locations_of_extreme_value_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_SURFACE_KNOT_LOCATOR']); - WR5: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE']); -END_ENTITY; - -ENTITY g2_discontinuity_between_adjacent_faces - SUBTYPE OF (non_smooth_geometry_transition_across_edge); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - assessment_specification_2 : shape_data_quality_assessment_by_numerical_test; - flat_curvature_radius_tolerance : length_measure; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN - TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' IN - value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN - TYPEOF(assessment_specification_2\shape_data_quality_assessment_by_numerical_test.threshold)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RATIO_MEASURE' IN - value_limit_type(assessment_specification_2\shape_data_quality_assessment_by_numerical_test.threshold)); - WR3: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_AND_RATIO_PAIR'); - WR4: validate_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SET']); - WR5: validate_locations_of_extreme_value_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_EDGE_CURVE']); - WR6: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RATIO_MEASURE']); -END_ENTITY; - -ENTITY g2_discontinuous_curve - SUBTYPE OF (discontinuous_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - assessment_specification_2 : shape_data_quality_assessment_by_numerical_test; - flat_curvature_radius_tolerance : length_measure; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN - TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' IN - value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN - TYPEOF(assessment_specification_2\shape_data_quality_assessment_by_numerical_test.threshold)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RATIO_MEASURE' IN - value_limit_type(assessment_specification_2\shape_data_quality_assessment_by_numerical_test.threshold)); - WR3: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_AND_RATIO_PAIR'); - WR4: validate_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE']); - WR5: validate_locations_of_extreme_value_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE_KNOT_LOCATOR']); - WR6: validate_accuracy_types(SELF, []); -END_ENTITY; - -ENTITY g2_discontinuous_surface - SUBTYPE OF (discontinuous_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - assessment_specification_2 : shape_data_quality_assessment_by_numerical_test; - flat_curvature_radius_tolerance : length_measure; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN - TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' IN - value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN - TYPEOF(assessment_specification_2\shape_data_quality_assessment_by_numerical_test.threshold)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RATIO_MEASURE' IN - value_limit_type(assessment_specification_2\shape_data_quality_assessment_by_numerical_test.threshold)); - WR3: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_AND_RATIO_PAIR'); - WR4: validate_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_SURFACE']); - WR5: validate_locations_of_extreme_value_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_SURFACE_KNOT_LOCATOR']); - WR6: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RATIO_MEASURE']); -END_ENTITY; - -ENTITY gap_between_adjacent_edges_in_loop - SUBTYPE OF (geometric_gap_in_topology); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN - TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN - value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE'); - WR3: validate_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP']); - WR4: validate_locations_of_extreme_value_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORIENTED_EDGE']); - WR5: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); -END_ENTITY; - -ENTITY gap_between_edge_and_base_surface - SUBTYPE OF (geometric_gap_in_topology); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN - TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN - value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE'); - WR3: validate_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE']); - WR4: validate_locations_of_extreme_value_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_EDGE_CURVE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_FACE_SURFACE']); - WR5: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); -END_ENTITY; - -ENTITY gap_between_faces_related_to_an_edge - SUBTYPE OF (geometric_gap_in_topology); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN - TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN - value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE'); - WR3: validate_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SET']); - WR4: validate_locations_of_extreme_value_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_EDGE_CURVE']); - WR5: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); -END_ENTITY; - -ENTITY gap_between_pcurves_related_to_an_edge - SUBTYPE OF (geometric_gap_in_topology); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN - TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN - value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE'); - WR3: validate_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SET']); - WR4: validate_locations_of_extreme_value_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_SURFACE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_SURFACE']); - WR5: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); -END_ENTITY; - -ENTITY gap_between_vertex_and_base_surface - SUBTYPE OF (geometric_gap_in_topology); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN - TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN - value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE'); - WR3: validate_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE']); - WR4: validate_locations_of_extreme_value_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_FACE_SURFACE']); - WR5: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); -END_ENTITY; - -ENTITY gap_between_vertex_and_edge - SUBTYPE OF (geometric_gap_in_topology); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN - TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN - value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE'); - WR3: validate_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE']); - WR4: validate_locations_of_extreme_value_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_EDGE_CURVE']); - WR5: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); -END_ENTITY; - -ENTITY gear - SUBTYPE OF (feature_definition); -WHERE - WR1: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (10 <= SIZEOF(pdr.used_representation.items)) AND - (SIZEOF(pdr.used_representation.items) <= 13))) = - 1)) = - 1; - WR2: NOT (SELF\characterized_object.description IN - ['straight bevel gear','helical bevel gear','spur gear','helical gear']) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - | NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RATIO_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'number of teeth'))) = - 1))) = - 0))) = - 0); - WR3: NOT (SELF\characterized_object.description IN - ['straight bevel gear','helical bevel gear','spur gear','helical gear']) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - | NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'reference pressure angle'))) = - 1))) = - 0))) = - 0); - WR4: NOT (SELF\characterized_object.description IN - ['straight bevel gear','helical bevel gear','spur gear','helical gear']) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - | NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'rake shift factor'))) = - 1))) = - 0))) = - 0); - WR5: NOT (SELF\characterized_object.description IN - ['straight bevel gear','helical bevel gear','spur gear','helical gear']) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - | NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'nominal tooth depth'))) = - 1))) = - 0))) = - 0); - WR6: NOT (SELF\characterized_object.description IN - ['straight bevel gear','helical bevel gear','spur gear','helical gear']) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - | NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'face width'))) = - 1))) = - 0))) = - 0); - WR7: NOT (SELF\characterized_object.description IN - ['straight bevel gear','helical bevel gear','spur gear','helical gear']) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - | NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'tip diameter'))) = - 1))) = - 0))) = - 0); - WR8: NOT (SELF\characterized_object.description IN - ['straight bevel gear','helical bevel gear','spur gear','helical gear']) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - | NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN - TYPEOF(it)) AND - (it.name = 'module or diametral pitch') AND - ((it.description = 'module') OR - (it.description = 'diametral pitch')))) = - 1))) = - 0))) = - 0); - WR9: NOT (SELF\characterized_object.description IN - ['straight bevel gear','helical bevel gear','spur gear','helical gear']) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - | NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN - TYPEOF(it)) AND - (it.name = 'internal or external gear') AND - ((it.description = 'internal') OR - (it.description = 'external')))) = - 1))) = - 0))) = - 0); - WR10: NOT (SELF\characterized_object.description IN - ['straight bevel gear','helical bevel gear','spur gear','helical gear']) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - | NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'normal attribute'))) = - 1))) = - 0))) = - 0); - WR11: NOT (SELF\characterized_object.description IN - ['straight bevel gear','helical bevel gear','spur gear','helical gear']) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - | NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'root fillet radius'))) <= - 1))) = - 0))) = - 0); - WR12: NOT (SELF\characterized_object.description IN ['helix gear','helical bevel gear']) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - | NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'reference helix angle'))) = - 1))) = - 0))) = - 0); - WR13: NOT (SELF\characterized_object.description IN ['helix gear','helical bevel gear']) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - | NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN - TYPEOF(it)) AND - (it.name = 'gear tooth') AND - ((it.description = 'left hand tooth') OR - (it.description = 'right hand tooth')))) = - 1))) = - 0))) = - 0); - WR14: NOT (SELF\characterized_object.description IN ['straight bevel gear','helical bevel gear']) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - | NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'tip angle'))) = - 1))) = - 0))) = - 0); - WR15: NOT (SELF\characterized_object.description IN ['straight bevel gear','helical bevel gear']) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - | NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'root angle'))) = - 1))) = - 0))) = - 0); - WR16: SIZEOF(QUERY(pds - <* QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd)) - | NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | SIZEOF(QUERY(sdr - <* QUERY(sar - <* USEDIN(sa_occ, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | (sar.description = 'applied shape') AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN - TYPEOF(sar))) - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT' IN - TYPEOF(sdr.relating_shape_aspect))) = - 1)) = - 1))) = - 0; -END_ENTITY; - -ENTITY gear_pair - SUBTYPE OF (low_order_kinematic_pair_with_motion_coupling); - radius_first_link : length_measure; - radius_second_link : length_measure; - bevel : plane_angle_measure; - helical_angle : plane_angle_measure; - gear_ratio : REAL; -WHERE - WR1: SIZEOF(QUERY(lr - <* SELF\kinematic_pair.associated_link_representations_1 - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RIGID_LINK_REPRESENTATION' IN - TYPEOF(lr)))) = - 0; -END_ENTITY; - -ENTITY gear_pair_value - SUBTYPE OF (pair_value); - SELF\pair_value.applies_to_pair : gear_pair; - actual_rotation_1 : plane_angle_measure; -DERIVE - actual_rotation_2 : plane_angle_measure := -actual_rotation_1 * SELF\pair_value.applies_to_pair\gear_pair.gear_ratio; -END_ENTITY; - -ENTITY gear_pair_with_range - SUBTYPE OF (gear_pair); - lower_limit_actual_rotation_1 : OPTIONAL plane_angle_measure; - upper_limit_actual_rotation_1 : OPTIONAL plane_angle_measure; -WHERE - WR1: (NOT EXISTS(lower_limit_actual_rotation_1) OR NOT EXISTS(upper_limit_actual_rotation_1)) XOR - (lower_limit_actual_rotation_1 < upper_limit_actual_rotation_1); -END_ENTITY; - -ENTITY general_datum_reference - ABSTRACT SUPERTYPE OF (ONEOF(datum_reference_compartment, datum_reference_element)) - SUBTYPE OF (shape_aspect); - base : datum_or_common_datum; - modifiers : OPTIONAL SET [1 : ?] OF datum_reference_modifier; -WHERE - WR1: SELF\shape_aspect.name = ''; - WR2: NOT EXISTS(SELF\shape_aspect.description); - WR3: NOT EXISTS(SELF\shape_aspect.id); - WR4: SELF\shape_aspect.product_definitional = false; - WR5: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATUM' IN TYPEOF(base)) OR - (SELF\shape_aspect.of_shape = base\shape_aspect.of_shape); - WR6: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMMON_DATUM_LIST' IN TYPEOF(base)) OR - (SELF\shape_aspect.of_shape = base[1]\shape_aspect.of_shape); -END_ENTITY; - -ENTITY general_feature - SUBTYPE OF (shape_feature_definition); -WHERE - WR1: (SIZEOF(get_property_definition_representations(SELF)) <= 1) AND - (SIZEOF(QUERY(pdr - <* get_property_definition_representations(SELF) - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation))) <= - 1); - WR2: SIZEOF(QUERY(sa <* get_shape_aspects(SELF) | sa.description = 'course of travel occurrence')) = - SIZEOF(QUERY(sa - <* get_shape_aspects(SELF) - | (sa.description = 'course of travel occurrence') AND - (SIZEOF(QUERY(sar - <* USEDIN(sa, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN - TYPEOF(sar)) AND - (sar.name = 'course of travel'))) = - 1))); - WR3: SIZEOF(QUERY(sa <* get_shape_aspects(SELF) | sa.description = 'course of travel occurrence')) = - SIZEOF(QUERY(sa - <* get_shape_aspects(SELF) - | (sa.description = 'course of travel occurrence') AND - (SIZEOF(QUERY(sar - <* USEDIN(sa, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN - TYPEOF(sar)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PATH_FEATURE_COMPONENT' IN - TYPEOF(sar.relating_shape_aspect)))) = - 1))); - WR4: SIZEOF(QUERY(sa <* get_shape_aspects(SELF) | sa.description = 'boundary occurrence')) = - SIZEOF(QUERY(sa - <* get_shape_aspects(SELF) - | (sa.description = 'boundary occurrence') AND - (SIZEOF(QUERY(sar - <* USEDIN(sa, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN - TYPEOF(sar)) AND - (sar.description = 'profile usage'))) = - 1))); - WR5: (SIZEOF(QUERY(sa - <* get_shape_aspects(SELF) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN TYPEOF(sa)))) <= - 1) AND - (SIZEOF(QUERY(sa - <* get_shape_aspects(SELF) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN TYPEOF(sa)) AND - (sa.name = 'general compound feature') AND - (SIZEOF(QUERY(sar - <* USEDIN(sa, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN - TYPEOF(sar)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.INSTANCED_FEATURE' IN - TYPEOF(sar.related_shape_aspect)))) >= - 2))) <= - 1); -END_ENTITY; - -ENTITY general_linear_function - SUBTYPE OF (maths_function, unary_generic_expression); - SELF\unary_generic_expression.operand : maths_function; - sum_index : one_or_two; -DERIVE - mat : maths_function := SELF\unary_generic_expression.operand; -WHERE - WR1: function_is_2d_table(mat); - WR2: (space_dimension(mat.range) = 1) AND subspace_of_es(factor1(mat.range), es_numbers); -END_ENTITY; - -ENTITY general_material_property - SUBTYPE OF (general_property); -WHERE - WR1: SIZEOF(QUERY(gpa - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GENERAL_PROPERTY_ASSOCIATION.BASE_DEFINITION') - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MATERIAL_PROPERTY' IN - TYPEOF(gpa\general_property_association.derived_definition)))) = - 0; -END_ENTITY; - -ENTITY general_property; - id : identifier; - name : label; - description : OPTIONAL text; -END_ENTITY; - -ENTITY general_property_association; - name : label; - description : OPTIONAL text; - base_definition : general_property; - derived_definition : derived_property_select; -WHERE - WR1: (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSIONAL_LOCATION', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSIONAL_SIZE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_TOLERANCE'] * - TYPEOF(derived_definition)) > - 0) OR - (SIZEOF(USEDIN(derived_definition, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GENERAL_PROPERTY_ASSOCIATION.DERIVED_DEFINITION')) = - 1); - WR2: (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSIONAL_LOCATION', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSIONAL_SIZE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_TOLERANCE'] * - TYPEOF(derived_definition)) > - 0) OR - (derived_definition.name = base_definition.name); -END_ENTITY; - -ENTITY general_property_relationship; - name : label; - description : OPTIONAL text; - relating_property : general_property; - related_property : general_property; -END_ENTITY; - -ENTITY generic_character_glyph_symbol - ABSTRACT SUPERTYPE - SUBTYPE OF (symbol_representation); -END_ENTITY; - -ENTITY generic_expression - ABSTRACT SUPERTYPE OF (ONEOF(simple_generic_expression, unary_generic_expression, binary_generic_expression, - multiple_arity_generic_expression)); -WHERE - WR1: is_acyclic(SELF); -END_ENTITY; - -ENTITY generic_literal - ABSTRACT SUPERTYPE - SUBTYPE OF (simple_generic_expression); -END_ENTITY; - -ENTITY generic_product_definition_reference - ABSTRACT SUPERTYPE OF (ONEOF(product_definition_reference, product_definition_reference_with_local_representation)); - source : external_source; -END_ENTITY; - -ENTITY generic_property_relationship; - name : label; - description : text; - relating : generic_property_definition_select; - related : generic_property_definition_select; - relation_type : STRING; -WHERE - WR1: acyclic_generic_property_relationship(SELF, [related], - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GENERIC_PROPERTY_RELATIONSHIP'); -END_ENTITY; - -ENTITY generic_variable - ABSTRACT SUPERTYPE - SUBTYPE OF (simple_generic_expression); -INVERSE - interpretation : environment FOR syntactic_representation; -END_ENTITY; - -ENTITY geometric_alignment - SUBTYPE OF (derived_shape_aspect); -WHERE - WR1: SIZEOF(SELF\derived_shape_aspect.deriving_relationships) > 1; -END_ENTITY; - -ENTITY geometric_contact - SUBTYPE OF (derived_shape_aspect); -WHERE - WR1: SIZEOF(SELF\derived_shape_aspect.deriving_relationships) = 2; -END_ENTITY; - -ENTITY geometric_curve_set - SUBTYPE OF (geometric_set); -WHERE - WR1: SIZEOF(QUERY(temp - <* SELF\geometric_set.elements - | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE' IN TYPEOF(temp)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT' IN TYPEOF(temp))))) = - 0; -END_ENTITY; - -ENTITY geometric_gap_in_topology - ABSTRACT SUPERTYPE OF (ONEOF(gap_between_adjacent_edges_in_loop, gap_between_vertex_and_base_surface, - gap_between_vertex_and_edge, gap_between_edge_and_base_surface, - gap_between_pcurves_related_to_an_edge, gap_between_faces_related_to_an_edge)) - SUBTYPE OF (inapt_topology_and_geometry_relationship); -END_ENTITY; - -ENTITY geometric_intersection - SUBTYPE OF (derived_shape_aspect); -WHERE - WR1: SIZEOF(SELF\derived_shape_aspect.deriving_relationships) > 1; -END_ENTITY; - -ENTITY geometric_item_specific_usage - SUBTYPE OF (item_identified_representation_usage); - SELF\item_identified_representation_usage.definition : geometric_item_specific_usage_select; - SELF\item_identified_representation_usage.used_representation : shape_model; - SELF\item_identified_representation_usage.identified_item : geometric_model_item; -END_ENTITY; - -ENTITY geometric_model_element_relationship - SUBTYPE OF (geometric_representation_item, representation_item_relationship); - SELF\representation_item_relationship.relating_representation_item : geometric_representation_item; - SELF\representation_item_relationship.related_representation_item : geometric_representation_item; -UNIQUE - UR1: SELF\representation_item_relationship.relating_representation_item, - SELF\representation_item_relationship.related_representation_item; -WHERE - WR1: SELF\representation_item_relationship.relating_representation_item :<>: - SELF\representation_item_relationship.related_representation_item; -END_ENTITY; - -ENTITY geometric_representation_context - SUPERTYPE OF (ONEOF(geometric_representation_context_with_parameter, path_parameter_representation_context)) - SUBTYPE OF (representation_context); - coordinate_space_dimension : dimension_count; -END_ENTITY; - -ENTITY geometric_representation_context_with_parameter - SUBTYPE OF (geometric_representation_context); - parameter_unit : OPTIONAL unit; -END_ENTITY; - -ENTITY geometric_representation_item - SUPERTYPE OF ((ONEOF(point, direction, vector, placement, cartesian_transformation_operator, curve, surface, - edge_curve, face_surface, poly_loop, vertex_point, solid_model, boolean_result, sphere, - right_circular_cone, right_circular_cylinder, torus, block, primitive_2d, right_angular_wedge, - ellipsoid, faceted_primitive, rectangular_pyramid, cyclide_segment_solid, volume, - half_space_solid, shell_based_surface_model, face_based_surface_model, - shell_based_wireframe_model, edge_based_wireframe_model, geometric_set, tessellated_item, - volume_with_faces, scanned_data_item)) ANDOR - ((ONEOF(annotation_fill_area, curve, point, text_literal))) ANDOR - ((ONEOF(camera_model, curve, direction))) ANDOR - ((ONEOF(curve, externally_defined_hatch_style, externally_defined_tile_style, fill_area_style_hatching, - fill_area_style_tile_symbol_with_style, fill_area_style_tiles, one_direction_repeat_factor, - point, vector))) ANDOR - ((ONEOF(curve, planar_extent))) ANDOR (ONEOF(kinematic_path, placement)) ANDOR - (ONEOF(rotation_about_direction, su_parameters))) - SUBTYPE OF (representation_item); -DERIVE - dim : dimension_count := dimension_of(SELF); -WHERE - WR1: SIZEOF(QUERY(using_rep - <* using_representations(SELF) - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_REPRESENTATION_CONTEXT' IN - TYPEOF(using_rep.context_of_items)))) = - 0; -END_ENTITY; - -ENTITY geometric_set - SUBTYPE OF (geometric_representation_item); - elements : SET [1 : ?] OF geometric_set_select; -END_ENTITY; - -ENTITY geometric_tolerance - ABSTRACT SUPERTYPE OF (geometric_tolerance_with_datum_reference ANDOR geometric_tolerance_with_defined_unit ANDOR - ONEOF(geometric_tolerance_with_modifiers, modified_geometric_tolerance) ANDOR - unequally_disposed_geometric_tolerance ANDOR - ONEOF(cylindricity_tolerance, flatness_tolerance, line_profile_tolerance, position_tolerance, - roundness_tolerance, straightness_tolerance, surface_profile_tolerance)); - name : label; - description : OPTIONAL text; - magnitude : OPTIONAL length_measure_with_unit; - toleranced_shape_aspect : geometric_tolerance_target; -DERIVE - controlling_shape : product_definition_shape := sts_get_product_definition_shape(toleranced_shape_aspect); - id : identifier := get_id_value(SELF); -INVERSE - auxiliary_classification : SET [0:?] OF geometric_tolerance_auxiliary_classification FOR described_item; - tolerance_relationship : SET [0:?] OF geometric_tolerance_relationship FOR relating_geometric_tolerance; -UNIQUE - UR1: id, controlling_shape; -WHERE - WR1: magnitude\measure_with_unit.value_component >= 0.0; - WR2: EXISTS(controlling_shape); - WR3: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP' IN - TYPEOF(toleranced_shape_aspect)) OR - (toleranced_shape_aspect\shape_aspect_relationship.relating_shape_aspect.of_shape :=: - toleranced_shape_aspect\shape_aspect_relationship.related_shape_aspect.of_shape); - WR4: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; - WR5: SIZEOF(QUERY(tr <* tolerance_relationship | tr.name = 'composite tolerance')) <= 1; -END_ENTITY; - -ENTITY geometric_tolerance_auxiliary_classification; - attribute_value : geometric_tolerance_auxiliary_classification_enum; - described_item : geometric_tolerance; -END_ENTITY; - -ENTITY geometric_tolerance_relationship; - name : label; - description : text; - relating_geometric_tolerance : geometric_tolerance; - related_geometric_tolerance : geometric_tolerance; -WHERE - WR1: NOT (name = 'composite tolerance') OR - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITION_TOLERANCE' IN - TYPEOF(relating_geometric_tolerance)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITION_TOLERANCE' IN - TYPEOF(related_geometric_tolerance))) OR - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE_PROFILE_TOLERANCE' IN - TYPEOF(relating_geometric_tolerance)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE_PROFILE_TOLERANCE' IN - TYPEOF(related_geometric_tolerance))) OR - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_PROFILE_TOLERANCE' IN - TYPEOF(relating_geometric_tolerance)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_PROFILE_TOLERANCE' IN - TYPEOF(related_geometric_tolerance))); - WR2: NOT (name = 'composite tolerance') OR - (relating_geometric_tolerance\geometric_tolerance.toleranced_shape_aspect :=: - related_geometric_tolerance\geometric_tolerance.toleranced_shape_aspect); - WR3: acyclic_geometric_tolerance_relationship(SELF, [related_geometric_tolerance], - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_TOLERANCE'); -END_ENTITY; - -ENTITY geometric_tolerance_with_datum_reference - SUPERTYPE OF (ONEOF(angularity_tolerance, circular_runout_tolerance, coaxiality_tolerance, concentricity_tolerance, - parallelism_tolerance, perpendicularity_tolerance, symmetry_tolerance, total_runout_tolerance)) - SUBTYPE OF (geometric_tolerance); - datum_system : SET [1 : ?] OF datum_system_or_reference; -WHERE - WR1: (SIZEOF(QUERY(ds - <* datum_system - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATUM_SYSTEM' IN TYPEOF(ds))) = - 0) OR - (SIZEOF(datum_system) = 1); -END_ENTITY; - -ENTITY geometric_tolerance_with_defined_area_unit - SUBTYPE OF (geometric_tolerance_with_defined_unit); - area_type : area_unit_type; - second_unit_size : OPTIONAL length_or_plane_angle_measure_with_unit_select; -WHERE - WR1: NOT (EXISTS(second_unit_size) XOR - (area_type IN [area_unit_type.rectangular,area_unit_type.cylindrical,area_unit_type.spherical])); - WR2: NOT (area_type = area_unit_type.cylindrical) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(unit_size)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' IN - TYPEOF(second_unit_size)); - WR3: NOT (area_type = area_unit_type.rectangular) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(unit_size)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(second_unit_size)); - WR4: NOT (area_type = area_unit_type.spherical) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' IN TYPEOF(unit_size)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' IN - TYPEOF(second_unit_size)); - WR5: NOT (area_type = area_unit_type.spherical) OR - (SIZEOF(QUERY(tz - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TOLERANCE_ZONE.DEFINING_TOLERANCE') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORIENTED_TOLERANCE_ZONE' IN - TYPEOF(tz)))) <> - 0); -END_ENTITY; - -ENTITY geometric_tolerance_with_defined_unit - SUBTYPE OF (geometric_tolerance); - unit_size : length_or_plane_angle_measure_with_unit_select; -WHERE - WR1: ('NUMBER' IN TYPEOF(unit_size\measure_with_unit.value_component)) AND - (unit_size\measure_with_unit.value_component > 0.0); -END_ENTITY; - -ENTITY geometric_tolerance_with_maximum_tolerance - SUBTYPE OF (geometric_tolerance_with_modifiers); - maximum_upper_tolerance : length_measure_with_unit; -WHERE - WR1: (geometric_tolerance_modifier.maximum_material_requirement IN - SELF\geometric_tolerance_with_modifiers.modifiers) OR - (geometric_tolerance_modifier.least_material_requirement IN SELF\geometric_tolerance_with_modifiers.modifiers); - WR2: (maximum_upper_tolerance\measure_with_unit.unit_component = - SELF\geometric_tolerance.magnitude\measure_with_unit.unit_component) AND - (maximum_upper_tolerance\measure_with_unit.value_component > - SELF\geometric_tolerance.magnitude\measure_with_unit.value_component); -END_ENTITY; - -ENTITY geometric_tolerance_with_modifiers - SUBTYPE OF (geometric_tolerance); - modifiers : SET [1 : ?] OF geometric_tolerance_modifier; -WHERE - WR1: NOT (geometric_tolerance_modifier.circle_a IN modifiers) OR - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT' IN - TYPEOF(SELF\geometric_tolerance.toleranced_shape_aspect)) AND - (SELF\geometric_tolerance.toleranced_shape_aspect\shape_aspect.product_definitional = true) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSIONAL_SIZE' IN - TYPEOF(SELF\geometric_tolerance.toleranced_shape_aspect))); -END_ENTITY; - -ENTITY geometrical_tolerance_callout - SUBTYPE OF (draughting_callout); -END_ENTITY; - -ENTITY geometrically_bounded_2d_wireframe_representation - SUBTYPE OF (shape_representation); -WHERE - WR1: SELF.context_of_items\geometric_representation_context.coordinate_space_dimension = 2; - WR2: SIZEOF(QUERY(item - <* SELF.items - | NOT (SIZEOF(TYPEOF(item) * - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_CURVE_SET', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_2D', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM']) = - 1))) = - 0; - WR3: SIZEOF(QUERY(item - <* SELF.items - | SIZEOF(TYPEOF(item) * - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_CURVE_SET', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM']) = - 1)) >= - 1; - WR4: SIZEOF(QUERY(mi - <* QUERY(item - <* SELF.items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF(item))) - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRICALLY_BOUNDED_2D_WIREFRAME_REPRESENTATION' IN - TYPEOF(mi\mapped_item.mapping_source.mapped_representation)))) = - 0; - WR5: SIZEOF(QUERY(gcs - <* QUERY(item - <* SELF.items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_CURVE_SET' IN TYPEOF(item))) - | NOT (SIZEOF(QUERY(elem - <* gcs\geometric_set.elements - | NOT (SIZEOF(TYPEOF(elem) * - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCLE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_CURVE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ELLIPSE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OFFSET_CURVE_2D', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYLINE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TRIMMED_CURVE']) = - 1))) = - 0))) = - 0; - WR6: SIZEOF(QUERY(gcs - <* QUERY(item - <* SELF.items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_CURVE_SET' IN TYPEOF(item))) - | NOT (SIZEOF(QUERY(crv - <* QUERY(elem - <* gcs\geometric_set.elements - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE' IN - TYPEOF(elem))) - | NOT (valid_basis_curve_in_2d_wireframe(crv)))) = - 0))) = - 0; - WR7: SIZEOF(QUERY(gcs - <* QUERY(item - <* SELF.items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_CURVE_SET' IN TYPEOF(item))) - | NOT (SIZEOF(QUERY(pnt - <* QUERY(elem - <* gcs\geometric_set.elements - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT' IN - TYPEOF(elem))) - | NOT (SIZEOF(TYPEOF(pnt) * - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CARTESIAN_POINT', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_CURVE']) = - 1))) = - 0))) = - 0; -END_ENTITY; - -ENTITY geometrically_bounded_surface_shape_representation - SUBTYPE OF (shape_representation); -WHERE - WR1: SIZEOF(QUERY(it - <* SELF.items - | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_SET', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D'] * - TYPEOF(it)) = - 1))) = - 0; - WR2: SIZEOF(QUERY(it - <* SELF.items - | SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_SET', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM'] * - TYPEOF(it)) = - 1)) > - 0; - WR3: SIZEOF(QUERY(mi - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF(it)) - | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRICALLY_BOUNDED_SURFACE_SHAPE_REPRESENTATION' IN - TYPEOF(mi\mapped_item.mapping_source.mapped_representation)) AND - (SIZEOF(QUERY(mr_it - <* mi\mapped_item.mapping_source.mapped_representation.items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_SET' IN - TYPEOF(mr_it)))) > - 0)))) = - 0; - WR4: SIZEOF(QUERY(gs - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_SET' IN TYPEOF(it)) - | NOT (SIZEOF(QUERY(pnt - <* QUERY(gsel - <* gs\geometric_set.elements - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT' IN - TYPEOF(gsel)) - | NOT (gbsf_check_point(pnt)))) = - 0))) = - 0; - WR5: SIZEOF(QUERY(gs - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_SET' IN TYPEOF(it)) - | NOT (SIZEOF(QUERY(cv - <* QUERY(gsel - <* gs\geometric_set.elements - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE' IN - TYPEOF(gsel)) - | NOT (gbsf_check_curve(cv)))) = - 0))) = - 0; - WR6: SIZEOF(QUERY(gs - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_SET' IN TYPEOF(it)) - | NOT (SIZEOF(QUERY(sf - <* QUERY(gsel - <* gs\geometric_set.elements - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE' IN - TYPEOF(gsel)) - | NOT (gbsf_check_surface(sf)))) = - 0))) = - 0; - WR7: SIZEOF(QUERY(gs - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_SET' IN TYPEOF(it)) - | SIZEOF(QUERY(gsel - <* gs\geometric_set.elements - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE' IN TYPEOF(gsel))) > - 0)) > - 0; -END_ENTITY; - -ENTITY geometrically_bounded_wireframe_shape_representation - SUBTYPE OF (shape_representation); -WHERE - WR1: SIZEOF(QUERY(it - <* SELF.items - | NOT (SIZEOF(TYPEOF(it) * - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_CURVE_SET', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM']) = - 1))) = - 0; - WR2: SIZEOF(QUERY(it - <* SELF.items - | (SIZEOF(TYPEOF(it) * - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_CURVE_SET', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM']) = - 1))) >= - 1; - WR3: SIZEOF(QUERY(gcs - <* QUERY(it - <* SELF.items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_CURVE_SET' IN TYPEOF(it))) - | NOT (SIZEOF(QUERY(crv - <* QUERY(elem - <* gcs\geometric_set.elements - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE' IN - TYPEOF(elem))) - | NOT valid_geometrically_bounded_wf_curve(crv))) = - 0))) = - 0; - WR4: SIZEOF(QUERY(gcs - <* QUERY(it - <* SELF.items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_CURVE_SET' IN TYPEOF(it))) - | NOT (SIZEOF(QUERY(pnts - <* QUERY(elem - <* gcs\geometric_set.elements - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT' IN - TYPEOF(elem))) - | NOT valid_geometrically_bounded_wf_point(pnts))) = - 0))) = - 0; - WR5: SIZEOF(QUERY(gcs - <* QUERY(it - <* SELF.items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_CURVE_SET' IN TYPEOF(it))) - | NOT (SIZEOF(QUERY(cnc - <* QUERY(elem - <* gcs\geometric_set.elements - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONIC' IN - TYPEOF(elem))) - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D' IN - TYPEOF(cnc\conic.position)))) = - 0))) = - 0; - WR6: SIZEOF(QUERY(gcs - <* QUERY(it - <* SELF.items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_CURVE_SET' IN TYPEOF(it))) - | NOT (SIZEOF(QUERY(pline - <* QUERY(elem - <* gcs\geometric_set.elements - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYLINE' IN - TYPEOF(elem))) - | NOT (SIZEOF(pline\polyline.points) > 2))) = - 0))) = - 0; - WR7: SIZEOF(QUERY(mi - <* QUERY(it - <* SELF.items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF(it))) - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRICALLY_BOUNDED_WIREFRAME_SHAPE_REPRESENTATION' IN - TYPEOF(mi\mapped_item.mapping_source.mapped_representation)))) = - 0; -END_ENTITY; - -ENTITY geometry_with_local_irregularity - ABSTRACT SUPERTYPE OF (ONEOF(extreme_patch_width_variation, zero_surface_normal, abrupt_change_of_surface_normal)) - SUBTYPE OF (inapt_geometry); -END_ENTITY; - -ENTITY geometry_with_local_near_degeneracy - ABSTRACT SUPERTYPE OF (ONEOF(curve_with_small_curvature_radius, short_length_curve_segment, - surface_with_small_curvature_radius, small_area_surface_patch, narrow_surface_patch, - indistinct_surface_knots, indistinct_curve_knots, nearly_degenerate_surface_boundary, - nearly_degenerate_surface_patch)) - SUBTYPE OF (inapt_geometry); -END_ENTITY; - -ENTITY global_assignment - SUBTYPE OF (representation_item_relationship); -END_ENTITY; - -ENTITY global_uncertainty_assigned_context - SUBTYPE OF (representation_context); - uncertainty : SET [1 : ?] OF uncertainty_measure_with_unit; -END_ENTITY; - -ENTITY global_unit_assigned_context - SUBTYPE OF (representation_context); - units : SET [1 : ?] OF unit; -END_ENTITY; - -ENTITY gps_filter; - filter_type : gps_filtration_type; - filter_data : LIST [1 : ?] OF measure_with_unit; -INVERSE - owner : gps_filtration_specification FOR filter_data; -WHERE - WR1: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_TOLERANCE_WITH_MODIFIERS' IN - TYPEOF(owner\gps_filtration_specification.base_target)) OR - (SIZEOF([geometric_tolerance_modifier.reference_minimax_feature_without_constraint, - geometric_tolerance_modifier.reference_minimax_feature_with_external_material_constraint, - geometric_tolerance_modifier.reference_minimax_feature_with_internal_material_constraint, - geometric_tolerance_modifier.reference_least_square_feature_without_constraint, - geometric_tolerance_modifier.reference_least_square_feature_with_external_material_constraint, - geometric_tolerance_modifier.reference_least_square_feature_with_internal_material_constraint, - geometric_tolerance_modifier.reference_minimum_circumscribed_feature, - geometric_tolerance_modifier.reference_maximum_inscribed_feature, - geometric_tolerance_modifier.total_range_deviations, - geometric_tolerance_modifier.peak_height, - geometric_tolerance_modifier.valley_depth, - geometric_tolerance_modifier.standard_deviation] * - owner\gps_filtration_specification.base_target\geometric_tolerance_with_modifiers.modifiers) <> - 0); -END_ENTITY; - -ENTITY gps_filtration_specification; - base_target : gps_filtration_specification_target; - filter_data : LIST [1 : ?] OF gps_filter; -END_ENTITY; - -ENTITY ground_fact - SUBTYPE OF (atomic_formula); -END_ENTITY; - -ENTITY group - SUPERTYPE OF (ONEOF(change_group, change_element)); - name : label; - description : OPTIONAL text; -DERIVE - id : identifier := get_id_value(SELF); -WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; -END_ENTITY; - -ENTITY group_assignment - ABSTRACT SUPERTYPE OF (ONEOF(current_change_element_assignment, previous_change_element_assignment, - change_group_assignment)); - assigned_group : group; -DERIVE - role : object_role := get_role(SELF); -WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; -END_ENTITY; - -ENTITY group_relationship; - name : label; - description : OPTIONAL text; - relating_group : group; - related_group : group; -END_ENTITY; - -ENTITY half_space_2d - SUBTYPE OF (primitive_2d); - base_curve : curve; - agreement_flag : BOOLEAN; -END_ENTITY; - -ENTITY half_space_solid - SUBTYPE OF (geometric_representation_item); - base_surface : surface; - agreement_flag : BOOLEAN; -END_ENTITY; - -ENTITY hardness_representation - SUBTYPE OF (representation); -WHERE - WR1: ({2 <= SIZEOF(SELF.items) <= 4}) AND - (SIZEOF(QUERY(i - <* items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN - TYPEOF(i)) AND - (i.name IN ['measuring method','measuring position']))) + - SIZEOF(QUERY(i - <* items - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VALUE_RANGE'] * - TYPEOF(i)) = - 1) AND - (i.name IN ['depth','hardness']))) = - SIZEOF(SELF.items)); - WR2: SIZEOF(QUERY(i <* SELF.items | i.name = 'measuring method')) = 1; - WR3: SIZEOF(QUERY(i <* SELF.items | i.name = 'hardness')) = 1; - WR4: SIZEOF(QUERY(i <* SELF.items | i.name = 'measuring position')) <= 1; - WR5: SIZEOF(QUERY(i <* SELF.items | i.name = 'depth')) <= 1; - WR6: (SIZEOF(USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION')) = - 1) AND - (SIZEOF(QUERY(pdr - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION') - | SIZEOF(QUERY(gpa - <* USEDIN(pdr.definition, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GENERAL_PROPERTY_ASSOCIATION.DERIVED_DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GENERAL_PROPERTY' IN - TYPEOF(gpa.base_definition)) AND - (gpa\general_property_association.base_definition\general_property.name = - 'surface_condition'))) = - 1)) = - 1); -END_ENTITY; - -ENTITY harness_node - SUBTYPE OF (shape_aspect); -END_ENTITY; - -ENTITY harness_segment - SUBTYPE OF (shape_aspect); -END_ENTITY; - -ENTITY hexahedron_volume - SUBTYPE OF (volume); - points : LIST [8 : 8] OF cartesian_point; -WHERE - WR1: above_plane(points[1], points[2], points[3], points[4]) = 0.0; - WR2: above_plane(points[5], points[8], points[7], points[6]) = 0.0; - WR3: above_plane(points[1], points[4], points[8], points[5]) = 0.0; - WR4: above_plane(points[4], points[3], points[7], points[8]) = 0.0; - WR5: above_plane(points[3], points[2], points[6], points[7]) = 0.0; - WR6: above_plane(points[1], points[5], points[6], points[2]) = 0.0; - WR7: same_side([points[1],points[2],points[3]], [points[5],points[6],points[7],points[8]]); - WR8: same_side([points[1],points[4],points[8]], [points[3],points[7],points[6],points[2]]); - WR9: same_side([points[1],points[2],points[5]], [points[3],points[7],points[8],points[4]]); - WR10: same_side([points[5],points[6],points[7]], [points[1],points[2],points[3],points[4]]); - WR11: same_side([points[3],points[7],points[6]], [points[1],points[4],points[8],points[5]]); - WR12: same_side([points[3],points[7],points[8]], [points[1],points[5],points[6],points[2]]); - WR13: points[1].dim = 3; -END_ENTITY; - -ENTITY hidden_element_over_riding_styled_item - SUBTYPE OF (context_dependent_over_riding_styled_item); - SELF\context_dependent_over_riding_styled_item.style_context : LIST [1 : 1] OF presentation_view; - SELF\styled_item.item : camera_image; -INVERSE - container : SET [1:?] OF presentation_view FOR items; -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CAMERA_MODEL_D3_WITH_HLHSR' IN - TYPEOF(SELF.item\mapped_item.mapping_source.mapping_origin); -END_ENTITY; - -ENTITY hierarchical_interface_connection - SUBTYPE OF (interface_connection); -END_ENTITY; - -ENTITY high_degree_axi_symmetric_surface - SUBTYPE OF (overcomplex_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - approximation_tolerance : length_measure; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN - TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' IN - value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE'); - WR3: validate_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_SURFACE']); - WR4: validate_locations_of_extreme_value_type(SELF, []); - WR5: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); -END_ENTITY; - -ENTITY high_degree_conic - SUBTYPE OF (overcomplex_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - approximation_tolerance : length_measure; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN - TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' IN - value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE'); - WR3: validate_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE']); - WR4: validate_locations_of_extreme_value_type(SELF, []); - WR5: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); -END_ENTITY; - -ENTITY high_degree_linear_curve - SUBTYPE OF (overcomplex_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - approximation_tolerance : length_measure; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN - TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' IN - value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE'); - WR3: validate_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE']); - WR4: validate_locations_of_extreme_value_type(SELF, []); - WR5: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); -END_ENTITY; - -ENTITY high_degree_planar_surface - SUBTYPE OF (overcomplex_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - approximation_tolerance : length_measure; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN - TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' IN - value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE'); - WR3: validate_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_SURFACE']); - WR4: validate_locations_of_extreme_value_type(SELF, []); - WR5: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); -END_ENTITY; - -ENTITY high_order_kinematic_pair - ABSTRACT SUPERTYPE OF (ONEOF(linear_flexible_and_planar_curve_pair, point_on_surface_pair, - point_on_planar_curve_pair, planar_curve_pair, surface_pair)) - SUBTYPE OF (kinematic_pair); -WHERE - WR1: SIZEOF(QUERY(lr - <* SELF\kinematic_pair.associated_link_representations_2 - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RIGID_LINK_REPRESENTATION' IN - TYPEOF(lr)))) = - 0; -END_ENTITY; - -ENTITY hole_bottom - SUBTYPE OF (shape_aspect); -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN - TYPEOF(SELF.of_shape.definition)); - WR2: (SELF.description IN ['through','flat','flat with radius','flat with taper','spherical','conical']); - WR3: ((NOT (SELF.description = 'through')) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')) = - 0)))) = - 0)); - WR4: ((NOT (SELF.description IN ['flat with radius','flat with taper','spherical','conical'])) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation)))) = - 1)))) = - 0)); - WR5: ((NOT (SELF.description = 'flat')) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(impl_rep.used_representation.items) = 0)))) = - 0)))) = - 0)); - WR6: ((NOT (SELF.description IN ['flat with radius','spherical'])) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(impl_rep.used_representation.items) = 1)))) = - 0)))) = - 0)); - WR7: ((NOT (SELF.description = 'flat with taper')) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(impl_rep.used_representation.items) = 2)))) = - 0)))) = - 0)); - WR8: ((NOT (SELF.description = 'conical')) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(impl_rep.used_representation.items) >= 1) AND - (SIZEOF(impl_rep.used_representation.items) <= 2)))) = - 0)))) = - 0)); - WR9: ((SELF.description = 'through') OR - (SIZEOF(QUERY(fcr - <* QUERY(sar - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') - | ((sar.description = 'hole bottom usage') AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN - TYPEOF(sar)))) - | ((fcr.name IN ['hole depth start','hole depth end'])))) >= - 1)); - WR10: ((NOT (SELF.description = 'flat with radius')) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'corner radius')))) = - 1)))) = - 0)))) = - 0)); - WR11: ((NOT (SELF.description = 'spherical')) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'radius')))) = - 1)))) = - 0)))) = - 0)); - WR12: ((NOT (SELF.description = 'conical')) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'tip radius')))) <= - 1)))) = - 0)))) = - 0)); - WR13: ((NOT (SELF.description = 'conical')) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'tip angle')))) = - 1)))) = - 0)))) = - 0)); - WR14: (SIZEOF(QUERY(fcr - <* QUERY(sar - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') - | ((sar.description = 'hole bottom usage') AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN - TYPEOF(sar)))) - | ((fcr.related_shape_aspect.description = 'bottom condition occurrence') AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROUND_HOLE' IN - TYPEOF(fcr.related_shape_aspect.of_shape.definition)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.HOLE_BOTTOM' IN - TYPEOF(fcr.relating_shape_aspect))))) >= - 1); - WR15: ((NOT (SELF.description = 'flat with taper')) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'final diameter')))) = - 1)))) = - 0)))) = - 0)); - WR16: ((NOT (SELF.description = 'flat with taper')) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'taper diameter')))) = - 1)))) = - 0)))) = - 0)); -END_ENTITY; - -ENTITY hole_in_panel - SUBTYPE OF (feature_definition); -WHERE - WR1: SIZEOF(QUERY(sa - <* get_shape_aspects(SELF) - | (sa.name = 'hole profile') AND (sa.description = 'closed profile occurrence') AND - (SIZEOF(QUERY(sar - <* USEDIN(sa, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN - TYPEOF(sar)) AND - (sar.description = 'profile usage') AND - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_CLOSED_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NGON_CLOSED_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_CLOSED_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLOSED_PATH_PROFILE'] * - TYPEOF(sar.relating_shape_aspect)) = - 1))) = - 1))) = - 1; - WR2: SIZEOF(get_property_definition_representations(SELF)) = - SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | SIZEOF(pdr.used_representation.items) = 1)); -END_ENTITY; - -ENTITY homogeneous_linear_function - SUBTYPE OF (maths_function, unary_generic_expression); - SELF\unary_generic_expression.operand : maths_function; - sum_index : one_or_two; -DERIVE - mat : maths_function := SELF\unary_generic_expression.operand; -WHERE - WR1: function_is_2d_table(mat); - WR2: (space_dimension(mat.range) = 1) AND subspace_of_es(factor1(mat.range), es_numbers); -END_ENTITY; - -ENTITY homokinetic_pair - SUBTYPE OF (universal_pair); -WHERE - WR1: NOT EXISTS(SELF.input_skew_angle); -END_ENTITY; - -ENTITY hyperbola - SUBTYPE OF (conic); - semi_axis : positive_length_measure; - semi_imag_axis : positive_length_measure; -END_ENTITY; - -ENTITY id_attribute; - attribute_value : identifier; - identified_item : id_attribute_select; -END_ENTITY; - -ENTITY identification_assignment - ABSTRACT SUPERTYPE; - assigned_id : identifier; - role : identification_role; -END_ENTITY; - -ENTITY identification_assignment_relationship; - name : label; - description : OPTIONAL text; - relating_identification_assignment : identification_assignment; - related_identification_assignment : identification_assignment; -END_ENTITY; - -ENTITY identification_role; - name : label; - description : OPTIONAL text; -END_ENTITY; - -ENTITY idrm_classification_assignment - SUBTYPE OF (classification_assignment); - items : SET [1 : ?] OF idrm_marked_item; -END_ENTITY; - -ENTITY illuminance_measure_with_unit - SUBTYPE OF (measure_with_unit); -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ILLUMINANCE_UNIT' IN - TYPEOF(SELF\measure_with_unit.unit_component); -END_ENTITY; - -ENTITY illuminance_unit - SUBTYPE OF (derived_unit); -WHERE - WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit(si_unit_name.lux); -END_ENTITY; - -ENTITY implicit_explicit_positioned_sketch_relationship - SUBTYPE OF (representation_item_relationship); - SELF\representation_item_relationship.relating_representation_item : repositioned_neutral_sketch; - SELF\representation_item_relationship.related_representation_item : positioned_sketch; -WHERE - WR1: SIZEOF(QUERY(q - <* using_representations(SELF\representation_item_relationship.related_representation_item) - | item_in_context(SELF\representation_item_relationship.relating_representation_item, - q.context_of_items))) > - 0; -END_ENTITY; - -ENTITY implicit_intersection_curve - SUBTYPE OF (implicit_planar_curve); - external_surface : surface; -END_ENTITY; - -ENTITY implicit_model_intersection_curve - SUBTYPE OF (implicit_planar_curve); - intersected_model : surface_or_solid_model; -END_ENTITY; - -ENTITY implicit_planar_curve - ABSTRACT SUPERTYPE OF (ONEOF(implicit_intersection_curve, implicit_projected_curve, - implicit_model_intersection_curve, implicit_silhouette_curve)) - SUBTYPE OF (curve, auxiliary_geometric_representation_item); - using_sketch : positioned_sketch; - computed_representation : curve; -DERIVE - curve_plane : plane := get_plane_of_implicit_geometry(using_sketch); -WHERE - WR1: SIZEOF(TYPEOF(computed_representation) * - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.IMPLICIT_PLANAR_CURVE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_REPLICA']) = - 0; -END_ENTITY; - -ENTITY implicit_planar_intersection_point - SUBTYPE OF (implicit_point_on_plane); - external_curve : curve; -END_ENTITY; - -ENTITY implicit_planar_projection_point - SUBTYPE OF (implicit_point_on_plane); - external_point : point; - projection_direction : direction; -END_ENTITY; - -ENTITY implicit_point_on_plane - ABSTRACT SUPERTYPE OF (ONEOF(implicit_planar_intersection_point, implicit_planar_projection_point)) - SUBTYPE OF (point, auxiliary_geometric_representation_item); - using_sketch : positioned_sketch; - computed_representation : cartesian_point; -DERIVE - plane_of_point : plane := get_plane_of_implicit_geometry(using_sketch); -WHERE - WR1: (plane_of_point\elementary_surface.position.location = computed_representation) XOR - (dot_product(plane_of_point\elementary_surface.position.p[3], - get_relative_direction_2points(plane_of_point\elementary_surface.position.location, - computed_representation)) = - 0); - WR2: SIZEOF(TYPEOF(computed_representation) * - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.IMPLICIT_POINT_ON_PLANE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_REPLICA']) = - 0; -END_ENTITY; - -ENTITY implicit_projected_curve - SUBTYPE OF (implicit_planar_curve); - external_curve : curve; - projection_direction : direction; -END_ENTITY; - -ENTITY implicit_silhouette_curve - SUBTYPE OF (implicit_planar_curve); - silhouetted_model : surface_or_solid_model; - view_direction : direction; -END_ENTITY; - -ENTITY imported_curve_function - SUBTYPE OF (maths_function, generic_literal); - geometry : curve; - parametric_domain : tuple_space; -WHERE - WR1: expression_is_constant(parametric_domain); -END_ENTITY; - -ENTITY imported_point_function - SUBTYPE OF (maths_function, generic_literal); - geometry : point; -END_ENTITY; - -ENTITY imported_surface_function - SUBTYPE OF (maths_function, generic_literal); - geometry : surface; - parametric_domain : tuple_space; -WHERE - WR1: expression_is_constant(parametric_domain); -END_ENTITY; - -ENTITY imported_volume_function - SUBTYPE OF (maths_function, generic_literal); - geometry : volume; - parametric_domain : tuple_space; -WHERE - WR1: expression_is_constant(parametric_domain); -END_ENTITY; - -ENTITY in_zone - SUBTYPE OF (group); -END_ENTITY; - -ENTITY inappropriate_element_visibility - SUBTYPE OF (externally_conditioned_data_quality_criterion); -WHERE - WR1: validate_ecdq_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM']); -END_ENTITY; - -ENTITY inappropriate_use_of_layer - SUBTYPE OF (externally_conditioned_data_quality_criterion); -WHERE - WR1: validate_ecdq_inspected_elements_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_LAYER_ASSIGNMENT']); -END_ENTITY; - -ENTITY inapt_data - ABSTRACT SUPERTYPE OF (ONEOF(inapt_topology, inapt_geometry, inapt_topology_and_geometry_relationship, - inapt_manifold_solid_brep)) - SUBTYPE OF (shape_data_quality_criterion); -END_ENTITY; - -ENTITY inapt_geometry - ABSTRACT SUPERTYPE OF (ONEOF(nearly_degenerate_geometry, discontinuous_geometry, self_intersecting_geometry, - geometry_with_local_near_degeneracy, overlapping_geometry, multiply_defined_geometry, - geometry_with_local_irregularity, overcomplex_geometry)) - SUBTYPE OF (inapt_data); -END_ENTITY; - -ENTITY inapt_manifold_solid_brep - ABSTRACT SUPERTYPE OF (ONEOF(partly_overlapping_solids, small_volume_solid, multiply_defined_solids, - entirely_narrow_solid, solid_with_excessive_number_of_voids)) - SUBTYPE OF (inapt_data); -END_ENTITY; - -ENTITY inapt_topology - ABSTRACT SUPERTYPE OF (ONEOF(free_edge, non_manifold_at_edge, non_manifold_at_vertex, over_used_vertex)) - SUBTYPE OF (inapt_data); -END_ENTITY; - -ENTITY inapt_topology_and_geometry_relationship - ABSTRACT SUPERTYPE OF (ONEOF(topology_related_to_nearly_degenerate_geometry, geometric_gap_in_topology, - non_smooth_geometry_transition_across_edge, - topology_related_to_self_intersecting_geometry, steep_geometry_transition_across_edge, - topology_related_to_overlapping_geometry, topology_related_to_multiply_defined_geometry, - overcomplex_topology_and_geometry_relationship)) - SUBTYPE OF (inapt_data); -END_ENTITY; - -ENTITY incidence_assembly_constraint - SUBTYPE OF (binary_assembly_constraint, incidence_geometric_constraint); -END_ENTITY; - -ENTITY incidence_geometric_constraint - SUBTYPE OF (explicit_geometric_constraint); - SELF\explicit_constraint.constrained_elements : SET [1 : ?] OF geometric_constraint_element; - SELF\explicit_constraint.reference_elements : SET [0 : ?] OF geometric_constraint_element; - near_points : SET [0 : ?] OF near_point_relationship; -WHERE - WR1: (SIZEOF(SELF\explicit_constraint.reference_elements) > 0) OR - (SIZEOF(SELF\explicit_constraint.constrained_elements) = 2); - WR2: SIZEOF(near_points) <= SIZEOF(SELF\explicit_constraint.reference_elements); - WR3: SIZEOF(QUERY(q - <* near_points - | NOT (q\representation_item_relationship.relating_representation_item IN - SELF\explicit_constraint.reference_elements))) = - 0; -END_ENTITY; - -ENTITY included_text_block - SUBTYPE OF (mapped_item); -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STRUCTURED_TEXT_REPRESENTATION' IN - TYPEOF(SELF\mapped_item.mapping_source.mapped_representation); -END_ENTITY; - -ENTITY inclusion_product_concept_feature - SUBTYPE OF (conditional_concept_feature); -WHERE - WR1: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PACKAGE_PRODUCT_CONCEPT_FEATURE' IN TYPEOF(SELF)); - WR2: SIZEOF(QUERY(cfr - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONCEPT_FEATURE_RELATIONSHIP.RELATING_PRODUCT_CONCEPT_FEATURE') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION' IN - TYPEOF(cfr))) + - SIZEOF(QUERY(cfr - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONCEPT_FEATURE_RELATIONSHIP.RELATED_PRODUCT_CONCEPT_FEATURE') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION' IN - TYPEOF(cfr))) = - 0; - WR3: SELF.condition.conditional_operator.name = 'implication'; -END_ENTITY; - -ENTITY inconsistent_adjacent_face_normals - SUBTYPE OF (erroneous_topology); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; -WHERE - WR1: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE'); - WR2: validate_inspected_elements_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLOSED_OR_OPEN_SHELL_SELECT']); - WR3: validate_locations_of_extreme_value_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE']); - WR4: validate_accuracy_types(SELF, []); -END_ENTITY; - -ENTITY inconsistent_curve_transition_code - SUBTYPE OF (erroneous_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - angle_tolerance : plane_angle_measure; - curvature_ratio_tolerance : ratio_measure; - distance_tolerance : length_measure; - flat_curvature_radius_tolerance : length_measure; -WHERE - WR1: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE'); - WR2: validate_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_CURVE']); - WR3: validate_locations_of_extreme_value_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_CURVE_TRANSITION_LOCATOR']); - WR4: validate_accuracy_types(SELF, []); -END_ENTITY; - -ENTITY inconsistent_edge_and_curve_directions - SUBTYPE OF (erroneous_topology_and_geometry_relationship); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - distance_tolerance : length_measure; -WHERE - WR1: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE'); - WR2: validate_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE']); - WR3: validate_locations_of_extreme_value_type(SELF, []); - WR4: validate_accuracy_types(SELF, []); -END_ENTITY; - -ENTITY inconsistent_element_reference - SUBTYPE OF (externally_conditioned_data_quality_criterion); -WHERE - WR1: validate_ecdq_inspected_elements_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_ITEM']); -END_ENTITY; - -ENTITY inconsistent_face_and_closed_shell_normals - SUBTYPE OF (erroneous_topology_and_geometry_relationship); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; -WHERE - WR1: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE'); - WR2: validate_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE']); - WR3: validate_locations_of_extreme_value_type(SELF, []); - WR4: validate_accuracy_types(SELF, []); -END_ENTITY; - -ENTITY inconsistent_face_and_surface_normals - SUBTYPE OF (erroneous_topology_and_geometry_relationship); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; -WHERE - WR1: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE'); - WR2: validate_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE']); - WR3: validate_locations_of_extreme_value_type(SELF, []); - WR4: validate_accuracy_types(SELF, []); -END_ENTITY; - -ENTITY inconsistent_surface_transition_code - SUBTYPE OF (erroneous_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - angle_tolerance : plane_angle_measure; - curvature_ratio_tolerance : ratio_measure; - distance_tolerance : length_measure; - flat_curvature_radius_tolerance : length_measure; -WHERE - WR1: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE'); - WR2: validate_inspected_elements_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_COMPOSITE_SURFACE']); - WR3: validate_locations_of_extreme_value_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_COMPOSITE_SURFACE_TRANSITION_LOCATOR']); - WR4: validate_accuracy_types(SELF, []); -END_ENTITY; - -ENTITY index_expression - SUBTYPE OF (string_expression, binary_generic_expression); -DERIVE - operand : generic_expression := SELF\binary_generic_expression.operands[1]; - index : generic_expression := SELF\binary_generic_expression.operands[2]; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STRING_EXPRESSION' IN TYPEOF(operand)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NUMERIC_EXPRESSION' IN TYPEOF(index)); - WR2: is_int_expr(index); -END_ENTITY; - -ENTITY indirectly_selected_elements - SUBTYPE OF (user_selected_elements); - indirectly_picked_items : SET [1 : ?] OF representation_item; -END_ENTITY; - -ENTITY indirectly_selected_shape_elements - SUBTYPE OF (indirectly_selected_elements, user_selected_shape_elements); - SELF\indirectly_selected_elements.indirectly_picked_items : SET [1 : ?] OF shape_representation_item; -END_ENTITY; - -ENTITY indistinct_curve_knots - SUBTYPE OF (geometry_with_local_near_degeneracy); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' IN - TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PARAMETER_VALUE' IN - value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PARAMETER_VALUE'); - WR3: validate_inspected_elements_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE_WITH_KNOTS']); - WR4: validate_locations_of_extreme_value_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE_KNOT_LOCATOR']); - WR5: validate_accuracy_types(SELF, []); -END_ENTITY; - -ENTITY indistinct_surface_knots - SUBTYPE OF (geometry_with_local_near_degeneracy); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' IN - TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PARAMETER_VALUE' IN - value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PARAMETER_VALUE'); - WR3: validate_inspected_elements_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_SURFACE_WITH_KNOTS']); - WR4: validate_locations_of_extreme_value_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_SURFACE_KNOT_LOCATOR']); - WR5: validate_accuracy_types(SELF, []); -END_ENTITY; - -ENTITY inductance_measure_with_unit - SUBTYPE OF (measure_with_unit); -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.INDUCTANCE_UNIT' IN - TYPEOF(SELF\measure_with_unit.unit_component); -END_ENTITY; - -ENTITY inductance_unit - SUBTYPE OF (derived_unit); -WHERE - WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit(si_unit_name.henry); -END_ENTITY; - -ENTITY information_right - SUBTYPE OF (action_method); -END_ENTITY; - -ENTITY information_usage_right - SUBTYPE OF (action_method); -END_ENTITY; - -ENTITY instance_attribute_reference - SUBTYPE OF (variable_semantics); - attribute_name : attribute_identifier; - owning_instance : representation_item; -END_ENTITY; - -ENTITY instance_report_item_with_extreme_instances - SUBTYPE OF (shape_data_quality_inspection_instance_report_item); - extreme_instances : LIST [1 : ?] OF extreme_instance; -END_ENTITY; - -ENTITY instance_usage_context_assignment - SUBTYPE OF (product_definition_context); - items : SET [1 : ?] OF instance_usage_context_select; -END_ENTITY; - -ENTITY instanced_feature - SUBTYPE OF (feature_definition, shape_aspect); -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF(SELF.of_shape.definition); - WR2: SELF.product_definitional; -END_ENTITY; - -ENTITY int_literal - SUBTYPE OF (literal_number); - SELF\literal_number.the_value : INTEGER; -END_ENTITY; - -ENTITY int_numeric_variable - SUBTYPE OF (numeric_variable); -END_ENTITY; - -ENTITY int_value_function - SUBTYPE OF (value_function); -END_ENTITY; - -ENTITY integer_defined_function - ABSTRACT SUPERTYPE - SUBTYPE OF (numeric_defined_function); -END_ENTITY; - -ENTITY integer_interval_from_min - SUBTYPE OF (maths_space, generic_literal); - min : INTEGER; -END_ENTITY; - -ENTITY integer_interval_to_max - SUBTYPE OF (maths_space, generic_literal); - max : INTEGER; -END_ENTITY; - -ENTITY integer_representation_item - SUBTYPE OF (representation_item, int_literal); -END_ENTITY; - -ENTITY integer_tuple_literal - SUBTYPE OF (generic_literal); - lit_value : LIST [1 : ?] OF INTEGER; -END_ENTITY; - -ENTITY interface_component - SUBTYPE OF (physical_component); -END_ENTITY; - -ENTITY interface_connection - SUBTYPE OF (group); -END_ENTITY; - -ENTITY interface_connector_as_planned - SUBTYPE OF (product_definition_formation); -END_ENTITY; - -ENTITY interface_connector_as_realized - SUBTYPE OF (product_definition_formation); -END_ENTITY; - -ENTITY interface_connector_definition - SUBTYPE OF (product_definition); -END_ENTITY; - -ENTITY interface_connector_design - SUBTYPE OF (product_definition_formation); -END_ENTITY; - -ENTITY interface_connector_design_to_planned - SUBTYPE OF (product_definition_formation_relationship); - SELF\product_definition_formation_relationship.relating_product_definition_formation : interface_connector_design; - SELF\product_definition_formation_relationship.related_product_definition_formation : interface_connector_as_planned; -WHERE - WR1: SELF.relating_product_definition_formation.of_product :=: SELF.related_product_definition_formation.of_product; -END_ENTITY; - -ENTITY interface_connector_design_to_realized - SUBTYPE OF (product_definition_formation_relationship); - SELF\product_definition_formation_relationship.relating_product_definition_formation : interface_connector_design; - SELF\product_definition_formation_relationship.related_product_definition_formation : interface_connector_as_realized; -WHERE - WR1: SELF.relating_product_definition_formation.of_product :=: SELF.related_product_definition_formation.of_product; -END_ENTITY; - -ENTITY interface_connector_occurrence - SUBTYPE OF (group); -END_ENTITY; - -ENTITY interface_connector_planned_to_realized - SUBTYPE OF (product_definition_formation_relationship); - SELF\product_definition_formation_relationship.relating_product_definition_formation : interface_connector_as_planned; - SELF\product_definition_formation_relationship.related_product_definition_formation : interface_connector_as_realized; -WHERE - WR1: SELF.relating_product_definition_formation.of_product :=: SELF.related_product_definition_formation.of_product; -END_ENTITY; - -ENTITY interface_connector_version - SUBTYPE OF (product_definition_formation); -END_ENTITY; - -ENTITY interface_definition_connection - SUBTYPE OF (product_definition_relationship); -END_ENTITY; - -ENTITY interface_definition_for - SUBTYPE OF (product_definition_relationship); -END_ENTITY; - -ENTITY interface_specification_definition - SUBTYPE OF (product_definition); -END_ENTITY; - -ENTITY interface_specification_version - SUBTYPE OF (product_definition_formation); -END_ENTITY; - -ENTITY interfaced_group_component - SUBTYPE OF (assembly_group_component); -END_ENTITY; - -ENTITY interpolated_configuration_representation - SUBTYPE OF (representation); - SELF\representation.context_of_items : geometric_representation_context_with_parameter; - SELF\representation.items : SET [1 : ?] OF interpolated_configuration_sequence; -END_ENTITY; - -ENTITY interpolated_configuration_segment - SUBTYPE OF (founded_item); - state : mechanism_state_representation; - t_parameter : parameter_value; - interpolation : interpolation_type; -END_ENTITY; - -ENTITY interpolated_configuration_sequence - SUBTYPE OF (geometric_representation_item); - segments : LIST [2 : ?] OF interpolated_configuration_segment; -DERIVE - n_segments : INTEGER := SIZEOF(segments); - closed_interpolation : LOGICAL := segments[n_segments].interpolation <> - discontinuous_interpolation_type; - configured_mechanism : mechanism_representation := segments[1].state.represented_mechanism; -WHERE - WR1: SIZEOF(QUERY(ics <* segments | ics.state.represented_mechanism :<>: configured_mechanism)) = 0; -END_ENTITY; - -ENTITY intersecting_connected_face_sets - SUBTYPE OF (topology_related_to_self_intersecting_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - interference_tolerance : length_measure; -WHERE - WR1: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE'); - WR2: validate_inspected_elements_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SET', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SET']); - WR3: validate_locations_of_extreme_value_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_FACE_SURFACE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_FACE_SURFACE']); - WR4: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); -END_ENTITY; - -ENTITY intersecting_loops_in_face - SUBTYPE OF (erroneous_topology_and_geometry_relationship); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - interference_tolerance : length_measure; -WHERE - WR1: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE'); - WR2: validate_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE']); - WR3: validate_locations_of_extreme_value_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_EDGE_CURVE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_EDGE_CURVE']); - WR4: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); -END_ENTITY; - -ENTITY intersecting_shells_in_solid - SUBTYPE OF (erroneous_manifold_solid_brep); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - interference_tolerance : length_measure; -WHERE - WR1: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE'); - WR2: validate_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BREP_WITH_VOIDS']); - WR3: validate_locations_of_extreme_value_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_CURVE']); - WR4: validate_accuracy_types(SELF, []); -END_ENTITY; - -ENTITY intersection_curve - SUBTYPE OF (surface_curve); -WHERE - WR1: SIZEOF(SELF\surface_curve.associated_geometry) = 2; - WR2: associated_surface(SELF\surface_curve.associated_geometry[1]) <> - associated_surface(SELF\surface_curve.associated_geometry[2]); -END_ENTITY; - -ENTITY interval_expression - SUBTYPE OF (boolean_expression, multiple_arity_generic_expression); -DERIVE - interval_low : generic_expression := SELF\multiple_arity_generic_expression.operands[1]; - interval_item : generic_expression := SELF\multiple_arity_generic_expression.operands[2]; - interval_high : generic_expression := SELF\multiple_arity_generic_expression.operands[3]; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXPRESSION' IN TYPEOF(interval_low)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXPRESSION' IN TYPEOF(interval_item)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXPRESSION' IN TYPEOF(interval_high)); - WR2: (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STRING_EXPRESSION' IN TYPEOF(SELF.interval_low)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STRING_EXPRESSION' IN TYPEOF(SELF.interval_high)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STRING_EXPRESSION' IN TYPEOF(SELF.interval_item))) OR - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NUMERIC_EXPRESSION' IN TYPEOF(SELF.interval_low)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NUMERIC_EXPRESSION' IN TYPEOF(SELF.interval_item)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NUMERIC_EXPRESSION' IN TYPEOF(SELF.interval_high))); -END_ENTITY; - -ENTITY invisibility; - invisible_items : SET [1 : ?] OF invisible_item; -END_ENTITY; - -ENTITY iso4217_currency - SUBTYPE OF (currency); -END_ENTITY; - -ENTITY item_defined_transformation; - name : label; - description : OPTIONAL text; - transform_item_1 : representation_item; - transform_item_2 : representation_item; -END_ENTITY; - -ENTITY item_identified_representation_usage; - name : label; - description : OPTIONAL text; - definition : item_identified_representation_usage_definition; - used_representation : representation; - identified_item : item_identified_representation_usage_select; -UNIQUE - UR1: used_representation, identified_item; - UR2: used_representation, definition; -WHERE - WR1: NOT (SIZEOF(identified_item) = 1) OR (used_representation IN using_representations(identified_item)); - WR2: NOT (SIZEOF(identified_item) > 1) OR (used_representation IN get_representations_for_items(identified_item)); -END_ENTITY; - -ENTITY item_link_motion_relationship - SUBTYPE OF (link_motion_relationship); - SELF\representation_relationship.rep_1 : shape_representation; - item : geometric_representation_item; -END_ENTITY; - -ENTITY joggle - SUBTYPE OF (feature_definition); -WHERE - WR1: SIZEOF(QUERY(pdr - <* get_property_definition_representations(SELF) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - NOT ({5 <= SIZEOF(pdr.used_representation.items) <= 10}))) = - 0; - WR2: SIZEOF(QUERY(pdr - <* get_property_definition_representations(SELF) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF(QUERY(i - <* pdr.used_representation.items - | NOT (i.name IN - ['orientation', - 'base radius 1', - 'base radius 2', - 'direction angle 1', - 'direction angle 2', - 'height', - 'slope angle 1', - 'slope angle 2', - 'top radius 1', - 'top radius 2']))) > - 0))) = - 0; - WR3: SIZEOF(QUERY(pdr - <* get_property_definition_representations(SELF) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF(QUERY(i - <* pdr.used_representation.items - | (i.name = 'direction angle 1') AND - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * - TYPEOF(i)) = - 2))) = - 1))) = - 1; - WR4: SIZEOF(QUERY(pdr - <* get_property_definition_representations(SELF) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF(QUERY(i - <* pdr.used_representation.items - | (i.name = 'direction angle 2') AND - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * - TYPEOF(i)) = - 2))) = - 1))) = - 1; - WR5: SIZEOF(QUERY(pdr - <* get_property_definition_representations(SELF) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF(QUERY(i - <* pdr.used_representation.items - | (i.name = 'height') AND - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(i)) = - 2))) = - 1))) <= - 1; - WR6: SIZEOF(QUERY(pdr - <* get_property_definition_representations(SELF) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF(QUERY(i - <* pdr.used_representation.items - | (i.name = 'slope angle 1') AND - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * - TYPEOF(i)) = - 2))) = - 1))) = - 1; - WR7: SIZEOF(QUERY(pdr - <* get_property_definition_representations(SELF) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF(QUERY(i - <* pdr.used_representation.items - | (i.name = 'slope angle 2') AND - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * - TYPEOF(i)) = - 2))) = - 1))) = - 1; - WR8: SIZEOF(QUERY(sa - <* get_shape_aspects(SELF) - | (sa.name = 'defining path') AND (sa.description = 'path feature component occurrence') AND - (SIZEOF(QUERY(sar - <* USEDIN(sa, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN - TYPEOF(sar)) AND - (sar.description = 'path feature component usage') AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PATH_FEATURE_COMPONENT' IN - TYPEOF(sar.relating_shape_aspect)) AND - (sar.relating_shape_aspect.description = 'linear'))) = - 1))) = - 1; - WR9: SIZEOF(QUERY(sa - <* get_shape_aspects(SELF) - | (sa.name = 'termination') AND (sa.description = 'joggle termination occurrence') AND - (SIZEOF(QUERY(sar - <* USEDIN(sa, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN - TYPEOF(sar)) AND - (sar.name = 'joggle termination usage') AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.JOGGLE_TERMINATION' IN - TYPEOF(sar.relating_shape_aspect)))) = - 1))) = - 1; - WR10: SIZEOF(QUERY(pdr - <* get_property_definition_representations(SELF) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF(QUERY(i - <* pdr.used_representation.items - | (i.name = 'base radius 1') AND - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(i)) = - 2))) = - 1))) <= - 1; - WR11: SIZEOF(QUERY(pdr - <* get_property_definition_representations(SELF) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF(QUERY(i - <* pdr.used_representation.items - | (i.name = 'base radius 2') AND - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(i)) = - 2))) = - 1))) <= - 1; - WR12: SIZEOF(QUERY(pdr - <* get_property_definition_representations(SELF) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF(QUERY(i - <* pdr.used_representation.items - | (i.name = 'top radius 1') AND - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(i)) = - 2))) = - 1))) <= - 1; - WR13: SIZEOF(QUERY(pdr - <* get_property_definition_representations(SELF) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF(QUERY(i - <* pdr.used_representation.items - | (i.name = 'top radius 2') AND - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(i)) = - 2))) = - 1))) <= - 1; -END_ENTITY; - -ENTITY joggle_termination - SUBTYPE OF (shape_aspect); -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN - TYPEOF(SELF.of_shape.definition); - WR2: SELF.description IN ['value termination','face termination']; - WR3: (SELF.description = 'value termination') XOR - (SIZEOF(QUERY(pdr - <* get_shape_aspect_property_definition_representations(SELF) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)))) = - 0); - WR4: (SELF.description <> 'value termination') OR - (SIZEOF(QUERY(pdr - <* get_shape_aspect_property_definition_representations(SELF) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF(pdr.used_representation.items) = 2))) = - 1); - WR5: (SELF.description <> 'value termination') OR - (SIZEOF(QUERY(pdr - <* get_shape_aspect_property_definition_representations(SELF) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF(QUERY(i - <* pdr.used_representation.items - | (i.name = 'depth') AND - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(i)) = - 2))) = - 1))) = - 1); - WR6: (SELF.description <> 'value termination') OR - (SIZEOF(QUERY(pdr - <* get_shape_aspect_property_definition_representations(SELF) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF(QUERY(i - <* pdr.used_representation.items - | (i.name = 'angle') AND - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * - TYPEOF(i)) = - 2))) = - 1))) = - 1); - WR7: SIZEOF(QUERY(sar - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN - TYPEOF(sar)) AND - (sar.name = 'joggle termination usage') AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.JOGGLE' IN - TYPEOF(sar.related_shape_aspect.of_shape.definition)) AND - (sar.related_shape_aspect.of_shape.definition\characterized_object.name = 'termination') AND - (sar.related_shape_aspect.of_shape.definition\characterized_object.description = - 'joggle termination occurrence'))) = - 1; -END_ENTITY; - -ENTITY kinematic_analysis_consistency; - control : kinematic_control; - result : kinematic_analysis_result; -WHERE - WR1: control.controlled_mechanism :=: result.analysed_mechanism; -END_ENTITY; - -ENTITY kinematic_analysis_result; - analysed_mechanism : mechanism_representation; - result : kinematic_result; -END_ENTITY; - -ENTITY kinematic_control; - controlled_mechanism : mechanism_representation; - contained_kinematic_programs : kinematic_analysis_definition; -END_ENTITY; - -ENTITY kinematic_joint - SUBTYPE OF (edge); - SELF\edge.edge_start : kinematic_link; - SELF\edge.edge_end : kinematic_link; -UNIQUE - UR1: edge_start, edge_end; -WHERE - WR1: edge_start :<>: edge_end; -END_ENTITY; - -ENTITY kinematic_link - SUBTYPE OF (vertex); -END_ENTITY; - -ENTITY kinematic_link_representation - ABSTRACT SUPERTYPE OF (ONEOF(linear_flexible_link_representation, rigid_link_representation)) - SUBTYPE OF (representation); - SELF\representation.context_of_items : geometric_representation_context; - SELF\representation.items : SET [1 : ?] OF kinematic_link_representation_items; - represented_link : kinematic_link; -INVERSE - associated_shape_representation : SET [0:1] OF kinematic_link_representation_association FOR rep_1; -END_ENTITY; - -ENTITY kinematic_link_representation_association - SUBTYPE OF (representation_relationship); - SELF\representation_relationship.rep_1 : kinematic_link_representation; - SELF\representation_relationship.rep_2 : shape_representation; -WHERE - WR1: (SELF\representation_relationship.rep_2.context_of_items :=: - SELF\representation_relationship.rep_1.context_of_items) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION' IN - TYPEOF(SELF)); -END_ENTITY; - -ENTITY kinematic_loop - SUBTYPE OF (edge_loop); - SELF\path.edge_list : LIST [1 : ?] OF UNIQUE oriented_joint; -END_ENTITY; - -ENTITY kinematic_pair - ABSTRACT SUPERTYPE OF (ONEOF(high_order_kinematic_pair, low_order_kinematic_pair_with_motion_coupling, - low_order_kinematic_pair) ANDOR - actuated_kinematic_pair) - SUBTYPE OF (geometric_representation_item, item_defined_transformation); - joint : kinematic_joint; - SELF\item_defined_transformation.transform_item_1 : rigid_placement; - SELF\item_defined_transformation.transform_item_2 : rigid_placement; -DERIVE - associated_link_representations_1 : SET [1 : ?] OF kinematic_link_representation := sort_link_associations(link_representation_associations, - true); - associated_link_representations_2 : SET [1 : ?] OF kinematic_link_representation := sort_link_associations(link_representation_associations, - false); - SELF\item_defined_transformation.name : label := SELF\representation_item.name; -INVERSE - link_representation_associations : SET [1:?] OF pair_representation_relationship FOR transformation_operator; -END_ENTITY; - -ENTITY kinematic_path - ABSTRACT SUPERTYPE OF (ONEOF(kinematic_path_defined_by_nodes, kinematic_path_defined_by_curves)) - SUBTYPE OF (geometric_representation_item); - segments : LIST [1 : ?] OF kinematic_path_segment; - t_start : parameter_value; -DERIVE - n_segments : INTEGER := SIZEOF(segments); - closed_path : LOGICAL := segments[n_segments].transition <> discontinuous; -WHERE - WR1: SIZEOF(QUERY(using_rep - <* using_representations(SELF) - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_REPRESENTATION_CONTEXT_WITH_PARAMETER' IN - TYPEOF(using_rep.context_of_items)))) = - 0; -END_ENTITY; - -ENTITY kinematic_path_defined_by_curves - SUBTYPE OF (kinematic_path); - SELF\kinematic_path.segments : LIST [1 : ?] OF curve_based_path_with_orientation; -END_ENTITY; - -ENTITY kinematic_path_defined_by_nodes - SUBTYPE OF (kinematic_path); - SELF\kinematic_path.segments : LIST [1 : ?] OF path_node; - placement_start : placement; -END_ENTITY; - -ENTITY kinematic_path_segment - ABSTRACT SUPERTYPE OF (ONEOF(path_node, curve_based_path_with_orientation)) - SUBTYPE OF (founded_item); - t_end : parameter_value; - transition : transition_code; -END_ENTITY; - -ENTITY kinematic_property_definition_representation - ABSTRACT SUPERTYPE OF (ONEOF(kinematic_property_topology_representation, kinematic_property_mechanism_representation)) - SUBTYPE OF (property_definition_representation); - SELF\property_definition_representation.definition : product_definition_kinematics; -END_ENTITY; - -ENTITY kinematic_property_mechanism_representation - SUBTYPE OF (kinematic_property_definition_representation); - SELF\property_definition_representation.used_representation : mechanism_representation; - base : kinematic_link_representation; -WHERE - WR1: SIZEOF(QUERY(i - <* used_representation.items - | (base :=: i\representation_relationship.rep_1) OR - (base :=: i\representation_relationship.rep_2))) > - 0; -END_ENTITY; - -ENTITY kinematic_property_topology_representation - SUBTYPE OF (kinematic_property_definition_representation); - SELF\property_definition_representation.used_representation : kinematic_topology_representation_select; - base : kinematic_link; -WHERE - WR1: used_representation IN using_representations(base); -END_ENTITY; - -ENTITY kinematic_topology_directed_structure - SUBTYPE OF (representation); - SELF\representation.items : SET [1 : ?] OF oriented_joint; - parent : kinematic_topology_structure; -WHERE - WR1: context_of_items :=: parent.context_of_items; - WR2: get_kinematic_joints_from_oriented_joints(items) <= parent.items; -END_ENTITY; - -ENTITY kinematic_topology_network_structure - SUBTYPE OF (representation); - SELF\representation.items : SET [1 : ?] OF kinematic_loop; - parent : kinematic_topology_structure; -WHERE - WR1: context_of_items :=: parent.context_of_items; - WR2: get_kinematic_joints_from_kinematic_loops(items) <= parent.items; -END_ENTITY; - -ENTITY kinematic_topology_structure - SUBTYPE OF (representation); - SELF\representation.items : SET [1 : ?] OF kinematic_joint; -WHERE - WR1: SIZEOF(QUERY(item <* items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORIENTED_EDGE' IN TYPEOF(item))) = - 0; -END_ENTITY; - -ENTITY kinematic_topology_substructure - SUBTYPE OF (kinematic_topology_structure); - parent : kinematic_topology_structure; -WHERE - WR1: context_of_items :=: parent.context_of_items; - WR2: SELF\kinematic_topology_structure.items <= parent\kinematic_topology_structure.items; -END_ENTITY; - -ENTITY kinematic_topology_tree_structure - SUBTYPE OF (kinematic_topology_directed_structure); -END_ENTITY; - -ENTITY known_source - SUBTYPE OF (external_source, pre_defined_item); -END_ENTITY; - -ENTITY laid_defined_transformation - SUBTYPE OF (transformation_with_derived_angle); -END_ENTITY; - -ENTITY laid_orientation_angle - SUBTYPE OF (ply_orientation_angle); -END_ENTITY; - -ENTITY language - SUBTYPE OF (group); -WHERE - WR1: SELF\group.name <> ''; -END_ENTITY; - -ENTITY leader_curve - SUBTYPE OF (annotation_curve_occurrence); -WHERE - WR1: SIZEOF(QUERY(ldc - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_CALLOUT.CONTENTS') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LEADER_DIRECTED_CALLOUT' IN TYPEOF(ldc))) >= - 1; -END_ENTITY; - -ENTITY leader_directed_callout - SUBTYPE OF (draughting_callout); -WHERE - WR1: SIZEOF(QUERY(l_1 - <* SELF\draughting_callout.contents - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LEADER_CURVE' IN (TYPEOF(l_1)))) >= - 1; - WR2: SIZEOF(SELF\draughting_callout.contents) >= 2; -END_ENTITY; - -ENTITY leader_directed_dimension - SUBTYPE OF (leader_directed_callout); -WHERE - WR1: SIZEOF(QUERY(con - <* SELF.contents - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LEADER_CURVE' IN TYPEOF(con))) = - 1; -END_ENTITY; - -ENTITY leader_terminator - SUBTYPE OF (terminator_symbol); -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LEADER_CURVE' IN TYPEOF(SELF\terminator_symbol.annotated_curve); -END_ENTITY; - -ENTITY length_function - SUBTYPE OF (numeric_expression, unary_generic_expression); - SELF\unary_generic_expression.operand : string_expression; -END_ENTITY; - -ENTITY length_measure_with_unit - SUBTYPE OF (measure_with_unit); -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); -END_ENTITY; - -ENTITY length_unit - SUBTYPE OF (named_unit); -WHERE - WR1: (SELF\named_unit.dimensions.length_exponent = 1.0) AND (SELF\named_unit.dimensions.mass_exponent = 0.0) AND - (SELF\named_unit.dimensions.time_exponent = 0.0) AND - (SELF\named_unit.dimensions.electric_current_exponent = 0.0) AND - (SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0.0) AND - (SELF\named_unit.dimensions.amount_of_substance_exponent = 0.0) AND - (SELF\named_unit.dimensions.luminous_intensity_exponent = 0.0); -END_ENTITY; - -ENTITY light_source - SUPERTYPE OF (ONEOF(light_source_ambient, light_source_directional, light_source_positional, light_source_spot)) - SUBTYPE OF (geometric_representation_item); - light_colour : colour; -WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM.ITEM')) = 0; -END_ENTITY; - -ENTITY light_source_ambient - SUBTYPE OF (light_source); -END_ENTITY; - -ENTITY light_source_directional - SUBTYPE OF (light_source); - orientation : direction; -END_ENTITY; - -ENTITY light_source_positional - SUBTYPE OF (light_source); - position : cartesian_point; - constant_attenuation : REAL; - distance_attenuation : REAL; -END_ENTITY; - -ENTITY light_source_spot - SUBTYPE OF (light_source); - position : cartesian_point; - orientation : direction; - concentration_exponent : REAL; - constant_attenuation : REAL; - distance_attenuation : REAL; - spread_angle : positive_plane_angle_measure; -END_ENTITY; - -ENTITY like_expression - SUBTYPE OF (comparison_expression); -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STRING_EXPRESSION' IN - TYPEOF(SELF\binary_generic_expression.operands[1])) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STRING_EXPRESSION' IN - TYPEOF(SELF\binary_generic_expression.operands[2])); -END_ENTITY; - -ENTITY limits_and_fits; - form_variance : label; - zone_variance : label; - grade : label; - source : text; -END_ENTITY; - -ENTITY line - SUBTYPE OF (curve); - pnt : cartesian_point; - dir : vector; -WHERE - WR1: dir.dim = pnt.dim; -END_ENTITY; - -ENTITY line_profile_tolerance - SUBTYPE OF (geometric_tolerance); -END_ENTITY; - -ENTITY linear_array_component_definition_link - SUBTYPE OF (product_definition, product_definition_relationship); - SELF\product_definition_relationship.relating_product_definition : linear_array_placement_group_component; - SELF\product_definition_relationship.related_product_definition : linear_array_placement_group_component; -WHERE - WR1: SELF\product_definition_relationship.related_product_definition :<>: - SELF\product_definition_relationship.relating_product_definition; - WR2: acyclic_product_definition_relationship(SELF, [SELF\product_definition_relationship.related_product_definition], - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINEAR_ARRAY_COMPONENT_DEFINITION_LINK'); -END_ENTITY; - -ENTITY linear_array_placement_group_component - SUBTYPE OF (array_placement_group); -END_ENTITY; - -ENTITY linear_dimension - SUBTYPE OF (dimension_curve_directed_callout); -END_ENTITY; - -ENTITY linear_flexible_and_pinion_pair - SUBTYPE OF (low_order_kinematic_pair_with_motion_coupling); - pinion_radius : length_measure; -WHERE - WR1: SIZEOF(QUERY(lr - <* SELF\kinematic_pair.associated_link_representations_1 - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINEAR_FLEXIBLE_LINK_REPRESENTATION' IN - TYPEOF(lr)))) = - 0; -END_ENTITY; - -ENTITY linear_flexible_and_planar_curve_pair - SUBTYPE OF (high_order_kinematic_pair); - pair_curve : curve; - orientation : BOOLEAN; -WHERE - WR1: SIZEOF(QUERY(r <* SELF\kinematic_pair.associated_link_representations_1 | NOT (pair_curve IN r.items))) = 0; - WR2: SIZEOF(QUERY(lr - <* SELF\kinematic_pair.associated_link_representations_1 - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINEAR_FLEXIBLE_LINK_REPRESENTATION' IN - TYPEOF(lr)))) = - 0; -END_ENTITY; - -ENTITY linear_flexible_link_representation - SUBTYPE OF (kinematic_link_representation); -END_ENTITY; - -ENTITY linear_path - SUBTYPE OF (path_node); -DERIVE - SELF\kinematic_path_segment.transition : transition_code := continuous; -END_ENTITY; - -ENTITY linear_profile - SUBTYPE OF (shape_aspect); -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN - TYPEOF(SELF.of_shape.definition)); - WR2: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation)))) = - 1)))) = - 0); - WR3: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' IN - TYPEOF(it)) AND - (it.name = 'orientation')))) = - 1)))) = - 0)))) = - 0); - WR5: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'profile length')))) = - 1)))) = - 0)))) = - 0); -END_ENTITY; - -ENTITY linearized_table_function - SUPERTYPE OF (ONEOF(standard_table_function, regular_table_function, triangular_matrix, symmetric_matrix, - banded_matrix)) - SUBTYPE OF (explicit_table_function, unary_generic_expression); - SELF\unary_generic_expression.operand : maths_function; - first : INTEGER; -DERIVE - source : maths_function := SELF\unary_generic_expression.operand; -WHERE - WR1: function_is_1d_array(source); - WR2: member_of(first, source\maths_function.domain); -END_ENTITY; - -ENTITY link_motion_relationship - SUBTYPE OF (definitional_representation_relationship, representation_relationship_with_transformation); - SELF\representation_relationship.rep_1 : link_or_shape_representation; - SELF\representation_relationship.rep_2 : link_motion_representation_along_path; - SELF\representation_relationship_with_transformation.transformation_operator : link_motion_transformation; -WHERE - WR1: transformation_operator\item_defined_transformation.transform_item_1 IN rep_1.items; - WR2: transformation_operator\item_defined_transformation.transform_item_2 IN rep_2.items; -END_ENTITY; - -ENTITY link_motion_representation_along_path - SUPERTYPE OF (ONEOF(prescribed_path, resulting_path)) - SUBTYPE OF (representation); - SELF\representation.items : SET [1 : ?] OF kinematic_path; - SELF\representation.context_of_items : geometric_representation_context_with_parameter; -END_ENTITY; - -ENTITY link_motion_transformation - SUBTYPE OF (item_defined_transformation); - SELF\item_defined_transformation.transform_item_1 : rigid_placement; - SELF\item_defined_transformation.transform_item_2 : kinematic_path; -END_ENTITY; - -ENTITY listed_complex_number_data - SUBTYPE OF (explicit_table_function, generic_literal); - values : LIST [2 : ?] OF REAL; -DERIVE - SELF\explicit_table_function.shape : LIST [1 : ?] OF positive_integer := [SIZEOF(values) DIV 2]; -WHERE - WR1: NOT ODD(SIZEOF(values)); -END_ENTITY; - -ENTITY listed_data - SUBTYPE OF (explicit_table_function, generic_literal); - values : LIST [1 : ?] OF maths_value; - value_range : maths_space; -DERIVE - SELF\explicit_table_function.shape : LIST [1 : ?] OF positive_integer := [SIZEOF(values)]; -WHERE - WR1: expression_is_constant(value_range); - WR2: SIZEOF(QUERY(val <* values | NOT (member_of(val, value_range)))) = 0; -END_ENTITY; - -ENTITY listed_integer_data - SUBTYPE OF (explicit_table_function, generic_literal); - values : LIST [1 : ?] OF INTEGER; -DERIVE - SELF\explicit_table_function.shape : LIST [1 : ?] OF positive_integer := [SIZEOF(values)]; -END_ENTITY; - -ENTITY listed_logical_data - SUBTYPE OF (explicit_table_function, generic_literal); - values : LIST [1 : ?] OF LOGICAL; -DERIVE - SELF\explicit_table_function.shape : LIST [1 : ?] OF positive_integer := [SIZEOF(values)]; -END_ENTITY; - -ENTITY listed_real_data - SUBTYPE OF (explicit_table_function, generic_literal); - values : LIST [1 : ?] OF REAL; -DERIVE - SELF\explicit_table_function.shape : LIST [1 : ?] OF positive_integer := [SIZEOF(values)]; -END_ENTITY; - -ENTITY listed_string_data - SUBTYPE OF (explicit_table_function, generic_literal); - values : LIST [1 : ?] OF STRING; -DERIVE - SELF\explicit_table_function.shape : LIST [1 : ?] OF positive_integer := [SIZEOF(values)]; -END_ENTITY; - -ENTITY literal_conjunction - SUBTYPE OF (simple_clause); -END_ENTITY; - -ENTITY literal_disjunction - SUBTYPE OF (simple_clause); -END_ENTITY; - -ENTITY literal_number - ABSTRACT SUPERTYPE OF (ONEOF(int_literal, real_literal)) - SUBTYPE OF (simple_numeric_expression, generic_literal); - the_value : NUMBER; -END_ENTITY; - -ENTITY local_b_spline - SUBTYPE OF (representation_item); - degree : INTEGER; - knots : LIST [2 : ?] OF INTEGER; - multiplicities : LIST [2 : ?] OF INTEGER; -WHERE - WR1: degree > 0; - WR2: SIZEOF(knots) = SIZEOF(multiplicities); - WR3: constraints_param_local_b_spline(degree, knots, multiplicities); -END_ENTITY; - -ENTITY local_time; - hour_component : hour_in_day; - minute_component : OPTIONAL minute_in_hour; - second_component : OPTIONAL second_in_minute; - zone : coordinated_universal_time_offset; -WHERE - WR1: valid_time(SELF); -END_ENTITY; - -ENTITY locally_refined_spline_curve - SUBTYPE OF (bounded_curve); - b_splines : LIST [2 : ?] OF local_b_spline; - knot_values : spline_knot_values; - control_points_list : LIST [2 : ?] OF cartesian_point; - scaling_factors : LIST [2 : ?] OF REAL; - closed_curve : LOGICAL; - locally_refined_spline_type : locally_refined_spline_type_enum; - self_intersect : LOGICAL; - domain : LIST [2 : 2] OF REAL; -WHERE - WR1: SIZEOF(b_splines) = SIZEOF(control_points_list); - WR2: SIZEOF(scaling_factors) = SIZEOF(control_points_list); -END_ENTITY; - -ENTITY locally_refined_spline_surface - SUBTYPE OF (bounded_surface); - u_b_splines : LIST [4 : ?] OF local_b_spline; - v_b_splines : LIST [4 : ?] OF local_b_spline; - u_knots : spline_knot_values; - v_knots : spline_knot_values; - control_points_list : LIST [4 : ?] OF cartesian_point; - scaling_factors : LIST [4 : ?] OF REAL; - linearly_independent : linearly_independent_enum; - locally_refined_spline_type : locally_refined_spline_type_enum; - self_intersect : LOGICAL; - u_closed : LOGICAL; - v_closed : LOGICAL; - domain : LIST [2 : 2] OF LIST [2 : 2] OF REAL; -WHERE - WR1: SIZEOF(u_b_splines) = SIZEOF(control_points_list); - WR2: SIZEOF(v_b_splines) = SIZEOF(control_points_list); - WR3: SIZEOF(scaling_factors) = SIZEOF(control_points_list); - WR4: constraints_scaling(SELF.scaling_factors); -END_ENTITY; - -ENTITY locally_refined_spline_volume - SUBTYPE OF (volume); - u_b_splines : LIST [8 : ?] OF local_b_spline; - v_b_splines : LIST [8 : ?] OF local_b_spline; - w_b_splines : LIST [8 : ?] OF local_b_spline; - u_knots : spline_knot_values; - v_knots : spline_knot_values; - w_knots : spline_knot_values; - control_points_list : LIST [8 : ?] OF cartesian_point; - scaling_factors : LIST [8 : ?] OF REAL; - linearly_independent : linearly_independent_enum; - locally_refined_spline_type : locally_refined_spline_type_enum; - domain : LIST [3 : 3] OF LIST [2 : 2] OF REAL; -WHERE - WR1: SIZEOF(u_b_splines) = SIZEOF(control_points_list); - WR2: SIZEOF(v_b_splines) = SIZEOF(control_points_list); - WR3: SIZEOF(w_b_splines) = SIZEOF(control_points_list); - WR4: SIZEOF(scaling_factors) = SIZEOF(control_points_list); - WR5: constraints_scaling(SELF.scaling_factors); -END_ENTITY; - -ENTITY location; - id : identifier; - name : label; - description : OPTIONAL text; -END_ENTITY; - -ENTITY location_assignment - ABSTRACT SUPERTYPE; - id : identifier; - name : label; - description : OPTIONAL text; - assigned_location : location; - role : location_role; -END_ENTITY; - -ENTITY location_in_aggregate_representation_item - SUBTYPE OF (compound_representation_item); - SELF\compound_representation_item.item_element : location_in_aggregate_item; -END_ENTITY; - -ENTITY location_relationship; - id : identifier; - name : label; - description : OPTIONAL text; - relating_location : location; - related_location : location; -END_ENTITY; - -ENTITY location_representation_assignment - ABSTRACT SUPERTYPE; - id : identifier; - name : label; - description : OPTIONAL text; - represented_location : location; - role : location_representation_role; -END_ENTITY; - -ENTITY location_representation_role; - id : identifier; - name : label; - description : OPTIONAL text; -END_ENTITY; - -ENTITY location_role; - id : identifier; - name : label; - description : OPTIONAL text; -END_ENTITY; - -ENTITY location_shape_representation - SUBTYPE OF (shape_representation); -WHERE - WR1: (SIZEOF(SELF.items) = 1); - WR2: (SIZEOF(QUERY(it - <* SELF.items - | (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT' IN TYPEOF(it))))) = - 0); -END_ENTITY; - -ENTITY locator - SUBTYPE OF (feature_definition); -WHERE - WR1: SIZEOF(QUERY(pdr - <* get_property_definition_representations(SELF) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - NOT ({2 <= SIZEOF(pdr.used_representation.items) <= 5}))) = - 0; - WR2: SIZEOF(QUERY(pdr - <* get_property_definition_representations(SELF) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF(QUERY(i - <* pdr.used_representation.items - | (i.name = 'diameter') AND - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(i)) = - 2))) = - 1))) = - 1; - WR3: SIZEOF(QUERY(pdr - <* get_property_definition_representations(SELF) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF(QUERY(i - <* pdr.used_representation.items - | (i.name = 'tip radius') AND - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(i)) = - 2))) = - 1))) <= - 1; - WR4: SIZEOF(QUERY(pdr - <* get_property_definition_representations(SELF) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF(QUERY(i - <* pdr.used_representation.items - | (i.name = 'tip angle') AND - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * - TYPEOF(i)) = - 2))) = - 1))) = - 1; - WR5: SIZEOF(QUERY(pdr - <* get_property_definition_representations(SELF) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF(QUERY(i - <* pdr.used_representation.items - | (i.name = 'base radius') AND - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(i)) = - 2))) = - 1))) <= - 1; -END_ENTITY; - -ENTITY log_function - SUBTYPE OF (unary_function_call); -END_ENTITY; - -ENTITY log10_function - SUBTYPE OF (unary_function_call); -END_ENTITY; - -ENTITY log2_function - SUBTYPE OF (unary_function_call); -END_ENTITY; - -ENTITY logical_literal - SUBTYPE OF (generic_literal); - lit_value : LOGICAL; -END_ENTITY; - -ENTITY logical_representation_item - SUBTYPE OF (representation_item, logical_literal); -END_ENTITY; - -ENTITY loop - SUPERTYPE OF (ONEOF(vertex_loop, edge_loop, poly_loop)) - SUBTYPE OF (topological_representation_item); -END_ENTITY; - -ENTITY loss_tangent_measure_with_unit - SUBTYPE OF (ratio_measure_with_unit); -END_ENTITY; - -ENTITY lot_effectivity - SUBTYPE OF (effectivity); - effectivity_lot_id : identifier; - effectivity_lot_size : measure_with_unit; -END_ENTITY; - -ENTITY low_order_kinematic_pair - SUPERTYPE OF (ONEOF(revolute_pair, cylindrical_pair, spherical_pair, spherical_pair_with_pin, planar_pair, - unconstrained_pair, fully_constrained_pair, prismatic_pair, universal_pair, - low_order_kinematic_pair_with_range)) - SUBTYPE OF (kinematic_pair); - t_x : BOOLEAN; - t_y : BOOLEAN; - t_z : BOOLEAN; - r_x : BOOLEAN; - r_y : BOOLEAN; - r_z : BOOLEAN; -WHERE - WR1: SIZEOF(QUERY(lr - <* SELF\kinematic_pair.associated_link_representations_1 - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RIGID_LINK_REPRESENTATION' IN - TYPEOF(lr)))) = - 0; - WR2: SIZEOF(QUERY(lr - <* SELF\kinematic_pair.associated_link_representations_2 - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RIGID_LINK_REPRESENTATION' IN - TYPEOF(lr)))) = - 0; -END_ENTITY; - -ENTITY low_order_kinematic_pair_value - SUBTYPE OF (pair_value); - SELF\pair_value.applies_to_pair : low_order_kinematic_pair; - actual_translation_x : length_measure; - actual_translation_y : length_measure; - actual_translation_z : length_measure; - actual_rotation_x : plane_angle_measure; - actual_rotation_y : plane_angle_measure; - actual_rotation_z : plane_angle_measure; -END_ENTITY; - -ENTITY low_order_kinematic_pair_with_motion_coupling - ABSTRACT SUPERTYPE OF (ONEOF(gear_pair, linear_flexible_and_pinion_pair, rack_and_pinion_pair, screw_pair)) - SUBTYPE OF (kinematic_pair); -WHERE - WR1: SIZEOF(QUERY(lr - <* SELF\kinematic_pair.associated_link_representations_2 - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RIGID_LINK_REPRESENTATION' IN - TYPEOF(lr)))) = - 0; -END_ENTITY; - -ENTITY low_order_kinematic_pair_with_range - SUBTYPE OF (low_order_kinematic_pair); - lower_limit_actual_rotation_x : OPTIONAL plane_angle_measure; - upper_limit_actual_rotation_x : OPTIONAL plane_angle_measure; - lower_limit_actual_rotation_y : OPTIONAL plane_angle_measure; - upper_limit_actual_rotation_y : OPTIONAL plane_angle_measure; - lower_limit_actual_rotation_z : OPTIONAL plane_angle_measure; - upper_limit_actual_rotation_z : OPTIONAL plane_angle_measure; - lower_limit_actual_translation_x : OPTIONAL length_measure; - upper_limit_actual_translation_x : OPTIONAL length_measure; - lower_limit_actual_translation_y : OPTIONAL length_measure; - upper_limit_actual_translation_y : OPTIONAL length_measure; - lower_limit_actual_translation_z : OPTIONAL length_measure; - upper_limit_actual_translation_z : OPTIONAL length_measure; -END_ENTITY; - -ENTITY luminous_flux_measure_with_unit - SUBTYPE OF (measure_with_unit); -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LUMINOUS_FLUX_UNIT' IN - TYPEOF(SELF\measure_with_unit.unit_component); -END_ENTITY; - -ENTITY luminous_flux_unit - SUBTYPE OF (named_unit); -WHERE - WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit(si_unit_name.lumen); -END_ENTITY; - -ENTITY luminous_intensity_measure_with_unit - SUBTYPE OF (measure_with_unit); -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LUMINOUS_INTENSITY_UNIT' IN - TYPEOF(SELF\measure_with_unit.unit_component); -END_ENTITY; - -ENTITY luminous_intensity_unit - SUBTYPE OF (named_unit); -WHERE - WR1: (SELF\named_unit.dimensions.length_exponent = 0.0) AND (SELF\named_unit.dimensions.mass_exponent = 0.0) AND - (SELF\named_unit.dimensions.time_exponent = 0.0) AND - (SELF\named_unit.dimensions.electric_current_exponent = 0.0) AND - (SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0.0) AND - (SELF\named_unit.dimensions.amount_of_substance_exponent = 0.0) AND - (SELF\named_unit.dimensions.luminous_intensity_exponent = 1.0); -END_ENTITY; - -ENTITY machining_process_executable - SUBTYPE OF (process_operation); -END_ENTITY; - -ENTITY magnetic_flux_density_measure_with_unit - SUBTYPE OF (measure_with_unit); -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAGNETIC_FLUX_DENSITY_UNIT' IN - TYPEOF(SELF\measure_with_unit.unit_component); -END_ENTITY; - -ENTITY magnetic_flux_density_unit - SUBTYPE OF (derived_unit); -WHERE - WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit(si_unit_name.tesla); -END_ENTITY; - -ENTITY magnetic_flux_measure_with_unit - SUBTYPE OF (measure_with_unit); -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAGNETIC_FLUX_UNIT' IN - TYPEOF(SELF\measure_with_unit.unit_component); -END_ENTITY; - -ENTITY magnetic_flux_unit - SUBTYPE OF (derived_unit); -WHERE - WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit(si_unit_name.weber); -END_ENTITY; - -ENTITY make_from_feature_relationship - SUBTYPE OF (component_feature_relationship); -END_ENTITY; - -ENTITY make_from_usage_option - SUBTYPE OF (product_definition_usage); - ranking : INTEGER; - ranking_rationale : text; - quantity : measure_with_unit; -WHERE - WR1: (NOT ('NUMBER' IN TYPEOF(quantity.value_component))) OR (quantity.value_component > 0); -END_ENTITY; - -ENTITY manifold_solid_brep - SUBTYPE OF (solid_model); - outer : closed_shell; -END_ENTITY; - -ENTITY manifold_subsurface_shape_representation - SUBTYPE OF (shape_representation); -WHERE - WR1: SIZEOF(QUERY(it - <* SELF.items - | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SUB_SET', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D'] * - TYPEOF(it)) = - 1))) = - 0; - WR2: SIZEOF(QUERY(it - <* SELF.items - | SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SUB_SET', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM'] * - TYPEOF(it)) = - 1)) > - 0; - WR3: SIZEOF(QUERY(mi - <* QUERY(it <* items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF(it)) - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SUBSURFACE_SHAPE_REPRESENTATION' IN - TYPEOF(mi\mapped_item.mapping_source.mapped_representation)))) = - 0; - WR4: SIZEOF(QUERY(cfss - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)) - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OPEN_SHELL' IN TYPEOF(cfss)))) = - 0; - WR5: SIZEOF(QUERY(cfss - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)) - | NOT ((('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SUB_SET' IN - TYPEOF(cfss\connected_face_sub_set.parent_face_set)) AND - (SIZEOF(QUERY(fac - <* cfss\connected_face_sub_set.parent_face_set\connected_face_set.cfs_faces - | NOT advanced_face_properties(fac))) = - 0)) OR - (SIZEOF(QUERY(fac - <* cfss\connected_face_sub_set.parent_face_set\connected_face_set.cfs_faces - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN - TYPEOF(fac)))) = - 0)))) = - 0; - WR6: SIZEOF(QUERY(cfss - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)) - | (SIZEOF(QUERY(fac <* cfss\connected_face_set.cfs_faces | NOT advanced_face_properties(fac))) = - 0))) = - 0; - WR7: SIZEOF(QUERY(cfss - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)) - | NOT (SIZEOF(QUERY(fcs - <* cfss\connected_face_set.cfs_faces - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SUBFACE' IN - TYPEOF(fcs)) AND - NOT (SIZEOF(QUERY(elp_fbnds - <* QUERY(bnds - <* fcs.bounds - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN - TYPEOF(bnds.bound)) - | NOT (SIZEOF(QUERY(oe - <* elp_fbnds.bound\path.edge_list - | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE' IN - TYPEOF(oe.edge_element)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SUBEDGE' IN - TYPEOF(oe.edge_element))))) = - 0))) = - 0))) = - 0))) = - 0; - WR8: SIZEOF(QUERY(cfss - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)) - | NOT (SIZEOF(QUERY(fcs - <* cfss\connected_face_set.cfs_faces - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SUBFACE' IN - TYPEOF(fcs)) AND - NOT (SIZEOF(QUERY(elp_fbnds - <* QUERY(bnds - <* fcs.bounds - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN - TYPEOF(bnds.bound)) - | NOT (SIZEOF(QUERY(oe - <* elp_fbnds.bound\path.edge_list - | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN - TYPEOF(oe.edge_start)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN - TYPEOF(oe.edge_end))))) = - 0))) = - 0))) = - 0))) = - 0; - WR9: SIZEOF(QUERY(cfss - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)) - | NOT (SIZEOF(QUERY(fcs - <* cfss\connected_face_set.cfs_faces - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SUBFACE' IN - TYPEOF(fcs)) AND - (NOT (SIZEOF(QUERY(bnds - <* fcs.bounds - | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_LOOP'] * - TYPEOF(bnds.bound)) = - 1))) = - 0)))) = - 0))) = - 0; - WR10: SIZEOF(QUERY(cfss - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)) - | NOT (SIZEOF(QUERY(fcs - <* cfss\connected_face_set.cfs_faces - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SUBFACE' IN - TYPEOF(fcs)) AND - (NOT (SIZEOF(QUERY(elp_fbnds - <* QUERY(bnds - <* fcs.bounds - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN - TYPEOF(bnds.bound)) - | NOT (SIZEOF(QUERY(oe - <* elp_fbnds.bound\path.edge_list - | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONIC', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYLINE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_CURVE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE'] * - TYPEOF(oe.edge_element\edge_curve.edge_geometry)) = - 1))) = - 0))) = - 0)))) = - 0))) = - 0; - WR11: SIZEOF(QUERY(cfss - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)) - | NOT (SIZEOF(QUERY(fcs - <* cfss\connected_face_set.cfs_faces - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SUBFACE' IN - TYPEOF(fcs)) AND - (NOT (SIZEOF(QUERY(elp_fbnds - <* QUERY(bnds - <* fcs.bounds - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN - TYPEOF(bnds.bound)) - | NOT (SIZEOF(QUERY(oe - <* elp_fbnds.bound\path.edge_list - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_CURVE' IN - TYPEOF(oe.edge_element\edge_curve.edge_geometry)) AND - (NOT ((SIZEOF(QUERY(sc_ag - <* oe.edge_element\edge_curve.edge_geometry\surface_curve.associated_geometry - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PCURVE' IN - TYPEOF(sc_ag)))) = - 0))))) = - 0))) = - 0)))) = - 0))) = - 0; - WR12: SIZEOF(QUERY(cfss - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)) - | NOT (SIZEOF(QUERY(fcs - <* cfss\connected_face_set.cfs_faces - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SUBFACE' IN - TYPEOF(fcs)) AND - (NOT (SIZEOF(QUERY(elp_fbnds - <* QUERY(bnds - <* fcs.bounds - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN - TYPEOF(bnds.bound)) - | NOT (SIZEOF(QUERY(oe - <* elp_fbnds.bound\path.edge_list - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYLINE' IN - TYPEOF(oe.edge_element\edge_curve.edge_geometry)) AND - (NOT (SIZEOF(oe\oriented_edge.edge_element\edge_curve.edge_geometry\polyline.points) >= - 3)))) = - 0))) = - 0)))) = - 0))) = - 0; -END_ENTITY; - -ENTITY manifold_surface_shape_representation - SUBTYPE OF (shape_representation); -WHERE - WR1: SIZEOF(QUERY(it - <* SELF.items - | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHELL_BASED_SURFACE_MODEL', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D'] * - TYPEOF(it)) = - 1))) = - 0; - WR2: SIZEOF(QUERY(it - <* SELF.items - | SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHELL_BASED_SURFACE_MODEL', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM'] * - TYPEOF(it)) = - 1)) > - 0; - WR3: SIZEOF(QUERY(mi - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF(it)) - | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SURFACE_SHAPE_REPRESENTATION' IN - TYPEOF(mi\mapped_item.mapping_source.mapped_representation)) AND - (SIZEOF(QUERY(mr_it - <* mi\mapped_item.mapping_source.mapped_representation.items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHELL_BASED_SURFACE_MODEL' IN - TYPEOF(mr_it)))) > - 0)))) = - 0; - WR4: SIZEOF(QUERY(sbsm - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHELL_BASED_SURFACE_MODEL' IN - TYPEOF(it)) - | NOT (SIZEOF(QUERY(sh - <* sbsm\shell_based_surface_model.sbsm_boundary - | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OPEN_SHELL', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORIENTED_CLOSED_SHELL', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLOSED_SHELL'] * - TYPEOF(sh)) = - 1))) = - 0))) = - 0; - WR5: SIZEOF(QUERY(sbsm - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHELL_BASED_SURFACE_MODEL' IN - TYPEOF(it)) - | NOT (SIZEOF(QUERY(cfs - <* sbsm\shell_based_surface_model.sbsm_boundary - | NOT (SIZEOF(QUERY(fa - <* cfs\connected_face_set.cfs_faces - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE' IN - TYPEOF(fa)))) = - 0))) = - 0))) = - 0; - WR6: SIZEOF(QUERY(sbsm - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHELL_BASED_SURFACE_MODEL' IN - TYPEOF(it)) - | NOT (SIZEOF(QUERY(cfs - <* sbsm\shell_based_surface_model.sbsm_boundary - | NOT (SIZEOF(QUERY(fa - <* cfs\connected_face_set.cfs_faces - | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN - TYPEOF(fa)) OR - (msf_surface_check(fa\face_surface.face_geometry))))) = - 0))) = - 0))) = - 0; - WR7: SIZEOF(QUERY(sbsm - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHELL_BASED_SURFACE_MODEL' IN - TYPEOF(it)) - | NOT (SIZEOF(QUERY(cfs - <* sbsm\shell_based_surface_model.sbsm_boundary - | NOT (SIZEOF(QUERY(fa - <* cfs\connected_face_set.cfs_faces - | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN - TYPEOF(fa)) OR - (SIZEOF(QUERY(bnds - <* fa.bounds - | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_LOOP'] * - TYPEOF(bnds.bound)) = - 1))) = - 0)))) = - 0))) = - 0))) = - 0; - WR8: SIZEOF(QUERY(sbsm - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHELL_BASED_SURFACE_MODEL' IN - TYPEOF(it)) - | NOT (SIZEOF(QUERY(cfs - <* sbsm\shell_based_surface_model.sbsm_boundary - | NOT (SIZEOF(QUERY(fa - <* cfs\connected_face_set.cfs_faces - | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN - TYPEOF(fa)) OR - (SIZEOF(QUERY(elp_fbnds - <* QUERY(bnds - <* fa.bounds - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN - TYPEOF(bnds.bound)) - | NOT (SIZEOF(QUERY(oe - <* elp_fbnds\path.edge_list - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE' IN - TYPEOF(oe.edge_element)))) = - 0))) = - 0)))) = - 0))) = - 0))) = - 0; - WR9: SIZEOF(QUERY(sbsm - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHELL_BASED_SURFACE_MODEL' IN - TYPEOF(it)) - | NOT (SIZEOF(QUERY(cfs - <* sbsm\shell_based_surface_model.sbsm_boundary - | NOT (SIZEOF(QUERY(fa - <* cfs\connected_face_set.cfs_faces - | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN - TYPEOF(fa)) OR - (SIZEOF(QUERY(elp_fbnds - <* QUERY(bnds - <* fa.bounds - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN - TYPEOF(bnds.bound)) - | NOT (SIZEOF(QUERY(oe_cv - <* QUERY(oe - <* elp_fbnds\path.edge_list - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE' IN - TYPEOF(oe.edge_element)) - | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONIC', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_REPLICA', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OFFSET_CURVE_3D', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PCURVE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYLINE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_CURVE'] * - TYPEOF(oe_cv.edge_element\edge_curve.edge_geometry)) = - 1))) = - 0))) = - 0)))) = - 0))) = - 0))) = - 0; - WR10: SIZEOF(QUERY(sbsm - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHELL_BASED_SURFACE_MODEL' IN - TYPEOF(it)) - | NOT (SIZEOF(QUERY(cfs - <* sbsm\shell_based_surface_model.sbsm_boundary - | NOT (SIZEOF(QUERY(fa - <* cfs\connected_face_set.cfs_faces - | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN - TYPEOF(fa)) OR - (SIZEOF(QUERY(elp_fbnds - <* QUERY(bnds - <* fa.bounds - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN - TYPEOF(bnds.bound)) - | NOT (SIZEOF(QUERY(oe - <* elp_fbnds\path.edge_list - | NOT (msf_curve_check(oe.edge_element\edge_curve.edge_geometry)))) = - 0))) = - 0)))) = - 0))) = - 0))) = - 0; - WR11: SIZEOF(QUERY(sbsm - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHELL_BASED_SURFACE_MODEL' IN - TYPEOF(it)) - | NOT (SIZEOF(QUERY(cfs - <* sbsm\shell_based_surface_model.sbsm_boundary - | NOT (SIZEOF(QUERY(fa - <* cfs\connected_face_set.cfs_faces - | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN - TYPEOF(fa)) OR - (SIZEOF(QUERY(elp_fbnds - <* QUERY(bnds - <* fa.bounds - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN - TYPEOF(bnds.bound)) - | NOT (SIZEOF(QUERY(oe - <* elp_fbnds\path.edge_list - | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN - TYPEOF(oe.edge_element.edge_start)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN - TYPEOF(oe.edge_element.edge_end))))) = - 0))) = - 0)))) = - 0))) = - 0))) = - 0; - WR12: SIZEOF(QUERY(sbsm - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHELL_BASED_SURFACE_MODEL' IN - TYPEOF(it)) - | NOT (SIZEOF(QUERY(cfs - <* sbsm\shell_based_surface_model.sbsm_boundary - | NOT (SIZEOF(QUERY(fa - <* cfs\connected_face_set.cfs_faces - | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN - TYPEOF(fa)) OR - (SIZEOF(QUERY(elp_fbnds - <* QUERY(bnds - <* fa.bounds - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN - TYPEOF(bnds.bound)) - | NOT (SIZEOF(QUERY(oe - <* elp_fbnds\path.edge_list - | NOT ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CARTESIAN_POINT', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DEGENERATE_PCURVE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_CURVE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_SURFACE'] * - TYPEOF(oe.edge_element.edge_start\vertex_point.vertex_geometry)) = - 1) AND - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CARTESIAN_POINT', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DEGENERATE_PCURVE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_CURVE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_SURFACE'] * - TYPEOF(oe.edge_element.edge_end\vertex_point.vertex_geometry)) = - 1)))) = - 0))) = - 0)))) = - 0))) = - 0))) = - 0; - WR13: SIZEOF(QUERY(sbsm - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHELL_BASED_SURFACE_MODEL' IN - TYPEOF(it)) - | NOT (SIZEOF(QUERY(cfs - <* sbsm\shell_based_surface_model.sbsm_boundary - | NOT (SIZEOF(QUERY(fa - <* cfs\connected_face_set.cfs_faces - | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN - TYPEOF(fa)) OR - (SIZEOF(QUERY(vlp_fbnds - <* QUERY(bnds - <* fa.bounds - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_LOOP' IN - TYPEOF(bnds.bound)) - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN - TYPEOF(vlp_fbnds\vertex_loop.loop_vertex)))) = - 0)))) = - 0))) = - 0))) = - 0; - WR14: SIZEOF(QUERY(sbsm - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHELL_BASED_SURFACE_MODEL' IN - TYPEOF(it)) - | NOT (SIZEOF(QUERY(cfs - <* sbsm\shell_based_surface_model.sbsm_boundary - | NOT (SIZEOF(QUERY(fa - <* cfs\connected_face_set.cfs_faces - | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN - TYPEOF(fa)) OR - (SIZEOF(QUERY(vlp_fbnds - <* QUERY(bnds - <* fa.bounds - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_LOOP' IN - TYPEOF(bnds.bound)) - | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CARTESIAN_POINT', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DEGENERATE_PCURVE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_CURVE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_SURFACE'] * - TYPEOF(vlp_fbnds\vertex_loop.loop_vertex\vertex_point.vertex_geometry)) = - 1))) = - 0)))) = - 0))) = - 0))) = - 0; -END_ENTITY; - -ENTITY mapped_item - SUBTYPE OF (representation_item); - mapping_source : representation_map; - mapping_target : representation_item; -WHERE - WR1: acyclic_mapped_representation(SELF); -END_ENTITY; - -ENTITY marking - SUBTYPE OF (feature_definition); -WHERE - WR1: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - ({2 <= SIZEOF(pdr.used_representation.items) <= 6}))) = - 1)) = - 1; - WR2: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN - TYPEOF(it)) AND - (it.name = 'marking text')))) = - 1)))) = - 0)))) = - 0); - WR3: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN - TYPEOF(it)) AND - (it.name = 'special instructions')))) <= - 1)))) = - 0)))) = - 0); - WR4: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN - TYPEOF(it)) AND - (it.name = 'font name')))) <= - 1)))) = - 0)))) = - 0); - WR5: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'character height')))) <= - 1)))) = - 0)))) = - 0); - WR6: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'character spacing')))) <= - 1)))) = - 0)))) = - 0); - WR7: (SIZEOF(QUERY(pds - <* QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd))) - | (NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | ((SIZEOF(QUERY(sdr - <* QUERY(sar - <* USEDIN(sa_occ, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | ((sar.description = 'applied shape') AND - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') IN - TYPEOF(sar)))) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT' IN - TYPEOF(sdr.relating_shape_aspect)))) = - 1)))) = - 1)))) = - 0); -END_ENTITY; - -ENTITY mass_measure_with_unit - SUBTYPE OF (measure_with_unit); -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MASS_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); -END_ENTITY; - -ENTITY mass_unit - SUBTYPE OF (named_unit); -WHERE - WR1: (SELF\named_unit.dimensions.length_exponent = 0.0) AND (SELF\named_unit.dimensions.mass_exponent = 1.0) AND - (SELF\named_unit.dimensions.time_exponent = 0.0) AND - (SELF\named_unit.dimensions.electric_current_exponent = 0.0) AND - (SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0.0) AND - (SELF\named_unit.dimensions.amount_of_substance_exponent = 0.0) AND - (SELF\named_unit.dimensions.luminous_intensity_exponent = 0.0); -END_ENTITY; - -ENTITY mated_part_relationship - SUBTYPE OF (group, group_assignment, product_definition_shape, product_definition_relationship, shape_aspect); - items : SET [0 : ?] OF product_definition; -DERIVE - SELF\group_assignment.assigned_group : mated_part_relationship := SELF; - SELF\property_definition.definition : mated_part_relationship := SELF; - SELF\shape_aspect.of_shape : mated_part_relationship := SELF; -END_ENTITY; - -ENTITY material_designation; - name : label; - definitions : SET [1 : ?] OF characterized_definition; -END_ENTITY; - -ENTITY material_designation_characterization; - name : label; - description : text; - designation : material_designation; - property : characterized_material_property; -END_ENTITY; - -ENTITY material_property - SUBTYPE OF (property_definition); -UNIQUE - UR1: SELF\property_definition.name, SELF\property_definition.definition; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CHARACTERIZED_OBJECT' IN - TYPEOF(SELF\property_definition.definition)) OR - (SIZEOF(bag_to_set(USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')) - - QUERY(temp - <* bag_to_set(USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MATERIAL_PROPERTY_REPRESENTATION' IN - TYPEOF(temp)))) = - 0); -END_ENTITY; - -ENTITY material_property_representation - SUBTYPE OF (property_definition_representation); - dependent_environment : data_environment; -END_ENTITY; - -ENTITY mathematical_description; - described : maths_expression; - describing : STRING; - encoding : label; -END_ENTITY; - -ENTITY maths_boolean_variable - SUBTYPE OF (maths_variable, boolean_variable); -WHERE - WR1: subspace_of_es(SELF\maths_variable.values_space, es_booleans); -END_ENTITY; - -ENTITY maths_enum_literal - SUBTYPE OF (generic_literal); - lit_value : maths_enum_atom; -END_ENTITY; - -ENTITY maths_function - ABSTRACT SUPERTYPE OF (ONEOF(finite_function, constant_function, selector_function, elementary_function, - restriction_function, repackaging_function, reindexed_array_function, - series_composed_function, parallel_composed_function, explicit_table_function, - homogeneous_linear_function, general_linear_function, b_spline_basis, b_spline_function, - rationalize_function, partial_derivative_function, definite_integral_function, - abstracted_expression_function, expression_denoted_function, imported_point_function, - imported_curve_function, imported_surface_function, imported_volume_function, - application_defined_function)) - SUBTYPE OF (generic_expression); -DERIVE - domain : tuple_space := derive_function_domain(SELF); - range : tuple_space := derive_function_range(SELF); -END_ENTITY; - -ENTITY maths_integer_variable - SUBTYPE OF (maths_variable, int_numeric_variable); -WHERE - WR1: subspace_of_es(SELF\maths_variable.values_space, es_integers); -END_ENTITY; - -ENTITY maths_real_variable - SUBTYPE OF (maths_variable, real_numeric_variable); -WHERE - WR1: subspace_of_es(SELF\maths_variable.values_space, es_reals); -END_ENTITY; - -ENTITY maths_space - ABSTRACT SUPERTYPE OF (ONEOF(elementary_space, finite_integer_interval, integer_interval_from_min, - integer_interval_to_max, finite_real_interval, real_interval_from_min, - real_interval_to_max, cartesian_complex_number_region, polar_complex_number_region, - uniform_product_space, extended_tuple_space, - function_space)) - SUBTYPE OF (generic_expression); -END_ENTITY; - -ENTITY maths_string_variable - SUBTYPE OF (maths_variable, string_variable); -WHERE - WR1: subspace_of_es(SELF\maths_variable.values_space, es_strings); -END_ENTITY; - -ENTITY maths_value_precision_qualifier; - precision_value : maths_value; -END_ENTITY; - -ENTITY maths_variable - SUBTYPE OF (generic_variable); - values_space : maths_space; - name : label; -WHERE - WR1: expression_is_constant(values_space); -END_ENTITY; - -ENTITY mating_material - SUBTYPE OF (property_definition, group); - SELF\property_definition.definition : product_definition_usage_relationship; -UNIQUE - UR1: SELF\property_definition.definition; -END_ENTITY; - -ENTITY mating_material_items - SUBTYPE OF (group_assignment); - SELF\group_assignment.assigned_group : mating_material; - items : SET [1 : ?] OF product_definition; -END_ENTITY; - -ENTITY maximum_function - SUBTYPE OF (multiple_arity_function_call); -END_ENTITY; - -ENTITY measure_qualification; - name : label; - description : text; - qualified_measure : measure_with_unit; - qualifiers : SET [1 : ?] OF value_qualifier; -WHERE - WR1: SIZEOF(QUERY(temp - <* qualifiers - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRECISION_QUALIFIER' IN TYPEOF(temp)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MATHS_VALUE_PRECISION_QUALIFIER' IN - TYPEOF(temp)))) < - 2; - WR2: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_ITEM' IN - TYPEOF(SELF\measure_qualification.qualified_measure)); -END_ENTITY; - -ENTITY measure_representation_item - SUBTYPE OF (representation_item, measure_with_unit); -END_ENTITY; - -ENTITY measure_with_unit - SUPERTYPE OF (ONEOF(length_measure_with_unit, mass_measure_with_unit, time_measure_with_unit, - electric_current_measure_with_unit, thermodynamic_temperature_measure_with_unit, - celsius_temperature_measure_with_unit, amount_of_substance_measure_with_unit, - luminous_intensity_measure_with_unit, plane_angle_measure_with_unit, - solid_angle_measure_with_unit, area_measure_with_unit, volume_measure_with_unit, - ratio_measure_with_unit, acceleration_measure_with_unit, capacitance_measure_with_unit, - electric_charge_measure_with_unit, conductance_measure_with_unit, - electric_potential_measure_with_unit, energy_measure_with_unit, - magnetic_flux_density_measure_with_unit, force_measure_with_unit, frequency_measure_with_unit, - illuminance_measure_with_unit, inductance_measure_with_unit, luminous_flux_measure_with_unit, - magnetic_flux_measure_with_unit, power_measure_with_unit, pressure_measure_with_unit, - resistance_measure_with_unit, velocity_measure_with_unit, absorbed_dose_measure_with_unit, - radioactivity_measure_with_unit, dose_equivalent_measure_with_unit)); - value_component : measure_value; - unit_component : unit; -WHERE - WR1: valid_units(SELF); -END_ENTITY; - -ENTITY mechanical_context - SUBTYPE OF (product_context); -WHERE - WR1: SELF.discipline_type = 'mechanical'; -END_ENTITY; - -ENTITY mechanical_design_and_draughting_relationship - SUBTYPE OF (definitional_representation_relationship_with_same_context); - SELF\representation_relationship.rep_1 : mechanical_design_and_draughting_relationship_select; - SELF\representation_relationship.rep_2 : mechanical_design_and_draughting_relationship_select; -WHERE - WR1: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_MODEL' IN TYPEOF(rep_2)) OR - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_MODEL' IN TYPEOF(rep_1)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION' IN TYPEOF(rep_1))); - WR2: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION' IN - TYPEOF(rep_2)) OR - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION' IN - TYPEOF(rep_1)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION' IN TYPEOF(rep_1))); - WR3: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MECHANICAL_DESIGN_SHADED_PRESENTATION_REPRESENTATION' IN - TYPEOF(rep_2)) OR - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MECHANICAL_DESIGN_SHADED_PRESENTATION_REPRESENTATION' IN - TYPEOF(rep_1)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION' IN TYPEOF(rep_1))); -END_ENTITY; - -ENTITY mechanical_design_geometric_presentation_area - SUBTYPE OF (presentation_area); - SELF\representation.items : SET [1 : ?] OF mechanical_design_geometric_presentation_area_items; -WHERE - WR1: SIZEOF(QUERY(it1 - <* SELF.items - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF(it1)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_VIEW' IN - TYPEOF(it1\mapped_item.mapping_source.mapped_representation)))) = - 0; - WR2: SIZEOF(QUERY(pv - <* QUERY(mi1 - <* QUERY(it1 - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF(it1)) - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_VIEW' IN - TYPEOF(mi1\mapped_item.mapping_source.mapped_representation)) - | NOT (SIZEOF(QUERY(it2 - <* pv\mapped_item.mapping_source.mapped_representation\representation.items - | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT' IN - TYPEOF(it2)) OR - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN - TYPEOF(it2)) AND - NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CAMERA_IMAGE_3D_WITH_SCALE' IN - TYPEOF(it2))) AND - NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_VIEW' IN - TYPEOF(it2\mapped_item.mapping_source.mapped_representation))) OR - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CAMERA_IMAGE_3D_WITH_SCALE' IN - TYPEOF(it2)) AND - NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION' IN - TYPEOF(it2\mapped_item.mapping_source.mapped_representation)))))) = - 0))) = - 0; - WR3: (SIZEOF(QUERY(ps - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_SIZE.UNIT') - | ((ps\presentation_size.size.size_in_x <= 0) OR (ps\presentation_size.size.size_in_y <= 0)))) = - 0) AND - (SIZEOF(QUERY(ais - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_IN_SET.AREA') - | (SIZEOF(QUERY(ps - <* USEDIN(ais, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_SIZE.UNIT') - | ((ps\presentation_size.size.size_in_x <= 0) OR - (ps\presentation_size.size.size_in_y <= 0)))) > - 0))) = - 0); - WR4: (SIZEOF(QUERY(ps - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_SIZE.UNIT') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_2D' IN - TYPEOF(ps.size.placement)))) = - 1) AND - (SIZEOF(QUERY(ps - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_SIZE.UNIT') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D' IN - TYPEOF(ps.size.placement)))) = - 0) OR - ((SIZEOF(QUERY(ais - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_IN_SET.AREA') - | (SIZEOF(QUERY(ps - <* USEDIN(ais, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_SIZE.UNIT') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_2D' IN - TYPEOF(ps.size.placement)))) = - 1))) = - 1) AND - (SIZEOF(QUERY(ais - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_IN_SET.AREA') - | (SIZEOF(QUERY(ps - <* USEDIN(ais, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_SIZE.UNIT') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D' IN - TYPEOF(ps.size.placement)))) = - 0))) = - 1)); -END_ENTITY; - -ENTITY mechanical_design_geometric_presentation_representation - SUBTYPE OF (representation); - SELF\representation.items : SET [1 : ?] OF mechanical_design_geometric_presentation_representation_items; -WHERE - WR1: SIZEOF(QUERY(mi - <* QUERY(it - <* SELF.items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF(it))) - | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION'] * - TYPEOF(mi\mapped_item.mapping_source.mapped_representation)) = - 1))) = - 0; - WR2: SIZEOF(QUERY(smi - <* QUERY(si - <* QUERY(it - <* SELF.items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN TYPEOF(it))) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN - TYPEOF(si\styled_item.item))) - | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION' IN - TYPEOF(smi\styled_item.item\mapped_item.mapping_source.mapped_representation))))) = - 0; - WR3: SIZEOF(QUERY(si - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN TYPEOF(it)) - | NOT (SIZEOF(QUERY(psa - <* si\styled_item.styles - | NOT (SIZEOF(QUERY(pss - <* psa.styles - | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_STYLE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_USAGE'] * - TYPEOF(pss)) = - 1))) = - 0))) = - 0))) = - 0; - WR4: SIZEOF(QUERY(si - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN TYPEOF(it)) - | NOT (SIZEOF(QUERY(psbc - <* QUERY(psa - <* si\styled_item.styles - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_STYLE_BY_CONTEXT' IN - TYPEOF(psa)) - | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION'] * - TYPEOF(psbc\presentation_style_by_context.style_context)) = - 1))) = - 0))) = - 0; - WR5: SIZEOF(QUERY(si - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN TYPEOF(it)) - | NOT (SIZEOF(QUERY(psa - <* si\styled_item.styles - | NOT (SIZEOF(QUERY(ps - <* QUERY(pss - <* psa.styles - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_STYLE' IN - TYPEOF(pss)) - | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITIVE_LENGTH_MEASURE' IN - TYPEOF(ps\point_style.marker_size)) AND - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_PRE_DEFINED_COLOUR'] * - TYPEOF(ps\point_style.marker_colour)) = - 1)))) = - 0))) = - 0))) = - 0; - WR6: SIZEOF(QUERY(si - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN TYPEOF(it)) - | NOT (SIZEOF(QUERY(psa - <* si\styled_item.styles - | NOT (SIZEOF(QUERY(cs - <* QUERY(pss - <* psa.styles - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE' IN - TYPEOF(pss)) - | NOT ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_PRE_DEFINED_COLOUR'] * - TYPEOF(cs\curve_style.curve_colour)) = - 1) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITIVE_LENGTH_MEASURE' IN - TYPEOF(cs\curve_style.curve_width)) AND - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE_FONT', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * - TYPEOF(cs\curve_style.curve_font)) = - 1)))) = - 0))) = - 0))) = - 0; - WR7: SIZEOF(QUERY(si - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN TYPEOF(it)) - | NOT (SIZEOF(QUERY(psa - <* si\styled_item.styles - | NOT (SIZEOF(QUERY(ssu - <* QUERY(pss - <* psa.styles - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_USAGE' IN - TYPEOF(pss)) - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_SIDE_STYLE' IN - TYPEOF(ssu\surface_style_usage.style)))) = - 0))) = - 0))) = - 0; - WR8: SIZEOF(QUERY(si - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN TYPEOF(it)) - | NOT (SIZEOF(QUERY(psa - <* si\styled_item.styles - | NOT (SIZEOF(QUERY(ssu - <* QUERY(pss - <* psa.styles - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_USAGE' IN - TYPEOF(pss)) - | NOT (SIZEOF(QUERY(sses - <* ssu\surface_style_usage.style\surface_side_style.styles - | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_PARAMETER_LINE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_CONTROL_GRID', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_SILHOUETTE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_SEGMENTATION_CURVE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_FILL_AREA', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_BOUNDARY'] * - TYPEOF(sses)) = - 1))) = - 0))) = - 0))) = - 0))) = - 0; - WR9: SIZEOF(QUERY(si - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN TYPEOF(it)) - | NOT (SIZEOF(QUERY(psa - <* si\styled_item.styles - | NOT (SIZEOF(QUERY(ssu - <* QUERY(pss - <* psa.styles - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_USAGE' IN - TYPEOF(pss)) - | NOT (SIZEOF(QUERY(sspl - <* QUERY(sses - <* ssu\surface_style_usage.style\surface_side_style.styles - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_PARAMETER_LINE' IN - TYPEOF(sses)) - | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE' IN - TYPEOF(sspl\surface_style_parameter_line.style_of_parameter_lines)) AND - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_PRE_DEFINED_COLOUR'] * - TYPEOF(sspl\surface_style_parameter_line.style_of_parameter_lines\curve_style.curve_colour)) = - 1) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITIVE_LENGTH_MEASURE' IN - TYPEOF(sspl\surface_style_parameter_line.style_of_parameter_lines\curve_style.curve_width)) AND - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE_FONT', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * - TYPEOF(sspl\surface_style_parameter_line.style_of_parameter_lines\curve_style.curve_font)) = - 1)))) = - 0))) = - 0))) = - 0))) = - 0; - WR10: SIZEOF(QUERY(si - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN TYPEOF(it)) - | NOT (SIZEOF(QUERY(psa - <* si\styled_item.styles - | NOT (SIZEOF(QUERY(ssu - <* QUERY(pss - <* psa.styles - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_USAGE' IN - TYPEOF(pss)) - | NOT (SIZEOF(QUERY(sscg - <* QUERY(sses - <* ssu\surface_style_usage.style\surface_side_style.styles - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_CONTROL_GRID' IN - TYPEOF(sses)) - | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE' IN - TYPEOF(sscg\surface_style_control_grid.style_of_control_grid)) AND - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_PRE_DEFINED_COLOUR'] * - TYPEOF(sscg\surface_style_control_grid.style_of_control_grid\curve_style.curve_colour)) = - 1) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITIVE_LENGTH_MEASURE' IN - TYPEOF(sscg\surface_style_control_grid.style_of_control_grid\curve_style.curve_width)) AND - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE_FONT', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * - TYPEOF(sscg\surface_style_control_grid.style_of_control_grid\curve_style.curve_font)) = - 1)))) = - 0))) = - 0))) = - 0))) = - 0; - WR11: SIZEOF(QUERY(si - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN TYPEOF(it)) - | NOT (SIZEOF(QUERY(psa - <* si\styled_item.styles - | NOT (SIZEOF(QUERY(ssu - <* QUERY(pss - <* psa.styles - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_USAGE' IN - TYPEOF(pss)) - | NOT (SIZEOF(QUERY(sssh - <* QUERY(sses - <* ssu\surface_style_usage.style\surface_side_style.styles - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_SILHOUETTE' IN - TYPEOF(sses)) - | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE' IN - TYPEOF(sssh\surface_style_silhouette.style_of_silhouette)) AND - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_PRE_DEFINED_COLOUR'] * - TYPEOF(sssh\surface_style_silhouette.style_of_silhouette\curve_style.curve_colour)) = - 1) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITIVE_LENGTH_MEASURE' IN - TYPEOF(sssh\surface_style_silhouette.style_of_silhouette\curve_style.curve_width)) AND - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE_FONT', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * - TYPEOF(sssh\surface_style_silhouette.style_of_silhouette\curve_style.curve_font)) = - 1)))) = - 0))) = - 0))) = - 0))) = - 0; - WR12: SIZEOF(QUERY(si - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN TYPEOF(it)) - | NOT (SIZEOF(QUERY(psa - <* si\styled_item.styles - | NOT (SIZEOF(QUERY(ssu - <* QUERY(pss - <* psa.styles - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_USAGE' IN - TYPEOF(pss)) - | NOT (SIZEOF(QUERY(sssc - <* QUERY(sses - <* ssu\surface_style_usage.style\surface_side_style.styles - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_SEGMENTATION_CURVE' IN - TYPEOF(sses)) - | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE' IN - TYPEOF(sssc\surface_style_segmentation_curve.style_of_segmentation_curve)) AND - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_PRE_DEFINED_COLOUR'] * - TYPEOF(sssc\surface_style_segmentation_curve.style_of_segmentation_curve\curve_style.curve_colour)) = - 1) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITIVE_LENGTH_MEASURE' IN - TYPEOF(sssc\surface_style_segmentation_curve.style_of_segmentation_curve\curve_style.curve_width)) AND - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE_FONT', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * - TYPEOF(sssc\surface_style_segmentation_curve.style_of_segmentation_curve\curve_style.curve_font)) = - 1)))) = - 0))) = - 0))) = - 0))) = - 0; - WR13: SIZEOF(QUERY(si - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN TYPEOF(it)) - | NOT (SIZEOF(QUERY(psa - <* si\styled_item.styles - | NOT (SIZEOF(QUERY(ssu - <* QUERY(pss - <* psa.styles - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_USAGE' IN - TYPEOF(pss)) - | NOT (SIZEOF(QUERY(ssbd - <* QUERY(sses - <* ssu\surface_style_usage.style\surface_side_style.styles - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_BOUNDARY' IN - TYPEOF(sses)) - | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE' IN - TYPEOF(ssbd\surface_style_boundary.style_of_boundary)) AND - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_PRE_DEFINED_COLOUR'] * - TYPEOF(ssbd\surface_style_boundary.style_of_boundary\curve_style.curve_colour)) = - 1) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITIVE_LENGTH_MEASURE' IN - TYPEOF(ssbd\surface_style_boundary.style_of_boundary\curve_style.curve_width)) AND - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE_FONT', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * - TYPEOF(ssbd\surface_style_boundary.style_of_boundary\curve_style.curve_font)) = - 1)))) = - 0))) = - 0))) = - 0))) = - 0; -END_ENTITY; - -ENTITY mechanical_design_presentation_representation_with_draughting - SUBTYPE OF (representation); - SELF\representation.items : SET [1 : ?] OF camera_model_d3; -END_ENTITY; - -ENTITY mechanical_design_requirement_item_association - SUBTYPE OF (pmi_requirement_item_association); - SELF\pmi_requirement_item_association.requirement : requirement_assignment; -END_ENTITY; - -ENTITY mechanical_design_shaded_presentation_area - SUBTYPE OF (presentation_area); - SELF\representation.items : SET [1 : ?] OF mechanical_design_shaded_presentation_area_items; -WHERE - WR1: SIZEOF(QUERY(it1 - <* SELF.items - | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT' IN TYPEOF(it1)) OR - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF(it1)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_VIEW' IN - TYPEOF(it1\mapped_item.mapping_source.mapped_representation)))))) = - 0; - WR2: SIZEOF(QUERY(pv - <* QUERY(mi1 - <* QUERY(it1 - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF(it1)) - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_VIEW' IN - TYPEOF(mi1\mapped_item.mapping_source.mapped_representation)) - | NOT (SIZEOF(QUERY(it2 - <* pv\mapped_item.mapping_source.mapped_representation\representation.items - | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT' IN - TYPEOF(it2)) OR - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN - TYPEOF(it2)) AND - NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CAMERA_IMAGE_3D_WITH_SCALE' IN - TYPEOF(it2))) AND - NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_VIEW' IN - TYPEOF(it2\mapped_item.mapping_source.mapped_representation))) OR - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CAMERA_IMAGE_3D_WITH_SCALE' IN - TYPEOF(it2)) AND - NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MECHANICAL_DESIGN_SHADED_PRESENTATION_REPRESENTATION' IN - TYPEOF(it2\mapped_item.mapping_source.mapped_representation)))))) = - 0))) = - 0; - WR3: (SIZEOF(QUERY(ps - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_SIZE.UNIT') - | NOT ((ps\presentation_size.size.size_in_x > 0) AND - (ps\presentation_size.size.size_in_y > 0)))) = - 0) AND - (SIZEOF(QUERY(pset - <* QUERY(ais - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_IN_SET.AREA') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_SET' IN - TYPEOF(ais.in_set)) - | SIZEOF(QUERY(ps - <* USEDIN(pset, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_SIZE.UNIT') - | NOT ((ps\presentation_size.size.size_in_x > 0) AND - (ps\presentation_size.size.size_in_y > 0)))) = - 0)) = - 0); - WR4: (SIZEOF(QUERY(psize - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_SIZE.UNIT') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_2D' IN - TYPEOF(psize.size.placement))) = - 1) AND - (SIZEOF(QUERY(pset - <* QUERY(ais - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_IN_SET.AREA') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_SET' IN - TYPEOF(ais.in_set)) - | SIZEOF(QUERY(psize - <* USEDIN(pset, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_SIZE.UNIT') - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_2D' IN - TYPEOF(psize.size.placement)))) = - 0)) = - 0); - WR5: SIZEOF(QUERY(pv - <* QUERY(mi1 - <* QUERY(it1 - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF(it1)) - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_VIEW' IN - TYPEOF(mi1\mapped_item.mapping_source.mapped_representation)) - | NOT (SIZEOF(QUERY(ci - <* pv\mapped_item.mapping_source.mapped_representation\representation.items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CAMERA_IMAGE_3D_WITH_SCALE' IN - TYPEOF(ci)) AND - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CAMERA_MODEL_D3', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CAMERA_MODEL_D3_WITH_HLHSR', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CAMERA_MODEL_WITH_LIGHT_SOURCES'] * - TYPEOF(ci\mapped_item.mapping_source.mapping_origin)) = - 1))) = - 0))) = - 0; -END_ENTITY; - -ENTITY mechanical_design_shaded_presentation_representation - SUBTYPE OF (representation); - SELF\representation.items : SET [1 : ?] OF mechanical_design_shaded_presentation_representation_items; -WHERE - WR1: SIZEOF(QUERY(mi - <* QUERY(it - <* SELF.items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF(it))) - | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MECHANICAL_DESIGN_SHADED_PRESENTATION_REPRESENTATION'] * - TYPEOF(mi\mapped_item.mapping_source.mapped_representation)) = - 1))) = - 0; - WR2: SIZEOF(QUERY(smi - <* QUERY(si - <* QUERY(it - <* SELF.items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN TYPEOF(it))) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN - TYPEOF(si\styled_item.item))) - | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION' IN - TYPEOF(smi\styled_item.item\mapped_item.mapping_source.mapped_representation))))) = - 0; - WR3: SIZEOF(QUERY(si - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN TYPEOF(it)) - | NOT (SIZEOF(QUERY(psa - <* si\styled_item.styles - | NOT (SIZEOF(QUERY(pss - <* psa.styles - | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_STYLE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_USAGE'] * - TYPEOF(pss)) = - 1))) = - 0))) = - 0))) = - 0; - WR4: SIZEOF(QUERY(si - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN TYPEOF(it)) - | NOT (SIZEOF(QUERY(psbc - <* QUERY(psa - <* si\styled_item.styles - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_STYLE_BY_CONTEXT' IN - TYPEOF(psa)) - | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION'] * - TYPEOF(psbc\presentation_style_by_context.style_context)) = - 1))) = - 0))) = - 0; - WR5: SIZEOF(QUERY(si - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN TYPEOF(it)) - | NOT (SIZEOF(QUERY(psa - <* si\styled_item.styles - | NOT (SIZEOF(QUERY(ps - <* QUERY(pss - <* psa.styles - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_STYLE' IN - TYPEOF(pss)) - | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MARKER_TYPE' IN - TYPEOF(ps\point_style.marker)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITIVE_LENGTH_MEASURE' IN - TYPEOF(ps\point_style.marker_size)) AND - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_PRE_DEFINED_COLOUR'] * - TYPEOF(ps\point_style.marker_colour)) = - 1)))) = - 0))) = - 0))) = - 0; - WR6: SIZEOF(QUERY(si - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN TYPEOF(it)) - | NOT (SIZEOF(QUERY(psa - <* si\styled_item.styles - | NOT (SIZEOF(QUERY(cs - <* QUERY(pss - <* psa.styles - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE' IN - TYPEOF(pss)) - | NOT ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_PRE_DEFINED_COLOUR'] * - TYPEOF(cs\curve_style.curve_colour)) = - 1) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITIVE_LENGTH_MEASURE' IN - TYPEOF(cs\curve_style.curve_width)) AND - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE_FONT', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * - TYPEOF(cs\curve_style.curve_font)) = - 1)))) = - 0))) = - 0))) = - 0; - WR7: SIZEOF(QUERY(si - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN TYPEOF(it)) - | NOT (SIZEOF(QUERY(psa - <* si\styled_item.styles - | NOT (SIZEOF(QUERY(ssu - <* QUERY(pss - <* psa.styles - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_USAGE' IN - TYPEOF(pss)) - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_SIDE_STYLE' IN - TYPEOF(ssu\surface_style_usage.style)))) = - 0))) = - 0))) = - 0; - WR8: SIZEOF(QUERY(si - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN TYPEOF(it)) - | NOT (SIZEOF(QUERY(psa - <* si\styled_item.styles - | NOT (SIZEOF(QUERY(ssu - <* QUERY(pss - <* psa.styles - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_USAGE' IN - TYPEOF(pss)) - | NOT (SIZEOF(QUERY(sses - <* ssu\surface_style_usage.style\surface_side_style.styles - | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_PARAMETER_LINE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_CONTROL_GRID', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_SILHOUETTE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_SEGMENTATION_CURVE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_BOUNDARY', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_FILL_AREA', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_RENDERING'] * - TYPEOF(sses)) = - 1))) = - 0))) = - 0))) = - 0))) = - 0; - WR9: SIZEOF(QUERY(si - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN TYPEOF(it)) - | NOT (SIZEOF(QUERY(psa - <* si\styled_item.styles - | NOT (SIZEOF(QUERY(ssu - <* QUERY(pss - <* psa.styles - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_USAGE' IN - TYPEOF(pss)) - | NOT (SIZEOF(QUERY(ssfa - <* QUERY(sses - <* ssu\surface_style_usage.style\surface_side_style.styles - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_FILL_AREA' IN - TYPEOF(sses)) - | NOT (SIZEOF(QUERY(fss - <* ssfa\surface_style_fill_area.fill_area.fill_styles - | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FILL_AREA_STYLE_COLOUR' IN - TYPEOF(fss)) AND - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_PRE_DEFINED_COLOUR'] * - TYPEOF(fss\fill_area_style_colour.fill_colour)) = - 1)))) = - 0))) = - 0))) = - 0))) = - 0))) = - 0; - WR10: SIZEOF(QUERY(si - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN TYPEOF(it)) - | NOT (SIZEOF(QUERY(psa - <* si\styled_item.styles - | NOT (SIZEOF(QUERY(ssu - <* QUERY(pss - <* psa.styles - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_USAGE' IN - TYPEOF(pss)) - | NOT (SIZEOF(QUERY(sspl - <* QUERY(sses - <* ssu\surface_style_usage.style\surface_side_style.styles - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_PARAMETER_LINE' IN - TYPEOF(sses)) - | NOT ((('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE' IN - TYPEOF(sspl\surface_style_parameter_line.style_of_parameter_lines)) AND - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_PRE_DEFINED_COLOUR'] * - TYPEOF(sspl\surface_style_parameter_line.style_of_parameter_lines\curve_style.curve_colour)) = - 1) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITIVE_LENGTH_MEASURE' IN - TYPEOF(sspl\surface_style_parameter_line.style_of_parameter_lines\curve_style.curve_width)) AND - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE_FONT', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * - TYPEOF(sspl\surface_style_parameter_line.style_of_parameter_lines\curve_style.curve_font)) = - 1)) OR - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE_RENDERING' IN - TYPEOF(sspl\surface_style_parameter_line.style_of_parameter_lines)) AND - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_PRE_DEFINED_COLOUR'] * - TYPEOF(sspl\surface_style_parameter_line.style_of_parameter_lines\curve_style_rendering.rendering_properties.rendered_colour)) = - 1))))) = - 0))) = - 0))) = - 0))) = - 0; - WR11: SIZEOF(QUERY(si - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN TYPEOF(it)) - | NOT (SIZEOF(QUERY(psa - <* si\styled_item.styles - | NOT (SIZEOF(QUERY(ssu - <* QUERY(pss - <* psa.styles - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_USAGE' IN - TYPEOF(pss)) - | NOT (SIZEOF(QUERY(sscg - <* QUERY(sses - <* ssu\surface_style_usage.style\surface_side_style.styles - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_CONTROL_GRID' IN - TYPEOF(sses)) - | NOT ((('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE' IN - TYPEOF(sscg\surface_style_control_grid.style_of_control_grid)) AND - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_PRE_DEFINED_COLOUR'] * - TYPEOF(sscg\surface_style_control_grid.style_of_control_grid\curve_style.curve_colour)) = - 1) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITIVE_LENGTH_MEASURE' IN - TYPEOF(sscg\surface_style_control_grid.style_of_control_grid\curve_style.curve_width)) AND - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE_FONT', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * - TYPEOF(sscg\surface_style_control_grid.style_of_control_grid\curve_style.curve_font)) = - 1)) OR - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE_RENDERING' IN - TYPEOF(sscg\surface_style_control_grid.style_of_control_grid)) AND - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_PRE_DEFINED_COLOUR'] * - TYPEOF(sscg\surface_style_control_grid.style_of_control_grid\curve_style_rendering.rendering_properties.rendered_colour)) = - 1))))) = - 0))) = - 0))) = - 0))) = - 0; - WR12: SIZEOF(QUERY(si - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN TYPEOF(it)) - | NOT (SIZEOF(QUERY(psa - <* si\styled_item.styles - | NOT (SIZEOF(QUERY(ssu - <* QUERY(pss - <* psa.styles - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_USAGE' IN - TYPEOF(pss)) - | NOT (SIZEOF(QUERY(sssh - <* QUERY(sses - <* ssu\surface_style_usage.style\surface_side_style.styles - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_SILHOUETTE' IN - TYPEOF(sses)) - | NOT ((('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE' IN - TYPEOF(sssh\surface_style_silhouette.style_of_silhouette)) AND - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_PRE_DEFINED_COLOUR'] * - TYPEOF(sssh\surface_style_silhouette.style_of_silhouette\curve_style.curve_colour)) = - 1) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITIVE_LENGTH_MEASURE' IN - TYPEOF(sssh\surface_style_silhouette.style_of_silhouette\curve_style.curve_width)) AND - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE_FONT', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * - TYPEOF(sssh\surface_style_silhouette.style_of_silhouette\curve_style.curve_font)) = - 1)) OR - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE_RENDERING' IN - TYPEOF(sssh\surface_style_silhouette.style_of_silhouette)) AND - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_PRE_DEFINED_COLOUR'] * - TYPEOF(sssh\surface_style_silhouette.style_of_silhouette\curve_style_rendering.rendering_properties.rendered_colour)) = - 1))))) = - 0))) = - 0))) = - 0))) = - 0; - WR13: SIZEOF(QUERY(si - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN TYPEOF(it)) - | NOT (SIZEOF(QUERY(psa - <* si\styled_item.styles - | NOT (SIZEOF(QUERY(ssu - <* QUERY(pss - <* psa.styles - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_USAGE' IN - TYPEOF(pss)) - | NOT (SIZEOF(QUERY(sssc - <* QUERY(sses - <* ssu\surface_style_usage.style\surface_side_style.styles - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_SEGMENTATION_CURVE' IN - TYPEOF(sses)) - | NOT ((('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE' IN - TYPEOF(sssc\surface_style_segmentation_curve.style_of_segmentation_curve)) AND - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_PRE_DEFINED_COLOUR'] * - TYPEOF(sssc\surface_style_segmentation_curve.style_of_segmentation_curve\curve_style.curve_colour)) = - 1) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITIVE_LENGTH_MEASURE' IN - TYPEOF(sssc\surface_style_segmentation_curve.style_of_segmentation_curve\curve_style.curve_width)) AND - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE_FONT', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * - TYPEOF(sssc\surface_style_segmentation_curve.style_of_segmentation_curve\curve_style.curve_font)) = - 1)) OR - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE_RENDERING' IN - TYPEOF(sssc\surface_style_segmentation_curve.style_of_segmentation_curve)) AND - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_PRE_DEFINED_COLOUR'] * - TYPEOF(sssc\surface_style_segmentation_curve.style_of_segmentation_curve\curve_style_rendering.rendering_properties.rendered_colour)) = - 1))))) = - 0))) = - 0))) = - 0))) = - 0; - WR14: SIZEOF(QUERY(si - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN TYPEOF(it)) - | NOT (SIZEOF(QUERY(psa - <* si\styled_item.styles - | NOT (SIZEOF(QUERY(ssu - <* QUERY(pss - <* psa.styles - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_USAGE' IN - TYPEOF(pss)) - | NOT (SIZEOF(QUERY(ssbd - <* QUERY(sses - <* ssu\surface_style_usage.style\surface_side_style.styles - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_BOUNDARY' IN - TYPEOF(sses)) - | NOT ((('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE' IN - TYPEOF(ssbd\surface_style_boundary.style_of_boundary)) AND - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_PRE_DEFINED_COLOUR'] * - TYPEOF(ssbd\surface_style_boundary.style_of_boundary\curve_style.curve_colour)) = - 1) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITIVE_LENGTH_MEASURE' IN - TYPEOF(ssbd\surface_style_boundary.style_of_boundary\curve_style.curve_width)) AND - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE_FONT', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * - TYPEOF(ssbd\surface_style_boundary.style_of_boundary\curve_style.curve_font)) = - 1)) OR - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE_RENDERING' IN - TYPEOF(ssbd\surface_style_boundary.style_of_boundary)) AND - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_PRE_DEFINED_COLOUR'] * - TYPEOF(ssbd\surface_style_boundary.style_of_boundary\curve_style_rendering.rendering_properties.rendered_colour)) = - 1))))) = - 0))) = - 0))) = - 0))) = - 0; - WR15: SIZEOF(QUERY(si - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN TYPEOF(it)) - | NOT (SIZEOF(QUERY(psa - <* si\styled_item.styles - | NOT (SIZEOF(QUERY(ssu - <* QUERY(pss - <* psa.styles - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_USAGE' IN - TYPEOF(pss)) - | NOT (SIZEOF(QUERY(ssre - <* QUERY(sses - <* ssu\surface_style_usage.style\surface_side_style.styles - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_RENDERING' IN - TYPEOF(sses)) - | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_PRE_DEFINED_COLOUR'] * - TYPEOF(ssre\surface_style_rendering.surface_colour)) = - 1))) = - 0))) = - 0))) = - 0))) = - 0; -END_ENTITY; - -ENTITY mechanism_representation - SUBTYPE OF (representation); - SELF\representation.context_of_items : geometric_representation_context; - SELF\representation.items : SET [1 : ?] OF pair_representation_relationship; - represented_topology : kinematic_topology_representation_select; -DERIVE - represented_joints : SET [1 : ?] OF kinematic_joint := collect_joints(items); -WHERE - WR1: (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.KINEMATIC_TOPOLOGY_STRUCTURE' IN - TYPEOF(represented_topology)) AND - (represented_joints :=: represented_topology.items)) OR - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.KINEMATIC_TOPOLOGY_DIRECTED_STRUCTURE' IN - TYPEOF(represented_topology)) AND - (represented_joints :=: get_kinematic_joints_from_oriented_joints(represented_topology.items))) OR - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.KINEMATIC_TOPOLOGY_NETWORK_STRUCTURE' IN - TYPEOF(represented_topology)) AND - (represented_joints :=: get_kinematic_joints_from_kinematic_loops(represented_topology.items))); -END_ENTITY; - -ENTITY mechanism_state_representation - SUBTYPE OF (representation); - SELF\representation.items : SET [1 : ?] OF pair_value; - represented_mechanism : mechanism_representation; -DERIVE - SELF\representation.context_of_items : geometric_representation_context := represented_mechanism.context_of_items; -END_ENTITY; - -ENTITY message_contents_assignment - SUBTYPE OF (group_assignment); - items : SET [1 : ?] OF representation; - SELF\group_assignment.assigned_group : message_contents_group; -DERIVE - message_contents_group : message_contents_group := SELF\group_assignment.assigned_group; -END_ENTITY; - -ENTITY message_contents_group - SUBTYPE OF (group); -END_ENTITY; - -ENTITY message_relationship - SUBTYPE OF (product_relationship); - SELF\product_relationship.relating_product : structured_message; - SELF\product_relationship.related_product : structured_message; -DERIVE - related_message : structured_message := SELF\product_relationship.related_product; - relating_message : structured_message := SELF\product_relationship.relating_product; -END_ENTITY; - -ENTITY min_and_major_ply_orientation_basis - SUBTYPE OF (representation_item_relationship, geometric_representation_item); - SELF\representation_item_relationship.relating_representation_item : axis2_placement_3d; - SELF\representation_item_relationship.related_representation_item : axis2_placement_3d; -DERIVE - major_orientation_basis : axis2_placement_3d := SELF\representation_item_relationship.related_representation_item; - minor_orientation_basis : axis2_placement_3d := SELF\representation_item_relationship.relating_representation_item; -END_ENTITY; - -ENTITY minimum_function - SUBTYPE OF (multiple_arity_function_call); -END_ENTITY; - -ENTITY minus_expression - SUBTYPE OF (binary_numeric_expression); -END_ENTITY; - -ENTITY minus_function - SUBTYPE OF (unary_function_call); -END_ENTITY; - -ENTITY mismatch_of_arcwise_connected_curves - SUBTYPE OF (a3m_equivalence_criterion_of_detailed_shape_data_content, - a3m_equivalence_inspection_requirement_with_values); - SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_numerical_test; -DERIVE - SELF\a3m_equivalence_criterion.comparing_element_types : LIST [1 : 1] OF a3ms_element_type_name := [etns_connected_edge_set]; - SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : 1] OF a3ms_element_type_name := [etns_connected_edge_set]; - SELF\a3m_equivalence_criterion.measured_data_type : a3ms_measured_data_type_name := mdns_length_measure; - SELF\a3m_equivalence_criterion.detected_difference_types : LIST [2 : 2] OF a3ms_detected_difference_type_name := [ddns_cartesian_point, - ddns_point_on_curve]; - SELF\a3m_equivalence_criterion.accuracy_types : LIST [1 : 1] OF a3ms_accuracy_type_name := [atns_length_measure]; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN - TYPEOF(SELF\a3m_equivalence_criterion.assessment_specification\a3m_equivalence_assessment_by_numerical_test.threshold)) AND - (a3ms_get_value_limit_type(SELF\a3m_equivalence_criterion.assessment_specification\a3m_equivalence_assessment_by_numerical_test.threshold) = - SELF.measured_data_type); - WR2: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN - TYPEOF(SELF\a3m_equivalence_inspection_requirement_with_values.applied_values[1])) AND - (SELF\a3m_equivalence_inspection_requirement_with_values.applied_values[1].name = - 'discretization_distance_tolerance'); -END_ENTITY; - -ENTITY mismatch_of_arcwise_connected_surfaces - SUBTYPE OF (a3m_equivalence_criterion_of_detailed_shape_data_content, - a3m_equivalence_inspection_requirement_with_values); - SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_numerical_test; -DERIVE - SELF\a3m_equivalence_criterion.comparing_element_types : LIST [1 : 1] OF a3ms_element_type_name := [etns_connected_face_set]; - SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : 1] OF a3ms_element_type_name := [etns_connected_face_set]; - SELF\a3m_equivalence_criterion.measured_data_type : a3ms_measured_data_type_name := mdns_length_measure; - SELF\a3m_equivalence_criterion.detected_difference_types : LIST [2 : 2] OF a3ms_detected_difference_type_name := [ddns_cartesian_point, - ddns_point_on_surface]; - SELF\a3m_equivalence_criterion.accuracy_types : LIST [1 : 1] OF a3ms_accuracy_type_name := [atns_length_measure]; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN - TYPEOF(SELF\a3m_equivalence_criterion.assessment_specification\a3m_equivalence_assessment_by_numerical_test.threshold)) AND - (a3ms_get_value_limit_type(SELF\a3m_equivalence_criterion.assessment_specification\a3m_equivalence_assessment_by_numerical_test.threshold) = - SELF.measured_data_type); - WR2: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN - TYPEOF(SELF\a3m_equivalence_inspection_requirement_with_values.applied_values[1])) AND - (SELF\a3m_equivalence_inspection_requirement_with_values.applied_values[1].name = - 'discretization_distance_tolerance'); -END_ENTITY; - -ENTITY mismatch_of_arcwise_connected_surfaces_boundary - SUBTYPE OF (a3m_equivalence_criterion_of_detailed_shape_data_content, - a3m_equivalence_inspection_requirement_with_values); - SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_numerical_test; -DERIVE - SELF\a3m_equivalence_criterion.comparing_element_types : LIST [1 : 1] OF a3ms_element_type_name := [etns_connected_face_set]; - SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : 1] OF a3ms_element_type_name := [etns_connected_face_set]; - SELF\a3m_equivalence_criterion.measured_data_type : a3ms_measured_data_type_name := mdns_length_measure; - SELF\a3m_equivalence_criterion.detected_difference_types : LIST [2 : 2] OF a3ms_detected_difference_type_name := [ddns_cartesian_point, - ddns_point_on_curve]; - SELF\a3m_equivalence_criterion.accuracy_types : LIST [1 : 1] OF a3ms_accuracy_type_name := [atns_length_measure]; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN - TYPEOF(SELF\a3m_equivalence_criterion.assessment_specification\a3m_equivalence_assessment_by_numerical_test.threshold)) AND - (a3ms_get_value_limit_type(SELF\a3m_equivalence_criterion.assessment_specification\a3m_equivalence_assessment_by_numerical_test.threshold) = - SELF.measured_data_type); - WR2: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN - TYPEOF(SELF\a3m_equivalence_inspection_requirement_with_values.applied_values[1])) AND - (SELF\a3m_equivalence_inspection_requirement_with_values.applied_values[1].name = - 'discretization_distance_tolerance'); -END_ENTITY; - -ENTITY mismatch_of_component - SUBTYPE OF (a3m_equivalence_criterion_of_assembly_data_structure); - SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_logical_test; -DERIVE - SELF\a3m_equivalence_criterion.measured_data_type : a3ma_measured_data_type_name := mdna_boolean_value; - SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF a3ma_detected_difference_type_name := [ddna_assembly_component_usage]; -END_ENTITY; - -ENTITY mismatch_of_edges - SUBTYPE OF (a3m_equivalence_criterion_of_shape_data_structure); - SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_logical_test; -DERIVE - SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : 1] OF a3ms_element_type_name := [etns_connected_edge_set]; - SELF\a3m_equivalence_criterion.measured_data_type : a3ms_measured_data_type_name := mdns_boolean_value; - SELF\a3m_equivalence_criterion.detected_difference_types : LIST [2 : 2] OF a3ms_detected_difference_type_name := [ddns_edge, - ddns_several_edges]; - SELF\a3m_equivalence_criterion.accuracy_types : LIST [0 : 0] OF a3ms_accuracy_type_name := []; -END_ENTITY; - -ENTITY mismatch_of_faces - SUBTYPE OF (a3m_equivalence_criterion_of_shape_data_structure); - SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_logical_test; -DERIVE - SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : 1] OF a3ms_element_type_name := [etns_connected_face_set]; - SELF\a3m_equivalence_criterion.measured_data_type : a3ms_measured_data_type_name := mdns_boolean_value; - SELF\a3m_equivalence_criterion.detected_difference_types : LIST [2 : 2] OF a3ms_detected_difference_type_name := [ddns_face, - ddns_several_faces]; - SELF\a3m_equivalence_criterion.accuracy_types : LIST [0 : 0] OF a3ms_accuracy_type_name := []; -END_ENTITY; - -ENTITY mismatch_of_point_cloud_and_related_geometry - SUBTYPE OF (a3m_equivalence_criterion_of_detailed_shape_data_content); - SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_numerical_test; -DERIVE - SELF\a3m_equivalence_criterion.comparing_element_types : LIST [2 : 2] OF a3ms_element_type_name := [etns_connected_edge_set, - etns_connected_face_set]; - SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : 1] OF a3ms_element_type_name := [etns_point_cloud_dataset]; - SELF\a3m_equivalence_criterion.measured_data_type : a3ms_measured_data_type_name := mdns_length_measure; - SELF\a3m_equivalence_criterion.detected_difference_types : LIST [3 : 3] OF a3ms_detected_difference_type_name := [ddns_cartesian_point, - ddns_point_on_curve, - ddns_point_on_surface]; - SELF\a3m_equivalence_criterion.accuracy_types : LIST [1 : 1] OF a3ms_accuracy_type_name := [atns_length_measure]; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN - TYPEOF(SELF\a3m_equivalence_criterion.assessment_specification\a3m_equivalence_assessment_by_numerical_test.threshold)) AND - (a3ms_get_value_limit_type(SELF\a3m_equivalence_criterion.assessment_specification\a3m_equivalence_assessment_by_numerical_test.threshold) = - SELF.measured_data_type); -END_ENTITY; - -ENTITY mismatch_of_points - SUBTYPE OF (a3m_equivalence_criterion_of_detailed_shape_data_content); - SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_numerical_test; -DERIVE - SELF\a3m_equivalence_criterion.comparing_element_types : LIST [1 : 1] OF a3ms_element_type_name := [etns_vertex_point]; - SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : 1] OF a3ms_element_type_name := [etns_vertex_point]; - SELF\a3m_equivalence_criterion.measured_data_type : a3ms_measured_data_type_name := mdns_length_measure; - SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF a3ms_detected_difference_type_name := [ddns_no_element]; - SELF\a3m_equivalence_criterion.accuracy_types : LIST [0 : 0] OF a3ms_accuracy_type_name := []; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN - TYPEOF(SELF\a3m_equivalence_criterion.assessment_specification\a3m_equivalence_assessment_by_numerical_test.threshold)) AND - (a3ms_get_value_limit_type(SELF\a3m_equivalence_criterion.assessment_specification\a3m_equivalence_assessment_by_numerical_test.threshold) = - SELF.measured_data_type); -END_ENTITY; - -ENTITY mismatch_of_underlying_edge_geometry - SUBTYPE OF (a3m_equivalence_criterion_of_detailed_shape_data_content); - SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_logical_test; -DERIVE - SELF\a3m_equivalence_criterion.comparing_element_types : LIST [1 : 1] OF a3ms_element_type_name := [etns_connected_face_set]; - SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : 1] OF a3ms_element_type_name := [etns_connected_face_set]; - SELF\a3m_equivalence_criterion.measured_data_type : a3ms_measured_data_type_name := mdns_boolean_value; - SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF a3ms_detected_difference_type_name := [ddns_edge]; - SELF\a3m_equivalence_criterion.accuracy_types : LIST [0 : 0] OF a3ms_accuracy_type_name := []; -END_ENTITY; - -ENTITY mismatch_of_underlying_face_geometry - SUBTYPE OF (a3m_equivalence_criterion_of_detailed_shape_data_content); - SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_logical_test; -DERIVE - SELF\a3m_equivalence_criterion.comparing_element_types : LIST [1 : 1] OF a3ms_element_type_name := [etns_connected_face_set]; - SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : 1] OF a3ms_element_type_name := [etns_connected_face_set]; - SELF\a3m_equivalence_criterion.measured_data_type : a3ms_measured_data_type_name := mdns_boolean_value; - SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF a3ms_detected_difference_type_name := [ddns_face]; - SELF\a3m_equivalence_criterion.accuracy_types : LIST [0 : 0] OF a3ms_accuracy_type_name := []; -END_ENTITY; - -ENTITY missing_assembly_constraint - SUBTYPE OF (a3m_equivalence_criterion_of_assembly_data_structure); - SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_logical_test; -DERIVE - SELF\a3m_equivalence_criterion.measured_data_type : a3ma_measured_data_type_name := mdna_boolean_value; - SELF\a3m_equivalence_criterion.detected_difference_types : LIST [2 : 2] OF a3ma_detected_difference_type_name := [ddna_no_element, - ddna_binary_assembly_constraint]; -END_ENTITY; - -ENTITY missing_component - SUBTYPE OF (a3m_equivalence_criterion_of_assembly_data_structure); - SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_logical_test; -DERIVE - SELF\a3m_equivalence_criterion.measured_data_type : a3ma_measured_data_type_name := mdna_boolean_value; - SELF\a3m_equivalence_criterion.detected_difference_types : LIST [2 : 2] OF a3ma_detected_difference_type_name := [ddna_no_element, - ddna_assembly_component_usage]; -END_ENTITY; - -ENTITY missing_edge - SUBTYPE OF (a3m_equivalence_criterion_of_shape_data_structure); - SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_logical_test; -DERIVE - SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : 1] OF a3ms_element_type_name := [etns_connected_edge_set]; - SELF\a3m_equivalence_criterion.measured_data_type : a3ms_measured_data_type_name := mdns_boolean_value; - SELF\a3m_equivalence_criterion.detected_difference_types : LIST [2 : 2] OF a3ms_detected_difference_type_name := [ddns_no_element, - ddns_edge]; - SELF\a3m_equivalence_criterion.accuracy_types : LIST [0 : 0] OF a3ms_accuracy_type_name := []; -END_ENTITY; - -ENTITY missing_face - SUBTYPE OF (a3m_equivalence_criterion_of_shape_data_structure); - SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_logical_test; -DERIVE - SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : 1] OF a3ms_element_type_name := [etns_connected_face_set]; - SELF\a3m_equivalence_criterion.measured_data_type : a3ms_measured_data_type_name := mdns_boolean_value; - SELF\a3m_equivalence_criterion.detected_difference_types : LIST [2 : 2] OF a3ms_detected_difference_type_name := [ddns_no_element, - ddns_face]; - SELF\a3m_equivalence_criterion.accuracy_types : LIST [0 : 0] OF a3ms_accuracy_type_name := []; -END_ENTITY; - -ENTITY mod_expression - SUBTYPE OF (binary_numeric_expression); -END_ENTITY; - -ENTITY model_geometric_view - SUBTYPE OF (characterized_item_within_representation); - SELF\characterized_item_within_representation.rep : draughting_model; - SELF\characterized_item_within_representation.item : camera_model; -END_ENTITY; - -ENTITY modified_geometric_tolerance - SUBTYPE OF (geometric_tolerance); - modifier : limit_condition; -END_ENTITY; - -ENTITY modified_pattern - SUBTYPE OF (shape_aspect); -WHERE - WR1: SIZEOF(QUERY(fcr - <* QUERY(sar - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN - TYPEOF(sar)) - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPLICATE_FEATURE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.INSTANCED_FEATURE'] * - TYPEOF(fcr.related_shape_aspect.of_shape.definition)) >= - 1) AND - (fcr.description = 'base shape'))) = - 1; - WR2: SIZEOF(QUERY(fcr - <* QUERY(sar - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN - TYPEOF(sar)) - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_PATTERN', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_PATTERN'] * - TYPEOF(fcr.related_shape_aspect.of_shape.definition)) = - 1) AND - (fcr.description = 'base pattern'))) = - 1; - WR3: SIZEOF(QUERY(sar - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') - | (SIZEOF(QUERY(msar - <* USEDIN(sar.related_shape_aspect, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PATTERN_OFFSET_MEMBERSHIP', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PATTERN_OMIT_MEMBERSHIP'] * - TYPEOF(sar)) = - 1) AND - (sar.description = 'modified pattern') AND (sar :<>: msar))) >= - 1))) = - 0; -END_ENTITY; - -ENTITY modified_solid - ABSTRACT SUPERTYPE OF (ONEOF(edge_blended_solid, sculptured_solid, shelled_solid, - modified_solid_with_placed_configuration)) - SUBTYPE OF (solid_model); - rationale : text; - base_solid : base_solid_select; -END_ENTITY; - -ENTITY modified_solid_with_placed_configuration - ABSTRACT SUPERTYPE OF (ONEOF(solid_with_depression, solid_with_protrusion, solid_with_shape_element_pattern)) - SUBTYPE OF (modified_solid); - placing : axis2_placement_3d; -END_ENTITY; - -ENTITY modify_element - SUBTYPE OF (change_element); -END_ENTITY; - -ENTITY moments_of_inertia_representation - SUBTYPE OF (representation); -WHERE - WR1: (SIZEOF(SELF.items) = 1) AND - (SIZEOF(QUERY(i - <* SELF.items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOUND_REPRESENTATION_ITEM' IN - TYPEOF(i)) AND - (i.name = 'moments of inertia matrix'))) = - 1); - WR2: SIZEOF(QUERY(i - <* SELF.items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOUND_REPRESENTATION_ITEM' IN TYPEOF(i)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LIST_REPRESENTATION_ITEM' IN - TYPEOF(i\compound_representation_item.item_element)) AND - value_range_aggregate_rep_item(i\compound_representation_item.item_element))) = - 1; -END_ENTITY; - -ENTITY mult_expression - SUBTYPE OF (multiple_arity_numeric_expression); -END_ENTITY; - -ENTITY multi_language_attribute_assignment - SUBTYPE OF (attribute_value_assignment); - items : SET [1 : ?] OF multi_language_attribute_item; -DERIVE - translation_language : language := language_indication[1]\attribute_classification_assignment.assigned_class; -INVERSE - language_indication : SET [1:1] OF attribute_language_assignment FOR items; -WHERE - WR1: (SELF\attribute_value_assignment.role.name = 'alternate language'); - WR2: SIZEOF(QUERY(ala - <* language_indication - | (ala\attribute_classification_assignment.attribute_name = 'attribute_value') AND - (ala\attribute_classification_assignment.role.name = 'translated'))) = - 1; - WR3: SELF\attribute_value_assignment.attribute_name <> ''; - WR4: SIZEOF(QUERY(ci - <* items - | SIZEOF(QUERY(ata - <* USEDIN(ci, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') - | (ata\attribute_value_assignment.attribute_name = - SELF\attribute_value_assignment.attribute_name) AND - (ata.translation_language :=: translation_language))) > - 1)) = - 0; - WR5: SIZEOF(QUERY(ci - <* items - | SIZEOF(QUERY(ata - <* USEDIN(ci, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') - | (ata\attribute_classification_assignment.role.name = 'primary') AND - (ata\attribute_classification_assignment.attribute_name = - SELF\attribute_value_assignment.attribute_name) AND - (ata\attribute_classification_assignment.assigned_class :=: - translation_language))) > - 0)) = - 0; -END_ENTITY; - -ENTITY multi_level_reference_designator - SUBTYPE OF ( assembly_component_usage ); - location : LIST [1 : ?] OF UNIQUE next_assembly_usage_occurrence; -DERIVE - SELF\product_definition_relationship.relating_product_definition : product_definition := location[1]\product_definition_relationship.relating_product_definition; - SELF\product_definition_relationship.related_product_definition : product_definition_or_reference := location[HIINDEX(location)]\product_definition_relationship.related_product_definition; - leaf : product_definition_or_reference := related_product_definition; - root : product_definition := relating_product_definition; -UNIQUE - UR1: location; -WHERE - WR1: unambiguously_specified_multi_level_reference_designator(location); - WR2: SIZEOF( QUERY ( cp <* location | NOT EXISTS(cp\assembly_component_usage.reference_designator ))) = 0; -END_ENTITY; - -ENTITY multiple_arity_boolean_expression - ABSTRACT SUPERTYPE OF (ONEOF(and_expression, or_expression)) - SUBTYPE OF (boolean_expression, multiple_arity_generic_expression); - SELF\multiple_arity_generic_expression.operands : LIST [2 : ?] OF boolean_expression; -END_ENTITY; - -ENTITY multiple_arity_function_call - ABSTRACT SUPERTYPE OF (ONEOF(maximum_function, minimum_function)) - SUBTYPE OF (multiple_arity_numeric_expression); -END_ENTITY; - -ENTITY multiple_arity_generic_expression - ABSTRACT SUPERTYPE - SUBTYPE OF (generic_expression); - operands : LIST [2 : ?] OF generic_expression; -END_ENTITY; - -ENTITY multiple_arity_numeric_expression - ABSTRACT SUPERTYPE OF (ONEOF(plus_expression, mult_expression, multiple_arity_function_call)) - SUBTYPE OF (numeric_expression, multiple_arity_generic_expression); - SELF\multiple_arity_generic_expression.operands : LIST [2 : ?] OF numeric_expression; -END_ENTITY; - -ENTITY multiply_defined_cartesian_points - SUBTYPE OF (multiply_defined_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' IN - TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN - value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE'); - WR3: validate_inspected_elements_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CARTESIAN_POINT', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CARTESIAN_POINT']); - WR4: validate_locations_of_extreme_value_type(SELF, []); - WR5: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); -END_ENTITY; - -ENTITY multiply_defined_curves - SUBTYPE OF (multiply_defined_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' IN - TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN - value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE'); - WR3: validate_inspected_elements_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE']); - WR4: validate_locations_of_extreme_value_type(SELF, []); - WR5: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); -END_ENTITY; - -ENTITY multiply_defined_directions - SUBTYPE OF (multiply_defined_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' IN - TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' IN - value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE'); - WR3: validate_inspected_elements_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIRECTION', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIRECTION']); - WR4: validate_locations_of_extreme_value_type(SELF, []); - WR5: validate_accuracy_types(SELF, []); -END_ENTITY; - -ENTITY multiply_defined_edges - SUBTYPE OF (topology_related_to_multiply_defined_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' IN - TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN - value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE'); - WR3: validate_inspected_elements_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE']); - WR4: validate_locations_of_extreme_value_type(SELF, []); - WR5: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); -END_ENTITY; - -ENTITY multiply_defined_faces - SUBTYPE OF (topology_related_to_multiply_defined_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' IN - TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN - value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE'); - WR3: validate_inspected_elements_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE']); - WR4: validate_locations_of_extreme_value_type(SELF, []); - WR5: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); -END_ENTITY; - -ENTITY multiply_defined_geometry - ABSTRACT SUPERTYPE OF (ONEOF(multiply_defined_curves, multiply_defined_surfaces, multiply_defined_cartesian_points, - multiply_defined_directions, multiply_defined_placements)) - SUBTYPE OF (inapt_geometry); -END_ENTITY; - -ENTITY multiply_defined_placements - SUBTYPE OF (multiply_defined_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - assessment_specification_2 : shape_data_quality_assessment_by_numerical_test; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' IN - TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN - value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' IN - TYPEOF(assessment_specification_2\shape_data_quality_assessment_by_numerical_test.threshold)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' IN - value_limit_type(assessment_specification_2\shape_data_quality_assessment_by_numerical_test.threshold)); - WR3: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_AND_LENGTH_PAIR'); - WR4: validate_inspected_elements_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT']); - WR5: validate_locations_of_extreme_value_type(SELF, []); - WR6: validate_accuracy_types(SELF, []); - WR7: SIZEOF(QUERY(sdqr - <* bag_to_set(USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_QUALITY_INSPECTION_RESULT.CRITERION_INSPECTED')) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_INSPECTION_RESULT' IN - TYPEOF(sdqr)) AND - (SIZEOF(QUERY(sdqiir - <* bag_to_set(USEDIN(sdqr, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_QUALITY_INSPECTION_REPORT.INSPECTION_RESULT')) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT' IN - TYPEOF(sdqiir)) AND - (SIZEOF(QUERY(sdqiri - <* sdqiir.inspected_instances - | (TYPEOF(sdqiri.inspected_elements[1]) <> - TYPEOF(sdqiri.inspected_elements[2])))) = - 0))) = - 0))) = - 0; -END_ENTITY; - -ENTITY multiply_defined_solids - SUBTYPE OF (inapt_manifold_solid_brep); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' IN - TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN - value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE'); - WR3: validate_inspected_elements_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SOLID_BREP', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SOLID_BREP']); - WR4: validate_locations_of_extreme_value_type(SELF, []); - WR5: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); -END_ENTITY; - -ENTITY multiply_defined_surfaces - SUBTYPE OF (multiply_defined_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' IN - TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN - value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE'); - WR3: validate_inspected_elements_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE']); - WR4: validate_locations_of_extreme_value_type(SELF, []); - WR5: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); -END_ENTITY; - -ENTITY multiply_defined_vertices - SUBTYPE OF (topology_related_to_multiply_defined_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' IN - TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN - value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE'); - WR3: validate_inspected_elements_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT']); - WR4: validate_locations_of_extreme_value_type(SELF, []); - WR5: validate_accuracy_types(SELF, []); -END_ENTITY; - -ENTITY name_assignment - ABSTRACT SUPERTYPE; - assigned_name : label; -DERIVE - role : object_role := get_role(SELF); -WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; -END_ENTITY; - -ENTITY name_attribute; - attribute_value : label; - named_item : name_attribute_select; -END_ENTITY; - -ENTITY named_unit - SUPERTYPE OF (ONEOF(si_unit, conversion_based_unit, context_dependent_unit) ANDOR - ONEOF(length_unit, mass_unit, time_unit, electric_current_unit, thermodynamic_temperature_unit, - amount_of_substance_unit, luminous_flux_unit, luminous_intensity_unit, plane_angle_unit, - solid_angle_unit, ratio_unit)); - dimensions : dimensional_exponents; -END_ENTITY; - -ENTITY narrow_surface_patch - SUBTYPE OF (geometry_with_local_near_degeneracy); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - width_tolerance : length_measure; -WHERE - WR1: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE'); - WR2: validate_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_SURFACE']); - WR3: validate_locations_of_extreme_value_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_SURFACE_PATCH']); - WR4: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); -END_ENTITY; - -ENTITY near_point_relationship - SUBTYPE OF (representation_item_relationship); - SELF\representation_item_relationship.relating_representation_item : curve_or_surface_constraint_element; - SELF\representation_item_relationship.related_representation_item : point; -END_ENTITY; - -ENTITY nearly_degenerate_geometry - ABSTRACT SUPERTYPE OF (ONEOF(small_area_surface, short_length_curve, entirely_narrow_surface)) - SUBTYPE OF (inapt_geometry); -END_ENTITY; - -ENTITY nearly_degenerate_surface_boundary - SUBTYPE OF (geometry_with_local_near_degeneracy); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_VALUE_RANGE' IN - TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN - value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE'); - WR3: validate_inspected_elements_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_OR_RECTANGULAR_COMPOSITE_SURFACE_SELECT']); - WR4: validate_locations_of_extreme_value_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOUNDARY_CURVE_OF_B_SPLINE_OR_RECTANGULAR_COMPOSITE_SURFACE']); - WR5: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); -END_ENTITY; - -ENTITY nearly_degenerate_surface_patch - SUBTYPE OF (geometry_with_local_near_degeneracy); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_VALUE_RANGE' IN - TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN - value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE'); - WR3: validate_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_SURFACE']); - WR4: validate_locations_of_extreme_value_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_SURFACE_PATCH']); - WR5: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); -END_ENTITY; - -ENTITY neutral_sketch_representation - SUBTYPE OF (shape_representation); - neutral_sketch_semantics : curves_or_area; - SELF\representation.items : SET [1 : ?] OF sketch_element_select; -WHERE - WR1: SIZEOF(QUERY(q - <* items - | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN - TYPEOF(q)) AND - (q\geometric_representation_item.dim = 3)))) = - 0; -END_ENTITY; - -ENTITY next_assembly_usage_occurrence - SUBTYPE OF (assembly_component_usage); -DERIVE - product_definition_occurrence_id : identifier := SELF\product_definition_relationship.related_product_definition\product_definition_occurrence.id; -UNIQUE - UR1: SELF\assembly_component_usage.reference_designator, - SELF\product_definition_relationship.relating_product_definition; - UR2: product_definition_occurrence_id, SELF\product_definition_relationship.relating_product_definition; -END_ENTITY; - -ENTITY ngon_closed_profile - SUBTYPE OF (shape_aspect); -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN - TYPEOF(SELF.of_shape.definition); - WR2: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation))) = - 1))) = - 0; - WR3: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - | NOT ((SIZEOF(impl_rep.used_representation.items) >= 3) AND - (SIZEOF(impl_rep.used_representation.items) <= 4)))) = - 0))) = - 0; - WR4: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF(QUERY(srwp_i - <* pdr.used_representation.items - | (srwp_i.name = 'orientation') OR - (srwp_i.name = 'number of sides') OR - (srwp_i.name = 'circumscribed diameter') OR - (srwp_i.name = 'corner radius') OR - (srwp_i.name = 'diameter across flats'))) = - SIZEOF(pdr.used_representation.items)))) = - 1)) = - 1; - WR5: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - | NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' IN - TYPEOF(it)) AND - (it.name = 'orientation'))) = - 1))) = - 0))) = - 0; - WR6: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - | NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN - TYPEOF(it)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' IN - TYPEOF(it\measure_with_unit.value_component)) AND - (it.name = 'number of sides'))) = - 1))) = - 0))) = - 0; - WR7: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - | NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name IN - ['circumscribed diameter','diameter across flats']))) = - 1))) = - 0))) = - 0; - WR8: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - | NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'corner radius'))) <= - 1))) = - 0))) = - 0; -END_ENTITY; - -ENTITY non_agreed_accuracy_parameter_usage - SUBTYPE OF (externally_conditioned_data_quality_criterion); -WHERE - WR1: validate_ecdq_inspected_elements_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT']); -END_ENTITY; - -ENTITY non_agreed_scale_usage - SUBTYPE OF (externally_conditioned_data_quality_criterion); -WHERE - WR1: validate_ecdq_inspected_elements_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CARTESIAN_TRANSFORMATION_OPERATOR_3D']); -END_ENTITY; - -ENTITY non_agreed_unit_usage - SUBTYPE OF (externally_conditioned_data_quality_criterion); -WHERE - WR1: validate_ecdq_inspected_elements_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GLOBAL_UNIT_ASSIGNED_CONTEXT']); -END_ENTITY; - -ENTITY non_manifold_at_edge - SUBTYPE OF (inapt_topology); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; -WHERE - WR1: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE'); - WR2: validate_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SET']); - WR3: validate_locations_of_extreme_value_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE']); - WR4: validate_accuracy_types(SELF, []); -END_ENTITY; - -ENTITY non_manifold_at_vertex - SUBTYPE OF (inapt_topology); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; -WHERE - WR1: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE'); - WR2: validate_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SET']); - WR3: validate_locations_of_extreme_value_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT']); - WR4: validate_accuracy_types(SELF, []); -END_ENTITY; - -ENTITY non_manifold_surface_shape_representation - SUBTYPE OF (shape_representation); -WHERE - WR1: SIZEOF(QUERY(it - <* SELF.items - | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_BASED_SURFACE_MODEL', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D'] * - TYPEOF(it)) = - 1))) = - 0; - WR2: SIZEOF(QUERY(it - <* SELF.items - | SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_BASED_SURFACE_MODEL', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM'] * - TYPEOF(it)) = - 1)) > - 0; - WR3: SIZEOF(QUERY(mi - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF(it)) - | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NON_MANIFOLD_SURFACE_SHAPE_REPRESENTATION' IN - TYPEOF(mi\mapped_item.mapping_source.mapped_representation)) AND - (SIZEOF(QUERY(mr_it - <* mi\mapped_item.mapping_source.mapped_representation.items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_BASED_SURFACE_MODEL' IN - TYPEOF(mr_it)))) > - 0)))) = - 0; - WR4: SIZEOF(QUERY(fbsm - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_BASED_SURFACE_MODEL' IN - TYPEOF(it)) - | NOT (SIZEOF(QUERY(cfs - <* fbsm\face_based_surface_model.fbsm_faces - | NOT (SIZEOF(QUERY(fa - <* cfs.cfs_faces - | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORIENTED_FACE'] * - TYPEOF(fa)) = - 1))) = - 0))) = - 0))) = - 0; - WR5: SIZEOF(QUERY(fbsm - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_BASED_SURFACE_MODEL' IN - TYPEOF(it)) - | NOT (SIZEOF(QUERY(cfs - <* fbsm\face_based_surface_model.fbsm_faces - | NOT (SIZEOF(QUERY(f_sf - <* QUERY(fa - <* cfs.cfs_faces - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE' IN - TYPEOF(fa))) - | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN - TYPEOF(f_sf)) OR - (nmsf_surface_check(f_sf\face_surface.face_geometry))))) = - 0))) = - 0))) = - 0; - WR6: SIZEOF(QUERY(fbsm - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_BASED_SURFACE_MODEL' IN - TYPEOF(it)) - | NOT (SIZEOF(QUERY(cfs - <* fbsm\face_based_surface_model.fbsm_faces - | NOT (SIZEOF(QUERY(o_fa - <* QUERY(fa - <* cfs.cfs_faces - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORIENTED_FACE' IN - TYPEOF(fa))) - | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN - TYPEOF(o_fa\oriented_face.face_element)) OR - (nmsf_surface_check(o_fa\oriented_face.face_element\face_surface.face_geometry))))) = - 0))) = - 0))) = - 0; - WR7: SIZEOF(QUERY(fbsm - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_BASED_SURFACE_MODEL' IN - TYPEOF(it)) - | NOT (SIZEOF(QUERY(cfs - <* fbsm\face_based_surface_model.fbsm_faces - | NOT (SIZEOF(QUERY(fa - <* cfs.cfs_faces - | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN - TYPEOF(fa)) OR - (SIZEOF(QUERY(bnds - <* fa.bounds - | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_LOOP'] * - TYPEOF(bnds.bound)) = - 1))) = - 0)))) = - 0))) = - 0))) = - 0; - WR8: SIZEOF(QUERY(fbsm - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_BASED_SURFACE_MODEL' IN - TYPEOF(it)) - | NOT (SIZEOF(QUERY(cfs - <* fbsm\face_based_surface_model.fbsm_faces - | NOT (SIZEOF(QUERY(fa - <* cfs.cfs_faces - | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN - TYPEOF(fa)) OR - (SIZEOF(QUERY(elp_fbnds - <* QUERY(bnds - <* fa.bounds - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN - TYPEOF(bnds.bound)) - | NOT (SIZEOF(QUERY(oe - <* elp_fbnds\path.edge_list - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE' IN - TYPEOF(oe.edge_element)))) = - 0))) = - 0)))) = - 0))) = - 0))) = - 0; - WR9: SIZEOF(QUERY(fbsm - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_BASED_SURFACE_MODEL' IN - TYPEOF(it)) - | NOT (SIZEOF(QUERY(cfs - <* fbsm\face_based_surface_model.fbsm_faces - | NOT (SIZEOF(QUERY(fa - <* cfs.cfs_faces - | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN - TYPEOF(fa)) OR - (SIZEOF(QUERY(elp_fbnds - <* QUERY(bnds - <* fa.bounds - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN - TYPEOF(bnds.bound)) - | NOT (SIZEOF(QUERY(oe_cv - <* QUERY(oe - <* elp_fbnds\path.edge_list - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE' IN - TYPEOF(oe.edge_element)) - | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONIC', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_REPLICA', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OFFSET_CURVE_3D', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PCURVE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYLINE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_CURVE'] * - TYPEOF(oe_cv.edge_element\edge_curve.edge_geometry)) = - 1))) = - 0))) = - 0)))) = - 0))) = - 0))) = - 0; - WR10: SIZEOF(QUERY(fbsm - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_BASED_SURFACE_MODEL' IN - TYPEOF(it)) - | NOT (SIZEOF(QUERY(cfs - <* fbsm\face_based_surface_model.fbsm_faces - | NOT (SIZEOF(QUERY(fa - <* cfs.cfs_faces - | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN - TYPEOF(fa)) OR - (SIZEOF(QUERY(elp_fbnds - <* QUERY(bnds - <* fa.bounds - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN - TYPEOF(bnds.bound)) - | NOT (SIZEOF(QUERY(oe - <* elp_fbnds\path.edge_list - | NOT (nmsf_curve_check(oe.edge_element\edge_curve.edge_geometry)))) = - 0))) = - 0)))) = - 0))) = - 0))) = - 0; - WR11: SIZEOF(QUERY(fbsm - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_BASED_SURFACE_MODEL' IN - TYPEOF(it)) - | NOT (SIZEOF(QUERY(cfs - <* fbsm\face_based_surface_model.fbsm_faces - | NOT (SIZEOF(QUERY(fa - <* cfs.cfs_faces - | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN - TYPEOF(fa)) OR - (SIZEOF(QUERY(elp_fbnds - <* QUERY(bnds - <* fa.bounds - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN - TYPEOF(bnds.bound)) - | NOT (SIZEOF(QUERY(oe - <* elp_fbnds\path.edge_list - | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN - TYPEOF(oe.edge_element.edge_start)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN - TYPEOF(oe.edge_element.edge_end))))) = - 0))) = - 0)))) = - 0))) = - 0))) = - 0; - WR12: SIZEOF(QUERY(fbsm - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_BASED_SURFACE_MODEL' IN - TYPEOF(it)) - | NOT (SIZEOF(QUERY(cfs - <* fbsm\face_based_surface_model.fbsm_faces - | NOT (SIZEOF(QUERY(fa - <* cfs.cfs_faces - | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN - TYPEOF(fa)) OR - (SIZEOF(QUERY(elp_fbnds - <* QUERY(bnds - <* fa.bounds - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN - TYPEOF(bnds.bound)) - | NOT (SIZEOF(QUERY(oe - <* elp_fbnds\path.edge_list - | NOT ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CARTESIAN_POINT', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DEGENERATE_PCURVE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_CURVE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_SURFACE'] * - TYPEOF(oe.edge_element.edge_start\vertex_point.vertex_geometry)) = - 1) AND - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CARTESIAN_POINT', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DEGENERATE_PCURVE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_CURVE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_SURFACE'] * - TYPEOF(oe.edge_element.edge_end\vertex_point.vertex_geometry)) = - 1)))) = - 0))) = - 0)))) = - 0))) = - 0))) = - 0; - WR13: SIZEOF(QUERY(fbsm - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_BASED_SURFACE_MODEL' IN - TYPEOF(it)) - | NOT (SIZEOF(QUERY(cfs - <* fbsm\face_based_surface_model.fbsm_faces - | NOT (SIZEOF(QUERY(fa - <* cfs.cfs_faces - | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN - TYPEOF(fa)) OR - (SIZEOF(QUERY(vlp_fbnds - <* QUERY(bnds - <* fa.bounds - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_LOOP' IN - TYPEOF(bnds.bound)) - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN - TYPEOF(vlp_fbnds\vertex_loop.loop_vertex)))) = - 0)))) = - 0))) = - 0))) = - 0; - WR14: SIZEOF(QUERY(fbsm - <* QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_BASED_SURFACE_MODEL' IN - TYPEOF(it)) - | NOT (SIZEOF(QUERY(cfs - <* fbsm\face_based_surface_model.fbsm_faces - | NOT (SIZEOF(QUERY(fa - <* cfs.cfs_faces - | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN - TYPEOF(fa)) OR - (SIZEOF(QUERY(vlp_fbnds - <* QUERY(bnds - <* fa.bounds - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_LOOP' IN - TYPEOF(bnds.bound)) - | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CARTESIAN_POINT', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DEGENERATE_PCURVE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_CURVE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_SURFACE'] * - TYPEOF(vlp_fbnds\vertex_loop.loop_vertex\vertex_point.vertex_geometry)) = - 1))) = - 0)))) = - 0))) = - 0))) = - 0; -END_ENTITY; - -ENTITY non_referenced_coordinate_system - SUBTYPE OF (externally_conditioned_data_quality_criterion); -WHERE - WR1: validate_ecdq_inspected_elements_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D']); -END_ENTITY; - -ENTITY non_smooth_geometry_transition_across_edge - ABSTRACT SUPERTYPE OF (ONEOF(g1_discontinuity_between_adjacent_faces, g2_discontinuity_between_adjacent_faces)) - SUBTYPE OF (inapt_topology_and_geometry_relationship); -END_ENTITY; - -ENTITY non_uniform_zone_definition - SUBTYPE OF (tolerance_zone_definition); -END_ENTITY; - -ENTITY not_expression - SUBTYPE OF (unary_boolean_expression); - SELF\unary_generic_expression.operand : boolean_expression; -END_ENTITY; - -ENTITY null_representation_item - SUBTYPE OF (representation_item); -END_ENTITY; - -ENTITY numeric_defined_function - ABSTRACT SUPERTYPE OF (ONEOF(integer_defined_function, real_defined_function)) - SUBTYPE OF (numeric_expression, defined_function); -END_ENTITY; - -ENTITY numeric_expression - ABSTRACT SUPERTYPE OF (ONEOF(simple_numeric_expression, unary_numeric_expression, binary_numeric_expression, - multiple_arity_numeric_expression, length_function, value_function, - numeric_defined_function)) - SUBTYPE OF (expression); -DERIVE - is_int : BOOLEAN := is_int_expr(SELF); - sql_mappable : BOOLEAN := is_sql_mappable(SELF); -END_ENTITY; - -ENTITY numeric_variable - SUPERTYPE OF (ONEOF(int_numeric_variable, real_numeric_variable)) - SUBTYPE OF (simple_numeric_expression, variable); -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.INT_NUMERIC_VARIABLE' IN TYPEOF(SELF)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REAL_NUMERIC_VARIABLE' IN TYPEOF(SELF)); -END_ENTITY; - -ENTITY object_role; - name : label; - description : OPTIONAL text; -END_ENTITY; - -ENTITY odd_function - SUBTYPE OF (unary_boolean_expression); - SELF\unary_generic_expression.operand : numeric_expression; -WHERE - WR1: is_int_expr(operand); -END_ENTITY; - -ENTITY offset_curve_2d - SUBTYPE OF (curve); - basis_curve : curve; - distance : length_measure; - self_intersect : LOGICAL; -WHERE - WR1: basis_curve.dim = 2; -END_ENTITY; - -ENTITY offset_curve_3d - SUBTYPE OF (curve); - basis_curve : curve; - distance : length_measure; - self_intersect : LOGICAL; - ref_direction : direction; -WHERE - WR1: (basis_curve.dim = 3) AND (ref_direction.dim = 3); -END_ENTITY; - -ENTITY offset_surface - SUBTYPE OF (surface); - basis_surface : surface; - distance : length_measure; - self_intersect : LOGICAL; -END_ENTITY; - -ENTITY one_direction_repeat_factor - SUBTYPE OF (geometric_representation_item); - repeat_factor : vector; -END_ENTITY; - -ENTITY open_closed_shell - SUBTYPE OF (erroneous_topology); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; -WHERE - WR1: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE'); - WR2: validate_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLOSED_SHELL']); - WR3: validate_locations_of_extreme_value_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE']); - WR4: validate_accuracy_types(SELF, []); -END_ENTITY; - -ENTITY open_edge_loop - SUBTYPE OF (erroneous_topology); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; -WHERE - WR1: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE'); - WR2: validate_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP']); - WR3: validate_locations_of_extreme_value_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORIENTED_EDGE']); - WR4: validate_accuracy_types(SELF, []); -END_ENTITY; - -ENTITY open_path - SUBTYPE OF (path); -DERIVE - ne : INTEGER := SIZEOF(SELF\path.edge_list); -WHERE - WR1: (SELF\path.edge_list[1].edge_element.edge_start) :<>: (SELF\path.edge_list[ne].edge_element.edge_end); -END_ENTITY; - -ENTITY open_path_profile - SUBTYPE OF (shape_aspect); -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN - TYPEOF(SELF.of_shape.definition)); - WR2: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation)))) = - 1)))) = - 0); - WR3: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' IN - TYPEOF(it)) AND - (it.name = 'orientation')))) = - 1)))) = - 0)))) = - 0); - WR5: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PATH_SHAPE_REPRESENTATION' IN - TYPEOF(pdr.used_representation)))) = - 1)))) = - 0); - WR6: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN - TYPEOF(pdr.used_representation)) AND - (pdr.used_representation.name = 'profile limit'))) <= - 1))) = - 0; -END_ENTITY; - -ENTITY open_shell - SUBTYPE OF (connected_face_set); -END_ENTITY; - -ENTITY or_expression - SUBTYPE OF (multiple_arity_boolean_expression); -END_ENTITY; - -ENTITY ordinal_date - SUBTYPE OF (date); - day_component : day_in_year_number; -WHERE - WR1: (NOT leap_year(SELF.year_component) AND {1 <= day_component <= 365}) OR - (leap_year(SELF.year_component) AND {1 <= day_component <= 366}); -END_ENTITY; - -ENTITY ordinate_dimension - SUBTYPE OF (projection_directed_callout); -END_ENTITY; - -ENTITY organization; - id : OPTIONAL identifier; - name : label; - description : OPTIONAL text; -END_ENTITY; - -ENTITY organization_assignment - ABSTRACT SUPERTYPE; - assigned_organization : organization; - role : organization_role; -END_ENTITY; - -ENTITY organization_relationship; - name : label; - description : OPTIONAL text; - relating_organization : organization; - related_organization : organization; -END_ENTITY; - -ENTITY organization_role; - name : label; -DERIVE - description : text := get_description_value(SELF); -WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= - 1; -END_ENTITY; - -ENTITY organization_type; - id : identifier; - name : label; - description : OPTIONAL text; -END_ENTITY; - -ENTITY organization_type_assignment - ABSTRACT SUPERTYPE; - id : identifier; - name : label; - description : OPTIONAL text; - assigned_organization_type : organization_type; - role : organization_type_role; -END_ENTITY; - -ENTITY organization_type_role; - id : identifier; - name : label; - description : OPTIONAL text; -END_ENTITY; - -ENTITY organizational_address - SUBTYPE OF (address); - organizations : SET [1 : ?] OF organization; - description : OPTIONAL text; -END_ENTITY; - -ENTITY organizational_project; - name : label; - description : OPTIONAL text; - responsible_organizations : SET [1 : ?] OF organization; -DERIVE - id : identifier := get_id_value(SELF); -WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; -END_ENTITY; - -ENTITY organizational_project_assignment - ABSTRACT SUPERTYPE; - assigned_organizational_project : organizational_project; - role : organizational_project_role; -END_ENTITY; - -ENTITY organizational_project_relationship; - name : label; - description : OPTIONAL text; - relating_organizational_project : organizational_project; - related_organizational_project : organizational_project; -END_ENTITY; - -ENTITY organizational_project_role; - name : label; - description : OPTIONAL text; -END_ENTITY; - -ENTITY oriented_closed_shell - SUBTYPE OF (closed_shell); - closed_shell_element : closed_shell; - orientation : BOOLEAN; -DERIVE - SELF\connected_face_set.cfs_faces : SET [1 : ?] OF face := conditional_reverse(SELF.orientation, - SELF.closed_shell_element.cfs_faces); -WHERE - WR1: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORIENTED_CLOSED_SHELL' IN - TYPEOF(SELF.closed_shell_element)); -END_ENTITY; - -ENTITY oriented_edge - SUBTYPE OF (edge); - edge_element : edge; - orientation : BOOLEAN; -DERIVE - SELF\edge.edge_start : vertex := boolean_choose(SELF.orientation, SELF.edge_element.edge_start, - SELF.edge_element.edge_end); - SELF\edge.edge_end : vertex := boolean_choose(SELF.orientation, SELF.edge_element.edge_end, - SELF.edge_element.edge_start); -WHERE - WR1: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORIENTED_EDGE' IN TYPEOF(SELF.edge_element)); -END_ENTITY; - -ENTITY oriented_face - SUBTYPE OF (face); - face_element : face; - orientation : BOOLEAN; -DERIVE - SELF\face.bounds : SET [1 : ?] OF face_bound := conditional_reverse(SELF.orientation, SELF.face_element.bounds); -WHERE - WR1: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORIENTED_FACE' IN TYPEOF(SELF.face_element)); -END_ENTITY; - -ENTITY oriented_joint - SUBTYPE OF (oriented_edge); - SELF\oriented_edge.edge_element : kinematic_joint; -END_ENTITY; - -ENTITY oriented_open_shell - SUBTYPE OF (open_shell); - open_shell_element : open_shell; - orientation : BOOLEAN; -DERIVE - SELF\connected_face_set.cfs_faces : SET [1 : ?] OF face := conditional_reverse(SELF.orientation, - SELF.open_shell_element.cfs_faces); -WHERE - WR1: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORIENTED_OPEN_SHELL' IN TYPEOF(SELF.open_shell_element)); -END_ENTITY; - -ENTITY oriented_path - SUBTYPE OF (path); - path_element : path; - orientation : BOOLEAN; -DERIVE - SELF\path.edge_list : LIST [1 : ?] OF UNIQUE oriented_edge := conditional_reverse(SELF.orientation, - SELF.path_element.edge_list); -WHERE - WR1: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORIENTED_PATH' IN TYPEOF(SELF.path_element)); -END_ENTITY; - -ENTITY oriented_surface - SUBTYPE OF (surface); - orientation : BOOLEAN; -END_ENTITY; - -ENTITY oriented_tolerance_zone - SUBTYPE OF (tolerance_zone_with_datum); - orientation : oriented_tolerance_zone_type; - angle : OPTIONAL plane_angle_measure_with_unit; -WHERE - WR1: (orientation <> oriented_tolerance_zone_type.angular) XOR EXISTS(angle); -END_ENTITY; - -ENTITY outer_boundary_curve - SUBTYPE OF (boundary_curve); -END_ENTITY; - -ENTITY outer_round - SUBTYPE OF (feature_definition); -WHERE - WR1: ((NOT (SELF\characterized_object.description = 'outer diameter')) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF(pdr.used_representation.items) = 3))) = - 1)) = - 1)); - WR2: ((NOT (SELF\characterized_object.description = 'outer diameter to shoulder')) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - ({2 <= SIZEOF(pdr.used_representation.items) <= 3}))) = - 1)) = - 1)); - WR3: (SELF\characterized_object.description IN ['outer diameter','outer diameter to shoulder']); - WR4: ((NOT (SELF\characterized_object.description = 'outer diameter')) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'length')))) = - 1)))) = - 0)))) = - 0)); - WR5: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'diameter')))) = - 1)))) = - 0)))) = - 0); - WR6: ((NOT (SELF\characterized_object.description = 'outer diameter to shoulder')) OR - (SIZEOF(QUERY(pds - <* QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd))) - | (NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | ((sa_occ.description = 'v-shape boundary occurrence') AND - (SIZEOF(QUERY(sdr - <* QUERY(sar - <* USEDIN(sa_occ, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | ((sar.description = 'profile usage') AND - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') IN - TYPEOF(sar)))) - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VEE_PROFILE' IN - TYPEOF(sdr.relating_shape_aspect)) AND - (sdr.relating_shape_aspect.description = 'v-shape')))) = - 1)))) = - 1)))) = - 0)); - WR7: ((NOT (SELF\characterized_object.description = 'outer diameter')) OR - (SIZEOF(QUERY(pds - <* QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd))) - | (NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | ((sa_occ.description = 'reduced size occurrence') AND - (SIZEOF(QUERY(sdr - <* QUERY(sar - <* USEDIN(sa_occ, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | ((sar.description = 'taper usage') AND - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP') IN - TYPEOF(sar)))) - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TAPER' IN - TYPEOF(sdr.relating_shape_aspect)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OUTER_ROUND' IN - TYPEOF(sdr.related_shape_aspect.of_shape.definition)) AND - (sdr.name = 'reduced size')))) = - 1)))) <= - 1)))) = - 0)); - WR8: ((NOT (SELF\characterized_object.description = 'outer diameter to shoulder')) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'length')))) <= - 1)))) = - 0)))) = - 0)); - WR9: ((NOT (SELF\characterized_object.description = 'outer diameter to shoulder')) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'feature length')))) <= - 1)))) = - 0)))) = - 0)); -END_ENTITY; - -ENTITY outside_profile - SUBTYPE OF (feature_definition); -WHERE - WR1: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF(pdr.used_representation.items) = 1))) = - 1)) = - 1; - WR2: SIZEOF(QUERY(pds - <* QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd)) - | NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | (sa_occ.description IN - ['boundary occurrence', - 'non-planar boundary occurrence', - 'partial circular boundary occurrence', - 'closed circular boundary occurrence', - 'open rectangular boundary occurrence', - 'closed rectangular boundary occurrence']))) = - 1))) = - 0; - WR3: (NOT (SIZEOF(QUERY(pds - <* QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd)) - | NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | (sa_occ.description = 'boundary occurrence'))) = - 1))) = - 0)) OR - (SIZEOF(QUERY(pds - <* QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd)) - | NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | (SIZEOF(QUERY(sdr - <* QUERY(sar - <* USEDIN(sa_occ, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | (sar.description = 'profile usage') AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN - TYPEOF(sar))) - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_CLOSED_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NGON_CLOSED_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_CLOSED_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLOSED_PATH_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SQUARE_U_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PARTIAL_CIRCULAR_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROUNDED_U_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINEAR_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VEE_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TEE_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OPEN_PATH_PROFILE'] * - TYPEOF(sdr.relating_shape_aspect)) = - 1) AND - (sdr.relating_shape_aspect.description = - 'outside boundary'))) = - 1))) = - 1))) = - 0); - WR4: (NOT (SIZEOF(QUERY(pds - <* QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd)) - | NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | (sa_occ.description IN - ['complex boundary occurrence', - 'partial circular boundary occurrence', - 'closed circular boundary occurrence', - 'open rectangular boundary occurrence', - 'closed rectangular boundary occurrence']))) = - 1))) = - 0)) OR - (SIZEOF(QUERY(pds - <* QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd)) - | NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | NOT (SIZEOF(QUERY(sdr - <* QUERY(sar - <* USEDIN(sa_occ, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | (sar.description = 'profile floor usage') AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN - TYPEOF(sar))) - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROFILE_FLOOR' IN - TYPEOF(sdr.relating_shape_aspect)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OUTSIDE_PROFILE' IN - TYPEOF(sdr.related_shape_aspect.of_shape.definition))))) = - 1))) = - 0))) = - 0); - WR5: (NOT (SIZEOF(QUERY(pds - <* QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd)) - | NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | (sa_occ.description IN - ['outside boundary', - 'complex boundary occurrence', - 'partial circular boundary occurrence', - 'closed circular boundary occurrence', - 'open rectangular boundary occurrence', - 'closed rectangular boundary occurrence']))) = - 1))) = - 0)) OR - (SIZEOF(QUERY(pds - <* QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd)) - | NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | (SIZEOF(QUERY(sdr - <* QUERY(sar - <* USEDIN(sa_occ, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | (sar.description = - 'path feature component usage') AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN - TYPEOF(sar))) - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PATH_FEATURE_COMPONENT'] * - TYPEOF(sdr.relating_shape_aspect)) = - 1) AND - (sdr.name = 'profile swept shape') AND - (sdr.relating_shape_aspect.description = 'linear'))) = - 1))) = - 1))) = - 0); - WR6: (NOT (SIZEOF(QUERY(pds - <* QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd)) - | NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | (sa_occ.description = 'complex boundary occurrence'))) = - 1))) = - 0)) OR - (SIZEOF(QUERY(pds - <* QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd)) - | NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | (SIZEOF(QUERY(sdr - <* QUERY(sar - <* USEDIN(sa_occ, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | (sar.description = 'profile usage') AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN - TYPEOF(sar))) - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_CLOSED_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NGON_CLOSED_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_CLOSED_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLOSED_PATH_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SQUARE_U_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PARTIAL_CIRCULAR_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROUNDED_U_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VEE_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TEE_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINEAR_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OPEN_PATH_PROFILE'] * - TYPEOF(sdr.relating_shape_aspect)) = - 1))) = - 1))) = - 1))) = - 0); - WR7: (NOT (SIZEOF(QUERY(pds - <* QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd)) - | NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | (sa_occ.description = 'partial circular boundary occurrence'))) = - 1))) = - 0)) OR - (SIZEOF(QUERY(pds - <* QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd)) - | NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | (SIZEOF(QUERY(sdr - <* QUERY(sar - <* USEDIN(sa_occ, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | (sar.description = 'profile usage') AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN - TYPEOF(sar))) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PARTIAL_CIRCULAR_PROFILE' IN - TYPEOF(sdr.relating_shape_aspect)))) = - 1))) = - 1))) = - 0); - WR8: (NOT (SIZEOF(QUERY(pds - <* QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd)) - | NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | (sa_occ.description = 'closed circular boundary occurrence'))) = - 1))) = - 0)) OR - (SIZEOF(QUERY(pds - <* QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd)) - | NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | (SIZEOF(QUERY(sdr - <* QUERY(sar - <* USEDIN(sa_occ, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | (sar.description = 'profile usage') AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN - TYPEOF(sar))) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_CLOSED_PROFILE' IN - TYPEOF(sdr.relating_shape_aspect)))) = - 1))) = - 1))) = - 0); - WR9: (NOT (SIZEOF(QUERY(pds - <* QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd)) - | NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | (sa_occ.description = 'open rectangular boundary occurrence'))) = - 1))) = - 0)) OR - (SIZEOF(QUERY(pds - <* QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd)) - | NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | (SIZEOF(QUERY(sdr - <* QUERY(sar - <* USEDIN(sa_occ, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | (sar.description = 'profile usage') AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN - TYPEOF(sar))) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SQUARE_U_PROFILE' IN - TYPEOF(sdr.relating_shape_aspect)))) = - 1))) = - 1))) = - 0); - WR10: (NOT (SIZEOF(QUERY(pds - <* QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd)) - | NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | (sa_occ.description = 'closed rectangular boundary occurrence'))) = - 1))) = - 0)) OR - (SIZEOF(QUERY(pds - <* QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd)) - | NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | (SIZEOF(QUERY(sdr - <* QUERY(sar - <* USEDIN(sa_occ, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | (sar.description = 'profile usage') AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN - TYPEOF(sar))) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_CLOSED_PROFILE' IN - TYPEOF(sdr.relating_shape_aspect)))) = - 1))) = - 1))) = - 0); - WR11: (SIZEOF(QUERY(pds - <* QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd)) - | NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | (sa_occ.description IN - ['boundary occurrence', - 'complex boundary occurrence', - 'partial circular boundary occurrence', - 'closed circular boundary occurrence', - 'open rectangular boundary occurrence', - 'closed rectangular boundary occurrence']))) = - 1))) = - 0) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' IN - TYPEOF(pdr.used_representation)) AND - (pdr.used_representation.name = 'removal direction')))) = - 1)))) = - 0); - WR12: SIZEOF(QUERY(pdr - <* get_property_definition_representations(SELF) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN - TYPEOF(pdr.used_representation)) AND - (pdr.used_representation.name = 'maximum feature limit'))) >= - 0; -END_ENTITY; - -ENTITY over_riding_styled_item - SUBTYPE OF (styled_item); - over_ridden_style : styled_item; -END_ENTITY; - -ENTITY over_used_vertex - SUBTYPE OF (inapt_topology); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN - TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' IN - value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE'); - WR3: validate_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT']); - WR4: validate_locations_of_extreme_value_type(SELF, []); - WR5: validate_accuracy_types(SELF, []); -END_ENTITY; - -ENTITY overcomplex_geometry - ABSTRACT SUPERTYPE OF (ONEOF(excessively_high_degree_curve, excessively_high_degree_surface, - surface_with_excessive_patches_in_one_direction, curve_with_excessive_segments, - high_degree_linear_curve, high_degree_planar_surface, high_degree_conic, - high_degree_axi_symmetric_surface)) - SUBTYPE OF (inapt_geometry); -END_ENTITY; - -ENTITY overcomplex_topology_and_geometry_relationship - ABSTRACT SUPERTYPE OF (ONEOF(unused_patches, edge_with_excessive_segments, - face_surface_with_excessive_patches_in_one_direction)) - SUBTYPE OF (inapt_topology_and_geometry_relationship); -END_ENTITY; - -ENTITY overlapping_geometry - ABSTRACT SUPERTYPE OF (ONEOF(partly_overlapping_curves, partly_overlapping_surfaces)) - SUBTYPE OF (inapt_geometry); -END_ENTITY; - -ENTITY package_product_concept_feature - SUBTYPE OF (product_concept_feature); -WHERE - WR1: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONDITIONAL_CONCEPT_FEATURE' IN TYPEOF(SELF)); - WR2: SIZEOF(QUERY(cfr - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONCEPT_FEATURE_RELATIONSHIP.RELATING_PRODUCT_CONCEPT_FEATURE') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION' IN - TYPEOF(cfr)) AND - (SIZEOF(QUERY(ipcf - <* USEDIN(cfr, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONDITIONAL_CONCEPT_FEATURE.CONDITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.INCLUSION_PRODUCT_CONCEPT_FEATURE' IN - TYPEOF(ipcf))) = - 1))) > - 0; -END_ENTITY; - -ENTITY pair_representation_relationship - SUBTYPE OF (geometric_representation_item, representation_relationship_with_transformation); - SELF\representation_relationship.rep_1 : kinematic_link_representation; - SELF\representation_relationship.rep_2 : kinematic_link_representation; - SELF\representation_relationship_with_transformation.transformation_operator : kinematic_pair; -WHERE - WR1: transformation_operator\item_defined_transformation.transform_item_1 IN rep_1.items; - WR2: transformation_operator\item_defined_transformation.transform_item_2 IN rep_2.items; - WR3: rep_1\kinematic_link_representation.represented_link = transformation_operator\kinematic_pair.joint.edge_start; - WR4: rep_2\kinematic_link_representation.represented_link = transformation_operator\kinematic_pair.joint.edge_end; -END_ENTITY; - -ENTITY pair_value - ABSTRACT SUPERTYPE OF (ONEOF(sliding_surface_pair_value, rolling_surface_pair_value, revolute_pair_value, - prismatic_pair_value, screw_pair_value, cylindrical_pair_value, spherical_pair_value, - sliding_curve_pair_value, rolling_curve_pair_value, gear_pair_value, - rack_and_pinion_pair_value, universal_pair_value, planar_pair_value, - unconstrained_pair_value, point_on_surface_pair_value, point_on_planar_curve_pair_value, - low_order_kinematic_pair_value)) - SUBTYPE OF (geometric_representation_item); - applies_to_pair : kinematic_pair; -END_ENTITY; - -ENTITY parabola - SUBTYPE OF (conic); - focal_dist : length_measure; -WHERE - WR1: focal_dist <> 0.0; -END_ENTITY; - -ENTITY parallel_assembly_constraint - SUBTYPE OF (binary_assembly_constraint, parallel_geometric_constraint); -END_ENTITY; - -ENTITY parallel_assembly_constraint_with_dimension - SUBTYPE OF (parallel_assembly_constraint, pgc_with_dimension); -END_ENTITY; - -ENTITY parallel_composed_function - SUBTYPE OF (maths_function, multiple_arity_generic_expression); - source_of_domain : maths_space_or_function; - prep_functions : LIST [1 : ?] OF maths_function; - final_function : maths_function_select; -DERIVE - SELF\multiple_arity_generic_expression.operands : LIST [2 : ?] OF generic_expression := convert_to_operands_prcmfn(source_of_domain, - prep_functions, - final_function); -WHERE - WR1: no_cyclic_domain_reference(source_of_domain, [SELF]); - WR2: expression_is_constant(domain_from(source_of_domain)); - WR3: parallel_composed_function_domain_check(domain_from(source_of_domain), prep_functions); - WR4: parallel_composed_function_composability_check(prep_functions, final_function); -END_ENTITY; - -ENTITY parallel_geometric_constraint - SUBTYPE OF (explicit_geometric_constraint); - SELF\explicit_constraint.constrained_elements : SET [1 : ?] OF linear_geometry_constraint_element; - SELF\explicit_constraint.reference_elements : SET [0 : 1] OF linear_geometry_constraint_element; -END_ENTITY; - -ENTITY parallel_offset - SUBTYPE OF (derived_shape_aspect); - offset : measure_with_unit; -WHERE - WR1: SIZEOF(SELF\derived_shape_aspect.deriving_relationships) = 1; -END_ENTITY; - -ENTITY parallel_offset_geometric_constraint - SUBTYPE OF (explicit_geometric_constraint); - SELF\explicit_constraint.constrained_elements : SET [1 : ?] OF curve_or_surface_constraint_element; - SELF\explicit_constraint.reference_elements : SET [0 : 1] OF curve_or_surface_constraint_element; - offset_type : parallel_offset_type; -WHERE - WR1: NOT (((offset_type = curve_2d_offset) OR (offset_type = curve_3d_offset)) AND - (SIZEOF(QUERY(q - <* (SELF\explicit_constraint.constrained_elements + - SELF\explicit_constraint.reference_elements) - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE' IN TYPEOF(q))) > - 0)); - WR2: NOT ((offset_type = surface_offset) AND - (SIZEOF(QUERY(q - <* (SELF\explicit_constraint.constrained_elements + - SELF\explicit_constraint.reference_elements) - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE' IN TYPEOF(q))) > - 0)); -END_ENTITY; - -ENTITY parallelism_tolerance - SUBTYPE OF (geometric_tolerance_with_datum_reference); -END_ENTITY; - -ENTITY parametric_representation_context - SUBTYPE OF (representation_context); -END_ENTITY; - -ENTITY partial_circular_profile - SUBTYPE OF (shape_aspect); -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN - TYPEOF(SELF.of_shape.definition)); - WR2: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation)))) = - 1)))) = - 0); - WR3: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(impl_rep.used_representation.items) >= 3)))) = - 0)))) = - 0); - WR4: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' IN - TYPEOF(it)) AND - (it.name = 'orientation')))) = - 1)))) = - 0)))) = - 0); - WR5: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'radius')))) = - 1)))) = - 0)))) = - 0); - WR6: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'sweep angle')))) = - 1)))) = - 0)))) = - 0); - WR7: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN - TYPEOF(pdr.used_representation)) AND - (pdr.used_representation.name = 'profile limit'))) <= - 1))) = - 0; -END_ENTITY; - -ENTITY partial_derivative_expression - SUBTYPE OF (unary_generic_expression); - d_variables : LIST [1 : ?] OF maths_variable; - extension : extension_options; -DERIVE - derivand : generic_expression := SELF\unary_generic_expression.operand; -WHERE - WR1: has_values_space(derivand); - WR2: space_is_continuum(values_space_of(derivand)); - WR3: SIZEOF(QUERY(vbl - <* d_variables - | (NOT subspace_of(values_space_of(vbl), the_reals)) AND - (NOT subspace_of(values_space_of(vbl), the_complex_numbers)))) = - 0; -END_ENTITY; - -ENTITY partial_derivative_function - SUBTYPE OF (maths_function, unary_generic_expression); - SELF\unary_generic_expression.operand : maths_function; - d_variables : LIST [1 : ?] OF input_selector; - extension : extension_options; -DERIVE - derivand : maths_function := SELF\unary_generic_expression.operand; -WHERE - WR1: space_is_continuum(derivand.range); - WR2: partial_derivative_check(derivand.domain, d_variables); -END_ENTITY; - -ENTITY partial_document_with_structured_text_representation_assignment - SUBTYPE OF (applied_document_usage_constraint_assignment, characterized_object); -END_ENTITY; - -ENTITY partly_overlapping_curves - SUBTYPE OF (overlapping_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - interference_tolerance : length_measure; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN - TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN - value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE'); - WR3: validate_inspected_elements_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE']); - WR4: validate_locations_of_extreme_value_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TRIMMED_CURVE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TRIMMED_CURVE']); - WR5: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); -END_ENTITY; - -ENTITY partly_overlapping_edges - SUBTYPE OF (topology_related_to_overlapping_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - interference_tolerance : length_measure; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN - TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN - value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE'); - WR3: validate_inspected_elements_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE']); - WR4: validate_locations_of_extreme_value_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SUBEDGE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SUBEDGE']); - WR5: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); -END_ENTITY; - -ENTITY partly_overlapping_faces - SUBTYPE OF (topology_related_to_overlapping_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - interference_tolerance : length_measure; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN - TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_MEASURE' IN - value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_MEASURE'); - WR3: validate_inspected_elements_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE']); - WR4: validate_locations_of_extreme_value_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SUBFACE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SUBFACE']); - WR5: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_MEASURE']); -END_ENTITY; - -ENTITY partly_overlapping_solids - SUBTYPE OF (inapt_manifold_solid_brep); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - interference_tolerance : length_measure; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN - TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_MEASURE' IN - value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_MEASURE'); - WR3: validate_inspected_elements_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SOLID_BREP', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SOLID_BREP']); - WR4: validate_locations_of_extreme_value_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SUBFACE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SUBFACE']); - WR5: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_MEASURE']); -END_ENTITY; - -ENTITY partly_overlapping_surfaces - SUBTYPE OF (overlapping_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - interference_tolerance : length_measure; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN - TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_MEASURE' IN - value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_MEASURE'); - WR3: validate_inspected_elements_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE']); - WR4: validate_locations_of_extreme_value_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_BOUNDED_SURFACE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_BOUNDED_SURFACE']); - WR5: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_MEASURE']); -END_ENTITY; - -ENTITY path - SUPERTYPE OF (ONEOF(open_path, edge_loop, oriented_path)) - SUBTYPE OF (topological_representation_item); - edge_list : LIST [1 : ?] OF UNIQUE oriented_edge; -WHERE - WR1: path_head_to_tail(SELF); -END_ENTITY; - -ENTITY path_area_with_parameters - SUBTYPE OF (complex_area, mapped_item); -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE' IN TYPEOF(SELF\mapped_item.mapping_target); - WR2: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE_PARAMETERS_REPRESENTATION' IN - TYPEOF(SELF\mapped_item.mapping_source\representation_map.mapped_representation); - WR3: SELF\mapped_item.mapping_source\representation_map.mapping_origin\representation_item.name = 'curve width'; -END_ENTITY; - -ENTITY path_feature_component - SUBTYPE OF (shape_aspect); -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN - TYPEOF(SELF.of_shape.definition)); - WR2: (SELF.description IN ['partial circular','complete circular','linear','complex']); - WR3: ((NOT (SELF.description = 'complex')) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation)))) = - 1)))) = - 0)); - WR4: ((SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' IN - TYPEOF(it)) AND - (it.name = 'orientation')))) = - 1)))) = - 0)))) = - 0)); - WR5: ((NOT (SELF.description = 'partial circular')) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(impl_rep.used_representation.items) = 3)))) = - 0)))) = - 0)); - WR6: ((NOT (SELF.description = 'partial circular')) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'radius')))) = - 1)))) = - 0)))) = - 0)); - WR7: ((NOT (SELF.description = 'partial circular')) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'sweep angle')))) = - 1)))) = - 0)))) = - 0)); - WR8: ((NOT (SELF.description = 'complete circular')) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(impl_rep.used_representation.items) = 2)))) = - 0)))) = - 0)); - WR9: ((NOT (SELF.description = 'complete circular')) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'radius')))) = - 1)))) = - 0)))) = - 0)); - WR10: ((NOT (SELF.description = 'linear')) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(impl_rep.used_representation.items) = 2)))) = - 0)))) = - 0)); - WR11: ((NOT (SELF.description = 'linear')) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'distance')))) = - 1)))) = - 0)))) = - 0)); - WR12: ((NOT (SELF.description = 'linear')) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' IN - TYPEOF(pdr.used_representation)))) = - 1)))) = - 0)); - WR13: ((NOT (SELF.description = 'complex')) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PATH_SHAPE_REPRESENTATION' IN - TYPEOF(pdr.used_representation)) AND - (pdr.used_representation.name = 'sweep path') AND - (SIZEOF(QUERY(srwp_i - <* pdr.used_representation.items - | (srwp_i.name = 'profile shape'))) = - 1)))) = - 1)))) = - 0)); -END_ENTITY; - -ENTITY path_node - ABSTRACT SUPERTYPE OF (ONEOF(point_to_point_path, circular_path, linear_path, curve_based_path)) - SUBTYPE OF (kinematic_path_segment); - placement_end : placement; -END_ENTITY; - -ENTITY path_parameter_representation - SUBTYPE OF (definitional_representation); - SELF\representation.context_of_items : path_parameter_representation_context; - SELF\representation.items : SET [1 : ?] OF bounded_curve; -WHERE - WR1: SELF\representation.context_of_items\geometric_representation_context.coordinate_space_dimension = 2; -END_ENTITY; - -ENTITY path_parameter_representation_context - SUBTYPE OF (geometric_representation_context, parametric_representation_context); -END_ENTITY; - -ENTITY path_shape_representation - SUBTYPE OF (shape_representation); -WHERE - WR1: (SIZEOF(SELF.items) >= 1); - WR2: (SIZEOF(QUERY(i - <* SELF.items - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOUNDED_CURVE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PATH'] * - TYPEOF(i)) = - 1))) >= - 1); -END_ENTITY; - -ENTITY pattern_offset_membership - SUBTYPE OF (feature_component_relationship); -WHERE - WR1: (SIZEOF(QUERY(fcr - <* QUERY(sar - <* USEDIN(SELF.relating_shape_aspect, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN - TYPEOF(sar)) AND - (sar :<>: SELF))) - | ((SIZEOF(QUERY(pdr - <* (QUERY(pd - <* USEDIN(fcr.related_shape_aspect.of_shape, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd))) - | SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_PATTERN', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_PATTERN'] * - TYPEOF(pdr.definition)) = - 1)) = - 0)))) = - 0); - WR2: (SIZEOF(QUERY(fcr - <* QUERY(sar - <* USEDIN(SELF.related_shape_aspect, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN - TYPEOF(sar)) AND - (sar :<>: SELF))) - | (fcr.description = 'modified pattern') AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MODIFIED_PATTERN' IN - TYPEOF(fcr.relating_shape_aspect)))) >= - 1); - WR3: (SIZEOF(QUERY(fcr - <* QUERY(sar - <* USEDIN(SELF.related_shape_aspect, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN - TYPEOF(sar)) AND - (sar :<>: SELF))) - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MODIFIED_PATTERN' IN - TYPEOF(fcr.relating_shape_aspect)) AND - (NOT (SIZEOF(QUERY(modfcr - <* QUERY(modsar - <* USEDIN(fcr.relating_shape_aspect, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') - | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_PATTERN', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_PATTERN'] * - TYPEOF(modsar.related_shape_aspect.of_shape.definition)) = - 1) AND - (modsar :<>: fcr))) - | (NOT (modfcr.related_shape_aspect.of_shape.definition :=: - SELF.relating_shape_aspect.of_shape.definition)))) = - 0))))) = - 0); - WR4: ((NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_PATTERN' IN - TYPEOF(SELF.relating_shape_aspect.of_shape.definition))) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF.related_shape_aspect, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')) = - 2)))) = - 0)); - WR5: ((NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_PATTERN' IN - TYPEOF(SELF.relating_shape_aspect.of_shape.definition))) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF.related_shape_aspect, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')) = - 1)))) = - 0)); - WR6: ((NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_PATTERN' IN - TYPEOF(SELF.relating_shape_aspect.of_shape.definition))) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF.related_shape_aspect, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (NOT (SIZEOF(pdr.used_representation.items) = 2)))) = - 0)))) = - 0)); - WR7: ((NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_PATTERN' IN - TYPEOF(SELF.relating_shape_aspect.of_shape.definition))) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF.related_shape_aspect, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN - TYPEOF(it)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' IN - TYPEOF(it\measure_with_unit.value_component)) AND - (it.name = 'index number')))) = - 1)))) = - 0)))) = - 0)); - WR8: ((NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_PATTERN' IN - TYPEOF(SELF.relating_shape_aspect.of_shape.definition))) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF.related_shape_aspect, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' IN - TYPEOF(it)) AND - (it.name = 'offset')))) = - 1)))) = - 0)))) = - 0)); - WR9: ((NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_PATTERN' IN - TYPEOF(SELF.relating_shape_aspect.of_shape.definition))) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF.related_shape_aspect, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(impl_rep.used_representation.items) = 3)))) = - 0)))) = - 0)); - WR10: ((NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_PATTERN' IN - TYPEOF(SELF.relating_shape_aspect.of_shape.definition))) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF.related_shape_aspect, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN - TYPEOF(it)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' IN - TYPEOF(it\measure_with_unit.value_component)) AND - (it.name = 'row index')))) = - 1)))) = - 0)))) = - 0)); - WR11: ((NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_PATTERN' IN - TYPEOF(SELF.relating_shape_aspect.of_shape.definition))) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF.related_shape_aspect, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN - TYPEOF(it)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' IN - TYPEOF(it\measure_with_unit.value_component)) AND - (it.name = 'column index')))) = - 1)))) = - 0)))) = - 0)); - WR12: ((NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_PATTERN' IN - TYPEOF(SELF.relating_shape_aspect.of_shape.definition))) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF.related_shape_aspect, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN - TYPEOF(it)) AND - (it.name = 'offset distance')))) = - 1)))) = - 0)))) = - 0)); - WR13: ((NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_PATTERN' IN - TYPEOF(SELF.relating_shape_aspect.of_shape.definition))) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF.related_shape_aspect, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' IN - TYPEOF(pdr.used_representation)) AND - (pdr.used_representation.name = 'offset direction')))) = - 1)))) = - 0)); -END_ENTITY; - -ENTITY pattern_omit_membership - SUBTYPE OF (feature_component_relationship); -WHERE - WR1: (SIZEOF(QUERY(fcr - <* QUERY(sar - <* USEDIN(SELF.relating_shape_aspect, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN - TYPEOF(sar)) AND - (sar :<>: SELF))) - | ((SIZEOF(QUERY(pdr - <* (QUERY(pd - <* USEDIN(fcr.related_shape_aspect.of_shape, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd))) - | SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_PATTERN', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_PATTERN'] * - TYPEOF(pdr.definition)) = - 1)) = - 0)))) = - 0); - WR2: (SIZEOF(QUERY(fcr - <* QUERY(sar - <* USEDIN(SELF.related_shape_aspect, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN - TYPEOF(sar)) AND - (sar :<>: SELF))) - | (fcr.description = 'modified pattern') AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MODIFIED_PATTERN' IN - TYPEOF(fcr.relating_shape_aspect)))) >= - 1); - WR3: (SIZEOF(QUERY(fcr - <* QUERY(sar - <* USEDIN(SELF.related_shape_aspect, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN - TYPEOF(sar)) AND - (sar :<>: SELF))) - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MODIFIED_PATTERN' IN - TYPEOF(fcr.relating_shape_aspect)) AND - (NOT (SIZEOF(QUERY(modfcr - <* QUERY(modsar - <* USEDIN(fcr.relating_shape_aspect, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') - | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_PATTERN', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_PATTERN'] * - TYPEOF(modsar.related_shape_aspect.of_shape.definition)) = - 1) AND - (modsar :<>: fcr))) - | (NOT (modfcr.related_shape_aspect.of_shape.definition :=: - SELF.relating_shape_aspect.of_shape.definition)))) = - 0))))) = - 0); - WR4: (SIZEOF(QUERY(pd - <* USEDIN(SELF.related_shape_aspect, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')) = - 1)))) = - 0); - WR5: ((NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_PATTERN' IN - TYPEOF(SELF.relating_shape_aspect.of_shape.definition))) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF.related_shape_aspect, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (NOT (SIZEOF(pdr.used_representation.items) = 1)))) = - 0)))) = - 0)); - WR6: ((NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_PATTERN' IN - TYPEOF(SELF.relating_shape_aspect.of_shape.definition))) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF.related_shape_aspect, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN - TYPEOF(it)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' IN - TYPEOF(it\measure_with_unit.value_component)) AND - (it.name = 'index number')))) = - 1)))) = - 0)))) = - 0)); - WR7: ((NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_PATTERN' IN - TYPEOF(SELF.relating_shape_aspect.of_shape.definition))) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF.related_shape_aspect, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (NOT (SIZEOF(pdr.used_representation.items) = 2)))) = - 0)))) = - 0)); - WR8: ((NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_PATTERN' IN - TYPEOF(SELF.relating_shape_aspect.of_shape.definition))) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF.related_shape_aspect, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN - TYPEOF(it)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' IN - TYPEOF(it\measure_with_unit.value_component)) AND - (it.name = 'row index')))) = - 1)))) = - 0)))) = - 0)); - WR9: ((NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_PATTERN' IN - TYPEOF(SELF.relating_shape_aspect.of_shape.definition))) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF.related_shape_aspect, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN - TYPEOF(it)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' IN - TYPEOF(it\measure_with_unit.value_component)) AND - (it.name = 'column index')))) = - 1)))) = - 0)))) = - 0)); -END_ENTITY; - -ENTITY pcurve - SUBTYPE OF (curve); - basis_surface : surface; - reference_to_curve : definitional_representation; -WHERE - WR1: SIZEOF(reference_to_curve\representation.items) = 1; - WR2: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE' IN TYPEOF(reference_to_curve\representation.items[1]); - WR3: reference_to_curve\representation.items[1]\geometric_representation_item.dim = 2; -END_ENTITY; - -ENTITY pdgc_with_dimension - SUBTYPE OF (point_distance_geometric_constraint); - distance_value : non_negative_length_measure; -END_ENTITY; - -ENTITY perpendicular_assembly_constraint - SUBTYPE OF (binary_assembly_constraint, perpendicular_geometric_constraint); -END_ENTITY; - -ENTITY perpendicular_geometric_constraint - SUBTYPE OF (explicit_geometric_constraint); - SELF\explicit_constraint.constrained_elements : SET [1 : ?] OF linear_geometry_constraint_element; - SELF\explicit_constraint.reference_elements : SET [0 : 2] OF linear_geometry_constraint_element; -WHERE - WR1: NOT ((SIZEOF(SELF\explicit_constraint.reference_elements) = 2) AND - NOT ((SIZEOF(QUERY(q - <* SELF\explicit_constraint.constrained_elements + - SELF\explicit_constraint.reference_elements - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE' IN TYPEOF(q))) = - SIZEOF(SELF\explicit_constraint.reference_elements + - SELF\explicit_constraint.constrained_elements)) XOR - (SIZEOF(QUERY(q - <* SELF\explicit_constraint.constrained_elements + - SELF\explicit_constraint.reference_elements - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE' IN TYPEOF(q))) = - SIZEOF(SELF\explicit_constraint.reference_elements + - SELF\explicit_constraint.constrained_elements)))); - WR2: (SIZEOF(SELF\explicit_constraint.reference_elements) > 0) OR - (SIZEOF(SELF\explicit_constraint.constrained_elements) IN [2,3]); - WR3: NOT ((SIZEOF(SELF\explicit_constraint.reference_elements) = 0) AND - (SIZEOF(SELF\explicit_constraint.constrained_elements) = 3)) AND - NOT ((SIZEOF(QUERY(q - <* SELF\explicit_constraint.constrained_elements - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE' IN TYPEOF(q))) = - 3) XOR - (SIZEOF(QUERY(q - <* SELF\explicit_constraint.constrained_elements - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE' IN TYPEOF(q))) = - 3)); -END_ENTITY; - -ENTITY perpendicular_to - SUBTYPE OF (derived_shape_aspect); -WHERE - WR1: SIZEOF(SELF\derived_shape_aspect.deriving_relationships) = 1; -END_ENTITY; - -ENTITY perpendicularity_tolerance - SUBTYPE OF (geometric_tolerance_with_datum_reference); -END_ENTITY; - -ENTITY person; - id : identifier; - last_name : OPTIONAL label; - first_name : OPTIONAL label; - middle_names : OPTIONAL LIST [1 : ?] OF label; - prefix_titles : OPTIONAL LIST [1 : ?] OF label; - suffix_titles : OPTIONAL LIST [1 : ?] OF label; -WHERE - WR1: EXISTS(last_name) OR EXISTS(first_name); -END_ENTITY; - -ENTITY person_and_organization; - the_person : person; - the_organization : organization; -DERIVE - name : label := get_name_value(SELF); - description : text := get_description_value(SELF); -WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; - WR2: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= - 1; -END_ENTITY; - -ENTITY person_and_organization_address - SUBTYPE OF (organizational_address, personal_address); - SELF\organizational_address.organizations : SET [1 : 1] OF organization; - SELF\personal_address.people : SET [1 : 1] OF person; -WHERE - WR1: SIZEOF(QUERY(pao - <* USEDIN(SELF\personal_address.people[1], - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PERSON_AND_ORGANIZATION.THE_PERSON') - | pao.the_organization :=: SELF\organizational_address.organizations[1])) = - 1; -END_ENTITY; - -ENTITY person_and_organization_assignment - ABSTRACT SUPERTYPE; - assigned_person_and_organization : person_and_organization; - role : person_and_organization_role; -END_ENTITY; - -ENTITY person_and_organization_role; - name : label; -DERIVE - description : text := get_description_value(SELF); -WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= - 1; -END_ENTITY; - -ENTITY personal_address - SUBTYPE OF (address); - people : SET [1 : ?] OF person; - description : OPTIONAL text; -END_ENTITY; - -ENTITY pgc_with_dimension - SUBTYPE OF (parallel_geometric_constraint); - distance_value : non_negative_length_measure; - negative_direction : BOOLEAN; -WHERE - WR1: (SIZEOF(SELF\explicit_constraint.reference_elements) = 1) OR - (SIZEOF(SELF\explicit_constraint.constrained_elements) = 2); - WR2: SIZEOF(QUERY(q - <* (SELF\explicit_constraint.reference_elements + SELF\explicit_constraint.constrained_elements) - | SIZEOF(TYPEOF(q) * - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIRECTION', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VECTOR']) > - 0)) = - 0; -END_ENTITY; - -ENTITY physical_breakdown_context - SUBTYPE OF (breakdown_context); -END_ENTITY; - -ENTITY physical_component - SUBTYPE OF (assembly_component); -END_ENTITY; - -ENTITY physical_component_feature - SUPERTYPE OF ((ONEOF(physical_component_terminal, physical_component_interface_terminal))) - SUBTYPE OF (component_feature); -END_ENTITY; - -ENTITY physical_component_interface_terminal - SUBTYPE OF (physical_component_feature); -END_ENTITY; - -ENTITY physical_component_terminal - SUBTYPE OF (component_terminal, physical_component_feature); -END_ENTITY; - -ENTITY physical_element_usage - SUBTYPE OF (breakdown_element_usage); -END_ENTITY; - -ENTITY picture_representation - SUBTYPE OF (presentation_view); - SELF\representation.items : SET [2 : ?] OF picture_representation_item_select; -INVERSE - size : presentation_size FOR unit; -WHERE - WR1: SIZEOF(QUERY(item <* items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN TYPEOF(item))) = 1; - WR2: SIZEOF(QUERY(se - <* QUERY(item - <* SELF.items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN TYPEOF(item))) - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PICTURE_REPRESENTATION_ITEM' IN - TYPEOF(se\styled_item.item)))) = - 0; -END_ENTITY; - -ENTITY placed_datum_target_feature - SUBTYPE OF (datum_target); -DERIVE - representation_associations : SET [0 : ?] OF property_definition_representation := get_shape_aspect_property_definition_representations(SELF); -WHERE - WR1: SELF.description IN ['point','line','rectangle','circle','circular curve']; - WR2: SIZEOF(QUERY(pdr - <* representation_associations - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation))) = - 1; - WR3: valid_datum_target_parameters(SELF); -END_ENTITY; - -ENTITY placed_feature - SUBTYPE OF (shape_aspect); -END_ENTITY; - -ENTITY placement - SUPERTYPE OF (ONEOF(axis1_placement, axis2_placement_2d, axis2_placement_3d)) - SUBTYPE OF (geometric_representation_item); - location : cartesian_point; -END_ENTITY; - -ENTITY planar_box - SUBTYPE OF (planar_extent); - placement : axis2_placement; -END_ENTITY; - -ENTITY planar_curve_pair - SUPERTYPE OF (ONEOF(sliding_curve_pair, rolling_curve_pair) ANDOR planar_curve_pair_range) - SUBTYPE OF (high_order_kinematic_pair); - curve_1 : curve; - curve_2 : curve; - orientation : BOOLEAN; -WHERE - WR1: SIZEOF(QUERY(r <* SELF\kinematic_pair.associated_link_representations_1 | NOT (curve_1 IN r.items))) = 0; - WR2: SIZEOF(QUERY(r <* SELF\kinematic_pair.associated_link_representations_2 | NOT (curve_2 IN r.items))) = 0; - WR3: SIZEOF(QUERY(lr - <* SELF\kinematic_pair.associated_link_representations_1 - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RIGID_LINK_REPRESENTATION' IN - TYPEOF(lr)))) = - 0; -END_ENTITY; - -ENTITY planar_curve_pair_range - SUBTYPE OF (planar_curve_pair); - range_on_curve_1 : trimmed_curve; - range_on_curve_2 : trimmed_curve; -WHERE - WR1: SELF\planar_curve_pair.curve_1 :=: range_on_curve_1.basis_curve; - WR2: SELF\planar_curve_pair.curve_2 :=: range_on_curve_2.basis_curve; - WR3: SIZEOF(QUERY(r <* SELF\kinematic_pair.associated_link_representations_1 | NOT (range_on_curve_1 IN r.items))) = - 0; - WR4: SIZEOF(QUERY(r <* SELF\kinematic_pair.associated_link_representations_2 | NOT (range_on_curve_2 IN r.items))) = - 0; -END_ENTITY; - -ENTITY planar_extent - SUBTYPE OF (geometric_representation_item); - size_in_x : length_measure; - size_in_y : length_measure; -END_ENTITY; - -ENTITY planar_pair - SUBTYPE OF (low_order_kinematic_pair); -DERIVE - SELF\low_order_kinematic_pair.t_x : BOOLEAN := true; - SELF\low_order_kinematic_pair.t_y : BOOLEAN := true; - SELF\low_order_kinematic_pair.t_z : BOOLEAN := false; - SELF\low_order_kinematic_pair.r_x : BOOLEAN := false; - SELF\low_order_kinematic_pair.r_y : BOOLEAN := false; - SELF\low_order_kinematic_pair.r_z : BOOLEAN := true; -END_ENTITY; - -ENTITY planar_pair_value - SUBTYPE OF (pair_value); - SELF\pair_value.applies_to_pair : planar_pair; - actual_rotation : plane_angle_measure; - actual_translation_x : length_measure; - actual_translation_y : length_measure; -END_ENTITY; - -ENTITY planar_pair_with_range - SUBTYPE OF (planar_pair); - lower_limit_actual_rotation : OPTIONAL plane_angle_measure; - upper_limit_actual_rotation : OPTIONAL plane_angle_measure; - lower_limit_actual_translation_x : OPTIONAL length_measure; - upper_limit_actual_translation_x : OPTIONAL length_measure; - lower_limit_actual_translation_y : OPTIONAL length_measure; - upper_limit_actual_translation_y : OPTIONAL length_measure; -WHERE - WR1: (NOT EXISTS(lower_limit_actual_rotation) OR NOT EXISTS(upper_limit_actual_rotation)) XOR - (lower_limit_actual_rotation < upper_limit_actual_rotation); - WR2: (NOT EXISTS(lower_limit_actual_translation_x) OR NOT EXISTS(upper_limit_actual_translation_x)) XOR - (lower_limit_actual_translation_x < upper_limit_actual_translation_x); - WR3: (NOT EXISTS(lower_limit_actual_translation_y) OR NOT EXISTS(upper_limit_actual_translation_y)) XOR - (lower_limit_actual_translation_y < upper_limit_actual_translation_y); -END_ENTITY; - -ENTITY planar_shape_representation - SUBTYPE OF (shape_representation); -WHERE - WR1: SIZEOF(SELF.items) = 1; - WR2: SIZEOF(QUERY(it <* SELF.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE' IN TYPEOF(it)))) = 1; -END_ENTITY; - -ENTITY plane - SUBTYPE OF (elementary_surface); -END_ENTITY; - -ENTITY plane_angle_and_length_pair - SUBTYPE OF (founded_item); - plane_angle_value : plane_angle_measure; - length_value : length_measure; -END_ENTITY; - -ENTITY plane_angle_and_ratio_pair - SUBTYPE OF (founded_item); - plane_angle_value : plane_angle_measure; - ratio_value : ratio_measure; -END_ENTITY; - -ENTITY plane_angle_measure_with_unit - SUBTYPE OF (measure_with_unit); -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_UNIT' IN - TYPEOF(SELF\measure_with_unit.unit_component); -END_ENTITY; - -ENTITY plane_angle_unit - SUBTYPE OF (named_unit); -WHERE - WR1: (SELF\named_unit.dimensions.length_exponent = 0.0) AND (SELF\named_unit.dimensions.mass_exponent = 0.0) AND - (SELF\named_unit.dimensions.time_exponent = 0.0) AND - (SELF\named_unit.dimensions.electric_current_exponent = 0.0) AND - (SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0.0) AND - (SELF\named_unit.dimensions.amount_of_substance_exponent = 0.0) AND - (SELF\named_unit.dimensions.luminous_intensity_exponent = 0.0); -END_ENTITY; - -ENTITY plus_expression - SUBTYPE OF (multiple_arity_numeric_expression); -END_ENTITY; - -ENTITY plus_minus_tolerance; - range : tolerance_method_definition; - toleranced_dimension : dimensional_characteristic; -UNIQUE - UR1: toleranced_dimension; -END_ENTITY; - -ENTITY ply_angle_representation - SUBTYPE OF (representation); - SELF\representation.items : SET [1 : 1] OF measure_representation_item; -END_ENTITY; - -ENTITY ply_laminate_sequence_definition - SUBTYPE OF (product_definition); -WHERE - WR1: SIZEOF(QUERY(pdr - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_RELATIONSHIP.RELATING_PRODUCT_DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NEXT_ASSEMBLY_USAGE_OCCURRENCE' IN - TYPEOF(pdr))) > - 0; -END_ENTITY; - -ENTITY ply_orientation_angle - SUBTYPE OF (representation_relationship); - SELF\representation_relationship.rep_1 : reinforcement_orientation_basis; - SELF\representation_relationship.rep_2 : ply_angle_representation; -END_ENTITY; - -ENTITY pmi_requirement_item_association - SUBTYPE OF (item_identified_representation_usage); - requirement : characterized_object; -END_ENTITY; - -ENTITY pocket - SUBTYPE OF (feature_definition); -WHERE - WR1: (SELF\characterized_object.description IN - ['closed rectangular','open rectangular','complex','circular cutout','complex cutout','recess']); - WR2: (SIZEOF(QUERY(pds - <* QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd))) - | (NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | ((sa_occ.description = 'pocket depth occurrence') AND - (SIZEOF(QUERY(sdr - <* QUERY(sar - <* USEDIN(sa_occ, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | ((sar.description = - 'path feature component usage') AND - (sar.name = 'pocket depth') AND - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') IN - TYPEOF(sar)))) - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PATH_FEATURE_COMPONENT' IN - TYPEOF(sdr.relating_shape_aspect)) AND - (sdr.relating_shape_aspect.description = 'linear')))) = - 1)))) = - 1)))) = - 0); - WR3: SIZEOF(QUERY(pdr - <* get_property_definition_representations(SELF) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)))) = - 1; - WR4: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - ({1 <= SIZEOF(pdr.used_representation.items) <= 2}))) = - 1)) = - 1; - WR5: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF(QUERY(srwp_i - <* pdr.used_representation.items - | (srwp_i.name = 'orientation') OR - (srwp_i.name = 'fillet radius'))) = - SIZEOF(pdr.used_representation.items)))) = - 1)) = - 1; - WR6: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - | NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'fillet radius'))) <= - 1))) = - 0))) = - 0; - WR7: ((NOT (SELF\characterized_object.description IN ['complex','non-circular cutout','recess'])) OR - (SIZEOF(QUERY(pds - <* QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd))) - | (NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | ((sa_occ.description = 'boundary occurrence') AND - (SIZEOF(QUERY(sdr - <* QUERY(sar - <* USEDIN(sa_occ, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | ((sar.description = 'profile usage') AND - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') IN - TYPEOF(sar)))) - | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_CLOSED_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NGON_CLOSED_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_CLOSED_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLOSED_PATH_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SQUARE_U_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PARTIAL_CIRCULAR_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROUNDED_U_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VEE_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TEE_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OPEN_PATH_PROFILE'] * - TYPEOF(sdr.relating_shape_aspect)) = - 1)))) = - 1)))) = - 1)))) = - 0)); - WR8: ((NOT (SELF\characterized_object.description = 'closed rectangular')) OR - (SIZEOF(QUERY(pds - <* QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd))) - | (NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | ((sa_occ.description = 'closed boundary occurrence') AND - (SIZEOF(QUERY(sdr - <* QUERY(sar - <* USEDIN(sa_occ, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | ((sar.description = 'profile usage') AND - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') IN - TYPEOF(sar)))) - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_CLOSED_PROFILE' IN - TYPEOF(sdr.relating_shape_aspect))))) = - 1)))) = - 1)))) = - 0)); - WR9: ((NOT (SELF\characterized_object.description = 'open rectangular')) OR - (SIZEOF(QUERY(pds - <* QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd))) - | (NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | ((sa_occ.description = 'open boundary occurrence') AND - (SIZEOF(QUERY(sdr - <* QUERY(sar - <* USEDIN(sa_occ, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | ((sar.description = 'profile usage') AND - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') IN - TYPEOF(sar)))) - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SQUARE_U_PROFILE' IN - TYPEOF(sdr.relating_shape_aspect))))) = - 1)))) = - 1)))) = - 0)); - WR10: (SIZEOF(QUERY(pds - <* QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd))) - | (NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | ((sa_occ.description = 'bottom condition occurrence') AND - (SIZEOF(QUERY(sdr - <* QUERY(sar - <* USEDIN(sa_occ, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | ((sar.description = 'pocket bottom usage') AND - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP') IN - TYPEOF(sar)))) - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POCKET_BOTTOM' IN - TYPEOF(sdr.relating_shape_aspect)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POCKET' IN - TYPEOF(sdr.related_shape_aspect.of_shape.definition))))) = - 1)))) = - 1)))) = - 0); - WR11: ((NOT (SELF\characterized_object.description IN ['complex','non-circular cutout','recess'])) OR - (SIZEOF(QUERY(pds - <* QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd))) - | (NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | ((sa_occ.description = 'change in boundary occurrence') AND - (SIZEOF(QUERY(fcr - <* QUERY(sar - <* USEDIN(sa_occ, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') - | ((sar.description = 'taper usage') AND - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP') IN - TYPEOF(sar)))) - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TAPER' IN - TYPEOF(fcr.relating_shape_aspect)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POCKET' IN - TYPEOF(fcr.related_shape_aspect.of_shape.definition)) AND - (fcr.related_shape_aspect.description IN - ['angle taper','directed taper'])))) = - 1)))) <= - 1)))) = - 0)); - WR12: (NOT (SELF\characterized_object.description = 'circular cutout')) OR - (SIZEOF(QUERY(pds - <* QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd)) - | NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | (sa_occ.description = 'enclosed boundary occurrence') AND - (SIZEOF(QUERY(sdr - <* QUERY(sar - <* USEDIN(sa_occ, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | (sar.description = 'profile usage') AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN - TYPEOF(sar))) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_CLOSED_PROFILE' IN - TYPEOF(sdr.relating_shape_aspect)))) = - 1))) = - 1))) = - 0); - WR13: (NOT (SELF\characterized_object.description IN ['circular cutout','complex cutout'])) OR - (SIZEOF(QUERY(pds - <* QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd)) - | NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | (sa_occ.description = 'bottom condition occurrence') AND - (SIZEOF(QUERY(sdr - <* QUERY(sar - <* USEDIN(sa_occ, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | (sar.description = 'pocket bottom usage') AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN - TYPEOF(sar))) - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POCKET_BOTTOM' IN - TYPEOF(sdr.relating_shape_aspect)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POCKET' IN - TYPEOF(sdr.related_shape_aspect.of_shape.definition)) AND - (sdr.relating_shape_aspect.description = 'through')))) = - 1))) = - 1))) = - 0); - WR14: (NOT (SELF\characterized_object.description = 'recess')) OR - (SIZEOF(QUERY(pds - <* QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd)) - | NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | (sa_occ.description = 'bottom condition occurrence') AND - (SIZEOF(QUERY(sdr - <* QUERY(sar - <* USEDIN(sa_occ, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | (sar.description = 'pocket bottom usage') AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN - TYPEOF(sar))) - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POCKET_BOTTOM' IN - TYPEOF(sdr.relating_shape_aspect)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POCKET' IN - TYPEOF(sdr.related_shape_aspect.of_shape.definition)) AND - (sdr.relating_shape_aspect.description IN - ['planar','complex'])))) = - 1))) = - 1))) = - 0); - WR15: SIZEOF(QUERY(pdr - <* get_property_definition_representations(SELF) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN - TYPEOF(pdr.used_representation)) AND - (pdr.used_representation.name = 'maximum feature limit'))) >= - 0; - WR16: ((NOT (SELF\characterized_object.description IN - ['closed rectangular','open rectangular','complex','recess'])) OR - (SIZEOF(QUERY(pds - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pds)) AND - (SIZEOF(QUERY(csa - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN - TYPEOF(csa)) AND - (csa.name = 'uncut volume') AND - (SIZEOF(QUERY(sar - <* csa.component_relationships - | ((('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN - TYPEOF(sar)) AND - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOSS', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROTRUSION'] * - TYPEOF(sar.related_shape_aspect)) = - 1))))) = - 1)))) <= - 1)))) = - 1)); - WR17: ((NOT (SELF\characterized_object.description IN ['closed rectangular','open rectangular'])) OR - (SIZEOF(QUERY(pds - <* QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd))) - | (NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | ((sa_occ.description = 'change in boundary occurrence') AND - (SIZEOF(QUERY(fcr - <* QUERY(sar - <* USEDIN(sa_occ, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') - | ((sar.description = 'taper usage') AND - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP') IN - TYPEOF(sar)))) - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TAPER' IN - TYPEOF(fcr.relating_shape_aspect)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POCKET' IN - TYPEOF(fcr.related_shape_aspect.of_shape.definition)) AND - (fcr.related_shape_aspect.description IN - ['angle taper','directed taper'])))) >= - 1)))) <= - 1)))) = - 0)); -END_ENTITY; - -ENTITY pocket_bottom - SUBTYPE OF (shape_aspect); -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN - TYPEOF(SELF.of_shape.definition); - WR2: SELF.description IN ['planar','complex','through']; - WR3: ((NOT (SELF.description = 'planar')) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIRECTION_SHAPE_REPRESENTATION') IN - TYPEOF(pdr.used_representation)) AND - (pdr.used_representation.name = 'floor normal'))) = - 1)))) = - 0)); - WR4: ((NOT (SELF.description = 'planar')) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LOCATION_SHAPE_REPRESENTATION') IN - TYPEOF(pdr.used_representation)) AND - (pdr.used_representation.name = 'floor location'))) = - 1)))) = - 0)); - WR5: ((NOT (SELF.description = 'complex')) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION' IN - TYPEOF(pdr.used_representation)) AND - (pdr.used_representation.name = 'floor face'))) = - 1)))) = - 0)); - WR6: (NOT (SELF.description IN ['planar','complex']) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation))) = - 1))) = - 0)); - WR7: (NOT (SELF.description IN ['planar','complex']) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - | NOT (SIZEOF(impl_rep.used_representation.items) <= 1))) = - 0))) = - 0)); - WR8: (NOT (SELF.description = 'through') OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation))) = - 0))) = - 0)); - WR9: (NOT (SELF.description IN ['planar','complex'])) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - | NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'radius'))) <= - 1))) = - 0))) = - 0); - WR10: SIZEOF(QUERY(fcr - <* QUERY(sar - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') - | (sar.description = 'pocket bottom usage') AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN - TYPEOF(sar))) - | ((fcr.related_shape_aspect.description = 'bottom condition occurrence') AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POCKET' IN - TYPEOF(fcr.related_shape_aspect.of_shape.definition)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POCKET_BOTTOM' IN - TYPEOF(fcr.relating_shape_aspect))))) >= - 1; - WR11: ((NOT (SELF.description IN ['planar','complex'])) OR - (SIZEOF(QUERY(fcr - <* QUERY(sar - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') - | (sar.description = 'pocket bottom usage') AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN - TYPEOF(sar))) - | (fcr.related_shape_aspect.description = 'bottom condition occurrence') AND - (fcr.related_shape_aspect.name IN ['pocket depth start','pocket depth end']))) = - 0)); -END_ENTITY; - -ENTITY pogc_with_dimension - SUBTYPE OF (parallel_offset_geometric_constraint); - offset_value : positive_length_measure; - offset_direction_constrained : BOOLEAN; -WHERE - WR1: (SIZEOF(SELF\explicit_constraint.reference_elements) = 1) OR - (SIZEOF(SELF\explicit_constraint.constrained_elements) = 2); - WR2: (NOT (offset_direction_constrained = true) AND - ((offset_type = curve_2d_offset) OR (offset_type = surface_offset))); -END_ENTITY; - -ENTITY point - SUPERTYPE OF (ONEOF(cartesian_point, point_on_curve, point_on_surface, point_in_volume, point_replica, - degenerate_pcurve)) - SUBTYPE OF (geometric_representation_item); -END_ENTITY; - -ENTITY point_and_vector - SUBTYPE OF (compound_representation_item, geometric_representation_item); - SELF\compound_representation_item.item_element : point_and_vector_members; -END_ENTITY; - -ENTITY point_array - SUBTYPE OF (compound_representation_item, geometric_representation_item); - SELF\compound_representation_item.item_element : point_array_members; -END_ENTITY; - -ENTITY point_cloud_dataset - SUBTYPE OF (scanned_data_item); - point_coordinates : LIST [1 : ?] OF LIST [3 : 3] OF REAL; -END_ENTITY; - -ENTITY point_cloud_dataset_with_colours - SUBTYPE OF (point_cloud_dataset); - colour_indices : LIST [1 : ?] OF LIST [3 : 3] OF INTEGER; -WHERE - WR1: SIZEOF(colour_indices) = SIZEOF(SELF\point_cloud_dataset.point_coordinates); -END_ENTITY; - -ENTITY point_cloud_dataset_with_intensities - SUBTYPE OF (point_cloud_dataset); - intensities : LIST [1 : ?] OF REAL; -WHERE - WR1: SIZEOF(intensities) = SIZEOF(SELF\point_cloud_dataset.point_coordinates); -END_ENTITY; - -ENTITY point_cloud_dataset_with_normals - SUBTYPE OF (point_cloud_dataset); - normals : LIST [1 : ?] OF LIST [3 : 3] OF REAL; -WHERE - WR1: SIZEOF(normals) = SIZEOF(SELF\point_cloud_dataset.point_coordinates); -END_ENTITY; - -ENTITY point_cloud_superdataset - SUBTYPE OF (scanned_data_item); - pts_per_sublist : INTEGER; - sublists : LIST [2 : ?] OF point_cloud_dataset; -WHERE - WR1: consistent_sizes(SELF.pts_per_sublist, SELF.sublists); -END_ENTITY; - -ENTITY point_distance_geometric_constraint - SUBTYPE OF (explicit_geometric_constraint); - SELF\explicit_constraint.constrained_elements : SET [1 : ?] OF point; - SELF\explicit_constraint.reference_elements : SET [0 : 4] OF point_curve_or_surface_constraint_element; -WHERE - WR1: (SIZEOF(SELF\explicit_constraint.reference_elements) > 0) OR - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PDGC_WITH_DIMENSION' IN TYPEOF(SELF)) AND - (SIZEOF(SELF\explicit_constraint.constrained_elements) = 2)); -END_ENTITY; - -ENTITY point_in_volume - SUBTYPE OF (point); - basis_volume : volume; - point_parameter_u : parameter_value; - point_parameter_v : parameter_value; - point_parameter_w : parameter_value; -END_ENTITY; - -ENTITY point_on_curve - SUBTYPE OF (point); - basis_curve : curve; - point_parameter : parameter_value; -END_ENTITY; - -ENTITY point_on_edge_curve - SUBTYPE OF (point_on_curve); - basis_edge_curve : edge_curve; -DERIVE - SELF\point_on_curve.basis_curve : curve := SELF.basis_edge_curve.edge_geometry; -WHERE - WR1: SIZEOF(using_representations(SELF.basis_edge_curve) * relating_shape_representations_of_extreme_values(SELF)) > - 0; -END_ENTITY; - -ENTITY point_on_face_surface - SUBTYPE OF (point_on_surface); - basis_face_surface : face_surface; -DERIVE - SELF\point_on_surface.basis_surface : surface := SELF.basis_face_surface.face_geometry; -WHERE - WR1: SIZEOF(using_representations(SELF.basis_face_surface) * - relating_shape_representations_of_extreme_values(SELF)) > - 0; -END_ENTITY; - -ENTITY point_on_planar_curve_pair - SUBTYPE OF (high_order_kinematic_pair); - pair_curve : curve; - orientation : BOOLEAN; -WHERE - WR1: SIZEOF(QUERY(r <* SELF\kinematic_pair.associated_link_representations_1 | NOT (pair_curve IN r.items))) = 0; - WR2: SIZEOF(QUERY(lr - <* SELF\kinematic_pair.associated_link_representations_1 - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RIGID_LINK_REPRESENTATION' IN - TYPEOF(lr)))) = - 0; -END_ENTITY; - -ENTITY point_on_planar_curve_pair_value - SUBTYPE OF (pair_value); - SELF\pair_value.applies_to_pair : point_on_planar_curve_pair; - actual_point_on_curve : point_on_curve; - input_orientation : spatial_rotation; -DERIVE - actual_orientation : ypr_rotation := convert_spatial_to_ypr_rotation(SELF\pair_value.applies_to_pair, - input_orientation); -WHERE - WR1: SELF\pair_value.applies_to_pair\point_on_planar_curve_pair.pair_curve :=: actual_point_on_curve.basis_curve; -END_ENTITY; - -ENTITY point_on_planar_curve_pair_with_range - SUBTYPE OF (point_on_planar_curve_pair); - range_on_pair_curve : trimmed_curve; - lower_limit_yaw : OPTIONAL plane_angle_measure; - upper_limit_yaw : OPTIONAL plane_angle_measure; - lower_limit_pitch : OPTIONAL plane_angle_measure; - upper_limit_pitch : OPTIONAL plane_angle_measure; - lower_limit_roll : OPTIONAL plane_angle_measure; - upper_limit_roll : OPTIONAL plane_angle_measure; -WHERE - WR1: (NOT EXISTS(lower_limit_pitch) OR NOT EXISTS(upper_limit_pitch)) XOR (lower_limit_pitch < upper_limit_pitch); - WR2: (NOT EXISTS(lower_limit_yaw) OR NOT EXISTS(upper_limit_yaw)) XOR (lower_limit_yaw < upper_limit_yaw); - WR3: (NOT EXISTS(lower_limit_roll) OR NOT EXISTS(upper_limit_roll)) XOR (lower_limit_roll < upper_limit_roll); - WR4: SIZEOF(QUERY(r - <* SELF\kinematic_pair.associated_link_representations_1 - | NOT (range_on_pair_curve IN r.items))) = - 0; -END_ENTITY; - -ENTITY point_on_surface - SUBTYPE OF (point); - basis_surface : surface; - point_parameter_u : parameter_value; - point_parameter_v : parameter_value; -END_ENTITY; - -ENTITY point_on_surface_pair - SUBTYPE OF (high_order_kinematic_pair); - pair_surface : surface; -WHERE - WR1: SIZEOF(QUERY(r <* SELF\kinematic_pair.associated_link_representations_1 | NOT (pair_surface IN r.items))) = 0; - WR2: SIZEOF(QUERY(lr - <* SELF\kinematic_pair.associated_link_representations_1 - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RIGID_LINK_REPRESENTATION' IN - TYPEOF(lr)))) = - 0; -END_ENTITY; - -ENTITY point_on_surface_pair_value - SUBTYPE OF (pair_value); - SELF\pair_value.applies_to_pair : point_on_surface_pair; - actual_point_on_surface : point_on_surface; - input_orientation : spatial_rotation; -DERIVE - actual_orientation : ypr_rotation := convert_spatial_to_ypr_rotation(SELF\pair_value.applies_to_pair, - input_orientation); -WHERE - WR1: SELF\pair_value.applies_to_pair\point_on_surface_pair.pair_surface :=: actual_point_on_surface.basis_surface; -END_ENTITY; - -ENTITY point_on_surface_pair_with_range - SUBTYPE OF (point_on_surface_pair); - range_on_pair_surface : rectangular_trimmed_surface; - lower_limit_yaw : OPTIONAL plane_angle_measure; - upper_limit_yaw : OPTIONAL plane_angle_measure; - lower_limit_pitch : OPTIONAL plane_angle_measure; - upper_limit_pitch : OPTIONAL plane_angle_measure; - lower_limit_roll : OPTIONAL plane_angle_measure; - upper_limit_roll : OPTIONAL plane_angle_measure; -WHERE - WR1: (NOT EXISTS(lower_limit_pitch) OR NOT EXISTS(upper_limit_pitch)) XOR (lower_limit_pitch < upper_limit_pitch); - WR2: (NOT EXISTS(lower_limit_yaw) OR NOT EXISTS(upper_limit_yaw)) XOR (lower_limit_yaw < upper_limit_yaw); - WR3: (NOT EXISTS(lower_limit_roll) OR NOT EXISTS(upper_limit_roll)) XOR (lower_limit_roll < upper_limit_roll); - WR4: SIZEOF(QUERY(r - <* SELF\kinematic_pair.associated_link_representations_1 - | NOT (range_on_pair_surface IN r.items))) = - 0; -END_ENTITY; - -ENTITY point_path - SUBTYPE OF (compound_representation_item, geometric_representation_item); - SELF\compound_representation_item.item_element : point_path_members; -END_ENTITY; - -ENTITY point_placement_shape_representation - SUBTYPE OF (shape_representation); - SELF\representation.items : SET [1 : ?] OF point_placement_shape_representation_item; -WHERE - WR1: SIZEOF(QUERY(i - <* SELF.items - | SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOUND_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM'] * - TYPEOF(i)) = - 1)) > - 0; -END_ENTITY; - -ENTITY point_replica - SUBTYPE OF (point); - parent_pt : point; - transformation : cartesian_transformation_operator; -WHERE - WR1: transformation.dim = parent_pt.dim; - WR2: acyclic_point_replica(SELF, parent_pt); -END_ENTITY; - -ENTITY point_style - SUBTYPE OF (founded_item); - name : label; - marker : OPTIONAL marker_select; - marker_size : OPTIONAL size_select; - marker_colour : OPTIONAL colour; -WHERE - WR1: EXISTS(marker) OR EXISTS(marker_size) OR EXISTS(marker_colour); -END_ENTITY; - -ENTITY point_to_point_path - SUBTYPE OF (path_node); -DERIVE - SELF\kinematic_path_segment.transition : transition_code := discontinuous; -END_ENTITY; - -ENTITY polar_11 - SUBTYPE OF (geometric_representation_item); -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D' IN TYPEOF(SELF)); -END_ENTITY; - -ENTITY polar_complex_number_region - SUBTYPE OF (maths_space, generic_literal); - centre : complex_number_literal; - distance_constraint : real_interval; - direction_constraint : finite_real_interval; -WHERE - WR1: min_exists(distance_constraint) AND (real_min(distance_constraint) >= 0.0); - WR2: {-PI <= direction_constraint.min < PI}; - WR3: direction_constraint.max - direction_constraint.min <= 2.0 * PI; - WR4: (direction_constraint.max - direction_constraint.min < 2.0 * PI) OR (direction_constraint.min_closure = open); - WR5: (direction_constraint.max - direction_constraint.min < 2.0 * PI) OR (direction_constraint.max_closure = open) OR - (direction_constraint.min = -PI); - WR6: (real_min(distance_constraint) > 0.0) OR max_exists(distance_constraint) OR - (direction_constraint.max - direction_constraint.min < 2.0 * PI) OR (direction_constraint.max_closure = open); -END_ENTITY; - -ENTITY polar_point - SUBTYPE OF (cartesian_point); - r : length_measure; - theta : plane_angle_measure; -DERIVE - SELF\cartesian_point.coordinates : LIST [2 : 2] OF length_measure := [r * COS(theta),r * SIN(theta)]; -WHERE - WR1: r >= 0.0; -END_ENTITY; - -ENTITY poly_loop - SUBTYPE OF (loop, geometric_representation_item); - polygon : LIST [3 : ?] OF UNIQUE cartesian_point; -END_ENTITY; - -ENTITY polygonal_area - SUBTYPE OF (primitive_2d); - bounds : LIST [3 : ?] OF UNIQUE cartesian_point; -END_ENTITY; - -ENTITY polyline - SUBTYPE OF (bounded_curve); - points : LIST [2 : ?] OF cartesian_point; -END_ENTITY; - -ENTITY position_tolerance - SUBTYPE OF (geometric_tolerance); -END_ENTITY; - -ENTITY positioned_sketch - SUBTYPE OF (geometric_representation_item); - sketch_basis : sketch_basis_select; - auxiliary_elements : SET [0 : ?] OF auxiliary_geometric_representation_item; -WHERE - WR1: NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_BOUNDED_SURFACE' IN TYPEOF(sketch_basis)) AND - NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE' IN - TYPEOF(sketch_basis\curve_bounded_surface.basis_surface))); - WR2: NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE' IN TYPEOF(sketch_basis)) AND - NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE' IN - TYPEOF(sketch_basis\face_surface.face_geometry))); - WR3: SIZEOF(QUERY(q - <* auxiliary_elements - | (SIZEOF(TYPEOF(q) * - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE']) = - 0))) = - 0; - WR4: SIZEOF(QUERY(q <* auxiliary_elements | q\geometric_representation_item.dim <> 3)) = 0; -END_ENTITY; - -ENTITY positive_length_measure_with_unit - SUBTYPE OF (length_measure_with_unit); -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITIVE_LENGTH_MEASURE' IN - TYPEOF(SELF\measure_with_unit.value_component); -END_ENTITY; - -ENTITY positive_plane_angle_measure_with_unit - SUBTYPE OF (plane_angle_measure_with_unit); -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITIVE_PLANE_ANGLE_MEASURE' IN - TYPEOF(SELF\measure_with_unit.value_component); -END_ENTITY; - -ENTITY power_expression - SUBTYPE OF (binary_numeric_expression); -END_ENTITY; - -ENTITY power_measure_with_unit - SUBTYPE OF (measure_with_unit); -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POWER_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); -END_ENTITY; - -ENTITY power_unit - SUBTYPE OF (derived_unit); -WHERE - WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit(si_unit_name.watt); -END_ENTITY; - -ENTITY pre_defined_character_glyph - SUBTYPE OF (pre_defined_item); -END_ENTITY; - -ENTITY pre_defined_colour - SUBTYPE OF (pre_defined_item, colour); -END_ENTITY; - -ENTITY pre_defined_curve_font - SUBTYPE OF (pre_defined_item); -END_ENTITY; - -ENTITY pre_defined_dimension_symbol - SUBTYPE OF (pre_defined_symbol); -WHERE - WR1: SELF.name IN - ['arc length', - 'conical taper', - 'counterbore', - 'countersink', - 'depth', - 'diameter', - 'plus minus', - 'radius', - 'slope', - 'spherical diameter', - 'spherical radius', - 'square']; -END_ENTITY; - -ENTITY pre_defined_geometrical_tolerance_symbol - SUBTYPE OF (pre_defined_symbol); -WHERE - WR1: SELF.name IN - ['angularity', - 'basic dimension', - 'blanked datum reference', - 'circular runout', - 'circularity', - 'concentricity', - 'cylindricity', - 'datum target identification', - 'diameter', - 'filled datum reference', - 'flatness', - 'least material condition', - 'maximum material condition', - 'parallelism', - 'perpendicularity', - 'position', - 'profile of a line', - 'profile of a surface', - 'projected tolerance zone', - 'regardless of feature size', - 'straightness', - 'symmetry', - 'total runout']; -END_ENTITY; - -ENTITY pre_defined_item; - name : label; -END_ENTITY; - -ENTITY pre_defined_marker - SUBTYPE OF (pre_defined_item); -END_ENTITY; - -ENTITY pre_defined_point_marker_symbol - SUBTYPE OF (pre_defined_marker, pre_defined_symbol); -WHERE - WR1: SELF.name IN ['asterisk','circle','dot','plus','square','triangle','x']; -END_ENTITY; - -ENTITY pre_defined_surface_condition_symbol - SUBTYPE OF (pre_defined_symbol); -WHERE - WR1: SELF.name IN - ['000', - '010', - '020', - '030', - '040', - '050', - '060', - '070', - '001', - '011', - '021', - '031', - '041', - '051', - '061', - '071', - '100', - '110', - '120', - '130', - '140', - '150', - '160', - '170', - '101', - '111', - '121', - '131', - '141', - '151', - '161', - '171', - '200', - '210', - '220', - '230', - '240', - '250', - '260', - '270', - '201', - '211', - '221', - '231', - '241', - '251', - '261', - '271']; -END_ENTITY; - -ENTITY pre_defined_surface_side_style - SUBTYPE OF (pre_defined_item); -END_ENTITY; - -ENTITY pre_defined_symbol - SUBTYPE OF (pre_defined_item); -END_ENTITY; - -ENTITY pre_defined_terminator_symbol - SUBTYPE OF (pre_defined_symbol); -WHERE - WR1: SELF.name IN - ['blanked arrow', - 'blanked box', - 'blanked dot', - 'blanked triangle', - 'dimension origin', - 'filled arrow', - 'filled box', - 'filled dot', - 'integral symbol', - 'open arrow', - 'slash', - 'unfilled arrow', - 'unfilled triangle', - 'filled triangle']; -END_ENTITY; - -ENTITY pre_defined_text_font - SUBTYPE OF (pre_defined_item); -END_ENTITY; - -ENTITY pre_defined_tile - SUBTYPE OF (pre_defined_item); -END_ENTITY; - -ENTITY precision_qualifier; - precision_value : INTEGER; -END_ENTITY; - -ENTITY prescribed_path - SUBTYPE OF (link_motion_representation_along_path); - controlling_joints : OPTIONAL SET [1 : 6] OF kinematic_joint; -END_ENTITY; - -ENTITY presentation_area - SUBTYPE OF (presentation_representation); -WHERE - WR1: ((SIZEOF(QUERY(ais - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_IN_SET.AREA') - | SIZEOF(USEDIN(ais, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_SIZE.UNIT')) = - 1)) > - 0) OR - (SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_SIZE.UNIT')) = 1)); -END_ENTITY; - -ENTITY presentation_layer_assignment; - name : label; - description : text; - assigned_items : SET [1 : ?] OF layered_item; -END_ENTITY; - -ENTITY presentation_representation - SUPERTYPE OF (ONEOF(presentation_area, presentation_view)) - SUBTYPE OF (representation); - SELF\representation.context_of_items : geometric_representation_context; -WHERE - WR1: SELF\representation.context_of_items\geometric_representation_context.coordinate_space_dimension = 2; - WR2: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_AREA' IN TYPEOF(SELF)) OR - (SIZEOF(QUERY(prr - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_RELATIONSHIP.REP_2') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_REPRESENTATION' IN - TYPEOF(prr\representation_relationship.rep_1))) > - 0) OR - (SIZEOF(QUERY(rm - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_MAP.MAPPED_REPRESENTATION') - | SIZEOF(QUERY(mi - <* USEDIN(rm, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM.MAPPING_SOURCE') - | SIZEOF(QUERY(rep - <* using_representations(mi) - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_REPRESENTATION' IN - TYPEOF(rep))) > - 0)) > - 0)) > - 0); -END_ENTITY; - -ENTITY presentation_set; -INVERSE - areas : SET [1:?] OF area_in_set FOR in_set; -END_ENTITY; - -ENTITY presentation_size; - unit : presentation_size_assignment_select; - size : planar_box; -UNIQUE - UR1: unit; -WHERE - WR1: (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_REPRESENTATION' IN TYPEOF(unit)) AND - item_in_context(size, unit\representation.context_of_items)) OR - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_IN_SET' IN TYPEOF(unit)) AND - (SIZEOF(QUERY(ais - <* unit\area_in_set.in_set.areas - | NOT item_in_context(size, ais.area\representation.context_of_items))) = - 0)); -END_ENTITY; - -ENTITY presentation_style_assignment - SUBTYPE OF (founded_item); - styles : SET [1 : ?] OF presentation_style_select; -WHERE - WR1: SIZEOF(QUERY(style1 - <* styles - | NOT (SIZEOF(QUERY(style2 - <* (styles - style1) - | NOT ((TYPEOF(style1) <> TYPEOF(style2)) OR - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_USAGE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXTERNALLY_DEFINED_STYLE'] * - TYPEOF(style1)) = - 1)))) = - 0))) = - 0; - WR2: SIZEOF(QUERY(style1 - <* styles - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF(style1))) <= - 2; - WR3: SIZEOF(QUERY(style1 - <* styles - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF(style1)) AND - (SIZEOF(QUERY(style2 - <* (styles - style1) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_USAGE' IN - TYPEOF(style2)) AND - ((style1\surface_style_usage.side = both) OR - (style2\surface_style_usage.side = both) OR - (style1\surface_style_usage.side = style2\surface_style_usage.side)))) > - 0))) = - 0; -END_ENTITY; - -ENTITY presentation_style_by_context - SUBTYPE OF (presentation_style_assignment); - style_context : style_context_select; -END_ENTITY; - -ENTITY presentation_view - SUBTYPE OF (presentation_representation); -END_ENTITY; - -ENTITY presented_item - ABSTRACT SUPERTYPE; -END_ENTITY; - -ENTITY presented_item_representation; - presentation : presentation_representation_select; - item : presented_item; -END_ENTITY; - -ENTITY pressure_measure_with_unit - SUBTYPE OF (measure_with_unit); -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESSURE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); -END_ENTITY; - -ENTITY pressure_unit - SUBTYPE OF (derived_unit); -WHERE - WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit(si_unit_name.pascal); -END_ENTITY; - -ENTITY previous_change_element_assignment - SUBTYPE OF (group_assignment); - SELF\group_assignment.assigned_group : previous_element_assignment_select; - items : SET [1 : ?] OF change_management_object; -END_ENTITY; - -ENTITY primitive_2d - SUPERTYPE OF (ONEOF(circular_area, elliptic_area, rectangular_area, polygonal_area, half_space_2d)) - SUBTYPE OF (geometric_representation_item); -WHERE - WR1: SELF\geometric_representation_item.dim = 2; -END_ENTITY; - -ENTITY primitive_2d_with_inner_boundary - SUBTYPE OF (complex_area, compound_representation_item); - SELF\compound_representation_item.item_element : compound_inner_area_boundary; -DERIVE - inner_boundary : compound_inner_area_boundary := SELF\compound_representation_item.item_element; -WHERE - WR1: SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_AREA', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ELLIPTIC_AREA', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_AREA', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYGONAL_AREA', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_WITH_OUTER_BOUNDARY', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PATH_AREA_WITH_PARAMETERS'] * - TYPEOF(SELF)) > - 0; - WR2: SIZEOF(QUERY(inner - <* inner_boundary - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRIMITIVE_2D_WITH_INNER_BOUNDARY' IN - TYPEOF(inner))) = - 0; - WR3: open_path_based_inner_boundary(inner_boundary); -END_ENTITY; - -ENTITY prismatic_pair - SUBTYPE OF (low_order_kinematic_pair); -DERIVE - SELF\low_order_kinematic_pair.t_x : BOOLEAN := true; - SELF\low_order_kinematic_pair.t_y : BOOLEAN := false; - SELF\low_order_kinematic_pair.t_z : BOOLEAN := false; - SELF\low_order_kinematic_pair.r_x : BOOLEAN := false; - SELF\low_order_kinematic_pair.r_y : BOOLEAN := false; - SELF\low_order_kinematic_pair.r_z : BOOLEAN := false; -END_ENTITY; - -ENTITY prismatic_pair_value - SUBTYPE OF (pair_value); - SELF\pair_value.applies_to_pair : prismatic_pair; - actual_translation : length_measure; -END_ENTITY; - -ENTITY prismatic_pair_with_range - SUBTYPE OF (prismatic_pair); - lower_limit_actual_translation : OPTIONAL length_measure; - upper_limit_actual_translation : OPTIONAL length_measure; -WHERE - WR1: (NOT EXISTS(lower_limit_actual_translation) OR NOT EXISTS(upper_limit_actual_translation)) XOR - (lower_limit_actual_translation < upper_limit_actual_translation); -END_ENTITY; - -ENTITY procedural_representation - SUBTYPE OF (representation); - SELF\representation.items : SET [1 : ?] OF procedural_representation_sequence; -END_ENTITY; - -ENTITY procedural_representation_sequence - SUBTYPE OF (representation_item); - elements : LIST [1 : ?] OF representation_item; - suppressed_items : SET [0 : ?] OF representation_item; - rationale : text; -WHERE - WR1: SIZEOF(QUERY(q <* suppressed_items | NOT (q IN elements))) = 0; -END_ENTITY; - -ENTITY procedural_shape_representation - SUBTYPE OF (procedural_representation, shape_representation); - SELF\representation.items : SET [1 : ?] OF procedural_shape_representation_sequence; -END_ENTITY; - -ENTITY procedural_shape_representation_sequence - SUBTYPE OF (geometric_representation_item, procedural_representation_sequence); - SELF\procedural_representation_sequence.elements : LIST [1 : ?] OF shape_representation_item; -END_ENTITY; - -ENTITY procedural_solid_representation_sequence - SUBTYPE OF (procedural_shape_representation_sequence); -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SOLID_MODEL' IN TYPEOF(SELF); -END_ENTITY; - -ENTITY process_operation - SUBTYPE OF (action_method); -END_ENTITY; - -ENTITY process_plan - SUBTYPE OF (action); -WHERE - WR1: SIZEOF(QUERY(ar - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ACTION_RELATIONSHIP.RELATED_ACTION') - | SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROCESS_PLAN', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_PROCESS_PLAN'] * - TYPEOF(ar.relating_action)) <> - 1)) = - 0; - WR2: SIZEOF(QUERY(ar - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ACTION_RELATIONSHIP.RELATING_ACTION') - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROCESS_PLAN', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_PROCESS_PLAN'] * - TYPEOF(ar.related_action)) = - 1) OR - ((ar.name = 'process operation occurrence') AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROCESS_OPERATION' IN - TYPEOF(ar.related_action.chosen_method))))) = - SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ACTION_RELATIONSHIP.RELATING_ACTION')); -END_ENTITY; - -ENTITY process_product_association; - name : label; - description : text; - defined_product : characterized_product_definition; - process : product_definition_process; -END_ENTITY; - -ENTITY process_property_association; - name : label; - description : text; - process : property_process; - property_or_shape : property_or_shape_select; -END_ENTITY; - -ENTITY product; - id : identifier; - name : label; - description : OPTIONAL text; - frame_of_reference : SET [1 : ?] OF product_context; -END_ENTITY; - -ENTITY product_as_planned - SUBTYPE OF (product_definition_formation); -END_ENTITY; - -ENTITY product_category; - name : label; - description : OPTIONAL text; -DERIVE - id : identifier := get_id_value(SELF); -WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; -END_ENTITY; - -ENTITY product_category_relationship; - name : label; - description : OPTIONAL text; - category : product_category; - sub_category : product_category; -WHERE - WR1: acyclic_product_category_relationship(SELF, [SELF.sub_category]); -END_ENTITY; - -ENTITY product_class - SUBTYPE OF (product_concept, characterized_object); -END_ENTITY; - -ENTITY product_concept; - id : identifier; - name : label; - description : OPTIONAL text; - market_context : product_concept_context; -UNIQUE - UR1: id; -END_ENTITY; - -ENTITY product_concept_context - SUBTYPE OF (application_context_element); - market_segment_type : label; -END_ENTITY; - -ENTITY product_concept_feature; - id : identifier; - name : label; - description : OPTIONAL text; -END_ENTITY; - -ENTITY product_concept_feature_association; - name : label; - description : OPTIONAL text; - concept : product_concept; - feature : product_concept_feature; -END_ENTITY; - -ENTITY product_concept_feature_category - SUBTYPE OF (group); -WHERE - WR1: SIZEOF(QUERY(aga - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GROUP_ASSIGNMENT.ASSIGNED_GROUP') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.APPLIED_GROUP_ASSIGNMENT' IN TYPEOF(aga)) AND - ((aga\group_assignment.role\object_role.name <> 'specification category member') OR - (SIZEOF(QUERY(i - <* aga\applied_group_assignment.items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_CONCEPT_FEATURE' IN - TYPEOF(i)) AND - NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONDITIONAL_CONCEPT_FEATURE' IN - TYPEOF(i)))) <> - SIZEOF(aga\applied_group_assignment.items))))) = - 0; -END_ENTITY; - -ENTITY product_concept_feature_category_usage - SUBTYPE OF (group_assignment); - SELF\group_assignment.assigned_group : product_concept_feature_category; - items : SET [1 : ?] OF category_usage_item; -WHERE - WR1: SELF.role.name IN ['mandatory category usage','optional category usage']; -END_ENTITY; - -ENTITY product_concept_relationship; - name : label; - description : OPTIONAL text; - relating_product_concept : product_concept; - related_product_concept : product_concept; -END_ENTITY; - -ENTITY product_context - SUBTYPE OF (application_context_element); - discipline_type : label; -END_ENTITY; - -ENTITY product_data_and_data_equivalence_relationship; - id : identifier; - name : label; - description : OPTIONAL text; - product_data : equivalence_product_data_select; - data_equivalence : data_equivalence_definition; -END_ENTITY; - -ENTITY product_data_and_data_quality_relationship; - description : text; - product_data : product_definition; - data_quality : data_quality_definition; -END_ENTITY; - -ENTITY product_definition - SUPERTYPE OF (ONEOF(composite_assembly_sequence_definition, ply_laminate_sequence_definition)); - id : identifier; - description : OPTIONAL text; - formation : product_definition_formation; - frame_of_reference : product_definition_context; -DERIVE - name : label := get_name_value(SELF); -WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; -END_ENTITY; - -ENTITY product_definition_context - SUBTYPE OF (application_context_element); - life_cycle_stage : label; -END_ENTITY; - -ENTITY product_definition_context_association; - definition : product_definition; - frame_of_reference : product_definition_context; - role : product_definition_context_role; -END_ENTITY; - -ENTITY product_definition_context_role; - name : label; - description : OPTIONAL text; -END_ENTITY; - -ENTITY product_definition_effectivity - SUBTYPE OF (effectivity); - usage : product_definition_relationship; -WHERE - WR1: SIZEOF(USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EFFECTIVITY_ASSIGNMENT.ASSIGNED_EFFECTIVITY')) = - 0; -END_ENTITY; - -ENTITY product_definition_element_relationship - SUBTYPE OF (group); -END_ENTITY; - -ENTITY product_definition_formation; - id : identifier; - description : OPTIONAL text; - of_product : product; -UNIQUE - UR1: id, of_product; -END_ENTITY; - -ENTITY product_definition_formation_relationship; - id : identifier; - name : label; - description : OPTIONAL text; - relating_product_definition_formation : product_definition_formation; - related_product_definition_formation : product_definition_formation; -END_ENTITY; - -ENTITY product_definition_formation_resource - SUBTYPE OF (action_resource, product_definition_formation); -WHERE - WR1: SIZEOF(USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REQUIREMENT_FOR_ACTION_RESOURCE.RESOURCES')) > - 0; - WR2: SIZEOF(QUERY(prpc - <* USEDIN(SELF\product_definition_formation.of_product, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') - | prpc.name = 'part')) <> - 0; - WR3: SELF\action_resource.name = SELF\product_definition_formation.id; - WR4: SELF\action_resource.description = SELF\product_definition_formation.description; -END_ENTITY; - -ENTITY product_definition_formation_with_specified_source - SUBTYPE OF (product_definition_formation); - make_or_buy : source; -END_ENTITY; - -ENTITY product_definition_group_assignment - SUBTYPE OF (group_assignment); - SELF\group_assignment.assigned_group : product_definition_element_relationship; - items : SET [1 : 1] OF product_definition_or_product_definition_relationship; -END_ENTITY; - -ENTITY product_definition_kinematics - SUBTYPE OF (property_definition); - SELF\property_definition.definition : product_definition; -INVERSE - representation_relation : kinematic_property_definition_representation FOR definition; -UNIQUE - UR1: definition; -END_ENTITY; - -ENTITY product_definition_occurrence - SUPERTYPE OF (product_definition_specified_occurrence ANDOR - product_definition_occurrence_reference_with_local_representation); - id : identifier; - name : OPTIONAL label; - description : OPTIONAL text; - definition : OPTIONAL product_definition_or_reference_or_occurrence; - quantity : OPTIONAL measure_with_unit; -DERIVE - descendant_occurrences : SET [0 : ?] OF product_definition_specified_occurrence := get_descendant_occurrences(SELF); -INVERSE - assembly_usages : SET [0:?] OF assembly_component_usage FOR related_product_definition; - child_occurrences : SET [0:?] OF product_definition_specified_occurrence FOR occurrence_usage; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SPECIFIED_OCCURRENCE' IN TYPEOF(SELF)) XOR - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_OCCURRENCE' IN TYPEOF(definition)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_OCCURRENCE_REFERENCE' IN - TYPEOF(definition))); - WR2: EXISTS(definition) OR - (SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONFIGURATION_DESIGN.DESIGN')) > 0); - WR3: (NOT ('NUMBER' IN TYPEOF(quantity.value_component))) OR (quantity.value_component > 0); -END_ENTITY; - -ENTITY product_definition_occurrence_reference - SUBTYPE OF (product_definition_reference); - product_occurrence_id : identifier; -END_ENTITY; - -ENTITY product_definition_occurrence_reference_with_local_representation - SUBTYPE OF (product_definition_occurrence, generic_product_definition_reference); -END_ENTITY; - -ENTITY product_definition_occurrence_relationship; - name : label; - description : OPTIONAL text; - occurrence : product_definition; - occurrence_usage : assembly_component_usage; -WHERE - WR1: occurrence_usage.relating_product_definition :<>: occurrence; - WR2: occurrence_usage.related_product_definition :<>: occurrence; - WR3: occurrence.formation :=: occurrence_usage.related_product_definition.formation; -END_ENTITY; - -ENTITY product_definition_process - SUBTYPE OF (action); - identification : identifier; -INVERSE - product_definitions : SET [1:?] OF process_product_association FOR process; -END_ENTITY; - -ENTITY product_definition_reference - SUBTYPE OF (generic_product_definition_reference); - product_id : identifier; - product_definition_formation_id : identifier; - product_definition_id : identifier; - id_owning_organization_name : OPTIONAL label; -END_ENTITY; - -ENTITY product_definition_reference_with_local_representation - SUBTYPE OF (generic_product_definition_reference, product_definition); -END_ENTITY; - -ENTITY product_definition_relationship; - id : identifier; - name : label; - description : OPTIONAL text; - relating_product_definition : product_definition_or_reference; - related_product_definition : product_definition_or_reference; -END_ENTITY; - -ENTITY product_definition_relationship_kinematics - SUBTYPE OF (property_definition); - SELF\property_definition.definition : product_definition_relationship; -UNIQUE - UR1: definition; -END_ENTITY; - -ENTITY product_definition_relationship_relationship; - id : identifier; - name : label; - description : OPTIONAL text; - relating : product_definition_relationship; - related : product_definition_relationship; -END_ENTITY; - -ENTITY product_definition_resource - SUBTYPE OF (action_resource, product_definition); -WHERE - WR1: SIZEOF(USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REQUIREMENT_FOR_ACTION_RESOURCE.RESOURCES')) > - 0; - WR2: SELF\product_definition.frame_of_reference\application_context_element.name IN - ['part definition','part occurrence','physical occurrence']; - WR3: SELF\action_resource.name = SELF\product_definition.name; - WR4: SELF\action_resource.description = SELF\product_definition.description; -END_ENTITY; - -ENTITY product_definition_shape - SUBTYPE OF (property_definition); -UNIQUE - UR1: SELF\property_definition.definition; -WHERE - WR1: SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CHARACTERIZED_PRODUCT_DEFINITION', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CHARACTERIZED_OBJECT'] * - TYPEOF(SELF\property_definition.definition)) > - 0; -END_ENTITY; - -ENTITY product_definition_specified_occurrence - SUBTYPE OF (product_definition_occurrence); - SELF\product_definition_occurrence.definition : product_definition_occurrence_or_reference; - occurrence_usage : product_definition_occurrence_or_reference; -UNIQUE - UR1: occurrence_usage, id; -WHERE - WR1: SIZEOF(assembly_usages) = 0; - WR2: acyclic_product_definition_specified_occurrence(SELF, SELF\product_definition_occurrence.definition); -END_ENTITY; - -ENTITY product_definition_substitute; - description : OPTIONAL text; - context_relationship : product_definition_relationship; - substitute_definition : product_definition; -DERIVE - name : label := get_name_value(SELF); -WHERE - WR1: context_relationship.related_product_definition :<>: substitute_definition; - WR2: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; -END_ENTITY; - -ENTITY product_definition_usage - SUPERTYPE OF (ONEOF(make_from_usage_option, assembly_component_usage)) - SUBTYPE OF (product_definition_relationship); -UNIQUE - UR1: SELF\product_definition_relationship.id, SELF\product_definition_relationship.relating_product_definition, - SELF\product_definition_relationship.related_product_definition; -WHERE - WR1: acyclic_product_definition_relationship(SELF, [SELF\product_definition_relationship.related_product_definition], - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_USAGE'); -END_ENTITY; - -ENTITY product_definition_usage_relationship - SUBTYPE OF (product_definition_relationship_relationship); - SELF\product_definition_relationship_relationship.relating : product_definition_usage; - SELF\product_definition_relationship_relationship.related : product_definition_usage; -WHERE - WR1: relating.relating_product_definition :=: related.relating_product_definition; -END_ENTITY; - -ENTITY product_definition_with_associated_documents - SUBTYPE OF (product_definition); - documentation_ids : SET [1 : ?] OF document; -END_ENTITY; - -ENTITY product_design_to_individual - SUBTYPE OF (product_relationship); -DERIVE - individual_product : product := SELF\product_relationship.related_product; - product_design : product := SELF\product_relationship.relating_product; -END_ENTITY; - -ENTITY product_design_version_to_individual - SUBTYPE OF (product_definition_formation_relationship); -DERIVE - individual_product : product_definition_formation := SELF\product_definition_formation_relationship.related_product_definition_formation; - product_design_version : product_definition_formation := SELF\product_definition_formation_relationship.relating_product_definition_formation; -END_ENTITY; - -ENTITY product_group - SUBTYPE OF (group); -END_ENTITY; - -ENTITY product_group_attribute_assignment - SUBTYPE OF (group_assignment); - SELF\group_assignment.assigned_group : product_group_attributes; - attributes : SET [1 : 1] OF attribute_select; -END_ENTITY; - -ENTITY product_group_attribute_set - SUBTYPE OF (group_assignment); - SELF\group_assignment.assigned_group : product_group; - product_group_attributes : SET [1 : 1] OF product_group_attributes; -END_ENTITY; - -ENTITY product_group_attributes - SUBTYPE OF (group); -END_ENTITY; - -ENTITY product_group_context - SUBTYPE OF (descriptive_representation_item); -END_ENTITY; - -ENTITY product_group_membership - SUBTYPE OF (characterized_object, group_assignment); - member : product_select; -END_ENTITY; - -ENTITY product_group_membership_rules - SUBTYPE OF (group_assignment); - SELF\group_assignment.assigned_group : product_group; - product_group_rules : SET [1 : 1] OF product_group_rules; -END_ENTITY; - -ENTITY product_group_purpose - SUBTYPE OF (descriptive_representation_item); -END_ENTITY; - -ENTITY product_group_relationship - SUBTYPE OF (group_relationship); -END_ENTITY; - -ENTITY product_group_rule - SUBTYPE OF (descriptive_representation_item); -END_ENTITY; - -ENTITY product_group_rule_assignment - SUBTYPE OF (group_assignment); - SELF\group_assignment.assigned_group : product_group_rules; - product_group_rules : SET [1 : ?] OF product_group_rule; -END_ENTITY; - -ENTITY product_group_rules - SUBTYPE OF (group); -END_ENTITY; - -ENTITY product_identification - SUBTYPE OF (configuration_item, characterized_object); - SELF\configuration_item.item_concept : product_class; -WHERE - WR1: SIZEOF(QUERY(cd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONFIGURATION_DESIGN.CONFIGURATION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_FORMATION' IN - TYPEOF(cd.design)) AND - (SIZEOF(QUERY(prpc - <* USEDIN(cd.design\product_definition_formation.of_product, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') - | prpc.name IN ['part','raw material','tool'])) > - 0))) <= - 1; - WR2: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONFIGURABLE_ITEM' IN TYPEOF(SELF)) XOR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_SPECIFICATION' IN TYPEOF(SELF)); -END_ENTITY; - -ENTITY product_in_attachment_slot - SUBTYPE OF (product_definition_relationship); -END_ENTITY; - -ENTITY product_material_composition_relationship - SUBTYPE OF (product_definition_relationship); - class : label; - constituent_amount : SET [1 : ?] OF characterized_product_composition_value; - composition_basis : label; - determination_method : text; -END_ENTITY; - -ENTITY product_planned_to_realized - SUBTYPE OF (product_definition_formation_relationship); -DERIVE - planned_product : product_definition_formation := SELF\product_definition_formation_relationship.relating_product_definition_formation; - realized_product : product_definition_formation := SELF\product_definition_formation_relationship.related_product_definition_formation; -END_ENTITY; - -ENTITY product_process_plan - SUBTYPE OF (product_definition_process); -WHERE - WR1: SIZEOF(QUERY(ar - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ACTION_RELATIONSHIP.RELATED_ACTION') - | SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROCESS_PLAN', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_PROCESS_PLAN'] * - TYPEOF(ar.relating_action)) <> - 1)) = - 0; - WR2: SIZEOF(QUERY(ar - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ACTION_RELATIONSHIP.RELATING_ACTION') - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROCESS_PLAN', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_PROCESS_PLAN'] * - TYPEOF(ar.related_action)) = - 1) OR - ((ar.name = 'process operation occurrence') AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROCESS_OPERATION' IN - TYPEOF(ar.related_action.chosen_method))))) = - SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ACTION_RELATIONSHIP.RELATING_ACTION')); - WR3: SIZEOF(QUERY(ppa - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROCESS_PRODUCT_ASSOCIATION.PROCESS') - | (ppa.name <> 'produced output') OR - NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION' IN - TYPEOF(ppa.defined_product)))) = - 0; -END_ENTITY; - -ENTITY product_related_product_category - SUBTYPE OF (product_category); - products : SET [1 : ?] OF product; -END_ENTITY; - -ENTITY product_relationship; - id : identifier; - name : label; - description : OPTIONAL text; - relating_product : product; - related_product : product; -END_ENTITY; - -ENTITY product_resource - SUBTYPE OF (action_resource, product); -WHERE - WR1: SIZEOF(USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REQUIREMENT_FOR_ACTION_RESOURCE.RESOURCES')) > - 0; - WR2: SIZEOF(QUERY(prpc - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') - | prpc.name = 'part')) <> - 0; - WR3: SELF\action_resource.name = SELF\product.name; - WR4: SELF\action_resource.description = SELF\product.description; -END_ENTITY; - -ENTITY product_specification - SUBTYPE OF (product_identification, configurable_item); -END_ENTITY; - -ENTITY profile_floor - SUBTYPE OF (shape_aspect); -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN - TYPEOF(SELF.of_shape.definition); - WR2: SELF.description IN ['planar','complex','through']; - WR3: (NOT (SELF.description IN ['planar','complex']) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation))) = - 1))) = - 0)); - WR4: (NOT (SELF.description IN ['planar','complex'])) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - | NOT (SIZEOF(impl_rep.used_representation.items) >= 1) AND - (SIZEOF(impl_rep.used_representation.items) <= 2))) = - 0))) = - 0); - WR5: (NOT (SELF.description = 'through') OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation))) = - 0))) = - 0)); - WR6: (NOT (SELF.description IN ['planar','complex'])) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - | NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'radius'))) = - 1))) = - 0))) = - 0); - WR7: SIZEOF(QUERY(fcr - <* QUERY(sar - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') - | (sar.description = 'profile floor usage') AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN - TYPEOF(sar))) - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OUTSIDE_PROFILE' IN - TYPEOF(fcr.related_shape_aspect.of_shape.definition)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROFILE_FLOOR' IN - TYPEOF(fcr.relating_shape_aspect))))) >= - 1; - WR8: ((NOT (SELF.description IN ['planar','complex'])) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN - TYPEOF(it)) AND - (it.name = 'shape profile floor orientation') AND - (it.description IN - ['shape profile start','shape profile end'])))) = - 1)))) = - 0)))) = - 0)); - WR9: (NOT (SELF.description = 'complex')) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION' IN - TYPEOF(pdr.used_representation)) AND - (pdr.used_representation.name = 'floor'))) = - 1))) = - 1); - WR10: (NOT (SELF.description = 'planar')) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN - TYPEOF(pdr.used_representation)) AND - (pdr.used_representation.name = 'floor'))) = - 1))) = - 1); -END_ENTITY; - -ENTITY projected_zone_definition - SUBTYPE OF (tolerance_zone_definition); - projection_end : shape_aspect; - projected_length : length_measure_with_unit; -WHERE - WR1: ('NUMBER' IN TYPEOF(projected_length\measure_with_unit.value_component)) AND - (projected_length\measure_with_unit.value_component > 0.0); - WR2: (derive_dimensional_exponents(projected_length\measure_with_unit.unit_component) = - dimensional_exponents(1, 0, 0, 0, 0, 0, 0)); -END_ENTITY; - -ENTITY projected_zone_definition_with_offset - SUBTYPE OF (projected_zone_definition); - offset : length_measure_with_unit; -END_ENTITY; - -ENTITY projection_curve - SUBTYPE OF (annotation_curve_occurrence); -END_ENTITY; - -ENTITY projection_directed_callout - SUBTYPE OF (draughting_callout); -WHERE - WR1: SIZEOF(QUERY(p_1 - <* SELF\draughting_callout.contents - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROJECTION_CURVE' IN (TYPEOF(p_1)))) <= - 2; - WR2: SIZEOF(SELF\draughting_callout.contents) >= 2; -END_ENTITY; - -ENTITY promissory_usage_occurrence - SUBTYPE OF (assembly_component_usage); -END_ENTITY; - -ENTITY property_definition - SUPERTYPE OF (ONEOF(product_definition_kinematics, product_definition_relationship_kinematics, - product_definition_shape)); - name : label; - description : OPTIONAL text; - definition : characterized_definition; -DERIVE - id : identifier := get_id_value(SELF); -WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; -END_ENTITY; - -ENTITY property_definition_relationship; - name : label; - description : text; - relating_property_definition : property_definition; - related_property_definition : property_definition; -END_ENTITY; - -ENTITY property_definition_representation; - definition : represented_definition; - used_representation : representation; -DERIVE - description : text := get_description_value(SELF); - name : label := get_name_value(SELF); -WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= - 1; - WR2: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; -END_ENTITY; - -ENTITY property_process - SUBTYPE OF (action); - identification : identifier; -INVERSE - properties : SET [1:?] OF process_property_association FOR process; -END_ENTITY; - -ENTITY protrusion - SUBTYPE OF (feature_definition); -WHERE - WR1: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(impl_rep.used_representation.items) = 1)))) = - 0)))) = - 0); - WR2: (SIZEOF(QUERY(pds - <* QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd))) - | (NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | ((sa_occ.description = 'shape volume occurrence') AND - (SIZEOF(QUERY(sdr - <* QUERY(sar - <* USEDIN(sa_occ, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | ((sar.description = 'volume shape usage') AND - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') IN - TYPEOF(sar)))) - | (sdr.relating_shape_aspect.description = - 'volume shape'))) = - 1)))) = - 1)))) = - 0); - WR3: SIZEOF(QUERY(pdr - <* get_property_definition_representations(SELF) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN - TYPEOF(pdr.used_representation)) AND - (pdr.used_representation.name = 'maximum feature limit'))) >= - 0; -END_ENTITY; - -ENTITY pyramid_volume - SUBTYPE OF (volume); - position : axis2_placement_3d; - xlength : positive_length_measure; - ylength : positive_length_measure; - height : positive_length_measure; -END_ENTITY; - -ENTITY qualified_representation_item - SUBTYPE OF (representation_item); - qualifiers : SET [1 : ?] OF value_qualifier; -WHERE - WR1: SIZEOF(QUERY(temp - <* qualifiers - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRECISION_QUALIFIER' IN TYPEOF(temp)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MATHS_VALUE_PRECISION_QUALIFIER' IN - TYPEOF(temp)))) < - 2; -END_ENTITY; - -ENTITY qualitative_uncertainty - SUBTYPE OF (uncertainty_qualifier); - uncertainty_value : text; -END_ENTITY; - -ENTITY quantified_assembly_component_usage - SUBTYPE OF (assembly_component_usage); - quantity : measure_with_unit; -WHERE - WR1: (NOT ('NUMBER' IN TYPEOF(quantity.value_component))) OR (quantity.value_component > 0); -END_ENTITY; - -ENTITY quantifier_expression - ABSTRACT SUPERTYPE - SUBTYPE OF (multiple_arity_generic_expression); - variables : LIST [1 : ?] OF UNIQUE generic_variable; -WHERE - WR1: SIZEOF(QUERY(vrbl <* variables | NOT (vrbl IN SELF\multiple_arity_generic_expression.operands))) = 0; - WR2: SIZEOF(QUERY(vrbl - <* variables - | NOT ((schema_prefix + 'BOUND_VARIABLE_SEMANTICS') IN TYPEOF(vrbl.interpretation.semantics)))) = - 0; -END_ENTITY; - -ENTITY quasi_uniform_curve - SUBTYPE OF (b_spline_curve); -END_ENTITY; - -ENTITY quasi_uniform_surface - SUBTYPE OF (b_spline_surface); -END_ENTITY; - -ENTITY quasi_uniform_volume - SUBTYPE OF (b_spline_volume); -END_ENTITY; - -ENTITY rack_and_pinion_pair - SUBTYPE OF (low_order_kinematic_pair_with_motion_coupling); - pinion_radius : length_measure; -WHERE - WR1: SIZEOF(QUERY(lr - <* SELF\kinematic_pair.associated_link_representations_1 - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RIGID_LINK_REPRESENTATION' IN - TYPEOF(lr)))) = - 0; -END_ENTITY; - -ENTITY rack_and_pinion_pair_value - SUBTYPE OF (pair_value); - SELF\pair_value.applies_to_pair : rack_and_pinion_pair; - actual_displacement : length_measure; -DERIVE - actual_rotation : plane_angle_measure := 0.0; -END_ENTITY; - -ENTITY rack_and_pinion_pair_with_range - SUBTYPE OF (rack_and_pinion_pair); - lower_limit_rack_displacement : OPTIONAL length_measure; - upper_limit_rack_displacement : OPTIONAL length_measure; -WHERE - WR1: (NOT EXISTS(lower_limit_rack_displacement) OR NOT EXISTS(upper_limit_rack_displacement)) XOR - (lower_limit_rack_displacement < upper_limit_rack_displacement); -END_ENTITY; - -ENTITY radioactivity_measure_with_unit - SUBTYPE OF (measure_with_unit); -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RADIOACTIVITY_UNIT' IN - TYPEOF(SELF\measure_with_unit.unit_component); -END_ENTITY; - -ENTITY radioactivity_unit - SUBTYPE OF (derived_unit); -WHERE - WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit(si_unit_name.becquerel); -END_ENTITY; - -ENTITY radius_dimension - SUBTYPE OF (dimension_curve_directed_callout); -WHERE - WR1: SIZEOF(QUERY(con - <* SELF.contents - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROJECTION_CURVE' IN TYPEOF(con))) <= - 1; -END_ENTITY; - -ENTITY radius_geometric_constraint - SUBTYPE OF (explicit_geometric_constraint); - SELF\explicit_constraint.constrained_elements : SET [1 : ?] OF radial_geometry_constraint_element; -WHERE - WR1: SIZEOF(SELF\explicit_constraint.reference_elements) = 0; -END_ENTITY; - -ENTITY range_characteristic - SUBTYPE OF (representation, descriptive_representation_item); -WHERE - WR1: NOT (SELF\representation.name IN - ['tolerance', - 'minimum tolerance', - 'maximum tolerance', - 'nominal tolerance', - 'plus minus tolerance', - 'symmetrical tolerance', - 'statistical tolerance']); -END_ENTITY; - -ENTITY ratio_measure_with_unit - SUBTYPE OF (measure_with_unit); -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RATIO_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); -END_ENTITY; - -ENTITY ratio_unit - SUBTYPE OF (named_unit); -WHERE - WR1: (SELF\named_unit.dimensions.length_exponent = 0.0) AND (SELF\named_unit.dimensions.mass_exponent = 0.0) AND - (SELF\named_unit.dimensions.time_exponent = 0.0) AND - (SELF\named_unit.dimensions.electric_current_exponent = 0.0) AND - (SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0.0) AND - (SELF\named_unit.dimensions.amount_of_substance_exponent = 0.0) AND - (SELF\named_unit.dimensions.luminous_intensity_exponent = 0.0); -END_ENTITY; - -ENTITY rational_b_spline_curve - SUBTYPE OF (b_spline_curve); - weights_data : LIST [2 : ?] OF REAL; -DERIVE - weights : ARRAY [0 : upper_index_on_control_points] OF REAL := list_to_array(weights_data, 0, - upper_index_on_control_points); -WHERE - WR1: SIZEOF(weights_data) = SIZEOF(SELF\b_spline_curve.control_points_list); - WR2: curve_weights_positive(SELF); -END_ENTITY; - -ENTITY rational_b_spline_surface - SUBTYPE OF (b_spline_surface); - weights_data : LIST [2 : ?] OF LIST [2 : ?] OF REAL; -DERIVE - weights : ARRAY [0 : u_upper] OF ARRAY [0 : v_upper] OF REAL := make_array_of_array(weights_data, 0, u_upper, 0, - v_upper); -WHERE - WR1: (SIZEOF(weights_data) = SIZEOF(SELF\b_spline_surface.control_points_list)) AND - (SIZEOF(weights_data[1]) = SIZEOF(SELF\b_spline_surface.control_points_list[1])); - WR2: surface_weights_positive(SELF); -END_ENTITY; - -ENTITY rational_b_spline_volume - SUBTYPE OF (b_spline_volume); - weights_data : LIST [2 : ?] OF LIST [2 : ?] OF LIST [2 : ?] OF REAL; -DERIVE - weights : ARRAY [0 : u_upper] OF ARRAY [0 : v_upper] OF ARRAY [0 : w_upper] OF REAL := make_array_of_array_of_array(weights_data, - 0, - u_upper, - 0, - v_upper, - 0, - w_upper); -WHERE - WR1: (SIZEOF(weights_data) = SIZEOF(SELF\b_spline_volume.control_points_list)) AND - (SIZEOF(weights_data[1]) = SIZEOF(SELF\b_spline_volume.control_points_list[1])) AND - (SIZEOF(weights_data[1][1]) = SIZEOF(SELF\b_spline_volume.control_points_list[1][1])); - WR2: volume_weights_positive(SELF); -END_ENTITY; - -ENTITY rational_locally_refined_spline_curve - SUBTYPE OF (locally_refined_spline_curve); - weights_data : LIST [2 : ?] OF REAL; -WHERE - WR1: SIZEOF(weights_data) = SIZEOF(SELF\locally_refined_spline_curve.control_points_list); - WR2: weights_positive(SELF.weights_data); -END_ENTITY; - -ENTITY rational_locally_refined_spline_surface - SUBTYPE OF (locally_refined_spline_surface); - weights_data : LIST [4 : ?] OF REAL; -WHERE - WR1: SIZEOF(weights_data) = SIZEOF(SELF\locally_refined_spline_surface.control_points_list); - WR2: weights_positive(SELF.weights_data); -END_ENTITY; - -ENTITY rational_locally_refined_spline_volume - SUBTYPE OF (locally_refined_spline_volume); - weights_data : LIST [8 : ?] OF REAL; -WHERE - WR1: SIZEOF(weights_data) = SIZEOF(SELF\locally_refined_spline_volume.control_points_list); - WR2: weights_positive(SELF.weights_data); -END_ENTITY; - -ENTITY rational_representation_item - SUBTYPE OF (representation_item, slash_expression); -WHERE - WR1: SIZEOF(QUERY(operand - <* SELF\binary_generic_expression.operands - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.INT_LITERAL' IN TYPEOF(operand)))) = - 0; -END_ENTITY; - -ENTITY rationalize_function - SUBTYPE OF (maths_function, unary_generic_expression); - SELF\unary_generic_expression.operand : maths_function; -DERIVE - fun : maths_function := SELF\unary_generic_expression.operand; -WHERE - WR1: (space_dimension(fun.domain) = 1) AND (space_dimension(fun.range) = 1); - WR2: number_tuple_subspace_check(factor1(fun.range)); - WR3: space_dimension(factor1(fun.range)) > 1; -END_ENTITY; - -ENTITY real_defined_function - ABSTRACT SUPERTYPE - SUBTYPE OF (numeric_defined_function); -END_ENTITY; - -ENTITY real_interval_from_min - SUBTYPE OF (maths_space, generic_literal); - min : REAL; - min_closure : open_closed; -END_ENTITY; - -ENTITY real_interval_to_max - SUBTYPE OF (maths_space, generic_literal); - max : REAL; - max_closure : open_closed; -END_ENTITY; - -ENTITY real_literal - SUBTYPE OF (literal_number); - SELF\literal_number.the_value : REAL; -END_ENTITY; - -ENTITY real_numeric_variable - SUBTYPE OF (numeric_variable); -END_ENTITY; - -ENTITY real_representation_item - SUBTYPE OF (representation_item, real_literal); -END_ENTITY; - -ENTITY real_tuple_literal - SUBTYPE OF (generic_literal); - lit_value : LIST [1 : ?] OF REAL; -END_ENTITY; - -ENTITY rectangular_area - SUBTYPE OF (primitive_2d); - position : axis2_placement_2d; - x : positive_length_measure; - y : positive_length_measure; -END_ENTITY; - -ENTITY rectangular_array_placement_group_component - SUBTYPE OF (array_placement_group); -END_ENTITY; - -ENTITY rectangular_closed_profile - SUBTYPE OF (shape_aspect); -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN - TYPEOF(SELF.of_shape.definition); - WR2: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation))) = - 1))) = - 0; - WR3: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - | NOT ((SIZEOF(impl_rep.used_representation.items) >= 3) AND - (SIZEOF(impl_rep.used_representation.items) <= 4)))) = - 0))) = - 0; - WR4: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF(QUERY(srwp_i - <* pdr.used_representation.items - | (srwp_i.name = 'orientation') OR (srwp_i.name = 'length') OR - (srwp_i.name = 'width') OR (srwp_i.name = 'corner radius'))) = - SIZEOF(pdr.used_representation.items)))) = - 1)) = - 1; - WR5: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - | NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' IN - TYPEOF(it)) AND - (it.name = 'orientation'))) = - 1))) = - 0))) = - 0; - WR6: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - | NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'width'))) = - 1))) = - 0))) = - 0; - WR7: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - | NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'length'))) = - 1))) = - 0))) = - 0; - WR8: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - | NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'corner radius'))) <= - 1))) = - 0))) = - 0; -END_ENTITY; - -ENTITY rectangular_composite_surface - SUBTYPE OF (bounded_surface); - segments : LIST [1 : ?] OF LIST [1 : ?] OF surface_patch; -DERIVE - n_u : INTEGER := SIZEOF(segments); - n_v : INTEGER := SIZEOF(segments[1]); -WHERE - WR1: SIZEOF(QUERY(s <* segments | n_v <> SIZEOF(s))) = 0; - WR2: constraints_rectangular_composite_surface(SELF); -END_ENTITY; - -ENTITY rectangular_composite_surface_transition_locator - SUBTYPE OF (founded_item); - basis_surface : rectangular_composite_surface; - surface_parameter : u_or_v_parameter; - u_transition_index : INTEGER; - v_transition_index : INTEGER; -WHERE - WR1: SIZEOF(using_representations(SELF.basis_surface) * relating_shape_representations_of_extreme_values(SELF)) > 0; -END_ENTITY; - -ENTITY rectangular_pattern - SUBTYPE OF (replicate_feature); -WHERE - WR1: (SIZEOF(QUERY(pds - <* QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd))) - | (NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | ((SIZEOF(QUERY(sdr - <* QUERY(sar - <* USEDIN(sa_occ, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') - | ((('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP') IN - TYPEOF(sar)))) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT' IN - TYPEOF(sdr.related_shape_aspect)))) = - 1)))) <= - 5)))) = - 0); - WR2: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' IN - TYPEOF(pdr.used_representation)) AND - (pdr.used_representation.name = 'row layout direction')))) = - 1)))) = - 0); - WR3: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' IN - TYPEOF(pdr.used_representation)) AND - (pdr.used_representation.name = 'column layout direction')))) = - 1)))) = - 0); - WR4: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)))) = - 1)))) = - 0); - WR5: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(impl_rep.used_representation.items) = 5)))) = - 0)))) = - 0); - WR6: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN - TYPEOF(it)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' IN - TYPEOF(it\measure_with_unit.value_component)) AND - (it.name = 'number of rows')))) = - 1)))) = - 0)))) = - 0); - WR7: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN - TYPEOF(it)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' IN - TYPEOF(it\measure_with_unit.value_component)) AND - (it.name = 'number of columns')))) = - 1)))) = - 0)))) = - 0); - WR8: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'row spacing')))) = - 1)))) = - 0)))) = - 0); - WR9: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'column spacing')))) = - 1)))) = - 0)))) = - 0); - WR10: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' IN - TYPEOF(it)) AND - (it.name = 'orientation')))) = - 1)))) = - 0)))) = - 0); -END_ENTITY; - -ENTITY rectangular_pyramid - SUBTYPE OF (geometric_representation_item); - position : axis2_placement_3d; - xlength : positive_length_measure; - ylength : positive_length_measure; - height : positive_length_measure; -END_ENTITY; - -ENTITY rectangular_trimmed_surface - SUBTYPE OF (bounded_surface); - basis_surface : surface; - u1 : parameter_value; - u2 : parameter_value; - v1 : parameter_value; - v2 : parameter_value; - usense : BOOLEAN; - vsense : BOOLEAN; -WHERE - WR1: u1 <> u2; - WR2: v1 <> v2; - WR3: (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ELEMENTARY_SURFACE' IN TYPEOF(basis_surface)) AND - (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE' IN TYPEOF(basis_surface)))) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_OF_REVOLUTION' IN TYPEOF(basis_surface)) OR - (usense = (u2 > u1)); - WR4: (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SPHERICAL_SURFACE' IN TYPEOF(basis_surface)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TOROIDAL_SURFACE' IN TYPEOF(basis_surface))) OR - (vsense = (v2 > v1)); -END_ENTITY; - -ENTITY referenced_modified_datum - SUBTYPE OF (datum_reference); - modifier : limit_condition; -END_ENTITY; - -ENTITY regular_table_function - SUBTYPE OF (linearized_table_function); - increments : LIST [1 : ?] OF INTEGER; -WHERE - WR1: SIZEOF(increments) = SIZEOF(SELF\explicit_table_function.shape); - WR2: extremal_position_check(SELF); -END_ENTITY; - -ENTITY reindexed_array_function - SUBTYPE OF (maths_function, unary_generic_expression); - SELF\unary_generic_expression.operand : maths_function; - starting_indices : LIST [1 : ?] OF INTEGER; -WHERE - WR1: function_is_array(SELF\unary_generic_expression.operand); - WR2: SIZEOF(starting_indices) = SIZEOF(shape_of_array(SELF\unary_generic_expression.operand)); -END_ENTITY; - -ENTITY reinforcement_orientation_basis - SUBTYPE OF (representation); - SELF\representation.items : SET [1 : 1] OF basis_11_direction_member; -END_ENTITY; - -ENTITY relative_event_occurrence - SUBTYPE OF (event_occurrence); - base_event : event_occurrence; - offset : time_measure_with_unit; -END_ENTITY; - -ENTITY removal_volume - SUBTYPE OF (feature_definition); -WHERE - WR1: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(impl_rep.used_representation.items) = 1)))) = - 0)))) = - 0); - WR2: (SIZEOF(QUERY(pds - <* QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd))) - | (NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | ((sa_occ.description = 'shape volume occurrence') AND - (SIZEOF(QUERY(sdr - <* QUERY(sar - <* USEDIN(sa_occ, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | ((sar.description = 'volume shape usage') AND - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') IN - TYPEOF(sar)))) - | (sdr.relating_shape_aspect.description = - 'volume shape'))) = - 1)))) = - 1)))) = - 0); -END_ENTITY; - -ENTITY rep_item_group - SUBTYPE OF (group, representation_item); -WHERE - WR1: SIZEOF(USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_LAYER_ASSIGNMENT.ASSIGNED_ITEMS')) > - 0; - WR2: SIZEOF(QUERY(r - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION.ITEMS') - | r.name = 'group representation')) > - 0; - WR3: SIZEOF(QUERY(ga - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GROUP_ASSIGNMENT.ASSIGNED_GROUP') - | ga.role.name <> 'group membership')) = - 0; - WR4: SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TOPOLOGICAL_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM'] * - TYPEOF(SELF)) = - 1; -END_ENTITY; - -ENTITY repackaging_function - SUBTYPE OF (maths_function, unary_generic_expression); - SELF\unary_generic_expression.operand : maths_function; - input_repack : repackage_options; - output_repack : repackage_options; - selected_output : nonnegative_integer; -WHERE - WR1: (input_repack <> ro_wrap_as_tuple) OR - ((space_dimension(operand.domain) = 1) AND ((schema_prefix + 'TUPLE_SPACE') IN TYPEOF(factor1(operand.domain)))); - WR2: (output_repack <> ro_unwrap_tuple) OR - ((space_dimension(operand.range) = 1) AND ((schema_prefix + 'TUPLE_SPACE') IN TYPEOF(factor1(operand.range)))); - WR3: selected_output <= space_dimension(repackage(operand.range, output_repack)); -END_ENTITY; - -ENTITY reparametrised_composite_curve_segment - SUBTYPE OF (composite_curve_segment); - param_length : parameter_value; -WHERE - WR1: param_length > 0.0; -END_ENTITY; - -ENTITY replicate_feature - SUPERTYPE OF (ONEOF(circular_pattern, rectangular_pattern, feature_pattern)) - SUBTYPE OF (feature_definition); -WHERE - WR1: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation)))) = - 1)))) = - 0); - WR2: (SIZEOF(QUERY(fcr - <* QUERY(sar - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN - TYPEOF(sar))) - | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPLICATE_FEATURE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.INSTANCED_FEATURE'] * - TYPEOF(fcr.related_shape_aspect)) >= - 1) AND - (fcr.name = 'pattern basis')))) = - 1); - WR3: ((SIZEOF(QUERY(sar - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') - | (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN - TYPEOF(sar))))) + - SIZEOF(QUERY(sar - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN - TYPEOF(sar)))))) = - 0); -END_ENTITY; - -ENTITY repositioned_neutral_sketch - SUBTYPE OF (mapped_item, geometric_representation_item); -DERIVE - map : representation_map := SELF\mapped_item.mapping_source; -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NEUTRAL_SKETCH_REPRESENTATION' IN - TYPEOF(map.mapped_representation); - WR2: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_2D' IN TYPEOF(map.mapping_origin); - WR3: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D' IN TYPEOF(SELF\mapped_item.mapping_target); -END_ENTITY; - -ENTITY repositioned_tessellated_item - SUBTYPE OF (tessellated_item); - location : axis2_placement_3d; -WHERE - WR1: NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_CURVE_SET', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_GEOMETRIC_SET', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_POINT_SET', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_SURFACE_SET', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_SHELL', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_SOLID', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_WIRE'] * - TYPEOF(SELF)) = - 0); -END_ENTITY; - -ENTITY representation - SUPERTYPE OF ((ONEOF(reinforcement_orientation_basis, ply_angle_representation)) ANDOR - (ONEOF(interpolated_configuration_representation, link_motion_representation_along_path)) ANDOR - (ONEOF(kinematic_link_representation, kinematic_topology_structure, - kinematic_topology_directed_structure, kinematic_topology_network_structure, - mechanism_representation, shape_representation)) ANDOR - (ONEOF(kinematic_topology_structure, kinematic_topology_directed_structure, - kinematic_topology_network_structure))); - name : label; - items : SET [1 : ?] OF representation_item; - context_of_items : representation_context; -DERIVE - id : identifier := get_id_value(SELF); - description : text := get_description_value(SELF); -WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; - WR2: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= - 1; -END_ENTITY; - -ENTITY representation_context; - context_identifier : identifier; - context_type : text; -INVERSE - representations_in_context : SET [1:?] OF representation FOR context_of_items; -END_ENTITY; - -ENTITY representation_context_reference; - context_identifier : identifier; -INVERSE - representations_in_context : SET [1:?] OF representation_reference FOR context_of_items; -END_ENTITY; - -ENTITY representation_item - SUPERTYPE OF ((ONEOF(compound_representation_item, mapped_item, - value_representation_item)) ANDOR - ((ONEOF(boolean_representation_item, date_representation_item, date_time_representation_item, - integer_representation_item, logical_representation_item, rational_representation_item, - real_representation_item))) ANDOR - (ONEOF(mapped_item, styled_item))); - name : label; -WHERE - WR1: SIZEOF(using_representations(SELF)) > 0; -END_ENTITY; - -ENTITY representation_item_relationship; - name : label; - description : OPTIONAL text; - relating_representation_item : representation_item; - related_representation_item : representation_item; -END_ENTITY; - -ENTITY representation_map; - mapping_origin : representation_item; - mapped_representation : representation; -INVERSE - map_usage : SET [1:?] OF mapped_item FOR mapping_source; -WHERE - WR1: item_in_context(mapping_origin, mapped_representation\representation.context_of_items); -END_ENTITY; - -ENTITY representation_proxy_item - SUBTYPE OF (representation_item); - item : representation_proxy_select; -END_ENTITY; - -ENTITY representation_reference; - id : identifier; - context_of_items : representation_context_reference; -END_ENTITY; - -ENTITY representation_relationship; - name : label; - description : OPTIONAL text; - rep_1 : representation_or_representation_reference; - rep_2 : representation_or_representation_reference; -END_ENTITY; - -ENTITY representation_relationship_with_transformation - SUBTYPE OF (representation_relationship); - transformation_operator : transformation; -WHERE - WR1: SELF\representation_relationship.rep_1.context_of_items :<>: - SELF\representation_relationship.rep_2.context_of_items; - WR2: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ITEM_DEFINED_TRANSFORMATION' IN - TYPEOF(transformation_operator)) OR - (item_in_context(transformation_operator\item_defined_transformation.transform_item_1, - SELF\representation_relationship.rep_1.context_of_items) AND - item_in_context(transformation_operator\item_defined_transformation.transform_item_2, - SELF\representation_relationship.rep_2.context_of_items)); -END_ENTITY; - -ENTITY representative_shape_representation - SUBTYPE OF (shape_representation); -WHERE - WR1: unique_in_product_definition(SELF) OR unique_in_shape_aspect(SELF); -END_ENTITY; - -ENTITY requirement_assigned_object - SUBTYPE OF (group_assignment); - SELF\group_assignment.assigned_group : requirement_assignment; - items : SET [1 : 1] OF requirement_assigned_item; -END_ENTITY; - -ENTITY requirement_assignment - SUBTYPE OF (characterized_object, group); -END_ENTITY; - -ENTITY requirement_for_action_resource - SUBTYPE OF (action_resource_requirement); - resources : SET [1 : ?] OF action_resource; -END_ENTITY; - -ENTITY requirement_source - SUBTYPE OF (group); -END_ENTITY; - -ENTITY requirement_view_definition_relationship - SUBTYPE OF (product_definition_relationship); -END_ENTITY; - -ENTITY resistance_measure_with_unit - SUBTYPE OF (measure_with_unit); -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RESISTANCE_UNIT' IN - TYPEOF(SELF\measure_with_unit.unit_component); -END_ENTITY; - -ENTITY resistance_unit - SUBTYPE OF (derived_unit); -WHERE - WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit(si_unit_name.ohm); -END_ENTITY; - -ENTITY resource_property; - name : label; - description : text; - resource : characterized_resource_definition; -END_ENTITY; - -ENTITY resource_property_representation; - name : label; - description : text; - property : resource_property; - representation : representation; -END_ENTITY; - -ENTITY resource_requirement_type; - name : label; - description : text; -END_ENTITY; - -ENTITY restriction_function - SUBTYPE OF (maths_function, unary_generic_expression); - SELF\unary_generic_expression.operand : maths_space; -END_ENTITY; - -ENTITY resulting_path - SUBTYPE OF (link_motion_representation_along_path); - controlling_joints : SET [1 : ?] OF kinematic_joint; -END_ENTITY; - -ENTITY retention - SUBTYPE OF (action); -WHERE - WR1: SIZEOF(QUERY(aa - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ACTION_ASSIGNMENT.ASSIGNED_ACTION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.APPLIED_ACTION_ASSIGNMENT' IN TYPEOF(aa)) AND - (aa.role.name = 'retention'))) >= - 1; - WR2: (SIZEOF(QUERY(atia - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.APPLIED_TIME_INTERVAL_ASSIGNMENT.ITEMS') - | (atia.role.name = 'minimum retention period'))) = - 1) AND - (SIZEOF(QUERY(atia - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.APPLIED_TIME_INTERVAL_ASSIGNMENT.ITEMS') - | (atia.role.name = 'maximum retention period'))) = - 1) AND - (SIZEOF(QUERY(atia1 - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.APPLIED_TIME_INTERVAL_ASSIGNMENT.ITEMS') - | (atia1.role.name = 'minimum retention period') AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TIME_INTERVAL_WITH_BOUNDS' IN - TYPEOF(atia1.assigned_time_interval)) AND - (EXISTS(atia1.assigned_time_interval\time_interval_with_bounds.secondary_bound) OR - EXISTS(atia1.assigned_time_interval\time_interval_with_bounds.duration)) AND - (SIZEOF(QUERY(atia2 - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.APPLIED_TIME_INTERVAL_ASSIGNMENT.ITEMS') - | (atia2.role.name = 'maximum retention period') AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TIME_INTERVAL_WITH_BOUNDS' IN - TYPEOF(atia2.assigned_time_interval)) AND - (EXISTS(atia2.assigned_time_interval\time_interval_with_bounds.secondary_bound) OR - EXISTS(atia2.assigned_time_interval\time_interval_with_bounds.duration)) AND - (atia1.assigned_time_interval\time_interval_with_bounds.primary_bound :=: - atia2.assigned_time_interval\time_interval_with_bounds.primary_bound))) = - 1))) = - 1); - WR3: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ACTION_RELATIONSHIP.RELATING_ACTION')) + - SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ACTION_RELATIONSHIP.RELATED_ACTION')) = - 0; -END_ENTITY; - -ENTITY revolute_pair - SUBTYPE OF (low_order_kinematic_pair); -DERIVE - SELF\low_order_kinematic_pair.t_x : BOOLEAN := false; - SELF\low_order_kinematic_pair.t_y : BOOLEAN := false; - SELF\low_order_kinematic_pair.t_z : BOOLEAN := false; - SELF\low_order_kinematic_pair.r_x : BOOLEAN := false; - SELF\low_order_kinematic_pair.r_y : BOOLEAN := false; - SELF\low_order_kinematic_pair.r_z : BOOLEAN := true; -END_ENTITY; - -ENTITY revolute_pair_value - SUBTYPE OF (pair_value); - SELF\pair_value.applies_to_pair : revolute_pair; - actual_rotation : plane_angle_measure; -END_ENTITY; - -ENTITY revolute_pair_with_range - SUBTYPE OF (revolute_pair); - lower_limit_actual_rotation : OPTIONAL plane_angle_measure; - upper_limit_actual_rotation : OPTIONAL plane_angle_measure; -WHERE - WR1: (NOT EXISTS(lower_limit_actual_rotation) OR NOT EXISTS(upper_limit_actual_rotation)) XOR - (lower_limit_actual_rotation < upper_limit_actual_rotation); -END_ENTITY; - -ENTITY revolved_area_solid - SUBTYPE OF (swept_area_solid); - axis : axis1_placement; - angle : plane_angle_measure; -DERIVE - axis_line : line := representation_item('') || geometric_representation_item() || curve() || - line(axis.location, - representation_item('') || geometric_representation_item() || vector(axis.z, 1.0)); -END_ENTITY; - -ENTITY revolved_face_solid - SUBTYPE OF (swept_face_solid); - axis : axis1_placement; - angle : plane_angle_measure; -DERIVE - axis_line : line := representation_item('') || geometric_representation_item() || curve() || - line(axis.location, - representation_item('') || geometric_representation_item() || vector(axis.z, 1.0)); -END_ENTITY; - -ENTITY revolved_face_solid_with_trim_conditions - SUBTYPE OF (revolved_face_solid); - first_trim_condition : trim_condition_select; - second_trim_condition : trim_condition_select; -WHERE - WR1: NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN TYPEOF(first_trim_condition)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN TYPEOF(second_trim_condition))); - WR2: NOT ((('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' IN - TYPEOF(first_trim_condition)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' IN - TYPEOF(second_trim_condition))) AND - (first_trim_condition = second_trim_condition)); -END_ENTITY; - -ENTITY revolved_profile - SUBTYPE OF (feature_definition); -WHERE - WR1: (SELF\characterized_object.description IN ['groove','flat','round','open profile']); - WR2: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(impl_rep.used_representation.items) = 2)))) = - 0)))) = - 0); - WR3: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'radius')))) = - 1)))) = - 0)))) = - 0); - WR4: SIZEOF(QUERY(pdr - <* get_property_definition_representations(SELF) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' IN - TYPEOF(pdr.used_representation)) AND - (pdr.used_representation.name = 'removal direction'))) = - 1; - WR5: ((NOT (SELF\characterized_object.description = 'open profile')) OR - (SIZEOF(QUERY(pds - <* QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd))) - | (NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | ((sa_occ.description = 'outer edge shape occurrence') AND - (SIZEOF(QUERY(sdr - <* QUERY(sar - <* USEDIN(sa_occ, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | ((sar.description = 'profile usage') AND - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') IN - TYPEOF(sar)))) - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OPEN_PATH_PROFILE' IN - TYPEOF(sdr.relating_shape_aspect)) AND - (sdr.relating_shape_aspect.description = - 'outer edge shape')))) = - 1)))) = - 1)))) = - 0)); - WR6: (NOT (SELF\characterized_object.description = 'flat')) OR - (SIZEOF(QUERY(pds - <* QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd))) - | (NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | ((sa_occ.description = 'flat edge shape occurrence') AND - (SIZEOF(QUERY(sdr - <* QUERY(sar - <* USEDIN(sa_occ, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | ((sar.description = 'profile usage') AND - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') IN - TYPEOF(sar)))) - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINEAR_PROFILE' IN - TYPEOF(sdr.relating_shape_aspect)) AND - (sdr.relating_shape_aspect.description = - 'flat edge shape')))) = - 1)))) = - 1)))) = - 0); - WR7: ((NOT (SELF\characterized_object.description = 'round')) OR - (SIZEOF(QUERY(pds - <* QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd))) - | (NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | ((sa_occ.description = 'rounded edge shape occurrence') AND - (SIZEOF(QUERY(sdr - <* QUERY(sar - <* USEDIN(sa_occ, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | ((sar.description = 'profile usage') AND - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') IN - TYPEOF(sar)))) - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PARTIAL_CIRCULAR_PROFILE' IN - TYPEOF(sdr.relating_shape_aspect)) AND - (sdr.relating_shape_aspect.description = - 'rounded edge shape')))) = - 1)))) = - 1)))) = - 0)); - WR8: ((NOT (SELF\characterized_object.description = 'groove')) OR - (SIZEOF(QUERY(pds - <* QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd))) - | (NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | ((sa_occ.description = 'sweep occurrence') AND - (SIZEOF(QUERY(sdr - <* QUERY(sar - <* USEDIN(sa_occ, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | ((sar.description = 'profile usage') AND - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') IN - TYPEOF(sar)))) - | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SQUARE_U_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PARTIAL_CIRCULAR_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROUNDED_U_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VEE_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TEE_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OPEN_PATH_PROFILE'] * - TYPEOF(sdr.relating_shape_aspect)) = - 1) AND - (sdr.relating_shape_aspect.description = 'sweep')))) = - 1)))) = - 1)))) = - 0)); - WR9: SIZEOF(QUERY(pdr - <* get_property_definition_representations(SELF) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN - TYPEOF(pdr.used_representation)) AND - (pdr.used_representation.name = 'maximum feature limit'))) >= - 0; -END_ENTITY; - -ENTITY rgc_with_dimension - SUBTYPE OF (radius_geometric_constraint); - radius_value : positive_length_measure; -END_ENTITY; - -ENTITY rib_top - SUBTYPE OF (feature_definition); -WHERE - WR1: SIZEOF(QUERY(pds - <* QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd)) - | NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | (sa_occ.description = 'rib top condition occurrence') AND - (SIZEOF(QUERY(sdr - <* QUERY(sar - <* USEDIN(sa_occ, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | (sar.description = 'rib top usage') AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN - TYPEOF(sar))) - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RIB_TOP_FLOOR' IN - TYPEOF(sdr.relating_shape_aspect)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RIB_TOP' IN - TYPEOF(sdr.related_shape_aspect.of_shape.definition))))) = - 1))) = - 1))) = - 0; - WR2: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' IN - TYPEOF(pdr.used_representation)) AND - (pdr.used_representation.name = 'removal direction'))) = - 1))) = - 1; - WR3: SIZEOF(QUERY(pdr - <* get_property_definition_representations(SELF) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN - TYPEOF(pdr.used_representation)) AND - (pdr.used_representation.name = 'maximum feature limit'))) >= - 0; -END_ENTITY; - -ENTITY rib_top_floor - SUBTYPE OF (shape_aspect); -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN - TYPEOF(SELF.of_shape.definition); - WR2: SELF.description IN ['planar','complex']; - WR3: SIZEOF(QUERY(fcr - <* QUERY(sar - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') - | (sar.description = 'rib top usage') AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN - TYPEOF(sar))) - | ((fcr.related_shape_aspect.description = 'rib top condition occurrence') AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RIB_TOP' IN - TYPEOF(fcr.related_shape_aspect.of_shape.definition)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RIB_TOP_FLOOR' IN - TYPEOF(fcr.relating_shape_aspect))))) >= - 1; - WR4: (NOT (SELF.description = 'complex')) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION' IN - TYPEOF(pdr.used_representation)) AND - (pdr.used_representation.name = 'rib top face'))) = - 1))) = - 0); - WR5: (NOT (SELF.description = 'planar')) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN - TYPEOF(pdr.used_representation)) AND - (pdr.used_representation.name = 'rib top face'))) = - 1))) = - 0); - WR6: (NOT (SELF.description = 'planar')) OR - (SIZEOF(QUERY(pds - <* QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd)) - | NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | (sa_occ.description = 'boundary occurrence') AND - (SIZEOF(QUERY(sdr - <* QUERY(sar - <* USEDIN(sa_occ, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | (sar.description = 'profile usage') AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN - TYPEOF(sar))) - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_CLOSED_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NGON_CLOSED_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_CLOSED_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLOSED_PATH_PROFILE'] * - TYPEOF(sdr.relating_shape_aspect)) = - 1) AND - (sdr.relating_shape_aspect.description = - 'rib top floor boundary'))) = - 1))) = - 1))) = - 0); -END_ENTITY; - -ENTITY right_angular_wedge - SUBTYPE OF (geometric_representation_item); - position : axis2_placement_3d; - x : positive_length_measure; - y : positive_length_measure; - z : positive_length_measure; - ltx : length_measure; -WHERE - WR1: ((0.0 <= ltx) AND (ltx < x)); -END_ENTITY; - -ENTITY right_circular_cone - SUBTYPE OF (geometric_representation_item); - position : axis1_placement; - height : positive_length_measure; - radius : length_measure; - semi_angle : plane_angle_measure; -WHERE - WR1: radius >= 0.0; -END_ENTITY; - -ENTITY right_circular_cylinder - SUBTYPE OF (geometric_representation_item); - position : axis1_placement; - height : positive_length_measure; - radius : positive_length_measure; -END_ENTITY; - -ENTITY right_to_usage_association - SUBTYPE OF (action_method_relationship); - SELF\action_method_relationship.relating_method : information_usage_right; - SELF\action_method_relationship.related_method : information_right; -DERIVE - right_applied : information_right := SELF\action_method_relationship.related_method; - right_usage : information_usage_right := SELF\action_method_relationship.relating_method; -END_ENTITY; - -ENTITY rigid_link_representation - SUBTYPE OF (kinematic_link_representation); -END_ENTITY; - -ENTITY rigid_subsketch - SUBTYPE OF (subsketch); -END_ENTITY; - -ENTITY role_association; - role : object_role; - item_with_role : role_select; -END_ENTITY; - -ENTITY rolling_curve_pair - SUBTYPE OF (planar_curve_pair); -END_ENTITY; - -ENTITY rolling_curve_pair_value - SUBTYPE OF (pair_value); - SELF\pair_value.applies_to_pair : rolling_curve_pair; - actual_point_on_curve_1 : point_on_curve; -WHERE - WR1: SELF\pair_value.applies_to_pair\planar_curve_pair.curve_1 :=: actual_point_on_curve_1.basis_curve; -END_ENTITY; - -ENTITY rolling_surface_pair - SUBTYPE OF (surface_pair); -END_ENTITY; - -ENTITY rolling_surface_pair_value - SUBTYPE OF (pair_value); - SELF\pair_value.applies_to_pair : rolling_surface_pair; - actual_point_on_surface : point_on_surface; - actual_rotation : plane_angle_measure; -WHERE - WR1: SELF\pair_value.applies_to_pair\surface_pair.surface_1 :=: actual_point_on_surface.basis_surface; -END_ENTITY; - -ENTITY rotation_about_direction - SUBTYPE OF (geometric_representation_item); - direction_of_axis : direction; - rotation_angle : plane_angle_measure; -WHERE - WR1: SIZEOF(direction_of_axis.direction_ratios) = 3; -END_ENTITY; - -ENTITY round_hole - SUBTYPE OF (feature_definition); -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXPLICIT_ROUND_HOLE' IN TYPEOF(SELF)) XOR - (SIZEOF(QUERY(pds - <* QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd))) - | (NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | ((sa_occ.description = 'diameter occurrence') AND - (SIZEOF(QUERY(sdr - <* QUERY(sar - <* USEDIN(sa_occ, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | ((sar.description = 'profile usage') AND - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') IN - TYPEOF(sar)))) - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_CLOSED_PROFILE' IN - TYPEOF(sdr.relating_shape_aspect)) AND - (sdr.name = 'diameter')))) = - 1)))) = - 1)))) = - 0); - WR2: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXPLICIT_ROUND_HOLE' IN TYPEOF(SELF)) XOR - (SIZEOF(QUERY(pds - <* QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd))) - | (NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | ((sa_occ.description = 'hole depth occurrence') AND - (SIZEOF(QUERY(sdr - <* QUERY(sar - <* USEDIN(sa_occ, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | ((sar.description = - 'path feature component usage') AND - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') IN - TYPEOF(sar)))) - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PATH_FEATURE_COMPONENT' IN - TYPEOF(sdr.relating_shape_aspect)) AND - (sdr.name = 'hole depth') AND - (sdr.relating_shape_aspect.description = 'linear')))) = - 1)))) = - 1)))) = - 0); - WR3: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXPLICIT_ROUND_HOLE' IN TYPEOF(SELF)) XOR - (SIZEOF(QUERY(pds - <* QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd))) - | (NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | ((sa_occ.description = 'bottom condition occurrence') AND - (SIZEOF(QUERY(fcr - <* QUERY(sar - <* USEDIN(sa_occ, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | ((sar.description = 'hole bottom usage') AND - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP') IN - TYPEOF(sar)))) - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.HOLE_BOTTOM' IN - TYPEOF(fcr.relating_shape_aspect)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROUND_HOLE' IN - TYPEOF(fcr.related_shape_aspect.of_shape.definition))))) = - 1)))) = - 1)))) = - 0); - WR4: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXPLICIT_ROUND_HOLE' IN TYPEOF(SELF)) XOR - (SIZEOF(QUERY(pds - <* QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd))) - | (NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | ((sa_occ.description = 'change in diameter occurrence') AND - (SIZEOF(QUERY(fcr - <* QUERY(sar - <* USEDIN(sa_occ, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | ((sar.description = 'taper usage') AND - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP') IN - TYPEOF(sar)))) - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TAPER' IN - TYPEOF(fcr.relating_shape_aspect)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROUND_HOLE' IN - TYPEOF(fcr.related_shape_aspect.of_shape.definition))))) = - 1)))) <= - 1)))) = - 0); - WR5: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXPLICIT_ROUND_HOLE' IN TYPEOF(SELF)) XOR - (SIZEOF(QUERY(pdr - <* get_property_definition_representations(SELF) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)))) = - 1); -END_ENTITY; - -ENTITY rounded_end - SUBTYPE OF (feature_definition); -WHERE - WR1: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(impl_rep.used_representation.items) = 1)))) = - 0)))) = - 0); - WR2: (SIZEOF(QUERY(pds - <* QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd))) - | (NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | ((sa_occ.description = 'partial circular boundary occurrence') AND - (SIZEOF(QUERY(sdr - <* QUERY(sar - <* USEDIN(sa_occ, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | ((sar.description = 'profile usage') AND - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') IN - TYPEOF(sar)))) - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PARTIAL_CIRCULAR_PROFILE' IN - TYPEOF(sdr.relating_shape_aspect))))) = - 1)))) = - 1)))) = - 0); - WR3: (SIZEOF(QUERY(pds - <* QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd))) - | (NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | ((sa_occ.description = 'course of travel occurrence') AND - (SIZEOF(QUERY(sdr - <* QUERY(sar - <* USEDIN(sa_occ, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | ((sar.description = - 'path feature component usage') AND - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') IN - TYPEOF(sar)))) - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PATH_FEATURE_COMPONENT' IN - TYPEOF(sdr.relating_shape_aspect)) AND - (sdr.relating_shape_aspect.description = 'linear')))) = - 1)))) = - 1)))) = - 0); - WR4: SIZEOF(QUERY(pdr - <* get_property_definition_representations(SELF) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN - TYPEOF(pdr.used_representation)) AND - (pdr.used_representation.name = 'maximum feature limit'))) >= - 0; -END_ENTITY; - -ENTITY rounded_u_profile - SUBTYPE OF (shape_aspect); -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN - TYPEOF(SELF.of_shape.definition)); - WR2: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation)))) = - 1)))) = - 0); - WR3: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - | (NOT (SIZEOF(impl_rep.used_representation.items) >= 1) AND - (SIZEOF(impl_rep.used_representation.items) <= 2)))) = - 0))) = - 0; - WR4: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF(QUERY(srwp_i - <* pdr.used_representation.items - | (srwp_i.name = 'orientation') OR (srwp_i.name = 'depth'))) = - SIZEOF(pdr.used_representation.items)))) = - 1)) = - 1; - WR5: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'width')))) = - 1)))) = - 0)))) = - 0); - WR6: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN - TYPEOF(pdr.used_representation)) AND - (pdr.used_representation.name = 'profile limit'))) <= - 1))) = - 0; - WR7: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - | NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'depth'))) <= - 1))) = - 0))) = - 0; -END_ENTITY; - -ENTITY roundness_tolerance - SUBTYPE OF (geometric_tolerance); -WHERE - WR1: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' IN TYPEOF(SELF)); -END_ENTITY; - -ENTITY row_representation_item - SUBTYPE OF (compound_representation_item); - SELF\compound_representation_item.item_element : list_representation_item; -END_ENTITY; - -ENTITY row_value - SUBTYPE OF (compound_representation_item); -END_ENTITY; - -ENTITY row_variable - SUBTYPE OF (abstract_variable); -END_ENTITY; - -ENTITY rule_action - SUBTYPE OF (action); -END_ENTITY; - -ENTITY rule_condition - SUBTYPE OF (atomic_formula); -END_ENTITY; - -ENTITY rule_definition - SUBTYPE OF (rule_software_definition); -END_ENTITY; - -ENTITY rule_set - SUBTYPE OF (rule_software_definition); -END_ENTITY; - -ENTITY rule_set_group - SUBTYPE OF (rule_software_definition); -END_ENTITY; - -ENTITY rule_software_definition - SUBTYPE OF (product_definition); -END_ENTITY; - -ENTITY rule_superseded_assignment - SUBTYPE OF (action_assignment); - items : SET [1 : ?] OF rule_superseded_item; -END_ENTITY; - -ENTITY rule_supersedence - SUBTYPE OF (rule_action); -END_ENTITY; - -ENTITY ruled_surface_swept_area_solid - SUBTYPE OF (surface_curve_swept_area_solid); -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_SURFACE' IN TYPEOF(SELF.reference_surface)) AND - (SELF.reference_surface\b_spline_surface.u_degree = 1); - WR2: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PCURVE' IN TYPEOF(SELF.directrix)) OR - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE' IN - TYPEOF(SELF.directrix\surface_curve.curve_3d)) AND - (SELF.directrix\surface_curve.curve_3d\b_spline_curve.degree = - SELF.reference_surface\b_spline_surface.v_degree)); -END_ENTITY; - -ENTITY runout_zone_definition - SUBTYPE OF (tolerance_zone_definition); - orientation : runout_zone_orientation; -END_ENTITY; - -ENTITY runout_zone_orientation; - angle : plane_angle_measure_with_unit; -END_ENTITY; - -ENTITY runout_zone_orientation_reference_direction - SUBTYPE OF (runout_zone_orientation); - orientation_defining_relationship : shape_aspect_relationship; -END_ENTITY; - -ENTITY same_as_external_item_assignment - SUBTYPE OF (external_identification_assignment); - items : SET [0 : ?] OF same_as_item; -END_ENTITY; - -ENTITY satisfied_requirement - SUBTYPE OF (group_assignment); - SELF\group_assignment.assigned_group : satisfies_requirement; - items : SET [1 : 1] OF product_definition; -END_ENTITY; - -ENTITY satisfies_requirement - SUBTYPE OF (group); -END_ENTITY; - -ENTITY satisfying_item - SUBTYPE OF (group_assignment); - SELF\group_assignment.assigned_group : satisfies_requirement; - items : SET [1 : 1] OF requirement_satisfaction_item; -END_ENTITY; - -ENTITY scalar_variable - SUBTYPE OF (abstract_variable); -END_ENTITY; - -ENTITY scan_3d_model - SUBTYPE OF (scanned_data_item); - scanner_info : SET [1 : ?] OF scanner_property; - scanned_points : SET [1 : ?] OF scanned_data_item; -WHERE - WR1: SIZEOF(QUERY(tmp - <* scanned_points - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SCAN_3D_MODEL' IN TYPEOF(tmp))) = - 0; -END_ENTITY; - -ENTITY scan_data_shape_representation - SUBTYPE OF (shape_representation); - SELF\representation.items : SET [1 : ?] OF scanned_data_item; -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GLOBAL_UNIT_ASSIGNED_CONTEXT' IN - TYPEOF(SELF\representation.context_of_items); -END_ENTITY; - -ENTITY scanned_data_item - SUPERTYPE OF (ONEOF(point_cloud_dataset, point_cloud_superdataset, triangulated_point_cloud_dataset, scan_3d_model)) - SUBTYPE OF (geometric_representation_item); -WHERE - WR1: SIZEOF(QUERY(using_rep - <* using_representations(SELF) - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SCAN_DATA_SHAPE_REPRESENTATION' IN - TYPEOF(using_rep)))) = - 0; -END_ENTITY; - -ENTITY scanner_basic_properties - SUBTYPE OF (scanner_property); - scanner_identification : label; - scanner_location : axis2_placement_3d; - scanner_uncertainty : OPTIONAL positive_length_measure; -END_ENTITY; - -ENTITY scanner_property - ABSTRACT SUPERTYPE - SUBTYPE OF (representation_item); -END_ENTITY; - -ENTITY screw_pair - SUBTYPE OF (low_order_kinematic_pair_with_motion_coupling); - pitch : length_measure; -WHERE - WR1: SIZEOF(QUERY(lr - <* SELF\kinematic_pair.associated_link_representations_1 - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RIGID_LINK_REPRESENTATION' IN - TYPEOF(lr)))) = - 0; -END_ENTITY; - -ENTITY screw_pair_value - SUBTYPE OF (pair_value); - SELF\pair_value.applies_to_pair : screw_pair; - actual_rotation : plane_angle_measure; -DERIVE - actual_translation : length_measure := SELF\pair_value.applies_to_pair\screw_pair.pitch * - plane_angle_for_pair_in_radian(SELF\pair_value.applies_to_pair, - actual_rotation) / - (2 * PI); -END_ENTITY; - -ENTITY screw_pair_with_range - SUBTYPE OF (screw_pair); - lower_limit_actual_rotation : OPTIONAL plane_angle_measure; - upper_limit_actual_rotation : OPTIONAL plane_angle_measure; -WHERE - WR1: (NOT EXISTS(lower_limit_actual_rotation) OR NOT EXISTS(upper_limit_actual_rotation)) XOR - (lower_limit_actual_rotation < upper_limit_actual_rotation); -END_ENTITY; - -ENTITY sculptured_solid - SUBTYPE OF (modified_solid); - sculpturing_element : generalized_surface_select; - positive_side : BOOLEAN; -END_ENTITY; - -ENTITY sdgc_with_dimension - SUBTYPE OF (surface_distance_geometric_constraint); - distance_value : non_negative_length_measure; -END_ENTITY; - -ENTITY seam_curve - SUBTYPE OF (surface_curve); -WHERE - WR1: SIZEOF(SELF\surface_curve.associated_geometry) = 2; - WR2: associated_surface(SELF\surface_curve.associated_geometry[1]) = - associated_surface(SELF\surface_curve.associated_geometry[2]); - WR3: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PCURVE' IN TYPEOF(SELF\surface_curve.associated_geometry[1]); - WR4: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PCURVE' IN TYPEOF(SELF\surface_curve.associated_geometry[2]); -END_ENTITY; - -ENTITY seam_edge - SUBTYPE OF (oriented_edge); - pcurve_reference : pcurve; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE' IN TYPEOF(edge_element)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SEAM_CURVE' IN TYPEOF(edge_element\edge_curve.edge_geometry)); - WR2: pcurve_reference IN edge_element\edge_curve.edge_geometry\surface_curve.associated_geometry; -END_ENTITY; - -ENTITY security_classification; - name : label; - purpose : text; - security_level : security_classification_level; -END_ENTITY; - -ENTITY security_classification_assignment - ABSTRACT SUPERTYPE; - assigned_security_classification : security_classification; -DERIVE - role : object_role := get_role(SELF); -WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; -END_ENTITY; - -ENTITY security_classification_level; - name : label; -END_ENTITY; - -ENTITY selector_function - SUBTYPE OF (maths_function, generic_literal); - selector : input_selector; - source_of_domain : maths_space_or_function; -WHERE - WR1: no_cyclic_domain_reference(source_of_domain, [SELF]); - WR2: expression_is_constant(domain_from(source_of_domain)); -END_ENTITY; - -ENTITY self_intersecting_curve - SUBTYPE OF (self_intersecting_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - arc_length_separation_factor : REAL; - interference_tolerance : length_measure; -WHERE - WR1: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE'); - WR2: validate_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE']); - WR3: validate_locations_of_extreme_value_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_CURVE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_CURVE']); - WR4: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); -END_ENTITY; - -ENTITY self_intersecting_geometry - ABSTRACT SUPERTYPE OF (ONEOF(self_intersecting_curve, self_intersecting_surface)) - SUBTYPE OF (inapt_geometry); -END_ENTITY; - -ENTITY self_intersecting_loop - SUBTYPE OF (topology_related_to_self_intersecting_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - arc_length_distance_factor : REAL; - interference_tolerance : length_measure; -WHERE - WR1: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE'); - WR2: validate_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP']); - WR3: validate_locations_of_extreme_value_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_EDGE_CURVE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_EDGE_CURVE']); - WR4: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); -END_ENTITY; - -ENTITY self_intersecting_shell - SUBTYPE OF (topology_related_to_self_intersecting_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - geodesic_separation_factor : REAL; - interference_tolerance : length_measure; -WHERE - WR1: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE'); - WR2: validate_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SET']); - WR3: validate_locations_of_extreme_value_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_FACE_SURFACE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_FACE_SURFACE']); - WR4: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); -END_ENTITY; - -ENTITY self_intersecting_surface - SUBTYPE OF (self_intersecting_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - geodesic_separation_factor : REAL; - interference_tolerance : length_measure; -WHERE - WR1: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE'); - WR2: validate_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE']); - WR3: validate_locations_of_extreme_value_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_SURFACE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_SURFACE']); - WR4: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); -END_ENTITY; - -ENTITY serial_numbered_effectivity - SUBTYPE OF (effectivity); - effectivity_start_id : identifier; - effectivity_end_id : OPTIONAL identifier; -END_ENTITY; - -ENTITY series_composed_function - SUBTYPE OF (maths_function, multiple_arity_generic_expression); - SELF\multiple_arity_generic_expression.operands : LIST [2 : ?] OF maths_function; -WHERE - WR1: composable_sequence(SELF\multiple_arity_generic_expression.operands); -END_ENTITY; - -ENTITY shape_aspect - SUPERTYPE OF ((ONEOF(shape_aspect_occurrence, component_path_shape_aspect) ANDOR constituent_shape_aspect) ANDOR - (ONEOF(harness_node, harness_segment)) ANDOR - (ONEOF(contacting_feature, datum, datum_feature, datum_target, datum_system, - general_datum_reference)) ANDOR - (ONEOF(assembly_shape_constraint, assembly_shape_joint, connectivity_definition, contact_feature, - transport_feature))); - name : label; - description : OPTIONAL text; - of_shape : product_definition_shape; - product_definitional : LOGICAL; -DERIVE - id : identifier := get_id_value(SELF); -UNIQUE - UR1: id, of_shape; -WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; -END_ENTITY; - -ENTITY shape_aspect_associativity - SUBTYPE OF (shape_aspect_relationship); -WHERE - WR1: SELF.relating_shape_aspect.product_definitional; - WR2: NOT (SELF.related_shape_aspect.product_definitional); -END_ENTITY; - -ENTITY shape_aspect_deriving_relationship - SUBTYPE OF (shape_aspect_relationship); - SELF\shape_aspect_relationship.relating_shape_aspect : derived_shape_aspect; -END_ENTITY; - -ENTITY shape_aspect_occurrence - SUBTYPE OF (shape_aspect); - definition : shape_aspect_or_characterized_object; -WHERE - WR1: acyclic_shape_aspect_occurrence(SELF, definition); -END_ENTITY; - -ENTITY shape_aspect_relationship - SUPERTYPE OF (ONEOF(assembly_shape_joint_item_relationship, assembly_shape_constraint_item_relationship, - connectivity_definition_item_relationship, shape_feature_fit_relationship)); - name : label; - description : OPTIONAL text; - relating_shape_aspect : shape_aspect; - related_shape_aspect : shape_aspect; -DERIVE - id : identifier := get_id_value(SELF); -WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; -END_ENTITY; - -ENTITY shape_aspect_relationship_representation_association; - represented_shape_aspect_relationship : shape_aspect_relationship; - representing_representation_relationship : representation_relationship; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATIVE_SHAPE_REPRESENTATION' IN - TYPEOF(representing_representation_relationship\representation_relationship.rep_1)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATIVE_SHAPE_REPRESENTATION' IN - TYPEOF(representing_representation_relationship\representation_relationship.rep_2)); - WR2: (represented_shape_aspect_relationship.relating_shape_aspect IN - using_shape_aspect_of_shape_representation(representing_representation_relationship.rep_1)) AND - (represented_shape_aspect_relationship.related_shape_aspect IN - using_shape_aspect_of_shape_representation(representing_representation_relationship.rep_2)); - WR3: ((find_representative_shape_representation_of_product_definition(using_product_definition_of_shape_aspect(represented_shape_aspect_relationship.relating_shape_aspect)).context_of_items) :=: - (find_representative_shape_representation_of_shape_aspect(represented_shape_aspect_relationship.relating_shape_aspect).context_of_items)) AND - ((find_representative_shape_representation_of_product_definition(using_product_definition_of_shape_aspect(represented_shape_aspect_relationship.related_shape_aspect)).context_of_items) :=: - (find_representative_shape_representation_of_shape_aspect(represented_shape_aspect_relationship.related_shape_aspect).context_of_items)); - WR4: using_product_definition_of_shape_aspect(represented_shape_aspect_relationship.relating_shape_aspect) :<>: - using_product_definition_of_shape_aspect(represented_shape_aspect_relationship.related_shape_aspect); - WR5: find_assembly_root([using_product_definition_of_shape_aspect(represented_shape_aspect_relationship.relating_shape_aspect)]) :=: - find_assembly_root([using_product_definition_of_shape_aspect(represented_shape_aspect_relationship.related_shape_aspect)]); -END_ENTITY; - -ENTITY shape_criteria_representation_with_accuracy - SUBTYPE OF (shape_data_quality_criteria_representation); - required_general_accuracy : SET [1 : ?] OF shape_measurement_accuracy; -END_ENTITY; - -ENTITY shape_data_quality_assessment_by_logical_test - SUBTYPE OF (data_quality_assessment_specification); -END_ENTITY; - -ENTITY shape_data_quality_assessment_by_numerical_test - SUBTYPE OF (data_quality_assessment_specification); - threshold : shape_data_quality_value_limit_type_select; -END_ENTITY; - -ENTITY shape_data_quality_criteria_representation - SUBTYPE OF (data_quality_criteria_representation); -WHERE - WR1: SIZEOF(QUERY(q - <* SELF\representation.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_CRITERION' IN TYPEOF(q))) > - 0; -END_ENTITY; - -ENTITY shape_data_quality_criterion - SUPERTYPE OF (ONEOF(erroneous_data, inapt_data)) - SUBTYPE OF (data_quality_criterion, data_quality_measurement_requirement); - assessment_specification : shape_data_quality_assessment_specification_select; -WHERE - WR1: SIZEOF(USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_QUALITY_CRITERION_ASSESSMENT_ASSOCIATION.CRITERION')) = - 0; - WR2: SIZEOF(QUERY(i1 - <* bag_to_set(USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_ITEM_RELATIONSHIP.RELATED_REPRESENTATION_ITEM')) - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_QUALITY_CRITERION_MEASUREMENT_ASSOCIATION' IN - TYPEOF(i1))) = - 0; - WR3: SIZEOF(QUERY(i1 - <* bag_to_set(USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_ITEM_RELATIONSHIP.RELATING_REPRESENTATION_ITEM')) - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_QUALITY_CRITERION_MEASUREMENT_ASSOCIATION' IN - TYPEOF(i1))) = - 0; -END_ENTITY; - -ENTITY shape_data_quality_criterion_and_accuracy_association; - required_specific_accuracy : shape_measurement_accuracy; - shape_data_quality_criterion : shape_data_quality_criterion; -END_ENTITY; - -ENTITY shape_data_quality_inspected_shape_and_result_relationship - SUBTYPE OF (shape_representation_relationship); - SELF\representation_relationship.rep_1 : shape_representation; - SELF\representation_relationship.rep_2 : shape_data_quality_inspection_result_representation; -WHERE - WR1: SIZEOF(using_product_definition_of_shape_representation(SELF.rep_1) * - bag_to_set(inspected_product_definition(SELF.rep_2))) > - 0; - WR2: SELF.rep_1\representation.context_of_items :=: SELF.rep_2\representation.context_of_items; -END_ENTITY; - -ENTITY shape_data_quality_inspection_criterion_report - SUBTYPE OF (data_quality_inspection_criterion_report); - representative_measured_value : measured_value_select; -END_ENTITY; - -ENTITY shape_data_quality_inspection_instance_report - SUBTYPE OF (data_quality_inspection_instance_report); - SELF\data_quality_inspection_instance_report.inspected_instances : LIST [1 : ?] OF shape_data_quality_inspection_instance_report_item; -END_ENTITY; - -ENTITY shape_data_quality_inspection_instance_report_item - SUBTYPE OF (data_quality_inspection_instance_report_item); - SELF\data_quality_inspection_instance_report_item.inspected_elements : SET [1 : ?] OF inspected_shape_element_select; - measured_value : measured_value_select; -END_ENTITY; - -ENTITY shape_data_quality_inspection_result - SUBTYPE OF (data_quality_inspection_result); - SELF\data_quality_inspection_result.criterion_inspected : shape_data_quality_criterion; -END_ENTITY; - -ENTITY shape_data_quality_inspection_result_representation - SUBTYPE OF (data_quality_inspection_result_representation); -WHERE - WR1: SIZEOF(QUERY(q - <* SELF\representation.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_INSPECTION_RESULT' IN - TYPEOF(q))) > - 0; - WR2: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_REPRESENTATION_CONTEXT' IN - TYPEOF(SELF\representation.context_of_items); - WR3: SIZEOF(USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_INSPECTED_SHAPE_AND_RESULT_RELATIONSHIP.REP_2')) > - 0; -END_ENTITY; - -ENTITY shape_data_quality_lower_value_limit - SUBTYPE OF (shape_data_quality_value_limit); -WHERE - WR1: SELF\qualified_representation_item.qualifiers[1].name = 'minimum'; -END_ENTITY; - -ENTITY shape_data_quality_upper_value_limit - SUBTYPE OF (shape_data_quality_value_limit); -WHERE - WR1: SELF\qualified_representation_item.qualifiers[1].name = 'maximum'; -END_ENTITY; - -ENTITY shape_data_quality_value_limit - ABSTRACT SUPERTYPE OF (ONEOF(shape_data_quality_upper_value_limit, shape_data_quality_lower_value_limit)) - SUBTYPE OF (measure_representation_item, qualified_representation_item); -END_ENTITY; - -ENTITY shape_data_quality_value_range - SUBTYPE OF (compound_representation_item); -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SET_REPRESENTATION_ITEM' IN - TYPEOF(SELF\compound_representation_item.item_element)) AND - ((SIZEOF(SELF\compound_representation_item.item_element) = 2) AND - ((SIZEOF(QUERY(i1 - <* SELF\compound_representation_item.item_element - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN - TYPEOF(i1)))) = - 2) OR - (SIZEOF(QUERY(i2 - <* SELF\compound_representation_item.item_element - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VALUE_REPRESENTATION_ITEM' IN - TYPEOF(i2)))) = - 2))); - WR2: (SIZEOF(QUERY(i <* SELF\compound_representation_item.item_element | (i.name = 'upper limit'))) = 1) AND - (SIZEOF(QUERY(i <* SELF\compound_representation_item.item_element | (i.name = 'lower limit'))) = 1); - WR3: (SIZEOF(QUERY(i1 - <* SELF\compound_representation_item.item_element - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN - TYPEOF(i1)) AND - (SIZEOF(QUERY(i2 - <* SELF\compound_representation_item.item_element - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN - TYPEOF(i2)) AND - (i1 :<>: i2) AND - (i1\measure_with_unit.unit_component :=: - i2\measure_with_unit.unit_component))) = - 1))) = - 2) OR - (SIZEOF(QUERY(i1 - <* SELF\compound_representation_item.item_element - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VALUE_REPRESENTATION_ITEM' IN TYPEOF(i1)) AND - (SIZEOF(QUERY(i2 - <* SELF\compound_representation_item.item_element - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VALUE_REPRESENTATION_ITEM' IN - TYPEOF(i2)) AND - (i1 :<>: i2) AND - (TYPEOF(i1\value_representation_item.value_component) = - TYPEOF(i2\value_representation_item.value_component)))) = - 1))) = - 2); -END_ENTITY; - -ENTITY shape_defining_relationship - SUBTYPE OF (shape_aspect_relationship); -END_ENTITY; - -ENTITY shape_definition_representation - SUBTYPE OF (property_definition_representation); - SELF\property_definition_representation.definition : property_definition; - SELF\property_definition_representation.used_representation : shape_representation; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(definition)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINITION' IN - TYPEOF(definition\property_definition.definition)); -END_ENTITY; - -ENTITY shape_dimension_representation - SUBTYPE OF (shape_representation); - SELF\representation.items : SET [1 : ?] OF shape_dimension_representation_item; -END_ENTITY; - -ENTITY shape_feature_definition - SUBTYPE OF (feature_definition); -END_ENTITY; - -ENTITY shape_feature_definition_element_relationship - SUBTYPE OF (shape_aspect_relationship, characterized_object); -DERIVE - SELF\characterized_object.name : label := SELF\shape_aspect_relationship.name; - SELF\characterized_object.description : text := SELF\shape_aspect_relationship.description; -END_ENTITY; - -ENTITY shape_feature_definition_fit_relationship - SUBTYPE OF (shape_feature_definition_relationship); -END_ENTITY; - -ENTITY shape_feature_definition_relationship - SUBTYPE OF (characterized_object_relationship, characterized_object); - SELF\characterized_object_relationship.relating_object : shape_feature_definition; - SELF\characterized_object_relationship.related_object : shape_feature_definition; -DERIVE - SELF\characterized_object.name : label := SELF\characterized_object_relationship.name; - SELF\characterized_object.description : text := SELF\characterized_object_relationship.description; -END_ENTITY; - -ENTITY shape_feature_fit_relationship - SUBTYPE OF (shape_aspect_relationship, characterized_object); -DERIVE - SELF\characterized_object.name : label := SELF\shape_aspect_relationship.name; - SELF\characterized_object.description : text := SELF\shape_aspect_relationship.description; -END_ENTITY; - -ENTITY shape_inspection_result_accuracy_association; - applied_specific_accuracy : shape_measurement_accuracy; - shape_data_quality_result : shape_data_quality_inspection_result; -END_ENTITY; - -ENTITY shape_inspection_result_representation_with_accuracy - SUBTYPE OF (shape_data_quality_inspection_result_representation); - applied_general_accuracy : SET [1 : ?] OF shape_measurement_accuracy; -END_ENTITY; - -ENTITY shape_measurement_accuracy; - description : text; - range : shape_data_quality_value_limit_type_select; -END_ENTITY; - -ENTITY shape_representation - SUBTYPE OF (representation); -END_ENTITY; - -ENTITY shape_representation_reference - SUBTYPE OF (representation_reference); -END_ENTITY; - -ENTITY shape_representation_relationship - SUBTYPE OF (representation_relationship); -WHERE - WR1: SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_REFERENCE'] * - (TYPEOF(SELF\representation_relationship.rep_1) + TYPEOF(SELF\representation_relationship.rep_2))) >= - 1; -END_ENTITY; - -ENTITY shape_representation_with_parameters - SUBTYPE OF (shape_representation); - SELF\representation.items : SET [1 : ?] OF shape_representation_with_parameters_items; -END_ENTITY; - -ENTITY shape_summary_request_with_representative_value - SUBTYPE OF (summary_report_request); -END_ENTITY; - -ENTITY shell_based_surface_model - SUBTYPE OF (geometric_representation_item); - sbsm_boundary : SET [1 : ?] OF shell; -WHERE - WR1: constraints_geometry_shell_based_surface_model(SELF); -END_ENTITY; - -ENTITY shell_based_wireframe_model - SUBTYPE OF (geometric_representation_item); - sbwm_boundary : SET [1 : ?] OF shell; -WHERE - WR1: constraints_geometry_shell_based_wireframe_model(SELF); -END_ENTITY; - -ENTITY shell_based_wireframe_shape_representation - SUBTYPE OF (shape_representation); -WHERE - WR1: SIZEOF(QUERY(it - <* SELF.items - | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHELL_BASED_WIREFRAME_MODEL', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D'] * - TYPEOF(it)) = - 1))) = - 0; - WR2: SIZEOF(QUERY(it - <* SELF.items - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHELL_BASED_WIREFRAME_MODEL', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM'] * - TYPEOF(it)) = - 1))) >= - 1; - WR3: SIZEOF(QUERY(sbwm - <* QUERY(it - <* SELF.items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN - TYPEOF(it))) - | NOT (SIZEOF(QUERY(ws - <* QUERY(sb - <* sbwm\shell_based_wireframe_model.sbwm_boundary - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.WIRE_SHELL' IN - TYPEOF(sb))) - | NOT (SIZEOF(QUERY(eloop - <* QUERY(wsb - <* ws\wire_shell.wire_shell_extent - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN - TYPEOF(wsb))) - | NOT (SIZEOF(QUERY(el - <* eloop\path.edge_list - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE' IN - TYPEOF(el.edge_element)))) = - 0))) = - 0))) = - 0))) = - 0; - WR4: SIZEOF(QUERY(sbwm - <* QUERY(it - <* SELF.items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN - TYPEOF(it))) - | NOT (SIZEOF(QUERY(ws - <* QUERY(sb - <* sbwm\shell_based_wireframe_model.sbwm_boundary - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.WIRE_SHELL' IN - TYPEOF(sb))) - | NOT (SIZEOF(QUERY(eloop - <* QUERY(wsb - <* ws\wire_shell.wire_shell_extent - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN - TYPEOF(wsb))) - | NOT (SIZEOF(QUERY(pline_el - <* QUERY(el - <* eloop\path.edge_list - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYLINE' IN - TYPEOF(el.edge_element\edge_curve.edge_geometry))) - | NOT (SIZEOF(pline_el.edge_element\edge_curve.edge_geometry\polyline.points) > - 2))) = - 0))) = - 0))) = - 0))) = - 0; - WR5: SIZEOF(QUERY(sbwm - <* QUERY(it - <* SELF.items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN - TYPEOF(it))) - | NOT (SIZEOF(QUERY(ws - <* QUERY(sb - <* sbwm\shell_based_wireframe_model.sbwm_boundary - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.WIRE_SHELL' IN - TYPEOF(sb))) - | NOT (SIZEOF(QUERY(eloop - <* QUERY(wsb - <* ws\wire_shell.wire_shell_extent - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN - TYPEOF(wsb))) - | NOT (SIZEOF(QUERY(el - <* eloop\path.edge_list - | NOT valid_wireframe_edge_curve(el.edge_element\edge_curve.edge_geometry))) = - 0))) = - 0))) = - 0))) = - 0; - WR6: SIZEOF(QUERY(sbwm - <* QUERY(it - <* SELF.items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN - TYPEOF(it))) - | NOT (SIZEOF(QUERY(ws - <* QUERY(sb - <* sbwm\shell_based_wireframe_model.sbwm_boundary - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.WIRE_SHELL' IN - TYPEOF(sb))) - | NOT (SIZEOF(QUERY(eloop - <* QUERY(wsb - <* ws\wire_shell.wire_shell_extent - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN - TYPEOF(wsb))) - | NOT (SIZEOF(QUERY(el - <* eloop\path.edge_list - | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN - TYPEOF(el.edge_element.edge_start)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN - TYPEOF(el.edge_element.edge_end))))) = - 0))) = - 0))) = - 0))) = - 0; - WR7: SIZEOF(QUERY(sbwm - <* QUERY(it - <* SELF.items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN - TYPEOF(it))) - | NOT (SIZEOF(QUERY(ws - <* QUERY(sb - <* sbwm\shell_based_wireframe_model.sbwm_boundary - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.WIRE_SHELL' IN - TYPEOF(sb))) - | NOT (SIZEOF(QUERY(eloop - <* QUERY(wsb - <* ws\wire_shell.wire_shell_extent - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN - TYPEOF(wsb))) - | NOT (SIZEOF(QUERY(el - <* eloop\path.edge_list - | NOT (valid_wireframe_vertex_point(el.edge_element.edge_start\vertex_point.vertex_geometry) AND - valid_wireframe_vertex_point(el.edge_element.edge_end\vertex_point.vertex_geometry)))) = - 0))) = - 0))) = - 0))) = - 0; - WR8: SIZEOF(QUERY(sbwm - <* QUERY(it - <* SELF.items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN - TYPEOF(it))) - | NOT (SIZEOF(QUERY(ws - <* QUERY(sb - <* sbwm\shell_based_wireframe_model.sbwm_boundary - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.WIRE_SHELL' IN - TYPEOF(sb))) - | NOT (SIZEOF(QUERY(vloop - <* QUERY(wsb - <* ws\wire_shell.wire_shell_extent - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_LOOP' IN - TYPEOF(wsb))) - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN - TYPEOF(vloop\vertex_loop.loop_vertex)))) = - 0))) = - 0))) = - 0; - WR9: SIZEOF(QUERY(sbwm - <* QUERY(it - <* SELF.items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN - TYPEOF(it))) - | NOT (SIZEOF(QUERY(ws - <* QUERY(sb - <* sbwm\shell_based_wireframe_model.sbwm_boundary - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.WIRE_SHELL' IN - TYPEOF(sb))) - | NOT (SIZEOF(QUERY(vloop - <* QUERY(wsb - <* ws\wire_shell.wire_shell_extent - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_LOOP' IN - TYPEOF(wsb))) - | NOT valid_wireframe_vertex_point(vloop\vertex_loop.loop_vertex\vertex_point.vertex_geometry))) = - 0))) = - 0))) = - 0; - WR10: SIZEOF(QUERY(sbwm - <* QUERY(it - <* SELF.items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN - TYPEOF(it))) - | NOT (SIZEOF(QUERY(vs - <* QUERY(sb - <* sbwm\shell_based_wireframe_model.sbwm_boundary - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_SHELL' IN - TYPEOF(sb))) - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN - TYPEOF(vs\vertex_shell.vertex_shell_extent.loop_vertex)))) = - 0))) = - 0; - WR11: SIZEOF(QUERY(sbwm - <* QUERY(it - <* SELF.items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN - TYPEOF(it))) - | NOT (SIZEOF(QUERY(vs - <* QUERY(sb - <* sbwm\shell_based_wireframe_model.sbwm_boundary - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_SHELL' IN - TYPEOF(sb))) - | NOT valid_wireframe_vertex_point(vs\vertex_shell.vertex_shell_extent.loop_vertex\vertex_point.vertex_geometry))) = - 0))) = - 0; - WR12: SIZEOF(QUERY(mi - <* QUERY(it - <* SELF.items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF(it))) - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHELL_BASED_WIREFRAME_SHAPE_REPRESENTATION' IN - TYPEOF(mi\mapped_item.mapping_source.mapped_representation)))) = - 0; - WR13: SELF.context_of_items\geometric_representation_context.coordinate_space_dimension = 3; -END_ENTITY; - -ENTITY shelled_solid - SUPERTYPE OF (ONEOF(double_offset_shelled_solid, complex_shelled_solid)) - SUBTYPE OF (modified_solid); - deleted_face_set : SET [1 : ?] OF face_surface; - thickness : length_measure; -WHERE - WR1: thickness <> 0; -END_ENTITY; - -ENTITY short_length_curve - SUBTYPE OF (nearly_degenerate_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' IN - TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN - value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE'); - WR3: validate_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE']); - WR4: validate_locations_of_extreme_value_type(SELF, []); - WR5: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); -END_ENTITY; - -ENTITY short_length_curve_segment - SUBTYPE OF (geometry_with_local_near_degeneracy); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' IN - TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN - value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE'); - WR3: validate_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE']); - WR4: validate_locations_of_extreme_value_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE_SEGMENT']); - WR5: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); -END_ENTITY; - -ENTITY short_length_edge - SUBTYPE OF (topology_related_to_nearly_degenerate_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' IN - TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN - value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE'); - WR3: validate_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE']); - WR4: validate_locations_of_extreme_value_type(SELF, []); - WR5: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); -END_ENTITY; - -ENTITY si_absorbed_dose_unit - SUBTYPE OF (absorbed_dose_unit, si_unit); -WHERE - WR1: SELF\si_unit.name = si_unit_name.gray; - WR2: NOT EXISTS(SELF\derived_unit.name); -END_ENTITY; - -ENTITY si_capacitance_unit - SUBTYPE OF (capacitance_unit, si_unit); -WHERE - WR1: SELF\si_unit.name = si_unit_name.farad; - WR2: NOT EXISTS(SELF\derived_unit.name); -END_ENTITY; - -ENTITY si_conductance_unit - SUBTYPE OF (conductance_unit, si_unit); -WHERE - WR1: SELF\si_unit.name = si_unit_name.siemens; - WR2: NOT EXISTS(SELF\derived_unit.name); -END_ENTITY; - -ENTITY si_dose_equivalent_unit - SUBTYPE OF (dose_equivalent_unit, si_unit); -WHERE - WR1: SELF\si_unit.name = si_unit_name.sievert; - WR2: NOT EXISTS(SELF\derived_unit.name); -END_ENTITY; - -ENTITY si_electric_charge_unit - SUBTYPE OF (electric_charge_unit, si_unit); -WHERE - WR1: SELF\si_unit.name = si_unit_name.coulomb; - WR2: NOT EXISTS(SELF\derived_unit.name); -END_ENTITY; - -ENTITY si_electric_potential_unit - SUBTYPE OF (electric_potential_unit, si_unit); -WHERE - WR1: SELF\si_unit.name = si_unit_name.volt; - WR2: NOT EXISTS(SELF\derived_unit.name); -END_ENTITY; - -ENTITY si_energy_unit - SUBTYPE OF (energy_unit, si_unit); -WHERE - WR1: SELF\si_unit.name = si_unit_name.joule; - WR2: NOT EXISTS(SELF\derived_unit.name); -END_ENTITY; - -ENTITY si_force_unit - SUBTYPE OF (force_unit, si_unit); -WHERE - WR1: SELF\si_unit.name = si_unit_name.newton; - WR2: NOT EXISTS(SELF\derived_unit.name); -END_ENTITY; - -ENTITY si_frequency_unit - SUBTYPE OF (frequency_unit, si_unit); -WHERE - WR1: SELF\si_unit.name = si_unit_name.hertz; - WR2: NOT EXISTS(SELF\derived_unit.name); -END_ENTITY; - -ENTITY si_illuminance_unit - SUBTYPE OF (illuminance_unit, si_unit); -WHERE - WR1: SELF\si_unit.name = si_unit_name.lux; - WR2: NOT EXISTS(SELF\derived_unit.name); -END_ENTITY; - -ENTITY si_inductance_unit - SUBTYPE OF (inductance_unit, si_unit); -WHERE - WR1: SELF\si_unit.name = si_unit_name.henry; - WR2: NOT EXISTS(SELF\derived_unit.name); -END_ENTITY; - -ENTITY si_magnetic_flux_density_unit - SUBTYPE OF (magnetic_flux_density_unit, si_unit); -WHERE - WR1: SELF\si_unit.name = si_unit_name.tesla; - WR2: NOT EXISTS(SELF\derived_unit.name); -END_ENTITY; - -ENTITY si_magnetic_flux_unit - SUBTYPE OF (magnetic_flux_unit, si_unit); -WHERE - WR1: SELF\si_unit.name = si_unit_name.weber; - WR2: NOT EXISTS(SELF\derived_unit.name); -END_ENTITY; - -ENTITY si_power_unit - SUBTYPE OF (power_unit, si_unit); -WHERE - WR1: SELF\si_unit.name = si_unit_name.watt; - WR2: NOT EXISTS(SELF\derived_unit.name); -END_ENTITY; - -ENTITY si_pressure_unit - SUBTYPE OF (pressure_unit, si_unit); -WHERE - WR1: SELF\si_unit.name = si_unit_name.pascal; - WR2: NOT EXISTS(SELF\derived_unit.name); -END_ENTITY; - -ENTITY si_radioactivity_unit - SUBTYPE OF (radioactivity_unit, si_unit); -WHERE - WR1: SELF\si_unit.name = si_unit_name.becquerel; - WR2: NOT EXISTS(SELF\derived_unit.name); -END_ENTITY; - -ENTITY si_resistance_unit - SUBTYPE OF (resistance_unit, si_unit); -WHERE - WR1: SELF\si_unit.name = si_unit_name.ohm; - WR2: NOT EXISTS(SELF\derived_unit.name); -END_ENTITY; - -ENTITY si_unit - SUBTYPE OF (named_unit); - prefix : OPTIONAL si_prefix; - name : si_unit_name; -DERIVE - SELF\named_unit.dimensions : dimensional_exponents := dimensions_for_si_unit(name); -WHERE - WR1: NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MASS_UNIT' IN TYPEOF(SELF)) AND - (SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DERIVED_UNIT_ELEMENT.UNIT')) > 0)) OR - (prefix = si_prefix.kilo); -END_ENTITY; - -ENTITY simple_boolean_expression - ABSTRACT SUPERTYPE OF (ONEOF(boolean_literal, boolean_variable)) - SUBTYPE OF (boolean_expression, simple_generic_expression); -END_ENTITY; - -ENTITY simple_clause - SUBTYPE OF (compound_representation_item); -END_ENTITY; - -ENTITY simple_generic_expression - ABSTRACT SUPERTYPE OF (ONEOF(generic_literal, generic_variable)) - SUBTYPE OF (generic_expression); -END_ENTITY; - -ENTITY simple_numeric_expression - ABSTRACT SUPERTYPE OF (ONEOF(literal_number, numeric_variable)) - SUBTYPE OF (numeric_expression, simple_generic_expression); -END_ENTITY; - -ENTITY simple_string_expression - ABSTRACT SUPERTYPE OF (ONEOF(string_literal, string_variable)) - SUBTYPE OF (string_expression, simple_generic_expression); -END_ENTITY; - -ENTITY simplified_counterbore_hole_definition - SUBTYPE OF (counterbore_hole_definition); -WHERE - WR1: SIZEOF(SELF\explicit_composite_hole.placement\representation.items) = 1; -END_ENTITY; - -ENTITY simplified_counterdrill_hole_definition - SUBTYPE OF (counterdrill_hole_definition); -WHERE - WR1: SIZEOF(SELF\explicit_composite_hole.placement\representation.items) = 1; -END_ENTITY; - -ENTITY simplified_countersink_hole_definition - SUBTYPE OF (countersink_hole_definition); -WHERE - WR1: SIZEOF(SELF\explicit_composite_hole.placement\representation.items) = 1; -END_ENTITY; - -ENTITY simplified_spotface_hole_definition - SUBTYPE OF (spotface_hole_definition, simplified_counterbore_hole_definition); -END_ENTITY; - -ENTITY simultaneous_constraint_group - SUBTYPE OF (variational_representation_item); - constraint_group : SET [2 : ?] OF constraint_group_member; -WHERE - WR1: SIZEOF(QUERY(q - <* using_representations(SELF) - | SIZEOF(QUERY(r - <* q.items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SIMULTANEOUS_CONSTRAINT_GROUP' IN - TYPEOF(r)) AND - (SIZEOF(QUERY(s - <* constraint_group - | (s IN r\simultaneous_constraint_group.constraint_group) AND - NOT (r :=: SELF))) > - 0))) > - 0)) = - 0; - WR2: SIZEOF(QUERY(q - <* using_representations(constraint_group[1]) - | (SIZEOF(QUERY(r <* constraint_group | item_in_context(r, q.context_of_items))) = - SIZEOF(constraint_group)))) > - 0; - WR3: SIZEOF(QUERY(q - <* constraint_group - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXPLICIT_CONSTRAINT' IN TYPEOF(q)) AND - (SIZEOF(QUERY(r - <* q.constrained_elements - | SIZEOF(QUERY(s <* constraint_group | r IN s.reference_elements)) > 0)) > - 0)))) = - 0; -END_ENTITY; - -ENTITY sin_function - SUBTYPE OF (unary_function_call); -END_ENTITY; - -ENTITY single_area_csg_2d_shape_representation - SUBTYPE OF (csg_2d_shape_representation); - SELF\representation.items : SET [1 : ?] OF csg_2d_area_select; -WHERE - WR1: SIZEOF(QUERY(it - <* SELF.items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF(it)))) = - 0; - WR2: SIZEOF(QUERY(it - <* SELF.items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CSG_SOLID_2D' IN TYPEOF(it)))) = - 1; -END_ENTITY; - -ENTITY single_boundary_csg_2d_shape_representation - SUBTYPE OF (single_area_csg_2d_shape_representation); -WHERE - WR1: SIZEOF(QUERY(it - <* SELF.items - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CSG_PRIMITIVE_SOLID_2D' IN TYPEOF(it)) AND - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRIMITIVE_2D_WITH_INNER_BOUNDARY') IN - TYPEOF(it\csg_primitive_solid_2d.tree_root_expression))))) = - 0; -END_ENTITY; - -ENTITY single_property_is_definition - SUBTYPE OF (property_definition); - SELF\property_definition.definition : product_definition; -UNIQUE - UR1: definition; -END_ENTITY; - -ENTITY single_texture_style_tessellation_specification - SUBTYPE OF (texture_style_tessellation_specification); - texture_image : label; - texture_coordinates : LIST [1 : ?] OF LIST [2 : 2] OF non_negative_real; - texture_format : texture_file_type; - repeating_pattern : BOOLEAN; -END_ENTITY; - -ENTITY skew_line_distance_geometric_constraint - SUBTYPE OF (explicit_geometric_constraint); - SELF\explicit_constraint.constrained_elements : SET [1 : 2] OF line; - SELF\explicit_constraint.reference_elements : SET [0 : 1] OF line; - distance_value : non_negative_length_measure; -WHERE - WR1: SIZEOF(SELF\explicit_constraint.constrained_elements + SELF\explicit_constraint.reference_elements) = 2; -END_ENTITY; - -ENTITY slash_expression - SUBTYPE OF (binary_numeric_expression); -END_ENTITY; - -ENTITY sliding_curve_pair - SUBTYPE OF (planar_curve_pair); -END_ENTITY; - -ENTITY sliding_curve_pair_value - SUBTYPE OF (pair_value); - SELF\pair_value.applies_to_pair : sliding_curve_pair; - actual_point_on_curve_1 : point_on_curve; - actual_point_on_curve_2 : point_on_curve; -WHERE - WR1: SELF\pair_value.applies_to_pair\planar_curve_pair.curve_1 :=: actual_point_on_curve_1.basis_curve; - WR2: SELF\pair_value.applies_to_pair\planar_curve_pair.curve_2 :=: actual_point_on_curve_2.basis_curve; -END_ENTITY; - -ENTITY sliding_surface_pair - SUBTYPE OF (surface_pair); -END_ENTITY; - -ENTITY sliding_surface_pair_value - SUBTYPE OF (pair_value); - SELF\pair_value.applies_to_pair : sliding_surface_pair; - actual_point_on_surface_1 : point_on_surface; - actual_point_on_surface_2 : point_on_surface; - actual_rotation : plane_angle_measure; -WHERE - WR1: SELF\pair_value.applies_to_pair\surface_pair.surface_1 :=: actual_point_on_surface_1.basis_surface; - WR2: SELF\pair_value.applies_to_pair\surface_pair.surface_2 :=: actual_point_on_surface_2.basis_surface; -END_ENTITY; - -ENTITY slot - SUBTYPE OF (feature_definition); -WHERE - WR1: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(impl_rep.used_representation.items) = 1)))) = - 0)))) = - 0; - WR2: SIZEOF(QUERY(pds - <* QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd))) - | (NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | ((sa_occ.description = 'swept shape occurrence') AND - (SIZEOF(QUERY(sdr - <* QUERY(sar - <* USEDIN(sa_occ, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | ((sar.description = 'profile usage') AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN - TYPEOF(sar)))) - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SQUARE_U_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PARTIAL_CIRCULAR_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROUNDED_U_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VEE_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TEE_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OPEN_PATH_PROFILE'] * - TYPEOF(sdr.relating_shape_aspect)) = - 1))) = - 1)))) = - 1)))) = - 0; - WR3: SIZEOF(QUERY(pds - <* QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd))) - | (NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | ((sa_occ.description = 'course of travel occurrence') AND - (SIZEOF(QUERY(sdr - <* QUERY(sar - <* USEDIN(sa_occ, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | ((sar.description = - 'path feature component usage') AND - ((sar.name = 'course of travel') AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN - TYPEOF(sar))))) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PATH_FEATURE_COMPONENT' IN - TYPEOF(sdr.relating_shape_aspect)))) = - 1)))) = - 1)))) = - 0; - WR4: SIZEOF(QUERY(pds - <* QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd))) - | (NOT ((SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | ((sa_occ.description = 'end condition occurrence') AND - (SIZEOF(QUERY(fcr - <* QUERY(sar - <* USEDIN(sa_occ, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | (((sar.description = 'slot end usage') AND - (sar.name IN - ['course of travel start', - 'course of travel end'])) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN - TYPEOF(sar)))) - | ((('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SLOT_END' IN - TYPEOF(fcr.relating_shape_aspect)) AND - (fcr.relating_shape_aspect.description IN - ['open','radiused','flat','woodruff'])) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SLOT' IN - TYPEOF(fcr.related_shape_aspect.of_shape.definition))))) = - 1)))) = - 2) OR - (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | ((sa_occ.description = 'end condition occurrence') AND - (SIZEOF(QUERY(fcr - <* QUERY(sar - <* USEDIN(sa_occ, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | (((sar.description = 'slot end usage') AND - (sar.name IN - ['course of travel start', - 'course of travel end'])) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN - TYPEOF(sar)))) - | ((('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SLOT_END' IN - TYPEOF(fcr.relating_shape_aspect)) AND - (fcr.relating_shape_aspect.description IN ['loop'])) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SLOT' IN - TYPEOF(fcr.related_shape_aspect.of_shape.definition))))) = - 1)))) = - 1))))) = - 0; - WR5: (NOT (SIZEOF(QUERY(pds - <* QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd))) - | (NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | ((sa_occ.description = 'end condition occurrence') AND - (SIZEOF(QUERY(fcr - <* QUERY(sar - <* USEDIN(sa_occ, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | (((sar.description = 'slot end usage') AND - (sar.name IN - ['course of travel start', - 'course of travel end'])) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN - TYPEOF(sar)))) - | ((('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SLOT_END' IN - TYPEOF(fcr.relating_shape_aspect)) AND - (fcr.relating_shape_aspect.description IN - ['loop'])) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SLOT' IN - TYPEOF(fcr.related_shape_aspect.of_shape.definition))))) = - 1)))) = - 1)))) = - 0) OR - (SIZEOF(QUERY(pds - <* QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd))) - | (NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | ((sa_occ.description = 'course of travel occurrence') AND - (SIZEOF(QUERY(sdr - <* QUERY(sar - <* USEDIN(sa_occ, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | ((sar.description = - 'path feature component usage') AND - ((sar.name = 'course of travel') AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN - TYPEOF(sar))))) - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PATH_FEATURE_COMPONENT' IN - TYPEOF(sdr.relating_shape_aspect)) AND - (sdr.relating_shape_aspect.description IN - ['complex','complete circular'])))) = - 1)))) = - 1)))) = - 0)); - WR6: SIZEOF(QUERY(pdr - <* get_property_definition_representations(SELF) - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN - TYPEOF(pdr.used_representation)) AND - (pdr.used_representation.name = 'maximum feature limit')))) >= - 0; -END_ENTITY; - -ENTITY slot_end - SUBTYPE OF (shape_aspect); -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN - TYPEOF(SELF.of_shape.definition); - WR2: SELF.description IN ['open','radiused','flat','woodruff','loop']; - WR3: (NOT (SELF.description IN ['open','radiused','loop'])) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation)))) = - 0)))) = - 0); - WR4: (NOT (SELF.description IN ['flat','woodruff'])) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation)))) = - 1)))) = - 0); - WR5: (NOT (SELF.description IN ['flat'])) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(impl_rep.used_representation.items) = 2)))) = - 0)))) = - 0); - WR6: (NOT (SELF.description = 'flat')) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'first radius')))) = - 1)))) = - 0)))) = - 0); - WR7: (NOT (SELF.description = 'flat')) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'second radius')))) = - 1)))) = - 0)))) = - 0); - WR8: (NOT (SELF.description = 'woodruff')) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN - TYPEOF(it)) AND - (it.name = 'radius')))) = - 1)))) = - 0)))) = - 0); - WR9: (NOT (SELF.description IN ['woodruff'])) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(impl_rep.used_representation.items) = 1)))) = - 0)))) = - 0); - WR10: SIZEOF(QUERY(fcr - <* QUERY(sar - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') - | (((sar.description = 'slot end usage') AND - (sar.name IN ['course of travel start','course of travel end'])) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN - TYPEOF(sar)))) - | (((fcr.related_shape_aspect.description = 'end condition occurrence') AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SLOT' IN - TYPEOF(fcr.related_shape_aspect.of_shape.definition))) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SLOT_END' IN - TYPEOF(fcr.relating_shape_aspect))))) >= - 1; -END_ENTITY; - -ENTITY small_area_face - SUBTYPE OF (topology_related_to_nearly_degenerate_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' IN - TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_MEASURE' IN - value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_MEASURE'); - WR3: validate_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE']); - WR4: validate_locations_of_extreme_value_type(SELF, []); - WR5: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_MEASURE']); -END_ENTITY; - -ENTITY small_area_surface - SUBTYPE OF (nearly_degenerate_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' IN - TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_MEASURE' IN - value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_MEASURE'); - WR3: validate_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE']); - WR4: validate_locations_of_extreme_value_type(SELF, []); - WR5: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_MEASURE']); -END_ENTITY; - -ENTITY small_area_surface_patch - SUBTYPE OF (geometry_with_local_near_degeneracy); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' IN - TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_MEASURE' IN - value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_MEASURE'); - WR3: validate_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_SURFACE']); - WR4: validate_locations_of_extreme_value_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_SURFACE_PATCH']); - WR5: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_MEASURE']); -END_ENTITY; - -ENTITY small_volume_solid - SUBTYPE OF (inapt_manifold_solid_brep); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' IN - TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VOLUME_MEASURE' IN - value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VOLUME_MEASURE'); - WR3: validate_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SOLID_BREP']); - WR4: validate_locations_of_extreme_value_type(SELF, []); - WR5: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VOLUME_MEASURE']); -END_ENTITY; - -ENTITY software_for_data_quality_check; - description : text; - software_name : text; - software_version : text; - data_quality : data_quality_definition_representation_relationship; -END_ENTITY; - -ENTITY solid_angle_measure_with_unit - SUBTYPE OF (measure_with_unit); -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SOLID_ANGLE_UNIT' IN - TYPEOF(SELF\measure_with_unit.unit_component); -END_ENTITY; - -ENTITY solid_angle_unit - SUBTYPE OF (named_unit); -WHERE - WR1: (SELF\named_unit.dimensions.length_exponent = 0.0) AND (SELF\named_unit.dimensions.mass_exponent = 0.0) AND - (SELF\named_unit.dimensions.time_exponent = 0.0) AND - (SELF\named_unit.dimensions.electric_current_exponent = 0.0) AND - (SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0.0) AND - (SELF\named_unit.dimensions.amount_of_substance_exponent = 0.0) AND - (SELF\named_unit.dimensions.luminous_intensity_exponent = 0.0); -END_ENTITY; - -ENTITY solid_curve_font - SUBTYPE OF (pre_defined_curve_font); -END_ENTITY; - -ENTITY solid_model - SUPERTYPE OF (ONEOF(csg_solid, manifold_solid_brep, swept_face_solid, swept_area_solid, swept_disk_solid, - solid_replica)) - SUBTYPE OF (geometric_representation_item); -END_ENTITY; - -ENTITY solid_replica - SUBTYPE OF (solid_model); - parent_solid : solid_model; - transformation : cartesian_transformation_operator_3d; -WHERE - WR1: acyclic_solid_replica(SELF, parent_solid); - WR2: parent_solid\geometric_representation_item.dim = 3; -END_ENTITY; - -ENTITY solid_with_angle_based_chamfer - SUBTYPE OF (solid_with_chamfered_edges); - offset_distance : positive_length_measure; - left_offset : BOOLEAN; - offset_angle : positive_plane_angle_measure; -END_ENTITY; - -ENTITY solid_with_chamfered_edges - ABSTRACT SUPERTYPE OF (ONEOF(solid_with_single_offset_chamfer, solid_with_double_offset_chamfer, - solid_with_angle_based_chamfer)) - SUBTYPE OF (edge_blended_solid); -END_ENTITY; - -ENTITY solid_with_circular_pattern - SUPERTYPE OF (solid_with_incomplete_circular_pattern) - SUBTYPE OF (solid_with_shape_element_pattern); - replicate_count : positive_integer; - angular_spacing : plane_angle_measure; - radial_alignment : BOOLEAN; - reference_point : point; -END_ENTITY; - -ENTITY solid_with_circular_pocket - SUBTYPE OF (solid_with_pocket); - pocket_radius : positive_length_measure; -WHERE - WR1: SELF\solid_with_pocket.floor_blend_radius <= pocket_radius; -END_ENTITY; - -ENTITY solid_with_circular_protrusion - SUBTYPE OF (solid_with_protrusion); - protrusion_radius : positive_length_measure; -END_ENTITY; - -ENTITY solid_with_constant_radius_edge_blend - SUBTYPE OF (edge_blended_solid); - radius : positive_length_measure; -END_ENTITY; - -ENTITY solid_with_depression - ABSTRACT SUPERTYPE OF (solid_with_through_depression ANDOR - ONEOF(solid_with_hole, solid_with_pocket, solid_with_groove)) - SUBTYPE OF (modified_solid_with_placed_configuration); - depth : positive_length_measure; -END_ENTITY; - -ENTITY solid_with_double_offset_chamfer - SUBTYPE OF (solid_with_chamfered_edges); - left_offset_distance : positive_length_measure; - right_offset_distance : positive_length_measure; -END_ENTITY; - -ENTITY solid_with_excessive_number_of_voids - SUBTYPE OF (inapt_manifold_solid_brep); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN - TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' IN - value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE'); - WR3: validate_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SOLID_BREP']); - WR4: validate_locations_of_extreme_value_type(SELF, []); - WR5: validate_accuracy_types(SELF, []); -END_ENTITY; - -ENTITY solid_with_general_pocket - SUBTYPE OF (solid_with_pocket); - profile : positioned_sketch; - reference_point : point; -WHERE - WR1: SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_BOUNDED_SURFACE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE'] * - TYPEOF(profile.sketch_basis)) = - 1; - WR2: profile IN using_items(reference_point, []); -END_ENTITY; - -ENTITY solid_with_general_protrusion - SUBTYPE OF (solid_with_protrusion); - profile : positioned_sketch; - reference_point : point; -WHERE - WR1: SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_BOUNDED_SURFACE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE'] * - TYPEOF(profile.sketch_basis)) = - 1; - WR2: profile IN using_items(reference_point, []); -END_ENTITY; - -ENTITY solid_with_groove - SUBTYPE OF (solid_with_depression); - groove_radius : positive_length_measure; - groove_width : positive_length_measure; - draft_angle : plane_angle_measure; - floor_fillet_radius : non_negative_length_measure; - external_groove : BOOLEAN; -WHERE - WR1: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SOLID_WITH_THROUGH_DEPRESSION' IN TYPEOF(SELF)); -END_ENTITY; - -ENTITY solid_with_incomplete_circular_pattern - SUBTYPE OF (solid_with_circular_pattern); - omitted_instances : SET [1 : ?] OF positive_integer; -WHERE - WR1: SIZEOF(omitted_instances) < SELF\solid_with_circular_pattern.replicate_count; - WR2: SIZEOF(QUERY(q <* omitted_instances | q > SELF\solid_with_circular_pattern.replicate_count)) = 0; -END_ENTITY; - -ENTITY solid_with_incomplete_rectangular_pattern - SUBTYPE OF (solid_with_rectangular_pattern); - omitted_instances : SET [1 : ?] OF LIST [2 : 2] OF positive_integer; -WHERE - WR1: NOT ([1,1] IN omitted_instances); - WR2: SIZEOF(omitted_instances) < - ((SELF\solid_with_rectangular_pattern.row_count * SELF\solid_with_rectangular_pattern.column_count) - 1); - WR3: SIZEOF(QUERY(q - <* omitted_instances - | ((q[1] > SELF\solid_with_rectangular_pattern.row_count) OR - (q[2] > SELF\solid_with_rectangular_pattern.column_count)))) = - 0; -END_ENTITY; - -ENTITY solid_with_pocket - ABSTRACT SUPERTYPE OF (ONEOF(solid_with_rectangular_pocket, solid_with_circular_pocket, solid_with_general_pocket)) - SUBTYPE OF (solid_with_depression); - floor_blend_radius : non_negative_length_measure; - draft_angle : plane_angle_measure; -END_ENTITY; - -ENTITY solid_with_protrusion - ABSTRACT SUPERTYPE OF (ONEOF(solid_with_circular_protrusion, solid_with_rectangular_protrusion, - solid_with_general_protrusion)) - SUBTYPE OF (modified_solid_with_placed_configuration); - protrusion_height : positive_length_measure; - protrusion_draft_angle : plane_angle_measure; -END_ENTITY; - -ENTITY solid_with_rectangular_pattern - SUPERTYPE OF (solid_with_incomplete_rectangular_pattern) - SUBTYPE OF (solid_with_shape_element_pattern); - row_count : positive_integer; - column_count : positive_integer; - row_spacing : length_measure; - column_spacing : length_measure; -WHERE - WR1: (row_count * column_count) > 1; -END_ENTITY; - -ENTITY solid_with_rectangular_pocket - SUBTYPE OF (solid_with_pocket); - pocket_length : positive_length_measure; - pocket_width : positive_length_measure; - corner_radius : non_negative_length_measure; -WHERE - WR1: (corner_radius < pocket_width / 2) AND (corner_radius < pocket_length / 2); -END_ENTITY; - -ENTITY solid_with_rectangular_protrusion - SUBTYPE OF (solid_with_protrusion); - protrusion_length : positive_length_measure; - protrusion_width : positive_length_measure; - protrusion_corner_radius : non_negative_length_measure; -WHERE - WR1: (protrusion_corner_radius <= protrusion_width / 2) AND (protrusion_corner_radius <= protrusion_length / 2); -END_ENTITY; - -ENTITY solid_with_shape_element_pattern - ABSTRACT SUPERTYPE OF (ONEOF(solid_with_circular_pattern, solid_with_rectangular_pattern)) - SUBTYPE OF (modified_solid_with_placed_configuration); - replicated_element : modified_solid_with_placed_configuration; -END_ENTITY; - -ENTITY solid_with_single_offset_chamfer - SUBTYPE OF (solid_with_chamfered_edges); - offset_distance : positive_length_measure; -END_ENTITY; - -ENTITY solid_with_variable_radius_edge_blend - SUBTYPE OF (track_blended_solid); - point_list : LIST [2 : ?] OF point; - radius_list : LIST [2 : ?] OF positive_length_measure; - edge_function_list : LIST [1 : ?] OF blend_radius_variation_type; -WHERE - WR1: SIZEOF(point_list) = SIZEOF(radius_list); - WR2: SIZEOF(edge_function_list) = SIZEOF(radius_list) - 1; - WR3: NOT ((point_list[1] = point_list[HIINDEX(point_list)]) AND - NOT (radius_list[1] = radius_list[HIINDEX(radius_list)])); -END_ENTITY; - -ENTITY solid_with_wrong_number_of_voids - SUBTYPE OF (erroneous_manifold_solid_brep); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; -WHERE - WR1: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE'); - WR2: validate_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BREP_WITH_VOIDS']); - WR3: validate_locations_of_extreme_value_type(SELF, []); - WR4: validate_accuracy_types(SELF, []); -END_ENTITY; - -ENTITY source_for_requirement - SUBTYPE OF (group_assignment); - SELF\group_assignment.assigned_group : requirement_source; - items : SET [1 : 1] OF requirement_source_item; -END_ENTITY; - -ENTITY sourced_requirement - SUBTYPE OF (group_assignment); - SELF\group_assignment.assigned_group : requirement_source; - items : SET [1 : 1] OF product_definition; -END_ENTITY; - -ENTITY specification_definition - SUBTYPE OF (product_definition); -END_ENTITY; - -ENTITY specified_higher_usage_occurrence - SUBTYPE OF (assembly_component_usage); - upper_usage : assembly_component_usage; - next_usage : next_assembly_usage_occurrence; -UNIQUE - UR1: upper_usage, next_usage; -WHERE - WR1: SELF :<>: upper_usage; - WR2: SELF\product_definition_relationship.relating_product_definition :=: upper_usage.relating_product_definition; - WR3: SELF\product_definition_relationship.related_product_definition :=: next_usage.related_product_definition; - WR4: (upper_usage.related_product_definition :=: next_usage.relating_product_definition) OR - (SIZEOF(QUERY(pdr - <* USEDIN(upper_usage.related_product_definition, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION') - | pdr.relating_product_definition :=: next_usage.relating_product_definition)) = - 1); - WR5: SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NEXT_ASSEMBLY_USAGE_OCCURRENCE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SPECIFIED_HIGHER_USAGE_OCCURRENCE'] * - TYPEOF(upper_usage)) = - 1; -END_ENTITY; - -ENTITY sphere - SUBTYPE OF (geometric_representation_item); - radius : positive_length_measure; - centre : point; -END_ENTITY; - -ENTITY spherical_cap - SUBTYPE OF (feature_definition); -WHERE - WR1: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(impl_rep.used_representation.items) = 3)))) = - 0)))) = - 0); - WR2: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'radius')))) = - 1)))) = - 0)))) = - 0); - WR3: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'internal angle')))) = - 1)))) = - 0)))) = - 0); -END_ENTITY; - -ENTITY spherical_pair - SUBTYPE OF (low_order_kinematic_pair); -DERIVE - SELF\low_order_kinematic_pair.t_x : BOOLEAN := false; - SELF\low_order_kinematic_pair.t_y : BOOLEAN := false; - SELF\low_order_kinematic_pair.t_z : BOOLEAN := false; - SELF\low_order_kinematic_pair.r_x : BOOLEAN := true; - SELF\low_order_kinematic_pair.r_y : BOOLEAN := true; - SELF\low_order_kinematic_pair.r_z : BOOLEAN := true; -END_ENTITY; - -ENTITY spherical_pair_value - SUBTYPE OF (pair_value); - SELF\pair_value.applies_to_pair : spherical_pair_select; - input_orientation : spatial_rotation; -DERIVE - actual_orientation : ypr_rotation := convert_spatial_to_ypr_rotation(SELF\pair_value.applies_to_pair, - input_orientation); -END_ENTITY; - -ENTITY spherical_pair_with_pin - SUBTYPE OF (low_order_kinematic_pair); -DERIVE - SELF\low_order_kinematic_pair.t_x : BOOLEAN := false; - SELF\low_order_kinematic_pair.t_y : BOOLEAN := false; - SELF\low_order_kinematic_pair.t_z : BOOLEAN := false; - SELF\low_order_kinematic_pair.r_x : BOOLEAN := false; - SELF\low_order_kinematic_pair.r_y : BOOLEAN := true; - SELF\low_order_kinematic_pair.r_z : BOOLEAN := true; -END_ENTITY; - -ENTITY spherical_pair_with_pin_and_range - SUBTYPE OF (spherical_pair_with_pin); - lower_limit_yaw : OPTIONAL plane_angle_measure; - upper_limit_yaw : OPTIONAL plane_angle_measure; - lower_limit_roll : OPTIONAL plane_angle_measure; - upper_limit_roll : OPTIONAL plane_angle_measure; -WHERE - WR1: (NOT EXISTS(lower_limit_yaw) OR NOT EXISTS(upper_limit_yaw)) XOR (lower_limit_yaw < upper_limit_yaw); - WR2: (NOT EXISTS(lower_limit_roll) OR NOT EXISTS(upper_limit_roll)) XOR (lower_limit_roll < upper_limit_roll); -END_ENTITY; - -ENTITY spherical_pair_with_range - SUBTYPE OF (spherical_pair); - lower_limit_yaw : OPTIONAL plane_angle_measure; - upper_limit_yaw : OPTIONAL plane_angle_measure; - lower_limit_pitch : OPTIONAL plane_angle_measure; - upper_limit_pitch : OPTIONAL plane_angle_measure; - lower_limit_roll : OPTIONAL plane_angle_measure; - upper_limit_roll : OPTIONAL plane_angle_measure; -WHERE - WR1: (NOT EXISTS(lower_limit_yaw) OR NOT EXISTS(upper_limit_yaw)) XOR (lower_limit_yaw < upper_limit_yaw); - WR2: (NOT EXISTS(lower_limit_pitch) OR NOT EXISTS(upper_limit_pitch)) XOR (lower_limit_pitch < upper_limit_pitch); - WR3: (NOT EXISTS(lower_limit_roll) OR NOT EXISTS(upper_limit_roll)) XOR (lower_limit_roll < upper_limit_roll); -END_ENTITY; - -ENTITY spherical_point - SUBTYPE OF (cartesian_point); - r : length_measure; - theta : plane_angle_measure; - phi : plane_angle_measure; -DERIVE - SELF\cartesian_point.coordinates : LIST [3 : 3] OF length_measure := [r * SIN(theta) * COS(phi), - r * SIN(theta) * SIN(phi), - r * COS(theta)]; -WHERE - WR1: r >= 0.0; -END_ENTITY; - -ENTITY spherical_surface - SUBTYPE OF (elementary_surface); - radius : positive_length_measure; -END_ENTITY; - -ENTITY spherical_volume - SUBTYPE OF (volume); - position : axis2_placement_3d; - radius : positive_length_measure; -END_ENTITY; - -ENTITY spotface_definition - SUBTYPE OF (explicit_round_hole); - spotface_radius : positive_length_measure_with_unit; - spotface_radius_tolerance : OPTIONAL tolerance_value; -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN - TYPEOF(spotface_radius_tolerance\tolerance_value.lower_bound); - WR2: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN - TYPEOF(spotface_radius_tolerance\tolerance_value.upper_bound); -END_ENTITY; - -ENTITY spotface_hole_definition - SUBTYPE OF (counterbore_hole_definition); - SELF\counterbore_hole_definition.counterbore : LIST [1 : ?] OF UNIQUE spotface_definition; -DERIVE - spotface : LIST [1 : ?] OF UNIQUE spotface_definition := SELF\counterbore_hole_definition.counterbore; -END_ENTITY; - -ENTITY spotface_occurrence - SUBTYPE OF (counterbore_hole_occurrence); - SELF\counterbore_hole_occurrence.definition : spotface_hole_definition; -END_ENTITY; - -ENTITY spotface_occurrence_in_assembly - SUBTYPE OF (counterbore_hole_occurrence_in_assembly); - SELF\counterbore_hole_occurrence.definition : spotface_hole_definition; -END_ENTITY; - -ENTITY sql_mappable_defined_function - ABSTRACT SUPERTYPE - SUBTYPE OF (defined_function); -END_ENTITY; - -ENTITY square_root_function - SUBTYPE OF (unary_function_call); -END_ENTITY; - -ENTITY square_u_profile - SUBTYPE OF (shape_aspect); -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN - TYPEOF(SELF.of_shape.definition); - WR2: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation))) = - 1))) = - 0; - WR3: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - | (NOT (SIZEOF(impl_rep.used_representation.items) >= 4) AND - (SIZEOF(impl_rep.used_representation.items) <= 7)))) = - 0))) = - 0; - WR4: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF(QUERY(srwp_i - <* pdr.used_representation.items - | (srwp_i.name = 'orientation') OR (srwp_i.name = 'width') OR - (srwp_i.name = 'first angle') OR (srwp_i.name = 'second angle') OR - (srwp_i.name = 'first radius') OR - (srwp_i.name = 'second radius') OR - (srwp_i.name = 'profile limit') OR (srwp_i.name = 'depth'))) = - SIZEOF(pdr.used_representation.items)))) = - 1)) = - 1; - WR5: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - | NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' IN - TYPEOF(it)) AND - (it.name = 'orientation'))) = - 1))) = - 0))) = - 0; - WR6: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - | NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'width'))) = - 1))) = - 0))) = - 0; - WR7: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - | NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'first radius'))) <= - 1))) = - 0))) = - 0; - WR8: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - | NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'second radius'))) <= - 1))) = - 0))) = - 0; - WR9: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - | NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'first angle'))) = - 1))) = - 0))) = - 0; - WR10: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - | NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'second angle'))) = - 1))) = - 0))) = - 0; - WR11: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN - TYPEOF(pdr.used_representation)) AND - (pdr.used_representation.name = 'profile limit'))) <= - 1))) = - 0; - WR12: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - | NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'depth'))) <= - 1))) = - 0))) = - 0; -END_ENTITY; - -ENTITY standard_table_function - SUBTYPE OF (linearized_table_function); - order : ordering_type; -WHERE - WR1: extremal_position_check(SELF); -END_ENTITY; - -ENTITY standard_uncertainty - SUPERTYPE OF (expanded_uncertainty) - SUBTYPE OF (uncertainty_qualifier); - uncertainty_value : REAL; -END_ENTITY; - -ENTITY start_request - SUBTYPE OF (action_request_assignment); - items : SET [1 : ?] OF start_request_item; -END_ENTITY; - -ENTITY start_work - SUBTYPE OF (action_assignment); - items : SET [1 : ?] OF work_item; -END_ENTITY; - -ENTITY state_definition_to_state_assignment_relationship - SUBTYPE OF (ascribable_state_relationship); - relation_type : STRING; -WHERE - WR1: acyclic_state_definition_to_state_assignment_relationship(SELF, - [SELF\ascribable_state_relationship.related_ascribable_state], - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STATE_DEFINITION_TO_STATE_ASSIGNMENT_RELATIONSHIP'); -END_ENTITY; - -ENTITY state_observed; - name : label; - description : OPTIONAL text; -END_ENTITY; - -ENTITY state_observed_assignment - ABSTRACT SUPERTYPE; - assigned_state_observed : state_observed; - role : state_observed_role; -END_ENTITY; - -ENTITY state_observed_relationship; - name : label; - description : OPTIONAL text; - relating_state_observed : SET [1 : ?] OF state_observed; - related_state_observed : SET [1 : ?] OF state_observed; -END_ENTITY; - -ENTITY state_observed_role; - name : label; - description : OPTIONAL text; -END_ENTITY; - -ENTITY state_predicted - SUBTYPE OF (state_observed); -END_ENTITY; - -ENTITY state_type; - name : label; - description : OPTIONAL text; -END_ENTITY; - -ENTITY state_type_assignment - ABSTRACT SUPERTYPE; - assigned_state_type : state_type; - role : state_type_role; -END_ENTITY; - -ENTITY state_type_relationship; - name : label; - description : OPTIONAL text; - relating_state_type : SET [1 : ?] OF state_type; - related_state_type : SET [1 : ?] OF state_type; -END_ENTITY; - -ENTITY state_type_role; - name : label; - description : OPTIONAL text; -END_ENTITY; - -ENTITY statechar_applied_object - SUBTYPE OF (characterized_object, state_observed_assignment); -END_ENTITY; - -ENTITY statechar_object - SUBTYPE OF (characterized_object, state_observed); -END_ENTITY; - -ENTITY statechar_relationship_object - SUBTYPE OF (characterized_object, state_observed_relationship); -END_ENTITY; - -ENTITY statechar_type_applied_object - SUBTYPE OF (characterized_object, state_type_assignment); -END_ENTITY; - -ENTITY statechar_type_object - SUBTYPE OF (characterized_object, state_type); -END_ENTITY; - -ENTITY statechar_type_relationship_object - SUBTYPE OF (characterized_object, state_type_relationship); -END_ENTITY; - -ENTITY steep_angle_between_adjacent_edges - SUBTYPE OF (steep_geometry_transition_across_edge); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN - TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' IN - value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE'); - WR3: validate_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP']); - WR4: validate_locations_of_extreme_value_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORIENTED_EDGE']); - WR5: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE']); -END_ENTITY; - -ENTITY steep_angle_between_adjacent_faces - SUBTYPE OF (steep_geometry_transition_across_edge); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN - TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' IN - value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE'); - WR3: validate_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SET']); - WR4: validate_locations_of_extreme_value_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_EDGE_CURVE']); - WR5: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE']); -END_ENTITY; - -ENTITY steep_geometry_transition_across_edge - ABSTRACT SUPERTYPE OF (ONEOF(steep_angle_between_adjacent_edges, steep_angle_between_adjacent_faces)) - SUBTYPE OF (inapt_topology_and_geometry_relationship); -END_ENTITY; - -ENTITY step - SUBTYPE OF (feature_definition); -WHERE - WR1: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(impl_rep.used_representation.items) = 1)))) = - 0)))) = - 0); - WR2: (SIZEOF(QUERY(pds - <* QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd))) - | (NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | ((sa_occ.description = 'course of travel occurrence') AND - (SIZEOF(QUERY(sdr - <* QUERY(sar - <* USEDIN(sa_occ, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | ((sar.description = - 'path feature component usage') AND - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') IN - TYPEOF(sar)))) - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PATH_FEATURE_COMPONENT' IN - TYPEOF(sdr.relating_shape_aspect)) AND - (sdr.relating_shape_aspect.description = 'linear')))) = - 1)))) = - 1)))) = - 0); - WR3: (SIZEOF(QUERY(pds - <* QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd))) - | (NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | ((sa_occ.description = 'removal boundary occurrence') AND - (SIZEOF(QUERY(sdr - <* QUERY(sar - <* USEDIN(sa_occ, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | ((sar.description = 'profile usage') AND - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') IN - TYPEOF(sar)))) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VEE_PROFILE' IN - TYPEOF(sdr.relating_shape_aspect)))) = - 1)))) = - 1)))) = - 0); - WR4: SIZEOF(QUERY(pdr - <* get_property_definition_representations(SELF) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN - TYPEOF(pdr.used_representation)) AND - (pdr.used_representation.name = 'maximum feature limit'))) >= - 0; - WR5: SIZEOF(QUERY(pds - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pds)) AND - (SIZEOF(QUERY(csa - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN - TYPEOF(csa)) AND - (csa.name = 'uncut volume') AND - (SIZEOF(QUERY(sar - <* csa.component_relationships - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN - TYPEOF(sar)) AND - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOSS', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROTRUSION'] * - TYPEOF(sar.related_shape_aspect)) = - 1)))) = - 1)))) <= - 1)))) = - 1; -END_ENTITY; - -ENTITY straightness_tolerance - SUBTYPE OF (geometric_tolerance); -WHERE - WR1: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' IN TYPEOF(SELF)); -END_ENTITY; - -ENTITY strict_triangular_matrix - SUBTYPE OF (triangular_matrix); - main_diagonal_value : maths_value; -END_ENTITY; - -ENTITY string_defined_function - ABSTRACT SUPERTYPE - SUBTYPE OF (defined_function, string_expression); -END_ENTITY; - -ENTITY string_expression - ABSTRACT SUPERTYPE OF (ONEOF(simple_string_expression, index_expression, substring_expression, concat_expression, - format_function, string_defined_function)) - SUBTYPE OF (expression); -END_ENTITY; - -ENTITY string_literal - SUBTYPE OF (simple_string_expression, generic_literal); - the_value : STRING; -END_ENTITY; - -ENTITY string_variable - SUBTYPE OF (simple_string_expression, variable); -END_ENTITY; - -ENTITY structured_dimension_callout - SUBTYPE OF (draughting_callout); -WHERE - WR1: SIZEOF(TYPEOF(SELF) * - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATUM_FEATURE_CALLOUT', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATUM_TARGET_CALLOUT', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRICAL_TOLERANCE_CALLOUT', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LEADER_DIRECTED_CALLOUT', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROJECTION_DIRECTED_CALLOUT', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSION_CURVE_DIRECTED_CALLOUT']) = - 0; - WR2: SIZEOF(QUERY(ato - <* QUERY(con - <* SELF.contents - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN - TYPEOF(con))) - | NOT (ato.name IN - ['dimension value','tolerance value','unit text','prefix text','suffix text']))) = - 0; - WR3: SIZEOF(QUERY(ato - <* QUERY(con - <* SELF.contents - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN - TYPEOF(con))) - | (ato.name = 'dimension value'))) >= - 1; - WR4: SIZEOF(QUERY(dcr - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_CALLOUT_RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSION_CALLOUT_COMPONENT_RELATIONSHIP' IN - TYPEOF(dcr)) AND - (dcr.name = 'prefix'))) <= - 1; - WR5: SIZEOF(QUERY(dcr - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_CALLOUT_RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSION_CALLOUT_COMPONENT_RELATIONSHIP' IN - TYPEOF(dcr)) AND - (dcr.name = 'suffix'))) <= - 1; - WR6: NOT ((SIZEOF(QUERY(ato - <* QUERY(con - <* SELF.contents - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN - TYPEOF(con))) - | (ato.name = 'prefix text'))) > - 0)) OR - (SIZEOF(QUERY(dcr - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_CALLOUT_RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSION_CALLOUT_COMPONENT_RELATIONSHIP' IN - TYPEOF(dcr)) AND - (dcr.name = 'prefix'))) = - 1); - WR7: NOT (SIZEOF(QUERY(ato - <* QUERY(con - <* SELF.contents - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN - TYPEOF(con))) - | (ato.name = 'suffix text'))) > - 0) OR - (SIZEOF(QUERY(dcr - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_CALLOUT_RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSION_CALLOUT_COMPONENT_RELATIONSHIP' IN - TYPEOF(dcr)) AND - (dcr.name = 'suffix'))) = - 1); -END_ENTITY; - -ENTITY structured_message - SUBTYPE OF (product); -END_ENTITY; - -ENTITY structured_text_composition - SUBTYPE OF (compound_representation_item); -END_ENTITY; - -ENTITY structured_text_representation - SUBTYPE OF (representation); - SELF\representation.items : SET [1 : ?] OF string_representation_item_select; -END_ENTITY; - -ENTITY styled_item - SUBTYPE OF (representation_item); - styles : SET [0 : ?] OF presentation_style_assignment; - item : styled_item_target; -WHERE - WR1: (SIZEOF(styles) = 0) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_TESSELLATED_ITEM_WITH_COLOURS' IN TYPEOF(SELF)) OR - (SIZEOF(styles) = 1) OR - (SIZEOF(styles) > 1) AND - (SIZEOF(QUERY(pres_style - <* styles - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_STYLE_BY_CONTEXT' IN - TYPEOF(pres_style)))) = - 0); - WR2: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN TYPEOF(item)); - WR3: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF(item)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(item)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONTEXT_DEPENDENT_OVER_RIDING_STYLED_ITEM' IN TYPEOF(SELF)); -END_ENTITY; - -ENTITY styled_tessellated_item_with_colours - SUBTYPE OF (styled_item); - SELF\styled_item.item : tessellated_surface_item; - colour_type : colour_type_enum; - colour_values : LIST [1 : ?] OF LIST [3 : 4] OF unsigned_8_bit_integer; -DERIVE - coloured_coordinate_values : coordinates_list := get_coordinate_values(item); -WHERE - WR1: SIZEOF(SELF\styled_item.styles) = 0; - WR2: ((colour_type = rgb8) AND (SIZEOF(QUERY(clist <* colour_values | NOT (SIZEOF(clist) = 3))) = 0)) OR - ((colour_type = rgbt8) AND (SIZEOF(QUERY(clist <* colour_values | NOT (SIZEOF(clist) = 4))) = 0)); - WR3: SIZEOF(colour_values) = coloured_coordinate_values\coordinates_list.npoints; -END_ENTITY; - -ENTITY su_parameters - SUBTYPE OF (geometric_representation_item); - a : length_measure; - alpha : plane_angle_measure; - b : length_measure; - beta : plane_angle_measure; - c : length_measure; - gamma : plane_angle_measure; -WHERE - WR1: SELF\geometric_representation_item.dim = 3; -END_ENTITY; - -ENTITY subedge - SUBTYPE OF (edge); - parent_edge : edge; -END_ENTITY; - -ENTITY subface - SUBTYPE OF (face); - parent_face : face; -WHERE - WR1: NOT (mixed_loop_type_set(list_to_set(list_face_loops(SELF)) + list_to_set(list_face_loops(parent_face)))); -END_ENTITY; - -ENTITY subsketch - SUBTYPE OF (geometric_representation_item); - subsketch_elements : SET [1 : ?] OF sketch_element_select; - owning_sketch : sketch_type_select; -WHERE - WR1: (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NEUTRAL_SKETCH_REPRESENTATION' IN TYPEOF(owning_sketch)) AND - (SIZEOF(QUERY(q <* subsketch_elements | NOT (owning_sketch IN using_representations(q)))) = 0)) XOR - ((SIZEOF(TYPEOF(owning_sketch) * - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITIONED_SKETCH', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SUBSKETCH']) = - 1) AND - (SIZEOF(QUERY(q <* subsketch_elements | NOT (owning_sketch IN using_items(q, [])))) = 0)); -END_ENTITY; - -ENTITY substring_expression - SUBTYPE OF (string_expression, multiple_arity_generic_expression); -DERIVE - operand : generic_expression := SELF\multiple_arity_generic_expression.operands[1]; - index1 : generic_expression := SELF\multiple_arity_generic_expression.operands[2]; - index2 : generic_expression := SELF\multiple_arity_generic_expression.operands[3]; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STRING_EXPRESSION' IN TYPEOF(operand)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NUMERIC_EXPRESSION' IN TYPEOF(index1)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NUMERIC_EXPRESSION' IN TYPEOF(index2)); - WR2: SIZEOF(SELF\multiple_arity_generic_expression.operands) = 3; - WR3: is_int_expr(index1); - WR4: is_int_expr(index2); -END_ENTITY; - -ENTITY summary_report_request - SUBTYPE OF (data_quality_report_request); - summary_report_request_type : summary_report_type; -END_ENTITY; - -ENTITY summary_report_request_with_number_of_instances - SUBTYPE OF (data_equivalence_report_request); - report_request_type : SET [1 : 3] OF summary_report_style_type; -END_ENTITY; - -ENTITY supplied_part_relationship - SUBTYPE OF (product_definition_relationship); -END_ENTITY; - -ENTITY surface - SUPERTYPE OF (ONEOF(elementary_surface, swept_surface, bounded_surface, offset_surface, surface_replica)) - SUBTYPE OF (geometric_representation_item); -END_ENTITY; - -ENTITY surface_condition_callout - SUBTYPE OF (draughting_callout); -WHERE - WR1: SIZEOF(QUERY(c - <* SELF.contents - | SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_CURVE_OCCURRENCE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_SYMBOL_OCCURRENCE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT_OCCURRENCE'] * - TYPEOF(c)) <> - 1)) = - 0; -END_ENTITY; - -ENTITY surface_curve - SUPERTYPE OF (ONEOF(intersection_curve, seam_curve) ANDOR bounded_surface_curve) - SUBTYPE OF (curve); - curve_3d : curve; - associated_geometry : LIST [1 : 2] OF pcurve_or_surface; - master_representation : preferred_surface_curve_representation; -DERIVE - basis_surface : SET [1 : 2] OF surface := get_basis_surface(SELF); -WHERE - WR1: curve_3d.dim = 3; - WR2: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PCURVE' IN TYPEOF(associated_geometry[1])) OR - (master_representation <> pcurve_s1); - WR3: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PCURVE' IN TYPEOF(associated_geometry[2])) OR - (master_representation <> pcurve_s2); - WR4: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PCURVE' IN TYPEOF(curve_3d)); -END_ENTITY; - -ENTITY surface_curve_swept_area_solid - SUBTYPE OF (swept_area_solid); - directrix : curve; - start_param : REAL; - end_param : REAL; - reference_surface : surface; -WHERE - WR1: (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_CURVE' IN TYPEOF(directrix))) OR - (reference_surface IN (directrix\surface_curve.basis_surface)); -END_ENTITY; - -ENTITY surface_curve_swept_surface - SUBTYPE OF (swept_surface); - directrix : curve; - reference_surface : surface; -WHERE - WR1: (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_CURVE' IN TYPEOF(directrix))) OR - (reference_surface IN (directrix\surface_curve.basis_surface)); -END_ENTITY; - -ENTITY surface_distance_assembly_constraint_with_dimension - SUBTYPE OF (binary_assembly_constraint, sdgc_with_dimension); -END_ENTITY; - -ENTITY surface_distance_geometric_constraint - SUBTYPE OF (explicit_geometric_constraint); - SELF\explicit_constraint.constrained_elements : SET [1 : 2] OF surface; - SELF\explicit_constraint.reference_elements : SET [0 : 4] OF point_curve_or_surface_constraint_element; - near_points : SET [0 : 4] OF near_point_relationship; -WHERE - WR1: (SIZEOF(SELF\explicit_constraint.reference_elements) > 0) OR - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SDGC_WITH_DIMENSION' IN TYPEOF(SELF)) AND - (SIZEOF(SELF\explicit_constraint.constrained_elements) = 2)); - WR2: SIZEOF(near_points) <= SIZEOF(SELF\explicit_constraint.reference_elements); - WR3: SIZEOF(QUERY(q - <* near_points - | NOT (q\representation_item_relationship.relating_representation_item IN - SELF\explicit_constraint.reference_elements))) = - 0; -END_ENTITY; - -ENTITY surface_of_linear_extrusion - SUBTYPE OF (swept_surface); - extrusion_axis : vector; -END_ENTITY; - -ENTITY surface_of_revolution - SUBTYPE OF (swept_surface); - axis_position : axis1_placement; -DERIVE - axis_line : line := representation_item('') || geometric_representation_item() || curve() || - line(axis_position.location, - representation_item('') || geometric_representation_item() || vector(axis_position.z, 1.0)); -END_ENTITY; - -ENTITY surface_pair - ABSTRACT SUPERTYPE OF (ONEOF(sliding_surface_pair, rolling_surface_pair) ANDOR surface_pair_with_range) - SUBTYPE OF (high_order_kinematic_pair); - surface_1 : surface; - surface_2 : surface; - orientation : BOOLEAN; -WHERE - WR1: SIZEOF(QUERY(r <* SELF\kinematic_pair.associated_link_representations_1 | NOT (surface_1 IN r.items))) = 0; - WR2: SIZEOF(QUERY(r <* SELF\kinematic_pair.associated_link_representations_2 | NOT (surface_2 IN r.items))) = 0; - WR3: SIZEOF(QUERY(lr - <* SELF\kinematic_pair.associated_link_representations_1 - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RIGID_LINK_REPRESENTATION' IN - TYPEOF(lr)))) = - 0; -END_ENTITY; - -ENTITY surface_pair_with_range - SUBTYPE OF (surface_pair); - range_on_surface_1 : rectangular_trimmed_surface; - range_on_surface_2 : rectangular_trimmed_surface; - lower_limit_actual_rotation : OPTIONAL plane_angle_measure; - upper_limit_actual_rotation : OPTIONAL plane_angle_measure; -WHERE - WR1: SELF\surface_pair.surface_1 :=: range_on_surface_1.basis_surface; - WR2: SELF\surface_pair.surface_2 :=: range_on_surface_2.basis_surface; - WR3: (NOT EXISTS(lower_limit_actual_rotation) OR NOT EXISTS(upper_limit_actual_rotation)) XOR - (lower_limit_actual_rotation < upper_limit_actual_rotation); - WR4: SIZEOF(QUERY(r - <* SELF\kinematic_pair.associated_link_representations_1 - | NOT (range_on_surface_1 IN r.items))) = - 0; - WR5: SIZEOF(QUERY(r - <* SELF\kinematic_pair.associated_link_representations_2 - | NOT (range_on_surface_2 IN r.items))) = - 0; -END_ENTITY; - -ENTITY surface_patch - SUBTYPE OF (founded_item); - parent_surface : bounded_surface; - u_transition : transition_code; - v_transition : transition_code; - u_sense : BOOLEAN; - v_sense : BOOLEAN; -INVERSE - using_surfaces : BAG [1:?] OF rectangular_composite_surface FOR segments; -WHERE - WR1: (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_BOUNDED_SURFACE' IN TYPEOF(parent_surface))); -END_ENTITY; - -ENTITY surface_patch_set - SUBTYPE OF (geometric_representation_item); - patches : SET [1 : ?] OF surface_patch; -END_ENTITY; - -ENTITY surface_profile_tolerance - SUBTYPE OF (geometric_tolerance); -END_ENTITY; - -ENTITY surface_rendering_properties; - rendered_colour : colour; -END_ENTITY; - -ENTITY surface_replica - SUBTYPE OF (surface); - parent_surface : surface; - transformation : cartesian_transformation_operator_3d; -WHERE - WR1: acyclic_surface_replica(SELF, parent_surface); -END_ENTITY; - -ENTITY surface_side_style - SUBTYPE OF (founded_item); - name : label; - styles : SET [1 : 7] OF surface_style_element_select; -WHERE - WR1: SIZEOF(QUERY(style1 - <* styles - | SIZEOF(QUERY(style2 <* styles - style1 | TYPEOF(style1) = TYPEOF(style2))) > 0)) = - 0; -END_ENTITY; - -ENTITY surface_smoothness_geometric_constraint - SUBTYPE OF (explicit_geometric_constraint); - SELF\explicit_constraint.constrained_elements : SET [1 : 1] OF surface_patch_set; - u_smoothness : transition_code; - v_smoothness : transition_code; -WHERE - WR1: SIZEOF(SELF\explicit_constraint.reference_elements) = 0; -END_ENTITY; - -ENTITY surface_style_boundary - SUBTYPE OF (founded_item); - style_of_boundary : curve_or_render; -END_ENTITY; - -ENTITY surface_style_control_grid - SUBTYPE OF (founded_item); - style_of_control_grid : curve_or_render; -END_ENTITY; - -ENTITY surface_style_fill_area - SUBTYPE OF (founded_item); - fill_area : fill_area_style; -END_ENTITY; - -ENTITY surface_style_parameter_line - SUBTYPE OF (founded_item); - style_of_parameter_lines : curve_or_render; - direction_counts : SET [1 : 2] OF direction_count_select; -WHERE - WR1: (HIINDEX(direction_counts) = 1) XOR (TYPEOF(direction_counts[1]) <> TYPEOF(direction_counts[2])); -END_ENTITY; - -ENTITY surface_style_reflectance_ambient; - ambient_reflectance : REAL; -END_ENTITY; - -ENTITY surface_style_reflectance_ambient_diffuse - SUBTYPE OF (surface_style_reflectance_ambient); - diffuse_reflectance : REAL; -END_ENTITY; - -ENTITY surface_style_reflectance_ambient_diffuse_specular - SUBTYPE OF (surface_style_reflectance_ambient_diffuse); - specular_reflectance : REAL; - specular_exponent : REAL; - specular_colour : colour; -END_ENTITY; - -ENTITY surface_style_rendering; - rendering_method : shading_surface_method; - surface_colour : colour; -END_ENTITY; - -ENTITY surface_style_rendering_with_properties - SUBTYPE OF (surface_style_rendering); - properties : SET [1 : 2] OF rendering_properties_select; -WHERE - WR1: (HIINDEX(properties) = 1) XOR (TYPEOF(properties[1]) <> TYPEOF(properties[2])); -END_ENTITY; - -ENTITY surface_style_segmentation_curve - SUBTYPE OF (founded_item); - style_of_segmentation_curve : curve_or_render; -END_ENTITY; - -ENTITY surface_style_silhouette - SUBTYPE OF (founded_item); - style_of_silhouette : curve_or_render; -END_ENTITY; - -ENTITY surface_style_transparent; - transparency : REAL; -WHERE - WR1: {0.0 <= transparency <= 1.0}; -END_ENTITY; - -ENTITY surface_style_usage - SUBTYPE OF (founded_item); - side : surface_side; - style : surface_side_style_select; -END_ENTITY; - -ENTITY surface_texture_representation - SUBTYPE OF (representation); -WHERE - WR1: SIZEOF(QUERY(i - <* SELF.items - | SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VALUE_RANGE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM'] * - TYPEOF(i)) <> - 1)) = - 0; - WR2: (SIZEOF(QUERY(i - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN - TYPEOF(i))) = - 1) AND - (SIZEOF(QUERY(i - <* SELF.items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN - TYPEOF(i)) AND - (i.name = 'measuring method'))) = - 1); - WR3: SIZEOF(QUERY(i - <* SELF.items - | SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VALUE_RANGE'] * - TYPEOF(i)) = - 1)) > - 0; - WR4: (SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_RELATIONSHIP.REP_1')) <= - 1) AND - (SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_RELATIONSHIP.REP_2')) = - 0) AND - (SIZEOF(QUERY(rr - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_RELATIONSHIP.REP_1') - | rr.rep_2.name = 'measuring direction')) = - SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_RELATIONSHIP.REP_1'))); - WR5: (SIZEOF(USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION')) = - 1) AND - (SIZEOF(QUERY(pdr - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION') - | SIZEOF(QUERY(gpa - <* USEDIN(pdr.definition, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GENERAL_PROPERTY_ASSOCIATION.DERIVED_DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GENERAL_PROPERTY' IN - TYPEOF(gpa.base_definition)) AND - (gpa\general_property_association.base_definition\general_property.name = - 'surface_condition'))) = - 1)) = - 1); -END_ENTITY; - -ENTITY surface_with_excessive_patches_in_one_direction - SUBTYPE OF (overcomplex_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN - TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' IN - value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE'); - WR3: validate_inspected_elements_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_OR_RECTANGULAR_COMPOSITE_SURFACE_SELECT']); - WR4: validate_locations_of_extreme_value_type(SELF, []); - WR5: validate_accuracy_types(SELF, []); -END_ENTITY; - -ENTITY surface_with_small_curvature_radius - SUBTYPE OF (geometry_with_local_near_degeneracy); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' IN - TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN - value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE'); - WR3: validate_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE']); - WR4: validate_locations_of_extreme_value_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_SURFACE']); - WR5: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); -END_ENTITY; - -ENTITY surfaced_open_shell - SUBTYPE OF (open_shell); -WHERE - WR1: SIZEOF(QUERY(q - <* SELF\connected_face_set.cfs_faces - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE' IN TYPEOF(q)))) = - 0; -END_ENTITY; - -ENTITY swept_area_solid - SUPERTYPE OF (ONEOF(revolved_area_solid, extruded_area_solid, surface_curve_swept_area_solid)) - SUBTYPE OF (solid_model); - swept_area : curve_bounded_surface; -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE' IN TYPEOF(swept_area.basis_surface); -END_ENTITY; - -ENTITY swept_curve_surface_geometric_constraint - SUBTYPE OF (explicit_geometric_constraint); - SELF\explicit_constraint.constrained_elements : SET [1 : ?] OF surface; - SELF\explicit_constraint.reference_elements : SET [1 : 1] OF swept_surface_or_solid; -END_ENTITY; - -ENTITY swept_disk_solid - SUBTYPE OF (solid_model); - directrix : curve; - radius : positive_length_measure; - inner_radius : OPTIONAL positive_length_measure; - start_param : REAL; - end_param : REAL; -WHERE - WR1: directrix.dim = 3; - WR2: (NOT EXISTS(inner_radius)) OR (radius > inner_radius); -END_ENTITY; - -ENTITY swept_face_solid - SUPERTYPE OF (ONEOF(extruded_face_solid, revolved_face_solid)) - SUBTYPE OF (solid_model); - swept_face : face_surface; -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE' IN TYPEOF(swept_face.face_geometry); -END_ENTITY; - -ENTITY swept_point_curve_geometric_constraint - SUBTYPE OF (explicit_geometric_constraint); - SELF\explicit_constraint.constrained_elements : SET [1 : ?] OF curve; - SELF\explicit_constraint.reference_elements : SET [1 : 1] OF swept_face_solid; -END_ENTITY; - -ENTITY swept_surface - SUPERTYPE OF (ONEOF(surface_of_linear_extrusion, surface_of_revolution, surface_curve_swept_surface, - fixed_reference_swept_surface)) - SUBTYPE OF (surface); - swept_curve : curve; -END_ENTITY; - -ENTITY symbol - SUBTYPE OF (representation_item); -END_ENTITY; - -ENTITY symbol_colour; - colour_of_symbol : colour; -END_ENTITY; - -ENTITY symbol_representation - SUBTYPE OF (representation); -END_ENTITY; - -ENTITY symbol_representation_map - SUBTYPE OF (representation_map); - SELF\representation_map.mapped_representation : symbol_representation; - SELF\representation_map.mapping_origin : axis2_placement; -WHERE - WR1: SIZEOF(QUERY(mi - <* SELF\representation_map.map_usage - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_SYMBOL' IN TYPEOF(mi)))) = - 0; -END_ENTITY; - -ENTITY symbol_style - SUBTYPE OF (founded_item); - name : label; - style_of_symbol : symbol_style_select; -END_ENTITY; - -ENTITY symbol_target - SUBTYPE OF (geometric_representation_item); - placement : axis2_placement; - x_scale : positive_ratio_measure; - y_scale : positive_ratio_measure; -END_ENTITY; - -ENTITY symmetric_banded_matrix - SUBTYPE OF (symmetric_matrix); - default_entry : maths_value; - above : nonnegative_integer; -WHERE - WR1: member_of(default_entry, factor1(SELF\linearized_table_function.source.range)); -END_ENTITY; - -ENTITY symmetric_matrix - SUBTYPE OF (linearized_table_function); - symmetry : symmetry_type; - triangle : lower_upper; - order : ordering_type; -WHERE - WR1: SIZEOF(SELF\explicit_table_function.shape) = 2; - WR2: SELF\explicit_table_function.shape[1] = SELF\explicit_table_function.shape[2]; - WR3: NOT (symmetry = symmetry_type.skew) OR - ((space_dimension(SELF\linearized_table_function.source.range) = 1) AND - subspace_of_es(factor1(SELF\linearized_table_function.source.range), es_numbers)); - WR4: NOT ((symmetry = symmetry_type.hermitian) OR (symmetry = symmetry_type.skew_hermitian)) OR - ((space_dimension(SELF\linearized_table_function.source.range) = 1) AND - subspace_of_es(factor1(SELF\linearized_table_function.source.range), es_complex_numbers)); -END_ENTITY; - -ENTITY symmetric_shape_aspect - SUBTYPE OF (shape_aspect); -INVERSE - basis_relationships : SET [1:?] OF shape_aspect_deriving_relationship FOR related_shape_aspect; -END_ENTITY; - -ENTITY symmetry_geometric_constraint - SUBTYPE OF (explicit_geometric_constraint); - SELF\explicit_constraint.constrained_elements : SET [2 : 2] OF geometric_representation_item; - mirror_element : linear_geometry_constraint_element; -WHERE - WR1: SIZEOF(SELF\explicit_constraint.reference_elements) = 0; - WR2: SIZEOF(TYPEOF(mirror_element) * - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIRECTION', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VECTOR']) = - 0; - WR3: NOT ((SELF\geometric_representation_item.dim = 2) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE' IN TYPEOF(mirror_element))); -END_ENTITY; - -ENTITY symmetry_tolerance - SUBTYPE OF (geometric_tolerance_with_datum_reference); -END_ENTITY; - -ENTITY system_breakdown_context - SUBTYPE OF (breakdown_context); -END_ENTITY; - -ENTITY system_element_usage - SUBTYPE OF (breakdown_element_usage); -END_ENTITY; - -ENTITY table_representation_item - SUBTYPE OF (compound_representation_item); -WHERE - WR1: SIZEOF(QUERY(itet - <* SELF\compound_representation_item.item_element - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROW_REPRESENTATION_ITEM' IN - TYPEOF(itet)))) = - 0; -END_ENTITY; - -ENTITY tactile_appearance_representation - SUBTYPE OF (representation); -WHERE - WR1: SIZEOF(QUERY(i - <* SELF.items - | SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VALUE_RANGE'] * - TYPEOF(i)) <> - 1)) = - 0; - WR2: SIZEOF(QUERY(i <* SELF.items | name = 'depth')) <= 1; - WR3: (SIZEOF(USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION')) = - 1) AND - (SIZEOF(QUERY(pdr - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION') - | SIZEOF(QUERY(gpa - <* USEDIN(pdr.definition, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GENERAL_PROPERTY_ASSOCIATION.DERIVED_DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GENERAL_PROPERTY' IN - TYPEOF(gpa.base_definition)) AND - (gpa\general_property_association.base_definition\general_property.name = - 'surface_condition'))) = - 1)) = - 1); -END_ENTITY; - -ENTITY tagged_text_format - SUBTYPE OF (representation_context); -END_ENTITY; - -ENTITY tagged_text_item - SUBTYPE OF (descriptive_representation_item); -END_ENTITY; - -ENTITY tan_function - SUBTYPE OF (unary_function_call); -END_ENTITY; - -ENTITY tangent - SUBTYPE OF (derived_shape_aspect); -WHERE - WR1: SIZEOF(SELF\derived_shape_aspect.deriving_relationships) = 1; -END_ENTITY; - -ENTITY tangent_assembly_constraint - SUBTYPE OF (binary_assembly_constraint, tangent_geometric_constraint); -END_ENTITY; - -ENTITY tangent_geometric_constraint - SUBTYPE OF (explicit_geometric_constraint); - SELF\explicit_constraint.constrained_elements : SET [1 : ?] OF curve_or_surface_constraint_element; - SELF\explicit_constraint.reference_elements : SET [0 : ?] OF curve_or_surface_constraint_element; - near_points : SET [0 : ?] OF near_point_relationship; - tangent_contact : tangent_contact_type; -WHERE - WR1: (SIZEOF(SELF\explicit_constraint.reference_elements) > 0) OR - (SIZEOF(SELF\explicit_constraint.constrained_elements) = 2); - WR2: NOT ((SELF\geometric_representation_item.dim = 2) AND (tangent_contact = surface_contact)); - WR3: SIZEOF(QUERY(q - <* near_points - | NOT (q\representation_item_relationship.relating_representation_item IN - SELF\explicit_constraint.reference_elements))) = - 0; -END_ENTITY; - -ENTITY taper - SUBTYPE OF (shape_aspect); -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN - TYPEOF(SELF.of_shape.definition)); - WR2: (SELF.description IN ['angle taper','diameter taper','directed taper']); - WR3: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation)))) = - 1)))) = - 0); - WR4: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(impl_rep.used_representation.items) = 1)))) = - 0)))) = - 0); - WR5: ((NOT (SELF.description = 'angle taper')) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'taper angle')))) = - 1)))) = - 0)))) = - 0)); - WR6: ((NOT (SELF.description = 'diameter taper')) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'final diameter')))) = - 1)))) = - 0)))) = - 0)); - WR7: ((NOT (SELF.description = 'directed taper')) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'angle')))) = - 1)))) = - 0)))) = - 0)); - WR8: ((NOT (SELF.description = 'directed taper')) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' IN - TYPEOF(pdr.used_representation)) AND - (pdr.used_representation.name = 'direction'))) = - 1)))) = - 0)); -END_ENTITY; - -ENTITY tee_profile - SUBTYPE OF (shape_aspect); -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN - TYPEOF(SELF.of_shape.definition); - WR2: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation))) = - 1))) = - 0; - WR3: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - | (NOT (SIZEOF(impl_rep.used_representation.items) >= 9) AND - (SIZEOF(impl_rep.used_representation.items) <= 10)))) = - 0))) = - 0; - WR4: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF(QUERY(srwp_i - <* pdr.used_representation.items - | (srwp_i.name = 'orientation') OR (srwp_i.name = 'width') OR - (srwp_i.name = 'depth') OR (srwp_i.name = 'cross bar width') OR - (srwp_i.name = 'cross bar depth') OR - (srwp_i.name = 'first offset') OR - (srwp_i.name = 'second offset') OR - (srwp_i.name = 'first angle') OR (srwp_i.name = 'second angle') OR - (srwp_i.name = 'radius'))) = - SIZEOF(pdr.used_representation.items)))) = - 1)) = - 1; - WR5: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - | NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' IN - TYPEOF(it)) AND - (it.name = 'orientation'))) = - 1))) = - 0))) = - 0; - WR6: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - | NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'width'))) = - 1))) = - 0))) = - 0; - WR7: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - | NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'depth'))) = - 1))) = - 0))) = - 0; - WR8: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - | NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'cross bar width'))) = - 1))) = - 0))) = - 0; - WR9: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - | NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'cross bar depth'))) = - 1))) = - 0))) = - 0; - WR10: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - | NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'first offset'))) = - 1))) = - 0))) = - 0; - WR11: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - | NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'second offset'))) = - 1))) = - 0))) = - 0; - WR12: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - | NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'first angle'))) = - 1))) = - 0))) = - 0; - WR13: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - | NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'second angle'))) = - 1))) = - 0))) = - 0; - WR14: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - | NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'radius'))) <= - 1))) = - 0))) = - 0; - WR15: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN - TYPEOF(pdr.used_representation)) AND - (pdr.used_representation.name = 'profile limit'))) <= - 1))) = - 0; -END_ENTITY; - -ENTITY terminal_feature - SUBTYPE OF (contact_feature); -END_ENTITY; - -ENTITY terminal_location_group - SUBTYPE OF (terminal_feature); -END_ENTITY; - -ENTITY terminator_symbol - SUBTYPE OF (annotation_symbol_occurrence); - annotated_curve : annotation_curve_occurrence; -END_ENTITY; - -ENTITY tessellated_annotation_occurrence - SUBTYPE OF (annotation_occurrence); - SELF\styled_item.item : tessellated_geometric_set; -END_ENTITY; - -ENTITY tessellated_connecting_edge - SUBTYPE OF (tessellated_edge); - smooth : LOGICAL; - face1 : tessellated_face; - face2 : tessellated_face; - line_strip_face1 : LIST [2 : ?] OF INTEGER; - line_strip_face2 : LIST [2 : ?] OF INTEGER; -WHERE - WR1: SIZEOF(line_strip_face1) = SIZEOF(line_strip_face2); - WR2: SIZEOF(line_strip_face1) = SIZEOF(SELF\tessellated_edge.line_strip); - WR3: NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CUBIC_BEZIER_TRIANGULATED_FACE') IN TYPEOF(face1)); - WR4: NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CUBIC_BEZIER_TRIANGULATED_FACE') IN TYPEOF(face2)); -END_ENTITY; - -ENTITY tessellated_curve_set - SUBTYPE OF (tessellated_item); - coordinates : coordinates_list; - line_strips : LIST [1 : ?] OF LIST [2 : ?] OF INTEGER; -END_ENTITY; - -ENTITY tessellated_edge - SUPERTYPE OF (ONEOF(tessellated_connecting_edge, cubic_bezier_tessellated_edge)) - SUBTYPE OF (tessellated_structured_item); - coordinates : coordinates_list; - geometric_link : OPTIONAL edge_or_curve; - line_strip : LIST [2 : ?] OF INTEGER; -END_ENTITY; - -ENTITY tessellated_face - ABSTRACT SUPERTYPE OF (ONEOF(triangulated_face, complex_triangulated_face, cubic_bezier_triangulated_face)) - SUBTYPE OF (tessellated_structured_item); - coordinates : coordinates_list; - pnmax : INTEGER; - normals : LIST [0 : ?] OF LIST [3 : 3] OF REAL; - geometric_link : OPTIONAL face_or_surface; -WHERE - WR1: ((SIZEOF(normals) = 0) OR (SIZEOF(normals) = 1) OR (SIZEOF(normals) = pnmax)); -END_ENTITY; - -ENTITY tessellated_geometric_set - SUBTYPE OF (tessellated_item); - children : SET [1 : ?] OF tessellated_item; -END_ENTITY; - -ENTITY tessellated_item - ABSTRACT SUPERTYPE OF (ONEOF(coordinates_list, tessellated_solid, tessellated_shell, tessellated_wire, - tessellated_geometric_set, tessellated_curve_set, tessellated_point_set, - tessellated_surface_set, tessellated_structured_item)) - SUBTYPE OF (geometric_representation_item); -WHERE - WR1: SIZEOF(QUERY(using_rep - <* using_representations(SELF) - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_SHAPE_REPRESENTATION' IN - TYPEOF(using_rep)))) = - 0; -END_ENTITY; - -ENTITY tessellated_point_set - SUBTYPE OF (tessellated_item); - coordinates : coordinates_list; - point_list : LIST [1 : ?] OF INTEGER; -END_ENTITY; - -ENTITY tessellated_shape_representation - SUBTYPE OF (shape_representation); -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GLOBAL_UNIT_ASSIGNED_CONTEXT' IN - TYPEOF(SELF\representation.context_of_items); - WR2: NOT (SIZEOF(QUERY(it - <* SELF.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_ITEM' IN TYPEOF(it))) = - 0); -END_ENTITY; - -ENTITY tessellated_shape_representation_with_accuracy_parameters - SUBTYPE OF (tessellated_shape_representation); - tessellation_accuracy_parameters : SET [1 : ?] OF tessellation_accuracy_parameter_item; -END_ENTITY; - -ENTITY tessellated_shell - SUBTYPE OF (tessellated_item); - items : SET [1 : ?] OF tessellated_structured_item; - topological_link : OPTIONAL connected_face_set; -END_ENTITY; - -ENTITY tessellated_solid - SUBTYPE OF (tessellated_item); - items : SET [1 : ?] OF tessellated_structured_item; - geometric_link : OPTIONAL manifold_solid_brep; -END_ENTITY; - -ENTITY tessellated_structured_item - SUPERTYPE OF (ONEOF(tessellated_face, tessellated_edge, tessellated_vertex)) - SUBTYPE OF (tessellated_item); -END_ENTITY; - -ENTITY tessellated_surface_set - ABSTRACT SUPERTYPE OF (ONEOF(triangulated_surface_set, complex_triangulated_surface_set)) - SUBTYPE OF (tessellated_item); - coordinates : coordinates_list; - pnmax : INTEGER; - normals : LIST [0 : ?] OF LIST [3 : 3] OF REAL; -WHERE - WR1: ((SIZEOF(normals) = 0) OR (SIZEOF(normals) = 1) OR (SIZEOF(normals) = pnmax)); -END_ENTITY; - -ENTITY tessellated_vertex - SUBTYPE OF (tessellated_structured_item); - coordinates : coordinates_list; - topological_link : OPTIONAL vertex_point; - point_index : INTEGER; -END_ENTITY; - -ENTITY tessellated_wire - SUBTYPE OF (tessellated_item); - items : SET [1 : ?] OF tessellated_edge_or_vertex; - geometric_model_link : OPTIONAL path_or_composite_curve; -END_ENTITY; - -ENTITY tetrahedron - SUBTYPE OF (faceted_primitive); -WHERE - WR1: SIZEOF(points) = 4; - WR2: above_plane(points[1], points[2], points[3], points[4]) <> 0.0; -END_ENTITY; - -ENTITY tetrahedron_volume - SUBTYPE OF (volume); - point_1 : cartesian_point; - point_2 : cartesian_point; - point_3 : cartesian_point; - point_4 : cartesian_point; -WHERE - WR1: point_1.dim = 3; - WR2: above_plane(point_1, point_2, point_3, point_4) <> 0.0; -END_ENTITY; - -ENTITY text_font; - id : identifier; - name : label; - description : text; -INVERSE - glyphs : SET [1:?] OF character_glyph_font_usage FOR font; -END_ENTITY; - -ENTITY text_font_family; - id : identifier; - name : label; - description : text; -INVERSE - fonts : SET [1:?] OF text_font_in_family FOR family; -END_ENTITY; - -ENTITY text_font_in_family; - font : text_font; - family : text_font_family; -END_ENTITY; - -ENTITY text_literal - SUBTYPE OF (geometric_representation_item); - literal : presentable_text; - placement : axis2_placement; - alignment : text_alignment; - path : text_path; - font : font_select; -END_ENTITY; - -ENTITY text_literal_with_associated_curves - SUBTYPE OF (text_literal); - associated_curves : SET [1 : ?] OF curve; -END_ENTITY; - -ENTITY text_literal_with_blanking_box - SUBTYPE OF (text_literal); - blanking : planar_box; -END_ENTITY; - -ENTITY text_literal_with_delineation - SUBTYPE OF (text_literal); - delineation : text_delineation; -END_ENTITY; - -ENTITY text_literal_with_extent - SUBTYPE OF (text_literal); - extent : planar_extent; -END_ENTITY; - -ENTITY text_string_representation - SUBTYPE OF (representation); - SELF\representation.items : SET [1 : ?] OF text_string_representation_item; -WHERE - WR1: SIZEOF(QUERY(item - <* SELF\representation.items - | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TEXT_LITERAL', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT_CHARACTER', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DEFINED_CHARACTER_GLYPH', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_TEXT'] * - TYPEOF(item)) = - 0))) >= - 1; - WR2: SIZEOF(QUERY(a2p - <* QUERY(item - <* SELF\representation.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT' IN TYPEOF(item)) - | NOT ((SIZEOF(QUERY(at - <* QUERY(item - <* SELF\representation.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT' IN - TYPEOF(item)) - | (at\mapped_item.mapping_target :=: a2p))) >= - 1) OR - (SIZEOF(QUERY(atc - <* QUERY(item - <* SELF\representation.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT_CHARACTER' IN - TYPEOF(item)) - | (atc\mapped_item.mapping_target :=: a2p))) >= - 1)))) = - 0; -END_ENTITY; - -ENTITY text_style - SUBTYPE OF (founded_item); - name : label; - character_appearance : character_style_select; -END_ENTITY; - -ENTITY text_style_for_defined_font; - text_colour : colour; -END_ENTITY; - -ENTITY text_style_with_box_characteristics - SUBTYPE OF (text_style); - characteristics : SET [1 : 4] OF box_characteristic_select; -WHERE - WR1: SIZEOF(QUERY(c1 <* characteristics | SIZEOF(QUERY(c2 <* characteristics - c1 | TYPEOF(c1) = TYPEOF(c2))) > 0)) = - 0; -END_ENTITY; - -ENTITY text_style_with_mirror - SUBTYPE OF (text_style); - mirror_placement : axis2_placement; -END_ENTITY; - -ENTITY text_style_with_spacing - SUBTYPE OF (text_style); - character_spacing : character_spacing_select; -END_ENTITY; - -ENTITY texture_style_specification - ABSTRACT SUPERTYPE - SUBTYPE OF (founded_item); -END_ENTITY; - -ENTITY texture_style_tessellation_specification - ABSTRACT SUPERTYPE - SUBTYPE OF (texture_style_specification); -END_ENTITY; - -ENTITY thermal_component - SUBTYPE OF (assembly_component); -END_ENTITY; - -ENTITY thermal_resistance_measure_with_unit - SUBTYPE OF (measure_with_unit); -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.THERMAL_RESISTANCE_UNIT' IN - TYPEOF(SELF\measure_with_unit.unit_component); -END_ENTITY; - -ENTITY thermal_resistance_unit - SUBTYPE OF (derived_unit); -WHERE - WR1: derive_dimensional_exponents(SELF) = dimensional_exponents(-1.0, -1.0, -3.0, 0.0, 1.0, 0.0, 0.0); -END_ENTITY; - -ENTITY thermodynamic_temperature_measure_with_unit - SUBTYPE OF (measure_with_unit); -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.THERMODYNAMIC_TEMPERATURE_UNIT' IN - TYPEOF(SELF\measure_with_unit.unit_component); -END_ENTITY; - -ENTITY thermodynamic_temperature_unit - SUBTYPE OF (named_unit); -WHERE - WR1: (SELF\named_unit.dimensions.length_exponent = 0.0) AND (SELF\named_unit.dimensions.mass_exponent = 0.0) AND - (SELF\named_unit.dimensions.time_exponent = 0.0) AND - (SELF\named_unit.dimensions.electric_current_exponent = 0.0) AND - (SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 1.0) AND - (SELF\named_unit.dimensions.amount_of_substance_exponent = 0.0) AND - (SELF\named_unit.dimensions.luminous_intensity_exponent = 0.0); -END_ENTITY; - -ENTITY thickened_face_solid - SUBTYPE OF (solid_model); - base_element : generalized_surface_select; - offset1 : length_measure; - offset2 : length_measure; -WHERE - WR1: NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE' IN TYPEOF(base_element)) AND - (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOUNDED_SURFACE' IN TYPEOF(base_element)))); - WR2: offset1 <> offset2; -END_ENTITY; - -ENTITY thread - SUBTYPE OF (feature_definition); -WHERE - WR1: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | ((('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation)) AND - (8 <= SIZEOF(pdr.used_representation.items)) AND - (SIZEOF(pdr.used_representation.items) <= 11)))) = - 1))) = - 1); - WR2: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'major diameter')))) = - 1)))) = - 0)))) = - 0); - WR3: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'minor diameter')))) <= - 1)))) = - 0)))) = - 0); - WR4: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'pitch diameter')))) <= - 1)))) = - 0)))) = - 0); - WR5: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RATIO_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'number of threads')))) = - 1)))) = - 0)))) = - 0); - WR6: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN - TYPEOF(it)) AND - (it.name = 'fit class')))) = - 1)))) = - 0)))) = - 0); - WR7: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN - TYPEOF(it)) AND - (it.name = 'form')))) = - 1)))) = - 0)))) = - 0); - WR8: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN - TYPEOF(it)) AND - (it.name = 'hand') AND - (it.description IN ['left','right'])))) = - 1)))) = - 0)))) = - 0); - WR9: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN - TYPEOF(it)) AND - (it.name = 'qualifier')))) <= - 1)))) = - 0)))) = - 0); - WR10: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN - TYPEOF(it)) AND - (it.name = 'thread side') AND - ((it.description = 'internal') OR - (it.description = 'external'))))) = - 1)))) = - 0)))) = - 0); - WR11: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'crest')))) <= - 1)))) = - 0)))) = - 0); - WR12: (SIZEOF(QUERY(pds - <* QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd))) - | (NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | ((sa_occ.description = 'partial area occurrence') AND - (SIZEOF(QUERY(sdr - <* QUERY(sar - <* USEDIN(sa_occ, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | ((sar.description = 'applied area usage') AND - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') IN - TYPEOF(sar)))) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.APPLIED_AREA' IN - TYPEOF(sdr.relating_shape_aspect)))) = - 1)))) = - 1)))) = - 0); - WR13: (SIZEOF(QUERY(pds - <* QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd))) - | (NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | ((SIZEOF(QUERY(sdr - <* QUERY(sar - <* USEDIN(sa_occ, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | ((sar.description = 'applied shape') AND - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') IN - TYPEOF(sar)))) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT' IN - TYPEOF(sdr.relating_shape_aspect)))) = - 1)))) = - 1)))) = - 0); - WR14: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN - TYPEOF(it)) AND - (it.name = 'fit class 2')))) <= - 1)))) = - 0)))) = - 0); - WR15: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'nominal size')))) <= - 1)))) = - 0)))) = - 0); - WR16: (SIZEOF(QUERY(pds - <* QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd))) - | (NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | ((sa_occ.description = 'thread runout') AND - (SIZEOF(QUERY(sdr - <* QUERY(sar - <* USEDIN(sa_occ, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | ((sar.description = 'thread runout usage') AND - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') IN - TYPEOF(sar)))) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.THREAD_RUNOUT' IN - TYPEOF(sdr.relating_shape_aspect)))) <= - 1)))) = - 1)))) = - 0); -END_ENTITY; - -ENTITY thread_runout - SUBTYPE OF (shape_aspect); -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(SELF.of_shape)); - WR2: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation)))) = - 1)))) = - 0); - WR3: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(impl_rep.used_representation.items) = 3)))) = - 0)))) = - 0); - WR4: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF(QUERY(srwp_i - <* pdr.used_representation.items - | NOT (srwp_i.name IN - ['length of runout', - 'pitch or dimension', - 'included or extra']))) > - 0))) = - 0))) = - 0; - WR5: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'length of runout')))) = - 1)))) = - 0)))) <= - 1); - WR6: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN - TYPEOF(it)) AND - (it.name = 'pitch or dimension') AND - (it.description IN - ['pitch','pitch or dimension'])))) = - 1)))) = - 0)))) = - 0); - WR7: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN - TYPEOF(it)) AND - (it.name = 'included or extra') AND - (it.description IN ['included','extra'])))) = - 1)))) = - 0)))) = - 0); -END_ENTITY; - -ENTITY time_interval; - id : identifier; - name : label; - description : OPTIONAL text; -END_ENTITY; - -ENTITY time_interval_assignment - ABSTRACT SUPERTYPE; - assigned_time_interval : time_interval; - role : time_interval_role; -END_ENTITY; - -ENTITY time_interval_based_effectivity - SUBTYPE OF (effectivity); - effectivity_period : time_interval; -END_ENTITY; - -ENTITY time_interval_relationship; - name : label; - description : OPTIONAL text; - relating_time_interval : time_interval; - related_time_interval : time_interval; -END_ENTITY; - -ENTITY time_interval_role; - name : label; - description : OPTIONAL text; -END_ENTITY; - -ENTITY time_interval_with_bounds - SUBTYPE OF (time_interval); - primary_bound : OPTIONAL date_time_or_event_occurrence; - secondary_bound : OPTIONAL date_time_or_event_occurrence; - duration : OPTIONAL time_measure_with_unit; -WHERE - WR1: EXISTS(primary_bound) OR EXISTS(secondary_bound); - WR2: NOT (EXISTS(primary_bound) AND EXISTS(secondary_bound) AND EXISTS(duration)); - WR3: EXISTS(primary_bound) AND - NOT EXISTS(secondary_bound) AND (NOT EXISTS(duration) OR duration_is_positive(duration)); - WR4: EXISTS(secondary_bound) AND NOT EXISTS(primary_bound) AND EXISTS(duration) AND duration_is_negative(duration); -END_ENTITY; - -ENTITY time_measure_with_unit - SUBTYPE OF (measure_with_unit); -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TIME_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); -END_ENTITY; - -ENTITY time_unit - SUBTYPE OF (named_unit); -WHERE - WR1: (SELF\named_unit.dimensions.length_exponent = 0.0) AND (SELF\named_unit.dimensions.mass_exponent = 0.0) AND - (SELF\named_unit.dimensions.time_exponent = 1.0) AND - (SELF\named_unit.dimensions.electric_current_exponent = 0.0) AND - (SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0.0) AND - (SELF\named_unit.dimensions.amount_of_substance_exponent = 0.0) AND - (SELF\named_unit.dimensions.luminous_intensity_exponent = 0.0); -END_ENTITY; - -ENTITY tolerance_value; - lower_bound : measure_with_unit; - upper_bound : measure_with_unit; -DERIVE - ubvc : REAL := upper_bound\measure_with_unit.value_component; - lbvc : REAL := lower_bound\measure_with_unit.value_component; -WHERE - WR1: ubvc > lbvc; - WR2: upper_bound\measure_with_unit.unit_component = lower_bound\measure_with_unit.unit_component; -END_ENTITY; - -ENTITY tolerance_zone - SUBTYPE OF (shape_aspect); - defining_tolerance : SET [1 : ?] OF tolerance_zone_target; - form : tolerance_zone_form; -END_ENTITY; - -ENTITY tolerance_zone_definition - SUPERTYPE OF (ONEOF(projected_zone_definition, non_uniform_zone_definition, runout_zone_definition)); - zone : tolerance_zone; - boundaries : SET [0 : ?] OF shape_aspect; -END_ENTITY; - -ENTITY tolerance_zone_form; - name : label; -END_ENTITY; - -ENTITY tolerance_zone_with_datum - SUPERTYPE OF (ONEOF(directed_tolerance_zone, oriented_tolerance_zone)) - SUBTYPE OF (tolerance_zone); - datum_reference : datum_system; -END_ENTITY; - -ENTITY topological_representation_item - SUPERTYPE OF (ONEOF(vertex, edge, face_bound, face, vertex_shell, wire_shell, connected_edge_set, connected_face_set, - connected_volume_set, volume_with_faces, (loop ANDOR path))) - SUBTYPE OF (representation_item); -DERIVE - permanent_id : identifier := get_id_value(SELF); - permanent_aggregate_id : identifier := get_aggregate_id_value(SELF); -WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; - WR2: SIZEOF(USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AGGREGATE_ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= - 1; -END_ENTITY; - -ENTITY topology_related_to_multiply_defined_geometry - ABSTRACT SUPERTYPE OF (ONEOF(multiply_defined_faces, multiply_defined_vertices, multiply_defined_edges)) - SUBTYPE OF (inapt_topology_and_geometry_relationship); -END_ENTITY; - -ENTITY topology_related_to_nearly_degenerate_geometry - ABSTRACT SUPERTYPE OF (ONEOF(short_length_edge, small_area_face, entirely_narrow_face)) - SUBTYPE OF (inapt_topology_and_geometry_relationship); -END_ENTITY; - -ENTITY topology_related_to_overlapping_geometry - ABSTRACT SUPERTYPE OF (ONEOF(partly_overlapping_faces, partly_overlapping_edges)) - SUBTYPE OF (inapt_topology_and_geometry_relationship); -END_ENTITY; - -ENTITY topology_related_to_self_intersecting_geometry - ABSTRACT SUPERTYPE OF (ONEOF(self_intersecting_loop, self_intersecting_shell, intersecting_connected_face_sets)) - SUBTYPE OF (inapt_topology_and_geometry_relationship); -END_ENTITY; - -ENTITY toroidal_surface - SUBTYPE OF (elementary_surface); - major_radius : positive_length_measure; - minor_radius : positive_length_measure; -END_ENTITY; - -ENTITY toroidal_volume - SUBTYPE OF (volume); - position : axis2_placement_3d; - major_radius : positive_length_measure; - minor_radius : positive_length_measure; -WHERE - WR1: minor_radius < major_radius; -END_ENTITY; - -ENTITY torus - SUBTYPE OF (geometric_representation_item); - position : axis1_placement; - major_radius : positive_length_measure; - minor_radius : positive_length_measure; -WHERE - WR1: major_radius > minor_radius; -END_ENTITY; - -ENTITY total_runout_tolerance - SUBTYPE OF (geometric_tolerance_with_datum_reference); -END_ENTITY; - -ENTITY track_blended_solid - ABSTRACT SUPERTYPE - SUBTYPE OF (edge_blended_solid); -WHERE - WR1: check_continuous_edges(SELF\edge_blended_solid.blended_edges); -END_ENTITY; - -ENTITY track_blended_solid_with_end_conditions - SUBTYPE OF (track_blended_solid); - end_conditions : LIST [2 : 2] OF blend_end_condition_select; -WHERE - WR1: SIZEOF(TYPEOF(SELF) * - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SOLID_WITH_CONSTANT_RADIUS_EDGE_BLEND', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SOLID_WITH_VARIABLE_RADIUS_EDGE_BLEND', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SOLID_WITH_CHAMFERED_EDGES']) = - 1; - WR2: NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX' IN TYPEOF(end_conditions[1])) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX' IN TYPEOF(end_conditions[2]))); - WR3: NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX' IN TYPEOF(end_conditions[1])) AND - (NOT ((end_conditions[1] :=: SELF\edge_blended_solid.blended_edges[1].edge_start) XOR - (end_conditions[1] :=: SELF\edge_blended_solid.blended_edges[1].edge_end)))); - WR4: NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX' IN TYPEOF(end_conditions[2])) AND - (NOT ((end_conditions[2] :=: - SELF\edge_blended_solid.blended_edges[HIINDEX(SELF\edge_blended_solid.blended_edges)].edge_start) XOR - (end_conditions[2] :=: - SELF\edge_blended_solid.blended_edges[HIINDEX(SELF\edge_blended_solid.blended_edges)].edge_end)))); -END_ENTITY; - -ENTITY transformation_with_derived_angle - SUPERTYPE OF (ONEOF(draped_defined_transformation, laid_defined_transformation)) - SUBTYPE OF (item_defined_transformation); - SELF\item_defined_transformation.transform_item_1 : angle_direction_reference_with_a2p3d_select; - SELF\item_defined_transformation.transform_item_2 : axis2_placement_3d; -DERIVE - orientation_angle : plane_angle_measure := derive_angle(SELF\item_defined_transformation.transform_item_1, - SELF\item_defined_transformation.transform_item_2); -WHERE - WR1: (SELF\item_defined_transformation.transform_item_1\axis2_placement_3d.p[3].direction_ratios[1] = - SELF\item_defined_transformation.transform_item_2\axis2_placement_3d.p[3].direction_ratios[1]) AND - (SELF\item_defined_transformation.transform_item_1\axis2_placement_3d.p[3].direction_ratios[2] = - SELF\item_defined_transformation.transform_item_2\axis2_placement_3d.p[3].direction_ratios[2]) AND - (SELF\item_defined_transformation.transform_item_1\axis2_placement_3d.p[3].direction_ratios[3] = - SELF\item_defined_transformation.transform_item_2\axis2_placement_3d.p[3].direction_ratios[3]); -END_ENTITY; - -ENTITY transition_feature - SUPERTYPE OF (ONEOF(chamfer, edge_round, fillet)) - SUBTYPE OF (shape_aspect); -WHERE - WR1: SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOUND_FEATURE'] * - TYPEOF(SELF.of_shape.definition)) = - 1; - WR2: SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CHAMFER', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_ROUND', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FILLET'] * - TYPEOF(SELF)) = - 1; -END_ENTITY; - -ENTITY transport_feature - SUBTYPE OF (shape_aspect); -END_ENTITY; - -ENTITY triangular_matrix - SUBTYPE OF (linearized_table_function); - default_entry : maths_value; - lo_up : lower_upper; - order : ordering_type; -WHERE - WR1: SIZEOF(SELF\explicit_table_function.shape) = 2; - WR2: member_of(default_entry, SELF\maths_function.range); -END_ENTITY; - -ENTITY triangulated_face - SUBTYPE OF (tessellated_face); - pnindex : LIST [0 : ?] OF INTEGER; - triangles : LIST [1 : ?] OF LIST [3 : 3] OF INTEGER; -WHERE - WR1: ((SIZEOF(pnindex) = 0) OR (SIZEOF(pnindex) = SELF\tessellated_face.pnmax)); - WR2: NOT ((SIZEOF(pnindex) = 0) AND (SELF\tessellated_face.pnmax <> coordinates.npoints)); -END_ENTITY; - -ENTITY triangulated_point_cloud_dataset - SUBTYPE OF (scanned_data_item); - points : point_cloud_set_or_superset; - triangles : LIST [1 : ?] OF LIST [3 : 3] OF INTEGER; -END_ENTITY; - -ENTITY triangulated_surface_set - SUBTYPE OF (tessellated_surface_set); - pnindex : LIST [0 : ?] OF INTEGER; - triangles : LIST [1 : ?] OF LIST [3 : 3] OF INTEGER; -WHERE - WR1: ((SIZEOF(pnindex) = 0) OR (SIZEOF(pnindex) = SELF\tessellated_surface_set.pnmax)); - WR2: NOT ((SIZEOF(pnindex) = 0) AND (SELF\tessellated_surface_set.pnmax <> coordinates.npoints)); -END_ENTITY; - -ENTITY trimmed_curve - SUBTYPE OF (bounded_curve); - basis_curve : curve; - trim_1 : SET [1 : 2] OF trimming_select; - trim_2 : SET [1 : 2] OF trimming_select; - sense_agreement : BOOLEAN; - master_representation : trimming_preference; -WHERE - WR1: (HIINDEX(trim_1) = 1) OR (TYPEOF(trim_1[1]) <> TYPEOF(trim_1[2])); - WR2: (HIINDEX(trim_2) = 1) OR (TYPEOF(trim_2[1]) <> TYPEOF(trim_2[2])); -END_ENTITY; - -ENTITY turned_knurl - SUBTYPE OF (feature_definition); -WHERE - WR1: (SELF\characterized_object.description IN ['diamond','diagonal','straight']); - WR2: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - ({6 <= SIZEOF(pdr.used_representation.items) <= 9}))) = - 1)) = - 1; - WR3: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN - TYPEOF(it)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' IN - TYPEOF(it\measure_with_unit.value_component)) AND - (it.name = 'number of teeth')))) <= - 1)))) = - 0)))) = - 0); - WR4: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'major diameter')))) = - 1)))) = - 0)))) = - 0); - WR5: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'nominal diameter')))) = - 1)))) = - 0)))) = - 0); - WR6: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'tooth depth')))) <= - 1)))) = - 0)))) = - 0); - WR7: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'root fillet')))) <= - 1)))) = - 0)))) = - 0); - WR8: (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'diametral pitch')))) = - 1)))) = - 0)))) = - 0); - WR9: ((NOT (SELF\characterized_object.description IN ['diamond','diagonal'])) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'helix angle')))) = - 1)))) = - 0)))) = - 0)); - WR10: ((NOT (SELF\characterized_object.description = 'diagonal')) OR - (SIZEOF(QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN - TYPEOF(pdr.used_representation))) - | (NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN - TYPEOF(it)) AND - (it.name = 'helix hand')))) = - 1)))) = - 0)))) = - 0)); - WR11: (SIZEOF(QUERY(pds - <* QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd))) - | (NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | ((sa_occ.description = 'partial area occurrence') AND - (SIZEOF(QUERY(sdr - <* QUERY(sar - <* USEDIN(sa_occ, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | ((sar.description = 'applied area usage') AND - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') IN - TYPEOF(sar)))) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.APPLIED_AREA' IN - TYPEOF(sdr.relating_shape_aspect)))) = - 1)))) = - 1)))) = - 0); - WR12: (SIZEOF(QUERY(pds - <* QUERY(pd - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd))) - | (NOT (SIZEOF(QUERY(sa_occ - <* USEDIN(pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') - | ((SIZEOF(QUERY(sdr - <* QUERY(sar - <* USEDIN(sa_occ, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') - | ((sar.description = 'applied shape') AND - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') IN - TYPEOF(sar)))) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT' IN - TYPEOF(sdr.relating_shape_aspect)))) = - 1)))) = - 1)))) = - 0); -END_ENTITY; - -ENTITY twisted_cross_sectional_group_shape_element - SUBTYPE OF (cross_sectional_group_shape_element); -END_ENTITY; - -ENTITY two_direction_repeat_factor - SUBTYPE OF (one_direction_repeat_factor); - second_repeat_factor : vector; -END_ENTITY; - -ENTITY type_qualifier; - name : label; -END_ENTITY; - -ENTITY unary_boolean_expression - ABSTRACT SUPERTYPE OF (ONEOF(not_expression, odd_function)) - SUBTYPE OF (boolean_expression, unary_generic_expression); -END_ENTITY; - -ENTITY unary_function_call - ABSTRACT SUPERTYPE OF (ONEOF(abs_function, minus_function, sin_function, cos_function, tan_function, asin_function, - acos_function, exp_function, log_function, log2_function, log10_function, - square_root_function)) - SUBTYPE OF (unary_numeric_expression); -END_ENTITY; - -ENTITY unary_generic_expression - ABSTRACT SUPERTYPE - SUBTYPE OF (generic_expression); - operand : generic_expression; -END_ENTITY; - -ENTITY unary_numeric_expression - ABSTRACT SUPERTYPE - SUBTYPE OF (numeric_expression, unary_generic_expression); - SELF\unary_generic_expression.operand : numeric_expression; -END_ENTITY; - -ENTITY unbound_parameter_environment - SUBTYPE OF (environment); -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.UNBOUND_VARIATIONAL_PARAMETER' IN - TYPEOF(SELF\environment.syntactic_representation)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.UNBOUND_VARIATIONAL_PARAMETER_SEMANTICS' IN - TYPEOF(SELF\environment.semantics)); -END_ENTITY; - -ENTITY unbound_variational_parameter - SUBTYPE OF (variational_parameter); -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.UNBOUND_PARAMETER_ENVIRONMENT' IN - TYPEOF(SELF\generic_variable.interpretation); -END_ENTITY; - -ENTITY unbound_variational_parameter_semantics - SUBTYPE OF (variable_semantics); -END_ENTITY; - -ENTITY uncertainty_assigned_representation - SUBTYPE OF (representation); - uncertainty : SET [1 : ?] OF uncertainty_measure_with_unit; -END_ENTITY; - -ENTITY uncertainty_measure_with_unit - SUBTYPE OF (measure_with_unit); - name : label; - description : OPTIONAL text; -WHERE - WR1: valid_measure_value(SELF\measure_with_unit.value_component); -END_ENTITY; - -ENTITY uncertainty_qualifier - SUPERTYPE OF (ONEOF(standard_uncertainty, qualitative_uncertainty)); - measure_name : label; - description : text; -END_ENTITY; - -ENTITY unconstrained_pair - SUBTYPE OF (low_order_kinematic_pair); -DERIVE - SELF\low_order_kinematic_pair.t_x : BOOLEAN := true; - SELF\low_order_kinematic_pair.t_y : BOOLEAN := true; - SELF\low_order_kinematic_pair.t_z : BOOLEAN := true; - SELF\low_order_kinematic_pair.r_x : BOOLEAN := true; - SELF\low_order_kinematic_pair.r_y : BOOLEAN := true; - SELF\low_order_kinematic_pair.r_z : BOOLEAN := true; -END_ENTITY; - -ENTITY unconstrained_pair_value - SUBTYPE OF (pair_value); - SELF\pair_value.applies_to_pair : unconstrained_pair; - actual_placement : axis2_placement_3d; -END_ENTITY; - -ENTITY unequally_disposed_geometric_tolerance - SUBTYPE OF (geometric_tolerance); - displacement : length_measure_with_unit; -WHERE - WR1: 'NUMBER' IN TYPEOF(displacement\measure_with_unit.value_component); -END_ENTITY; - -ENTITY uniform_curve - SUBTYPE OF (b_spline_curve); -END_ENTITY; - -ENTITY uniform_product_space - SUBTYPE OF (maths_space, generic_literal); - base : maths_space; - exponent : positive_integer; -WHERE - WR1: expression_is_constant(base); - WR2: no_cyclic_space_reference(SELF, []); - WR3: base <> the_empty_space; -END_ENTITY; - -ENTITY uniform_resource_identifier - SUBTYPE OF (descriptive_representation_item); -END_ENTITY; - -ENTITY uniform_surface - SUBTYPE OF (b_spline_surface); -END_ENTITY; - -ENTITY uniform_volume - SUBTYPE OF (b_spline_volume); -END_ENTITY; - -ENTITY universal_pair - SUBTYPE OF (low_order_kinematic_pair); - input_skew_angle : OPTIONAL plane_angle_measure; -DERIVE - SELF\low_order_kinematic_pair.t_x : BOOLEAN := false; - SELF\low_order_kinematic_pair.t_y : BOOLEAN := false; - SELF\low_order_kinematic_pair.t_z : BOOLEAN := false; - SELF\low_order_kinematic_pair.r_x : BOOLEAN := true; - SELF\low_order_kinematic_pair.r_y : BOOLEAN := false; - SELF\low_order_kinematic_pair.r_z : BOOLEAN := true; - skew_angle : plane_angle_measure := NVL(input_skew_angle, 0.0); -WHERE - WR1: COS(plane_angle_for_pair_in_radian(SELF, skew_angle)) > 0.0; -END_ENTITY; - -ENTITY universal_pair_value - SUBTYPE OF (pair_value); - SELF\pair_value.applies_to_pair : universal_pair; - first_rotation_angle : plane_angle_measure; - second_rotation_angle : plane_angle_measure; -END_ENTITY; - -ENTITY universal_pair_with_range - SUBTYPE OF (universal_pair); - lower_limit_first_rotation : OPTIONAL plane_angle_measure; - upper_limit_first_rotation : OPTIONAL plane_angle_measure; - lower_limit_second_rotation : OPTIONAL plane_angle_measure; - upper_limit_second_rotation : OPTIONAL plane_angle_measure; -WHERE - WR1: (NOT EXISTS(lower_limit_first_rotation) OR NOT EXISTS(upper_limit_first_rotation)) XOR - (lower_limit_first_rotation < upper_limit_first_rotation); - WR2: (NOT EXISTS(lower_limit_second_rotation) OR NOT EXISTS(upper_limit_second_rotation)) XOR - (lower_limit_second_rotation < upper_limit_second_rotation); -END_ENTITY; - -ENTITY unused_patches - SUBTYPE OF (overcomplex_topology_and_geometry_relationship); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN - TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' IN - value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE'); - WR3: validate_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE']); - WR4: validate_locations_of_extreme_value_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_SURFACE_STRIP']); - WR5: validate_accuracy_types(SELF, []); -END_ENTITY; - -ENTITY unused_shape_element - SUBTYPE OF (externally_conditioned_data_quality_criterion); -WHERE - WR1: validate_ecdq_inspected_elements_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_ITEM']); -END_ENTITY; - -ENTITY usage_association - SUBTYPE OF (action_method_relationship); - SELF\action_method_relationship.relating_method : information_usage_right; - SELF\action_method_relationship.related_method : information_usage_right; -DERIVE - related : information_usage_right := SELF\action_method_relationship.related_method; - relating : information_usage_right := SELF\action_method_relationship.relating_method; -END_ENTITY; - -ENTITY user_defined_11 - SUBTYPE OF (representation_item); -END_ENTITY; - -ENTITY user_defined_curve_font - SUBTYPE OF (curve_style_font, mapped_item); -END_ENTITY; - -ENTITY user_defined_marker - SUBTYPE OF (mapped_item, pre_defined_marker); -END_ENTITY; - -ENTITY user_defined_terminator_symbol - SUBTYPE OF (mapped_item, pre_defined_symbol); -END_ENTITY; - -ENTITY user_selected_elements - SUBTYPE OF (representation_item); - picked_items : SET [1 : ?] OF representation_item; -END_ENTITY; - -ENTITY user_selected_shape_elements - SUBTYPE OF (user_selected_elements); - SELF\user_selected_elements.picked_items : SET [1 : ?] OF shape_representation_item; -END_ENTITY; - -ENTITY validation - SUBTYPE OF (group); -END_ENTITY; - -ENTITY validation_software_identification; - id : identifier; - name : label; - description : OPTIONAL text; - software_name : label; - additional_name : label; - validation_criteria_or_results : validation_criteria_or_results_select; -END_ENTITY; - -ENTITY value_format_type_qualifier; - format_type : value_format_type; -END_ENTITY; - -ENTITY value_function - SUPERTYPE OF (int_value_function) - SUBTYPE OF (numeric_expression, unary_generic_expression); - SELF\unary_generic_expression.operand : string_expression; -END_ENTITY; - -ENTITY value_range - SUBTYPE OF (compound_representation_item); -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SET_REPRESENTATION_ITEM' IN TYPEOF(item_element)) AND - value_range_wr1(item_element); - WR2: value_range_wr2(item_element); - WR3: value_range_wr3(item_element); -END_ENTITY; - -ENTITY value_representation_item - SUBTYPE OF (representation_item); - value_component : measure_value; -WHERE - WR1: SIZEOF(QUERY(rep - <* using_representations(SELF) - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GLOBAL_UNIT_ASSIGNED_CONTEXT' IN - TYPEOF(rep.context_of_items)))) = - 0; -END_ENTITY; - -ENTITY variable - ABSTRACT SUPERTYPE OF (ONEOF(numeric_variable, boolean_variable, string_variable)) - SUBTYPE OF (generic_variable); -END_ENTITY; - -ENTITY variable_expression - SUBTYPE OF (variable_semantics); - property_associated : property_variable_rep_select; -END_ENTITY; - -ENTITY variable_semantics - ABSTRACT SUPERTYPE; -END_ENTITY; - -ENTITY variational_current_representation_relationship - SUBTYPE OF (representation_relationship); - SELF\representation_relationship.rep_1 : variational_representation; - current_result : representation; -UNIQUE - UR1: current_result; -WHERE - WR1: QUERY(q - <* SELF\representation_relationship.rep_1.items - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VARIATIONAL_REPRESENTATION_ITEM' IN TYPEOF(q))) = - SELF\representation_relationship.rep_2.items; - WR2: SELF\representation_relationship.rep_1.context_of_items :=: - SELF\representation_relationship.rep_2.context_of_items; - WR3: SIZEOF(QUERY(q - <* SELF\representation_relationship.rep_2.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VARIATIONAL_REPRESENTATION_ITEM' IN - TYPEOF(q))) = - 0; - WR4: TYPEOF(SELF\representation_relationship.rep_1) - TYPEOF(SELF\representation_relationship.rep_2) = - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VARIATIONAL_REPRESENTATION']; - WR5: current_result :=: SELF\representation_relationship.rep_2; -END_ENTITY; - -ENTITY variational_parameter - ABSTRACT SUPERTYPE OF (ONEOF(bound_variational_parameter, unbound_variational_parameter)) - SUBTYPE OF (variational_representation_item, maths_variable); - parameter_description : OPTIONAL text; - parameter_current_value : maths_value; -WHERE - WR1: member_of(parameter_current_value, SELF\maths_variable.values_space); - WR2: SELF\maths_variable.name = SELF\representation_item.name; -END_ENTITY; - -ENTITY variational_representation - SUBTYPE OF (representation); -INVERSE - cm_link : variational_current_representation_relationship FOR rep_1; -WHERE - WR1: SIZEOF(QUERY(q - <* SELF\representation.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VARIATIONAL_REPRESENTATION_ITEM' IN - TYPEOF(q))) > - 0; - WR2: SIZEOF(QUERY(q <* (SELF\representation.items - cm_link.rep_2.items) | invalidate_vrep_item(q))) = 0; -END_ENTITY; - -ENTITY variational_representation_item - ABSTRACT SUPERTYPE OF (auxiliary_geometric_representation_item) - SUBTYPE OF (representation_item); -WHERE - WR1: SIZEOF(QUERY(q - <* using_representations(SELF) - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VARIATIONAL_REPRESENTATION' IN - TYPEOF(q)))) = - 0; - WR2: SIZEOF(QUERY(q <* using_representations(SELF) | NOT (SELF IN q.items))) = 0; -END_ENTITY; - -ENTITY vector - SUBTYPE OF (geometric_representation_item); - orientation : direction; - magnitude : length_measure; -WHERE - WR1: magnitude >= 0.0; -END_ENTITY; - -ENTITY vector_style - SUBTYPE OF (curve_style, pre_defined_terminator_symbol); -END_ENTITY; - -ENTITY vee_profile - SUBTYPE OF (shape_aspect); -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN - TYPEOF(SELF.of_shape.definition); - WR2: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation))) = - 1))) = - 0; - WR3: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - | (NOT (SIZEOF(impl_rep.used_representation.items) >= 3) AND - (SIZEOF(impl_rep.used_representation.items) <= 6)))) = - 0))) = - 0; - WR4: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF(QUERY(srwp_i - <* pdr.used_representation.items - | (srwp_i.name = 'orientation') OR - (srwp_i.name = 'profile angle') OR (srwp_i.name = 'tilt angle') OR - (srwp_i.name = 'profile radius') OR - (srwp_i.name = 'first length') OR - (srwp_i.name = 'second length'))) = - SIZEOF(pdr.used_representation.items)))) = - 1)) = - 1; - WR5: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - | NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' IN - TYPEOF(it)) AND - (it.name = 'orientation'))) = - 1))) = - 0))) = - 0; - WR6: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - | NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN - TYPEOF(it)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN - TYPEOF(it\measure_with_unit.value_component)) AND - (it.name = 'profile radius'))) <= - 1))) = - 0))) = - 0; - WR7: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - | NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'profile angle'))) = - 1))) = - 0))) = - 0; - WR8: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - | NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = - 2) AND - (it.name = 'tilt angle'))) = - 1))) = - 0))) = - 0; - WR9: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN - TYPEOF(pdr.used_representation)) AND - (pdr.used_representation.name = 'profile limit'))) <= - 1))) = - 0; - WR10: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - | NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN - TYPEOF(it)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN - TYPEOF(it\measure_with_unit.value_component)) AND - (it.name = 'first length'))) <= - 1))) = - 0))) = - 0; - WR11: SIZEOF(QUERY(pd - <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | NOT (SIZEOF(QUERY(impl_rep - <* QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - | NOT (SIZEOF(QUERY(it - <* impl_rep.used_representation.items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN - TYPEOF(it)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN - TYPEOF(it\measure_with_unit.value_component)) AND - (it.name = 'second length'))) <= - 1))) = - 0))) = - 0; -END_ENTITY; - -ENTITY velocity_measure_with_unit - SUBTYPE OF (measure_with_unit); -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VELOCITY_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); -END_ENTITY; - -ENTITY velocity_unit - SUBTYPE OF (derived_unit); -WHERE - WR1: derive_dimensional_exponents(SELF) = dimensional_exponents(1.0, 0.0, -1.0, 0.0, 0.0, 0.0, 0.0); -END_ENTITY; - -ENTITY verification - SUBTYPE OF (group); -END_ENTITY; - -ENTITY verification_relationship - SUBTYPE OF (group_relationship); - SELF\group_relationship.relating_group : verification; - SELF\group_relationship.related_group : verification; -END_ENTITY; - -ENTITY versioned_action_request; - id : identifier; - version : OPTIONAL label; - purpose : text; - description : OPTIONAL text; -END_ENTITY; - -ENTITY versioned_action_request_relationship; - id : identifier; - name : label; - description : OPTIONAL text; - relating_versioned_action_request : versioned_action_request; - related_versioned_action_request : versioned_action_request; -END_ENTITY; - -ENTITY vertex - SUBTYPE OF (topological_representation_item); -END_ENTITY; - -ENTITY vertex_loop - SUBTYPE OF (loop); - loop_vertex : vertex; -END_ENTITY; - -ENTITY vertex_on_edge - SUBTYPE OF (vertex); - parent_edge : edge_with_length; - distance_from_start : positive_length_measure; -WHERE - WR1: distance_from_start < parent_edge.edge_length; -END_ENTITY; - -ENTITY vertex_point - SUBTYPE OF (vertex, geometric_representation_item); - vertex_geometry : point; -END_ENTITY; - -ENTITY vertex_shell - SUBTYPE OF (topological_representation_item); - vertex_shell_extent : vertex_loop; -END_ENTITY; - -ENTITY view_volume - SUBTYPE OF (founded_item); - projection_type : central_or_parallel; - projection_point : cartesian_point; - view_plane_distance : length_measure; - front_plane_distance : length_measure; - front_plane_clipping : BOOLEAN; - back_plane_distance : length_measure; - back_plane_clipping : BOOLEAN; - view_volume_sides_clipping : BOOLEAN; - view_window : planar_box; -INVERSE - camera_usages : SET [1:?] OF camera_model_d3 FOR perspective_of_volume; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_2D' IN - TYPEOF(SELF\view_volume.view_window.placement)) OR - (dot_product((representation_item(' ') || geometric_representation_item() || direction([0.0,0.0,1.0])), - view_window\planar_box.placement\axis2_placement_3d.p[3]) = - 1.0); - WR2: view_plane_distance = view_window.placement\placement.location.coordinates[3]; -END_ENTITY; - -ENTITY visual_appearance_representation - SUBTYPE OF (representation); -WHERE - WR1: ({3 <= SIZEOF(SELF.items) <= 9}) AND - (SIZEOF(QUERY(i - <* items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN - TYPEOF(i)) AND - (i.name IN ['colour id','colour name','lustre','pattern','transparency','orientation']))) + - SIZEOF(QUERY(i - <* items - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VALUE_RANGE'] * - TYPEOF(i)) = - 1) AND - (i.name IN ['refraction index','opacity']))) + - SIZEOF(QUERY(i - <* items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DOCUMENT_FILE' IN TYPEOF(i)) AND - (i.name IN ['texture map']))) = - SIZEOF(SELF.items)); - WR2: SIZEOF(QUERY(i <* SELF.items | i.name = 'colour id')) = 1; - WR3: SIZEOF(QUERY(i <* SELF.items | i.name = 'lustre')) = 1; - WR4: SIZEOF(QUERY(i <* SELF.items | i.name = 'colour name')) <= 1; - WR5: SIZEOF(QUERY(i <* SELF.items | i.name = 'pattern')) <= 1; - WR6: SIZEOF(QUERY(i <* SELF.items | i.name = 'transparency')) <= 1; - WR7: SIZEOF(QUERY(i <* SELF.items | i.name = 'texture map')) <= 1; - WR8: SIZEOF(QUERY(i <* SELF.items | i.name = 'refraction index')) <= 1; - WR9: SIZEOF(QUERY(i <* SELF.items | i.name = 'opacity')) <= 1; - WR10: SIZEOF(QUERY(i <* SELF.items | i.name = 'orientation')) <= 1; - WR11: (SIZEOF(USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION')) = - 1) AND - (SIZEOF(QUERY(pdr - <* USEDIN(SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION') - | SIZEOF(QUERY(gpa - <* USEDIN(pdr.definition, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GENERAL_PROPERTY_ASSOCIATION.DERIVED_DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GENERAL_PROPERTY' IN - TYPEOF(gpa.base_definition)) AND - (gpa\general_property_association.base_definition\general_property.name = - 'surface_condition'))) = - 1)) = - 1); -END_ENTITY; - -ENTITY volume - SUPERTYPE OF (ONEOF(block_volume, wedge_volume, spherical_volume, cylindrical_volume, eccentric_conical_volume, - toroidal_volume, pyramid_volume, b_spline_volume, ellipsoid_volume, tetrahedron_volume, - hexahedron_volume, locally_refined_spline_volume)) - SUBTYPE OF (geometric_representation_item); -WHERE - WR1: SELF\geometric_representation_item.dim = 3; -END_ENTITY; - -ENTITY volume_measure_with_unit - SUBTYPE OF (measure_with_unit); -WHERE - WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VOLUME_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); -END_ENTITY; - -ENTITY volume_unit - SUBTYPE OF (derived_unit); -WHERE - WR1: derive_dimensional_exponents(SELF) = dimensional_exponents(3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); -END_ENTITY; - -ENTITY volume_with_faces - ABSTRACT SUPERTYPE OF (ONEOF(volume_with_shell, volume_with_parametric_boundary)) - SUBTYPE OF (geometric_representation_item, topological_representation_item); - volume_geometry : volume; -END_ENTITY; - -ENTITY volume_with_parametric_boundary - SUBTYPE OF (volume_with_faces); - outer_bound : LIST [6 : 6] OF face; -END_ENTITY; - -ENTITY volume_with_shell - SUBTYPE OF (volume_with_faces); - outer_bound : closed_shell; -END_ENTITY; - -ENTITY wedge_volume - SUBTYPE OF (volume); - position : axis2_placement_3d; - x : positive_length_measure; - y : positive_length_measure; - z : positive_length_measure; - ltx : length_measure; -WHERE - WR1: ((0.0 <= ltx) AND (ltx < x)); -END_ENTITY; - -ENTITY week_of_year_and_day_date - SUBTYPE OF (date); - week_component : week_in_year_number; - day_component : OPTIONAL day_in_week_number; -WHERE - WR1: NOT (leap_year(SELF\date.year_component)) OR {1 <= (day_component + (7 * (week_component - 1))) <= 366}; - WR2: leap_year(SELF\date.year_component) OR {1 <= (day_component + (7 * (week_component - 1))) <= 365}; -END_ENTITY; - -ENTITY wire_shell - SUBTYPE OF (topological_representation_item); - wire_shell_extent : SET [1 : ?] OF loop; -WHERE - WR1: NOT mixed_loop_type_set(wire_shell_extent); -END_ENTITY; - -ENTITY wrong_element_name - SUBTYPE OF (externally_conditioned_data_quality_criterion); -WHERE - WR1: validate_ecdq_inspected_elements_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_ITEM']); -END_ENTITY; - -ENTITY wrongly_oriented_void - SUBTYPE OF (erroneous_manifold_solid_brep); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; -WHERE - WR1: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE'); - WR2: validate_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BREP_WITH_VOIDS']); - WR3: validate_locations_of_extreme_value_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORIENTED_CLOSED_SHELL']); - WR4: validate_accuracy_types(SELF, []); -END_ENTITY; - -ENTITY wrongly_placed_loop - SUBTYPE OF (erroneous_topology_and_geometry_relationship); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; -WHERE - WR1: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE'); - WR2: validate_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE']); - WR3: validate_locations_of_extreme_value_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_BOUND']); - WR4: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); -END_ENTITY; - -ENTITY wrongly_placed_void - SUBTYPE OF (erroneous_manifold_solid_brep); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; -WHERE - WR1: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE'); - WR2: validate_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BREP_WITH_VOIDS']); - WR3: validate_locations_of_extreme_value_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORIENTED_CLOSED_SHELL']); - WR4: validate_accuracy_types(SELF, []); -END_ENTITY; - -ENTITY xor_expression - SUBTYPE OF (binary_boolean_expression); - SELF\binary_generic_expression.operands : LIST [2 : 2] OF boolean_expression; -END_ENTITY; - -ENTITY year_month - SUBTYPE OF (date); - month_component : month_in_year_number; -END_ENTITY; - -ENTITY zero_surface_normal - SUBTYPE OF (geometry_with_local_irregularity); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; -WHERE - WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' IN - TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' IN - value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2: validate_measured_data_type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE'); - WR3: validate_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE']); - WR4: validate_locations_of_extreme_value_type(SELF, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_SURFACE']); - WR5: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE']); -END_ENTITY; - -ENTITY zone_breakdown_context - SUBTYPE OF (breakdown_context); -END_ENTITY; - -ENTITY zone_element_usage - SUBTYPE OF (breakdown_element_usage); -END_ENTITY; - -FUNCTION a3ma_get_accuracy_types(ei : SET [0 : ?] OF a3m_equivalence_accuracy_association) : SET [0 : ?] OF a3ma_accuracy_type_name; -LOCAL - type_out : a3ma_measured_data_type_name; - retval : SET OF a3ma_accuracy_type_name := []; -END_LOCAL; - REPEAT i := 1 TO SIZEOF(ei); - type_out := a3ma_get_value_limit_type(ei[i].specific_accuracy.range); - retval := retval + [atna_others]; - END_REPEAT; - RETURN(retval); -END_FUNCTION; - -FUNCTION a3ma_get_detected_difference_type(ei : LIST [0 : ?] OF equivalence_detected_difference_select) : a3ma_detected_difference_type_name; -LOCAL - type_out : SET OF STRING; - sizeei : INTEGER; -END_LOCAL; - sizeei := SIZEOF(ei); - IF (sizeei = 0) - THEN - RETURN(ddna_no_element); - END_IF; - type_out := TYPEOF(ei[1]); - IF (SIZEOF(ei) > 1) - THEN - RETURN(ddna_others); - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ASSEMBLY_COMPONENT_USAGE' IN type_out) - THEN - RETURN(ddna_assembly_component_usage); - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BINARY_ASSEMBLY_CONSTRAINT' IN type_out) - THEN - RETURN(ddna_binary_assembly_constraint); - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CARTESIAN_POINT' IN type_out) - THEN - RETURN(ddna_cartesian_point); - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONTEXT_DEPENDENT_SHAPE_REPRESENTATION' IN type_out) - THEN - RETURN(ddna_context_dependent_shape_representation); - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' IN type_out) - THEN - RETURN(ddna_count_measure); - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MULTI_LEVEL_REFERENCE_DESIGNATOR' IN type_out) - THEN - RETURN(ddna_multi_level_reference_designator); - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VOLUME_MEASURE' IN type_out) - THEN - RETURN(ddna_volume_measure); - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.A3MS_INSPECTED_EQUIVALENCE_ELEMENT_SELECT' IN type_out) - THEN - RETURN(ddna_a3ms_inspected_equivalence_element_select); - END_IF; - RETURN(ddna_others); -END_FUNCTION; - -FUNCTION a3ma_get_element_type(ei : SET [1 : ?] OF inspected_equivalence_element_select) : a3ma_element_type_name; -LOCAL - type_out : SET OF STRING; -END_LOCAL; - type_out := TYPEOF(ei[1]); - IF (SIZEOF(ei) > 1) - THEN - RETURN(etna_others); - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_OR_REFERENCE' IN type_out) - THEN - RETURN(etna_product_definition_or_reference); - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION' IN type_out) - THEN - RETURN(etna_shape_representation); - END_IF; - RETURN(etna_others); -END_FUNCTION; - -FUNCTION a3ma_get_measured_type(ei : equivalence_measured_value_select) : a3ma_measured_data_type_name; -LOCAL - type_out : SET OF STRING; -END_LOCAL; - type_out := TYPEOF(ei); - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE' IN type_out) - THEN - RETURN(mdna_boolean_value); - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONTEXT_DEPENDENT_MEASURE' IN type_out) - THEN - RETURN(mdna_context_dependent_measure); - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN type_out) - THEN - RETURN(mdna_length_measure); - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.A3MA_LENGTH_MEASURE_AND_CONTEXT_DEPENDENT_MEASURE_PAIR' IN - type_out) - THEN - RETURN(mdna_length_measure_and_context_dependent_measure); - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' IN type_out) - THEN - RETURN(mdna_plane_angle_measure); - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VOLUME_MEASURE' IN type_out) - THEN - RETURN(mdna_volume_measure); - END_IF; - RETURN(mdna_others); -END_FUNCTION; - -FUNCTION a3ma_get_value_limit_type(ei : shape_data_quality_value_limit_type_select) : a3ma_measured_data_type_name; -LOCAL - type_out : SET OF STRING; -END_LOCAL; - type_out := value_limit_type(ei); - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONTEXT_DEPENDENT_MEASURE' IN type_out) - THEN - RETURN(mdna_context_dependent_measure); - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN type_out) - THEN - RETURN(mdna_length_measure); - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' IN type_out) - THEN - RETURN(mdna_plane_angle_measure); - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VOLUME_MEASURE' IN type_out) - THEN - RETURN(mdna_volume_measure); - END_IF; - RETURN(mdna_others); -END_FUNCTION; - -FUNCTION a3ma_validate_accuracy_types(ei : accuracy_associated_target_select; - cr : a3m_equivalence_criterion_for_assembly) : LOGICAL; -LOCAL - aeaa : SET OF a3m_equivalence_accuracy_association; - rp : SET OF representation; - tp : SET OF a3ma_accuracy_type_name := []; -END_LOCAL; - REPEAT i := 1 TO SIZEOF(cr.accuracy_types); - tp := tp + [cr.accuracy_types[i]]; - END_REPEAT; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_ITEM' IN TYPEOF(ei)) - THEN - aeaa := bag_to_set(USEDIN(ei, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.A3M_EQUIVALENCE_ACCURACY_ASSOCIATION.EQUIVALENCE_TARGET')); - IF (SIZEOF(cr.accuracy_types) = 0) - THEN - IF (SIZEOF(aeaa) = 0) - THEN - RETURN(true); - ELSE - RETURN(false); - END_IF; - END_IF; - IF (a3ma_get_accuracy_types(aeaa) = tp) - THEN - RETURN(true); - END_IF; - rp := bag_to_set(USEDIN(ei, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION.ITEMS')); - ELSE - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION' IN TYPEOF(ei)) - THEN - rp := [ei]; - ELSE - rp := []; - END_IF; - END_IF; - aeaa := []; - REPEAT i := 1 TO SIZEOF(rp); - aeaa := aeaa + - bag_to_set(USEDIN(rp[i], - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.A3M_EQUIVALENCE_ACCURACY_ASSOCIATION.EQUIVALENCE_TARGET')); - END_REPEAT; - IF (a3ma_get_accuracy_types(aeaa) >= tp) - THEN - RETURN(true); - END_IF; - RETURN(false); -END_FUNCTION; - -FUNCTION a3ma_validate_detected_difference_types(ei : data_equivalence_inspection_report; - cr : a3m_equivalence_criterion_for_assembly) : LOGICAL; -LOCAL - deiir : data_equivalence_inspection_instance_report; - eiriwei : equivalence_instance_report_item_with_notable_instances; -END_LOCAL; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_EQUIVALENCE_INSPECTION_INSTANCE_REPORT' IN TYPEOF(ei)) - THEN - deiir := ei; - REPEAT i := 1 TO SIZEOF(deiir.inspected_instances); - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EQUIVALENCE_INSTANCE_REPORT_ITEM_WITH_NOTABLE_INSTANCES' IN - TYPEOF(deiir.inspected_instances[i])) - THEN - eiriwei := deiir.inspected_instances[i]; - REPEAT j := 1 TO SIZEOF(eiriwei.notable_instances); - IF (NOT (a3ma_get_detected_difference_type(eiriwei.notable_instances[j].comparing_elements) IN - cr.detected_difference_types)) - THEN - RETURN(false); - END_IF; - IF (NOT (a3ma_get_detected_difference_type(eiriwei.notable_instances[j].compared_elements) IN - cr.detected_difference_types)) - THEN - RETURN(false); - END_IF; - END_REPEAT; - END_IF; - END_REPEAT; - END_IF; - RETURN(true); -END_FUNCTION; - -FUNCTION a3ma_validate_element_types(ei : data_equivalence_inspection_report; - cr : a3m_equivalence_criterion_for_assembly) : LOGICAL; -LOCAL - compared_et : a3ma_element_type_name; - comparing_et : a3ma_element_type_name; - deiir : data_equivalence_inspection_instance_report; - aeiiri : a3m_equivalence_inspection_instance_report_item; - deiep : data_equivalence_inspected_element_pair; -END_LOCAL; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_EQUIVALENCE_INSPECTION_INSTANCE_REPORT' IN TYPEOF(ei)) - THEN - deiir := ei; - REPEAT i := 1 TO SIZEOF(deiir.inspected_instances); - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.A3M_EQUIVALENCE_INSPECTION_INSTANCE_REPORT_ITEM' IN - TYPEOF(deiir.inspected_instances[i])) - THEN - aeiiri := deiir.inspected_instances[i]; - deiep := aeiiri.inspected_element; - compared_et := a3ma_get_element_type(deiep.compared_elements); - comparing_et := a3ma_get_element_type(deiep.comparing_elements); - IF (NOT (compared_et IN cr.compared_element_types) OR NOT (comparing_et IN cr.comparing_element_types)) - THEN - RETURN(false); - END_IF; - IF (compared_et <> comparing_et) - THEN - RETURN(false); - END_IF; - END_IF; - END_REPEAT; - END_IF; - RETURN(true); -END_FUNCTION; - -FUNCTION a3ma_validate_measured_type(ei : data_equivalence_inspection_report; - cr : a3m_equivalence_criterion_for_assembly) : LOGICAL; -LOCAL - amdtn : a3ma_measured_data_type_name; - deicr : data_equivalence_inspection_criterion_report; - acriwmv : a3m_equivalence_criterion_report_item_with_measured_value; - deiir : data_equivalence_inspection_instance_report; - aeiiri : a3m_equivalence_inspection_instance_report_item; - eiriwei : equivalence_instance_report_item_with_notable_instances; -END_LOCAL; - amdtn := cr.measured_data_type; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_EQUIVALENCE_INSPECTION_CRITERION_REPORT' IN TYPEOF(ei)) - THEN - deicr := ei; - REPEAT i := 1 TO SIZEOF(deicr.statistical_values); - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.A3M_EQUIVALENCE_CRITERION_REPORT_ITEM_WITH_MEASURED_VALUE' IN - TYPEOF(deicr.statistical_values[i])) - THEN - acriwmv := deicr.statistical_values[i]; - IF (a3ma_get_measured_type(acriwmv.representative_measured_value) <> amdtn) - THEN - RETURN(false); - END_IF; - END_IF; - END_REPEAT; - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_EQUIVALENCE_INSPECTION_INSTANCE_REPORT' IN TYPEOF(ei)) - THEN - deiir := ei; - REPEAT i := 1 TO SIZEOF(deiir.inspected_instances); - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.A3M_EQUIVALENCE_INSPECTION_INSTANCE_REPORT_ITEM' IN - TYPEOF(deiir.inspected_instances[i])) - THEN - aeiiri := deiir.inspected_instances[i]; - IF (a3ma_get_measured_type(aeiiri.measured_value_for_inspected_element) <> amdtn) - THEN - RETURN(false); - END_IF; - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EQUIVALENCE_INSTANCE_REPORT_ITEM_WITH_NOTABLE_INSTANCES' IN - TYPEOF(deiir.inspected_instances[i])) - THEN - eiriwei := deiir.inspected_instances[i]; - REPEAT j := 1 TO SIZEOF(eiriwei.notable_instances); - IF (a3ma_get_measured_type(eiriwei.notable_instances[j].measured_value) <> amdtn) - THEN - RETURN(false); - END_IF; - END_REPEAT; - END_IF; - END_REPEAT; - END_IF; - RETURN(true); -END_FUNCTION; - -FUNCTION a3ms_get_accuracy_types(ei : SET [0 : ?] OF a3m_equivalence_accuracy_association) : SET [0 : ?] OF a3ms_accuracy_type_name; -LOCAL - type_out : a3ms_measured_data_type_name; - retval : SET OF a3ms_accuracy_type_name := []; -END_LOCAL; - REPEAT i := 1 TO SIZEOF(ei); - type_out := a3ms_get_value_limit_type(ei[i].specific_accuracy.range); - IF (type_out = mdns_area_measure) - THEN - retval := retval + [atns_area_measure]; - ELSE - IF (type_out = mdns_length_measure) - THEN - retval := retval + [atns_length_measure]; - ELSE - IF (type_out = mdns_plane_angle_measure) - THEN - retval := retval + [atns_plane_angle_measure]; - ELSE - IF (type_out = mdns_volume_measure) - THEN - retval := retval + [atns_volume_measure]; - ELSE - retval := retval + [atns_others]; - END_IF; - END_IF; - END_IF; - END_IF; - END_REPEAT; - RETURN(retval); -END_FUNCTION; - -FUNCTION a3ms_get_detected_difference_type(ei : LIST [0 : ?] OF equivalence_detected_difference_select) : a3ms_detected_difference_type_name; -LOCAL - type_out : SET OF STRING; - sizeei : INTEGER; -END_LOCAL; - sizeei := SIZEOF(ei); - IF (sizeei = 0) - THEN - RETURN(ddns_no_element); - ELSE - type_out := TYPEOF(ei[1]); - REPEAT i := 2 TO sizeei; - IF (TYPEOF(ei[i]) <> type_out) - THEN - RETURN(ddns_others); - END_IF; - END_REPEAT; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_MEASURE' IN type_out) - THEN - IF (sizeei = 1) - THEN - RETURN(ddns_area_measure); - ELSE - RETURN(ddns_others); - END_IF; - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CARTESIAN_POINT' IN type_out) - THEN - IF (sizeei = 1) - THEN - RETURN(ddns_cartesian_point); - ELSE - IF (sizeei = 2) - THEN - RETURN(ddns_two_cartesian_points); - ELSE - RETURN(ddns_others); - END_IF; - END_IF; - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SET' IN type_out) - THEN - IF (sizeei = 1) - THEN - RETURN(ddns_connected_face_set); - ELSE - RETURN(ddns_others); - END_IF; - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' IN type_out) - THEN - IF (sizeei = 1) - THEN - RETURN(ddns_count_measure); - ELSE - IF (sizeei = 2) - THEN - RETURN(ddns_two_count_measure); - ELSE - IF (sizeei = 3) - THEN - RETURN(ddns_three_count_measure); - ELSE - IF (sizeei = 4) - THEN - RETURN(ddns_four_count_measure); - ELSE - IF (sizeei = 5) - THEN - RETURN(ddns_five_count_measure); - ELSE - RETURN(ddns_others); - END_IF; - END_IF; - END_IF; - END_IF; - END_IF; - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE' IN type_out) - THEN - IF (sizeei = 1) - THEN - RETURN(ddns_edge); - ELSE - RETURN(ddns_several_edges); - END_IF; - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE' IN type_out) - THEN - IF (sizeei = 1) - THEN - RETURN(ddns_face); - ELSE - RETURN(ddns_several_faces); - END_IF; - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN type_out) - THEN - IF (sizeei = 1) - THEN - RETURN(ddns_length_measure); - ELSE - RETURN(ddns_others); - END_IF; - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_CURVE' IN type_out) - THEN - IF (sizeei = 1) - THEN - RETURN(ddns_point_on_curve); - ELSE - RETURN(ddns_others); - END_IF; - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_SURFACE' IN type_out) - THEN - IF (sizeei = 1) - THEN - RETURN(ddns_point_on_surface); - ELSE - RETURN(ddns_others); - END_IF; - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VOLUME_MEASURE' IN type_out) - THEN - IF (sizeei = 1) - THEN - RETURN(ddns_volume_measure); - ELSE - RETURN(ddns_others); - END_IF; - END_IF; - END_IF; - RETURN(ddns_others); -END_FUNCTION; - -FUNCTION a3ms_get_element_type(ei : SET [1 : ?] OF inspected_equivalence_element_select) : a3ms_element_type_name; -LOCAL - type_out : SET OF STRING; -END_LOCAL; - type_out := TYPEOF(ei[1]); - IF (SIZEOF(ei) > 1) - THEN - RETURN(etns_others); - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_EDGE_SET' IN type_out) - THEN - RETURN(etns_connected_edge_set); - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SET' IN type_out) - THEN - RETURN(etns_connected_face_set); - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SOLID_BREP' IN type_out) - THEN - RETURN(etns_manifold_solid_brep); - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_CLOUD_DATASET' IN type_out) - THEN - RETURN(etns_point_cloud_dataset); - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHELL_BASED_SURFACE_MODEL' IN type_out) - THEN - RETURN(etns_shell_based_surface_model); - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN type_out) - THEN - RETURN(etns_shell_based_wireframe_model); - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN type_out) - THEN - RETURN(etns_vertex_point); - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXTERNALLY_DEFINED_REPRESENTATION_ITEM' IN type_out) - THEN - RETURN(etns_external_representation_item); - END_IF; - RETURN(etns_others); -END_FUNCTION; - -FUNCTION a3ms_get_measured_type(ei : equivalence_measured_value_select) : a3ms_measured_data_type_name; -LOCAL - type_out : SET OF STRING; -END_LOCAL; - type_out := TYPEOF(ei); - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_MEASURE' IN type_out) - THEN - RETURN(mdns_area_measure); - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE' IN type_out) - THEN - RETURN(mdns_boolean_value); - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN type_out) - THEN - RETURN(mdns_length_measure); - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' IN type_out) - THEN - RETURN(mdns_plane_angle_measure); - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VOLUME_MEASURE' IN type_out) - THEN - RETURN(mdns_volume_measure); - END_IF; - RETURN(mdns_others); -END_FUNCTION; - -FUNCTION a3ms_get_value_limit_type(ei : shape_data_quality_value_limit_type_select) : a3ms_measured_data_type_name; -LOCAL - type_out : SET OF STRING; -END_LOCAL; - type_out := value_limit_type(ei); - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_MEASURE' IN type_out) - THEN - RETURN(mdns_area_measure); - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE' IN type_out) - THEN - RETURN(mdns_boolean_value); - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN type_out) - THEN - RETURN(mdns_length_measure); - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' IN type_out) - THEN - RETURN(mdns_plane_angle_measure); - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VOLUME_MEASURE' IN type_out) - THEN - RETURN(mdns_volume_measure); - END_IF; - RETURN(mdns_others); -END_FUNCTION; - -FUNCTION a3ms_validate_accuracy_types(ei : accuracy_associated_target_select; - cr : a3m_equivalence_criterion_for_shape) : LOGICAL; -LOCAL - aeaa : SET OF a3m_equivalence_accuracy_association; - rp : SET OF representation; - tp : SET OF a3ms_accuracy_type_name := []; -END_LOCAL; - REPEAT i := 1 TO SIZEOF(cr.accuracy_types); - tp := tp + [cr.accuracy_types[i]]; - END_REPEAT; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_ITEM' IN TYPEOF(ei)) - THEN - aeaa := bag_to_set(USEDIN(ei, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.A3M_EQUIVALENCE_ACCURACY_ASSOCIATION.EQUIVALENCE_TARGET')); - IF (SIZEOF(cr.accuracy_types) = 0) - THEN - IF (SIZEOF(aeaa) = 0) - THEN - RETURN(true); - ELSE - RETURN(false); - END_IF; - END_IF; - IF (a3ms_get_accuracy_types(aeaa) = tp) - THEN - RETURN(true); - END_IF; - rp := bag_to_set(USEDIN(ei, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION.ITEMS')); - ELSE - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION' IN TYPEOF(ei)) - THEN - rp := [ei]; - ELSE - rp := []; - END_IF; - END_IF; - aeaa := []; - REPEAT i := 1 TO SIZEOF(rp); - aeaa := aeaa + - bag_to_set(USEDIN(rp[i], - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.A3M_EQUIVALENCE_ACCURACY_ASSOCIATION.EQUIVALENCE_TARGET')); - END_REPEAT; - IF (a3ms_get_accuracy_types(aeaa) >= tp) - THEN - RETURN(true); - END_IF; - RETURN(false); -END_FUNCTION; - -FUNCTION a3ms_validate_detected_difference_types(ei : data_equivalence_inspection_report; - cr : a3m_equivalence_criterion_for_shape) : LOGICAL; -LOCAL - deiir : data_equivalence_inspection_instance_report; - eiriwei : equivalence_instance_report_item_with_notable_instances; - addtn : a3ms_detected_difference_type_name; -END_LOCAL; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_EQUIVALENCE_INSPECTION_INSTANCE_REPORT' IN TYPEOF(ei)) - THEN - deiir := ei; - REPEAT i := 1 TO SIZEOF(deiir.inspected_instances); - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EQUIVALENCE_INSTANCE_REPORT_ITEM_WITH_NOTABLE_INSTANCES' IN - TYPEOF(deiir.inspected_instances[i])) - THEN - eiriwei := deiir.inspected_instances[i]; - REPEAT j := 1 TO SIZEOF(eiriwei.notable_instances); - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MISMATCH_OF_POINT_CLOUD_AND_RELATED_GEOMETRY' IN - TYPEOF(cr)) - THEN - addtn := a3ms_get_detected_difference_type(eiriwei.notable_instances[j].comparing_elements); - IF (a3ms_get_element_type(eiriwei.inspected_element.comparing_elements) = etns_connected_edge_set) - THEN - IF (addtn <> ddns_point_on_curve) - THEN - RETURN(false); - END_IF; - ELSE - IF (a3ms_get_element_type(eiriwei.inspected_element.comparing_elements) = etns_connected_face_set) - THEN - IF (addtn <> ddns_point_on_surface) - THEN - RETURN(false); - END_IF; - ELSE - IF (a3ms_get_element_type(eiriwei.inspected_element.comparing_elements) <> - etns_external_representation_item) - THEN - RETURN(false); - END_IF; - END_IF; - END_IF; - IF (NOT (a3ms_get_detected_difference_type(eiriwei.notable_instances[j].compared_elements) IN - cr.detected_difference_types)) - THEN - RETURN(false); - END_IF; - ELSE - IF (NOT (a3ms_get_detected_difference_type(eiriwei.notable_instances[j].comparing_elements) IN - cr.detected_difference_types)) - THEN - RETURN(false); - END_IF; - IF (NOT (a3ms_get_detected_difference_type(eiriwei.notable_instances[j].compared_elements) IN - cr.detected_difference_types)) - THEN - RETURN(false); - END_IF; - END_IF; - END_REPEAT; - END_IF; - END_REPEAT; - END_IF; - RETURN(true); -END_FUNCTION; - -FUNCTION a3ms_validate_element_types(ei : data_equivalence_inspection_report; - cr : a3m_equivalence_criterion_for_shape) : LOGICAL; -LOCAL - compared_et : a3ms_element_type_name; - comparing_et : a3ms_element_type_name; - deiir : data_equivalence_inspection_instance_report; - aeiiri : a3m_equivalence_inspection_instance_report_item; - deiep : data_equivalence_inspected_element_pair; -END_LOCAL; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_EQUIVALENCE_INSPECTION_INSTANCE_REPORT' IN TYPEOF(ei)) - THEN - deiir := ei; - REPEAT i := 1 TO SIZEOF(deiir.inspected_instances); - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.A3M_EQUIVALENCE_INSPECTION_INSTANCE_REPORT_ITEM' IN - TYPEOF(deiir.inspected_instances[i])) - THEN - aeiiri := deiir.inspected_instances[i]; - deiep := aeiiri.inspected_element; - compared_et := a3ms_get_element_type(deiep.compared_elements); - comparing_et := a3ms_get_element_type(deiep.comparing_elements); - IF ((NOT (compared_et IN cr.compared_element_types) AND (compared_et <> etns_external_representation_item)) OR - (NOT (comparing_et IN cr.comparing_element_types) AND (comparing_et <> etns_external_representation_item))) - THEN - RETURN(false); - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MISMATCH_OF_POINT_CLOUD_AND_RELATED_GEOMETRY' IN - TYPEOF(cr)) - THEN - IF (((comparing_et <> etns_external_representation_item) AND - (compared_et <> etns_external_representation_item)) AND - (compared_et = comparing_et)) - THEN - RETURN(false); - END_IF; - ELSE - IF (((comparing_et <> etns_external_representation_item) AND - (compared_et <> etns_external_representation_item)) AND - (compared_et <> comparing_et)) - THEN - RETURN(false); - END_IF; - END_IF; - END_IF; - END_REPEAT; - END_IF; - RETURN(true); -END_FUNCTION; - -FUNCTION a3ms_validate_measured_type(ei : data_equivalence_inspection_report; - cr : a3m_equivalence_criterion_for_shape) : LOGICAL; -LOCAL - amdtn : a3ms_measured_data_type_name; - deicr : data_equivalence_inspection_criterion_report; - acriwmv : a3m_equivalence_criterion_report_item_with_measured_value; - deiir : data_equivalence_inspection_instance_report; - aeiiri : a3m_equivalence_inspection_instance_report_item; - eiriwei : equivalence_instance_report_item_with_notable_instances; -END_LOCAL; - amdtn := cr.measured_data_type; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_EQUIVALENCE_INSPECTION_CRITERION_REPORT' IN TYPEOF(ei)) - THEN - deicr := ei; - REPEAT i := 1 TO SIZEOF(deicr.statistical_values); - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.A3M_EQUIVALENCE_CRITERION_REPORT_ITEM_WITH_MEASURED_VALUE' IN - TYPEOF(deicr.statistical_values[i])) - THEN - acriwmv := deicr.statistical_values[i]; - IF (a3ms_get_measured_type(acriwmv.representative_measured_value) <> amdtn) - THEN - RETURN(false); - END_IF; - END_IF; - END_REPEAT; - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_EQUIVALENCE_INSPECTION_INSTANCE_REPORT' IN TYPEOF(ei)) - THEN - deiir := ei; - REPEAT i := 1 TO SIZEOF(deiir.inspected_instances); - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.A3M_EQUIVALENCE_INSPECTION_INSTANCE_REPORT_ITEM' IN - TYPEOF(deiir.inspected_instances[i])) - THEN - aeiiri := deiir.inspected_instances[i]; - IF (a3ms_get_measured_type(aeiiri.measured_value_for_inspected_element) <> amdtn) - THEN - RETURN(false); - END_IF; - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EQUIVALENCE_INSTANCE_REPORT_ITEM_WITH_NOTABLE_INSTANCES' IN - TYPEOF(deiir.inspected_instances[i])) - THEN - eiriwei := deiir.inspected_instances[i]; - REPEAT j := 1 TO SIZEOF(eiriwei.notable_instances); - IF (a3ms_get_measured_type(eiriwei.notable_instances[j].measured_value) <> amdtn) - THEN - RETURN(false); - END_IF; - END_REPEAT; - END_IF; - END_REPEAT; - END_IF; - RETURN(true); -END_FUNCTION; - -FUNCTION above_plane(p1 : cartesian_point; - p2 : cartesian_point; - p3 : cartesian_point; - p4 : cartesian_point) : REAL; -LOCAL - dir2 : direction := dummy_gri || direction([1.0,0.0,0.0]); - dir3 : direction := dummy_gri || direction([1.0,0.0,0.0]); - dir4 : direction := dummy_gri || direction([1.0,0.0,0.0]); - val : REAL; - mag : REAL; -END_LOCAL; - IF (p1.dim <> 3) - THEN - RETURN(?); - END_IF; - REPEAT i := 1 TO 3; - dir2.direction_ratios[i] := p2.coordinates[i] - p1.coordinates[i]; - dir3.direction_ratios[i] := p3.coordinates[i] - p1.coordinates[i]; - dir4.direction_ratios[i] := p4.coordinates[i] - p1.coordinates[i]; - mag := dir4.direction_ratios[i] * dir4.direction_ratios[i]; - END_REPEAT; - mag := SQRT(mag); - val := mag * dot_product(dir4, cross_product(dir2, dir3).orientation); - RETURN(val); -END_FUNCTION; - -FUNCTION acyclic(arg1 : generic_expression; - arg2 : SET OF generic_expression) : BOOLEAN; -LOCAL - result : BOOLEAN := true; -END_LOCAL; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SIMPLE_GENERIC_EXPRESSION' IN TYPEOF(arg1)) - THEN - RETURN(true); - END_IF; - IF arg1 IN arg2 - THEN - RETURN(false); - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.UNARY_GENERIC_EXPRESSION' IN TYPEOF(arg1) - THEN - RETURN(acyclic(arg1\unary_generic_expression.operand, arg2 + [arg1])); - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BINARY_GENERIC_EXPRESSION' IN TYPEOF(arg1) - THEN - RETURN(acyclic(arg1\binary_generic_expression.operands[1], arg2 + [arg1]) AND - acyclic(arg1\binary_generic_expression.operands[2], arg2 + [arg1])); - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MULTIPLE_ARITY_GENERIC_EXPRESSION' IN TYPEOF(arg1) - THEN - result := true; - REPEAT i := 1 TO SIZEOF(arg1\multiple_arity_generic_expression.operands); - result := result AND acyclic(arg1\multiple_arity_generic_expression.operands[i], arg2 + [arg1]); - END_REPEAT; - RETURN(result); - END_IF; - RETURN(result); -END_FUNCTION; - -FUNCTION acyclic_action_directive_relationship(relation : action_directive_relationship; - relatives : SET [1 : ?] OF action_directive; - specific_relation : STRING) : BOOLEAN; -LOCAL - x : SET OF action_directive_relationship; -END_LOCAL; - IF relation.relating IN relatives - THEN - RETURN(false); - END_IF; - x := QUERY(adr - <* bag_to_set(USEDIN(relation.relating, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ACTION_DIRECTIVE_RELATIONSHIP.RELATED')) - | specific_relation IN TYPEOF(adr)); - REPEAT i := 1 TO HIINDEX(x); - IF NOT acyclic_action_directive_relationship(x[i], relatives + relation.relating, specific_relation) - THEN - RETURN(false); - END_IF; - END_REPEAT; - RETURN(true); -END_FUNCTION; - -FUNCTION acyclic_alternative_solution_relationship(relation : alternative_solution_relationship; - relatives : SET [1 : ?] OF product_definition_formation; - specific_relation : STRING) : BOOLEAN; -LOCAL - x : SET OF alternative_solution_relationship; -END_LOCAL; - IF relation.relating_product_definition_formation IN relatives - THEN - RETURN(false); - END_IF; - x := QUERY(asr - <* bag_to_set(USEDIN(relation.relating_product_definition_formation, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ALTERNATIVE_SOLUTION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION_FORMATION')) - | specific_relation IN TYPEOF(asr)); - REPEAT i := 1 TO HIINDEX(x); - IF NOT acyclic_alternative_solution_relationship(x[i], relatives + relation.relating_product_definition_formation, - specific_relation) - THEN - RETURN(false); - END_IF; - END_REPEAT; - RETURN(true); -END_FUNCTION; - -FUNCTION acyclic_assignment_object_relationship(relation : assignment_object_relationship; - relatives : SET [1 : ?] OF assignment_object_select; - specific_relation : STRING) : BOOLEAN; -LOCAL - x : SET OF assignment_object_relationship; -END_LOCAL; - IF relation.relating IN relatives - THEN - RETURN(false); - END_IF; - x := QUERY(aor - <* bag_to_set(USEDIN(relation.relating, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ASSIGNMENT_OBJECT_RELATIONSHIP.RELATED')) - | specific_relation IN TYPEOF(aor)); - REPEAT i := 1 TO HIINDEX(x); - IF NOT acyclic_assignment_object_relationship(x[i], relatives + relation.relating, specific_relation) - THEN - RETURN(false); - END_IF; - END_REPEAT; - RETURN(true); -END_FUNCTION; - -FUNCTION acyclic_classification_assignment_relationship(relation : classification_assignment_relationship; - relatives : SET [1 : ?] OF classification_assignment; - specific_relation : STRING) : BOOLEAN; -LOCAL - x : SET OF classification_assignment_relationship; -END_LOCAL; - IF relation.relating IN relatives - THEN - RETURN(false); - END_IF; - x := QUERY(car - <* bag_to_set(USEDIN(relation.relating, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLASSIFICATION_ASSIGNMENT_RELATIONSHIP.RELATED')) - | specific_relation IN TYPEOF(car)); - REPEAT i := 1 TO HIINDEX(x); - IF NOT acyclic_classification_assignment_relationship(x[i], relatives + relation.relating, specific_relation) - THEN - RETURN(false); - END_IF; - END_REPEAT; - RETURN(true); -END_FUNCTION; - -FUNCTION acyclic_composite_text(start_composite : composite_text; - child_text : SET [1 : ?] OF text_or_character) : LOGICAL; -LOCAL - i : INTEGER; - local_composite_text : SET [0 : ?] OF composite_text; - local_annotation_text : SET [0 : ?] OF annotation_text; - local_children : SET [0 : ?] OF text_or_character; -END_LOCAL; - local_composite_text := QUERY(child - <* child_text - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_TEXT' IN TYPEOF(child))); - IF (SIZEOF(local_composite_text) > 0) - THEN - REPEAT i := 1 TO HIINDEX(local_composite_text); - IF (start_composite :=: local_composite_text[i]) - THEN - RETURN(false); - END_IF; - END_REPEAT; - END_IF; - local_children := child_text; - IF (SIZEOF(local_composite_text)) > 0 - THEN - REPEAT i := 1 TO HIINDEX(local_composite_text); - local_children := local_children + local_composite_text[i].collected_text; - END_REPEAT; - END_IF; - local_annotation_text := QUERY(child - <* child_text - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT' IN - TYPEOF(child))); - IF (SIZEOF(local_annotation_text) > 0) - THEN - REPEAT i := 1 TO HIINDEX(local_annotation_text); - local_children := local_children + - QUERY(item - <* local_annotation_text[i]\mapped_item.mapping_source.mapped_representation.items - | SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_TEXT'] * - TYPEOF(item)) > - 0); - END_REPEAT; - END_IF; - IF (local_children :<>: child_text) - THEN - RETURN(acyclic_composite_text(start_composite, local_children)); - ELSE - RETURN(true); - END_IF; -END_FUNCTION; - -FUNCTION acyclic_curve_replica(rep : curve_replica; - parent : curve) : BOOLEAN; - IF NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_REPLICA') IN TYPEOF(parent)) - THEN - RETURN(true); - END_IF; - (* Return TRUE if the parent is not of type curve_replica *) - IF (parent :=: rep) - THEN - RETURN(false); - ELSE - RETURN(acyclic_curve_replica(rep, parent\curve_replica.parent_curve)); - END_IF; -END_FUNCTION; - -FUNCTION acyclic_description_text_assignment_relationship(relation : description_text_assignment_relationship; - relatives : SET [1 : ?] OF description_text_assignment; - specific_relation : STRING) : BOOLEAN; -LOCAL - x : SET OF description_text_assignment_relationship; -END_LOCAL; - IF relation.relating IN relatives - THEN - RETURN(false); - END_IF; - x := QUERY(dtar - <* bag_to_set(USEDIN(relation.relating, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTION_TEXT_ASSIGNMENT_RELATIONSHIP.RELATED')) - | specific_relation IN TYPEOF(dtar)); - REPEAT i := 1 TO HIINDEX(x); - IF NOT acyclic_description_text_assignment_relationship(x[i], relatives + relation.relating, specific_relation) - THEN - RETURN(false); - END_IF; - END_REPEAT; - RETURN(true); -END_FUNCTION; - -FUNCTION acyclic_external_identification_assignment_relationship(relation : external_identification_assignment_relationship; - relatives : SET [1 : ?] OF external_identification_assignment; - specific_relation : STRING) : BOOLEAN; -LOCAL - x : SET OF external_identification_assignment_relationship; -END_LOCAL; - IF relation.relating IN relatives - THEN - RETURN(false); - END_IF; - x := QUERY(eiar - <* bag_to_set(USEDIN(relation.relating, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXTERNAL_IDENTIFICATION_ASSIGNMENT_RELATIONSHIP.RELATED')) - | specific_relation IN TYPEOF(eiar)); - REPEAT i := 1 TO HIINDEX(x); - IF NOT acyclic_external_identification_assignment_relationship(x[i], relatives + relation.relating, - specific_relation) - THEN - RETURN(false); - END_IF; - END_REPEAT; - RETURN(true); -END_FUNCTION; - -FUNCTION acyclic_generic_property_relationship(relation : generic_property_relationship; - relatives : SET [1 : ?] OF generic_property_definition_select; - specific_relation : STRING) : LOGICAL; -LOCAL - x : SET OF generic_property_relationship; -END_LOCAL; - IF relation.relating IN relatives - THEN - RETURN(false); - END_IF; - x := QUERY(gpr - <* bag_to_set(USEDIN(relation.relating, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GENERIC_PROPERTY_RELATIONSHIP.RELATED')) - | specific_relation IN TYPEOF(gpr)); - REPEAT i := 1 TO HIINDEX(x); - IF NOT acyclic_generic_property_relationship(x[i], relatives + relation.relating, specific_relation) - THEN - RETURN(false); - END_IF; - END_REPEAT; - RETURN(true); -END_FUNCTION; - -FUNCTION acyclic_geometric_tolerance_relationship(relation : geometric_tolerance_relationship; - relatives : SET [1 : ?] OF geometric_tolerance; - specific_relation : STRING) : BOOLEAN; -LOCAL - x : SET OF geometric_tolerance_relationship; -END_LOCAL; - IF relation.relating_geometric_tolerance IN relatives - THEN - RETURN(false); - END_IF; - x := QUERY(geotol - <* bag_to_set(USEDIN(relation.relating_geometric_tolerance, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_TOLERANCE_RELATIONSHIP.RELATED_GEOMETRIC_TOLERANCE')) - | specific_relation IN TYPEOF(geotol)); - REPEAT i := 1 TO HIINDEX(x); - IF NOT acyclic_geometric_tolerance_relationship(x[i], relatives + relation.relating_geometric_tolerance, - specific_relation) - THEN - RETURN(false); - END_IF; - END_REPEAT; - RETURN(true); -END_FUNCTION; - -FUNCTION acyclic_mapped_representation(mi : mapped_item) : BOOLEAN; -LOCAL - rms : SET OF representation_map; - mis : SET OF mapped_item; - rs1 : SET OF representation; - rs2 : SET OF representation; -END_LOCAL; - rs1 := using_representations(mi); - rs2 := []; - REPEAT WHILE SIZEOF(rs1) > 0; - REPEAT i := 1 TO HIINDEX(rs1); - rms := bag_to_set(USEDIN(rs1[i], - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_MAP.MAPPED_REPRESENTATION')); - IF SIZEOF(rms) > 0 - THEN - REPEAT j := 1 TO HIINDEX(rms); - mis := bag_to_set(USEDIN(rms[i], - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM.MAPPING_SOURCE')); - IF SIZEOF(mis) > 0 - THEN - REPEAT j := 1 TO HIINDEX(mis); - IF mis[i] :=: mi - THEN - RETURN(false); - END_IF; - rs2 := rs2 + using_representations(mis[i]); - END_REPEAT; - END_IF; - END_REPEAT; - END_IF; - END_REPEAT; - rs1 := rs2; - rs2 := []; - END_REPEAT; - RETURN(true); -END_FUNCTION; - -FUNCTION acyclic_point_replica(rep : point_replica; - parent : point) : BOOLEAN; - IF NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_REPLICA') IN TYPEOF(parent)) - THEN - RETURN(true); - END_IF; - (* Return TRUE if the parent is not of type point_replica *) - IF (parent :=: rep) - THEN - RETURN(false); - ELSE - RETURN(acyclic_point_replica(rep, parent\point_replica.parent_pt)); - END_IF; -END_FUNCTION; - -FUNCTION acyclic_product_category_relationship(relation : product_category_relationship; - children : SET OF product_category) : BOOLEAN; -LOCAL - x : SET OF product_category_relationship; - local_children : SET OF product_category; -END_LOCAL; - REPEAT i := 1 TO HIINDEX(children); - IF relation.category :=: children[i] - THEN - RETURN(false); - END_IF; - END_REPEAT; - x := bag_to_set(USEDIN(relation.category, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_CATEGORY_RELATIONSHIP.SUB_CATEGORY')); - local_children := children + relation.category; - IF SIZEOF(x) > 0 - THEN - REPEAT i := 1 TO HIINDEX(x); - IF NOT acyclic_product_category_relationship(x[i], local_children) - THEN - RETURN(false); - END_IF; - END_REPEAT; - END_IF; - RETURN(true); -END_FUNCTION; - -FUNCTION acyclic_product_definition_relationship(relation : product_definition_relationship; - relatives : SET [1 : ?] OF product_definition_or_reference; - specific_relation : STRING) : BOOLEAN; -LOCAL - x : SET OF product_definition_relationship; -END_LOCAL; - IF relation.relating_product_definition IN relatives - THEN - RETURN(false); - END_IF; - x := QUERY(pd - <* bag_to_set(USEDIN(relation.relating_product_definition, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION')) - | specific_relation IN TYPEOF(pd)); - REPEAT i := 1 TO HIINDEX(x); - IF NOT acyclic_product_definition_relationship(x[i], relatives + relation.relating_product_definition, - specific_relation) - THEN - RETURN(false); - END_IF; - END_REPEAT; - RETURN(true); -END_FUNCTION; - -FUNCTION acyclic_product_definition_specified_occurrence(pdso : product_definition_specified_occurrence; - definition : product_definition_occurrence) : BOOLEAN; - IF NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SPECIFIED_OCCURRENCE') IN - TYPEOF(definition)) - THEN - RETURN(true); - END_IF; - IF (definition :=: pdso) - THEN - RETURN(false); - ELSE - RETURN(acyclic_product_definition_specified_occurrence(pdso, definition\product_definition_occurrence.definition)); - END_IF; -END_FUNCTION; - -FUNCTION acyclic_representation_relationship(relation : representation_relationship; - relatives : SET [1 : ?] OF representation; - specific_relation : STRING) : BOOLEAN; -LOCAL - x : SET OF representation_relationship; -END_LOCAL; - IF relation.rep_1 IN relatives - THEN - RETURN(false); - END_IF; - x := QUERY(r - <* bag_to_set(USEDIN(relation.rep_1, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_RELATIONSHIP.REP_2')) - | specific_relation IN TYPEOF(r)); - REPEAT i := 1 TO HIINDEX(x); - IF NOT acyclic_representation_relationship(x[i], relatives + relation.rep_1, specific_relation) - THEN - RETURN(false); - END_IF; - END_REPEAT; - RETURN(true); -END_FUNCTION; - -FUNCTION acyclic_shape_aspect_occurrence(sao : shape_aspect_occurrence; - definition : shape_aspect_or_characterized_object) : BOOLEAN; - IF NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_OCCURRENCE') IN TYPEOF(definition)) - THEN - RETURN(true); - END_IF; - IF (definition :=: sao) - THEN - RETURN(false); - ELSE - RETURN(acyclic_shape_aspect_occurrence(sao, definition\shape_aspect_occurrence.definition)); - END_IF; -END_FUNCTION; - -FUNCTION acyclic_shape_aspect_relationship(relation : shape_aspect_relationship; - relatives : SET [1 : ?] OF shape_aspect; - specific_relation : STRING) : BOOLEAN; -LOCAL - x : SET OF shape_aspect_relationship; -END_LOCAL; - IF relation.relating_shape_aspect IN relatives - THEN - RETURN(false); - END_IF; - x := QUERY(sa - <* bag_to_set(USEDIN(relation.relating_shape_aspect, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')) - | specific_relation IN TYPEOF(sa)); - REPEAT i := 1 TO HIINDEX(x); - IF NOT acyclic_shape_aspect_relationship(x[i], relatives + relation.relating_shape_aspect, specific_relation) - THEN - RETURN(false); - END_IF; - END_REPEAT; - RETURN(true); -END_FUNCTION; - -FUNCTION acyclic_solid_replica(rep : solid_replica; - parent : solid_model) : BOOLEAN; - IF NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SOLID_REPLICA') IN TYPEOF(parent)) - THEN - RETURN(true); - END_IF; - (* Return TRUE if the parent is not of type solid_replica. *) - IF (parent :=: rep) - THEN - RETURN(false); - ELSE - RETURN(acyclic_solid_replica(rep, parent\solid_replica.parent_solid)); - END_IF; -END_FUNCTION; - -FUNCTION acyclic_state_definition_to_state_assignment_relationship(relation : state_definition_to_state_assignment_relationship; - relatives : SET [1 : ?] OF ascribable_state; - specific_relation : STRING) : LOGICAL; -LOCAL - x : SET OF state_definition_to_state_assignment_relationship; -END_LOCAL; - IF relation.relating_ascribable_state IN relatives - THEN - RETURN(false); - END_IF; - x := QUERY(sdtsar - <* bag_to_set(USEDIN(relation.relating_ascribable_state, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STATE_DEFINITION_TO_STATE_ASSIGNMENT_RELATIONSHIP.RELATED_ASCRIBABLE_STATE')) - | specific_relation IN TYPEOF(sdtsar)); - REPEAT i := 1 TO HIINDEX(x); - IF NOT acyclic_state_definition_to_state_assignment_relationship(x[i], - relatives + relation.relating_ascribable_state, - specific_relation) - THEN - RETURN(false); - END_IF; - END_REPEAT; - RETURN(true); -END_FUNCTION; - -FUNCTION acyclic_surface_replica(rep : surface_replica; - parent : surface) : BOOLEAN; - IF NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_REPLICA') IN TYPEOF(parent)) - THEN - RETURN(true); - END_IF; - (* Return TRUE if the parent is not of type surface_replica *) - IF (parent :=: rep) - THEN - RETURN(false); - ELSE - RETURN(acyclic_surface_replica(rep, parent\surface_replica.parent_surface)); - END_IF; -END_FUNCTION; - -FUNCTION advanced_face_properties(testface : face) : BOOLEAN; -(* return TRUE if testface is of type advanced_face *) - (* return TRUE if testface is of type advanced_face *) - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN TYPEOF(testface) - THEN - RETURN(true); - END_IF; - (* if testface is a subface recursively test the parent_face, - return FALSE for all other types of face *) - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SUBFACE' IN TYPEOF(testface)) - THEN - RETURN(advanced_face_properties(testface\subface.parent_face)); - ELSE - RETURN(false); - END_IF; -END_FUNCTION; - -FUNCTION all_members_of_es(sv : SET OF maths_value; - es : elementary_space_enumerators) : LOGICAL; - -CONSTANT - base_types : SET OF STRING := - ['NUMBER', - 'COMPLEX_NUMBER_LITERAL', - 'REAL', - 'INTEGER', - 'LOGICAL', - 'BOOLEAN', - 'STRING', - 'BINARY', - 'MATHS_SPACE', - 'MATHS_FUNCTION', - 'LIST', - 'ELEMENTARY_SPACE_ENUMERATORS', - 'ORDERING_TYPE', - 'LOWER_UPPER', - 'SYMMETRY_TYPE', - 'ELEMENTARY_FUNCTION_ENUMERATORS', - 'OPEN_CLOSED', - 'SPACE_CONSTRAINT_TYPE', - 'REPACKAGE_OPTIONS', - 'EXTENSION_OPTIONS']; -END_CONSTANT; -LOCAL - v : maths_value; - key_type : STRING := ''; - types : SET OF STRING; - ge : generic_expression; - cum : LOGICAL := true; - vspc : maths_space; -END_LOCAL; - IF NOT EXISTS(sv) OR NOT EXISTS(es) - THEN - RETURN(false); - END_IF; - CASE es OF - es_numbers : key_type := 'NUMBER'; - es_complex_numbers : key_type := 'COMPLEX_NUMBER_LITERAL'; - es_reals : key_type := 'REAL'; - es_integers : key_type := 'INTEGER'; - es_logicals : key_type := 'LOGICAL'; - es_booleans : key_type := 'BOOLEAN'; - es_strings : key_type := 'STRING'; - es_binarys : key_type := 'BINARY'; - es_maths_spaces : key_type := 'MATHS_SPACE'; - es_maths_functions : key_type := 'MATHS_FUNCTION'; - es_generics : RETURN(true); - END_CASE; - REPEAT i := 1 TO SIZEOF(sv); - IF NOT EXISTS(sv[i]) - THEN - RETURN(false); - END_IF; - v := simplify_maths_value(sv[i]); - types := stripped_typeof(v); - IF key_type IN types - THEN - SKIP; - END_IF; - IF (es = es_numbers) AND ('COMPLEX_NUMBER_LITERAL' IN types) - THEN - SKIP; - END_IF; - IF SIZEOF(base_types * types) > 0 - THEN - RETURN(false); - END_IF; - ge := v; - IF has_values_space(ge) - THEN - vspc := values_space_of(ge); - IF NOT subspace_of_es(vspc, es) - THEN - IF NOT compatible_spaces(vspc, make_elementary_space(es)) - THEN - RETURN(false); - END_IF; - cum := unknown; - END_IF; - ELSE - cum := unknown; - END_IF; - IF cum = false - THEN - RETURN(false); - END_IF; - END_REPEAT; - RETURN(cum); -END_FUNCTION; - -FUNCTION any_space_satisfies(sc : space_constraint_type; - spc : maths_space) : BOOLEAN; -LOCAL - spc_id : elementary_space_enumerators; -END_LOCAL; - IF (sc = sc_equal) OR NOT ('ELEMENTARY_SPACE' IN stripped_typeof(spc)) - THEN - RETURN(false); - END_IF; - spc_id := spc\elementary_space.space_id; - IF sc = sc_subspace - THEN - RETURN(bool(spc_id = es_generics)); - END_IF; - IF sc = sc_member - THEN - RETURN(bool((spc_id = es_generics) OR (spc_id = es_maths_spaces))); - END_IF; - RETURN(?); -END_FUNCTION; - -FUNCTION aspect_ratio(p : planar_box) : positive_ratio_measure; - IF (p.size_in_x > 0.) AND (p.size_in_y > 0.) - THEN - RETURN(p.size_in_x / p.size_in_y); - ELSE - RETURN(?); - END_IF; -END_FUNCTION; - -FUNCTION assembly_leaf(item : product_definition) : BOOLEAN; -LOCAL - local_relation : SET OF assembly_component_usage := []; - local_relation2 : BAG OF assembly_component_usage := []; -END_LOCAL; - local_relation2 := local_relation2 + - QUERY(pdr - <* USEDIN(item, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_RELATIONSHIP.RELATING_PRODUCT_DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ASSEMBLY_COMPONENT_USAGE' IN TYPEOF(pdr)); - local_relation := bag_to_set(local_relation2); - IF (SIZEOF(local_relation) = 0) - THEN - RETURN(true); - ELSE - RETURN(false); - END_IF; -END_FUNCTION; - -FUNCTION assembly_root(item : product_definition) : BOOLEAN; --- extraction of related assembly_component_relationships -- - IF (SIZEOF(QUERY(pdr - <* USEDIN(item, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ASSEMBLY_COMPONENT_USAGE' IN TYPEOF(pdr))) = - 0) - THEN - RETURN(true); - ELSE - RETURN(false); - END_IF; -END_FUNCTION; - -FUNCTION assoc_product_space(ts1 : tuple_space; - ts2 : tuple_space) : tuple_space; -LOCAL - types1 : SET OF STRING := stripped_typeof(ts1); - types2 : SET OF STRING := stripped_typeof(ts2); - up1 : uniform_product_space := make_uniform_product_space(the_reals, 1); - up2 : uniform_product_space := make_uniform_product_space(the_reals, 1); - lp1 : listed_product_space := the_zero_tuple_space; - lp2 : listed_product_space := the_zero_tuple_space; - lps : listed_product_space := the_zero_tuple_space; - et1 : extended_tuple_space := the_tuples; - et2 : extended_tuple_space := the_tuples; - ets : extended_tuple_space := the_tuples; - use_up1 : BOOLEAN; - use_up2 : BOOLEAN; - use_lp1 : BOOLEAN; - use_lp2 : BOOLEAN; - factors : LIST OF maths_space := []; - tspace : tuple_space; -END_LOCAL; - IF 'UNIFORM_PRODUCT_SPACE' IN types1 - THEN - up1 := ts1; - use_up1 := true; - use_lp1 := false; - ELSE - IF 'LISTED_PRODUCT_SPACE' IN types1 - THEN - lp1 := ts1; - use_up1 := false; - use_lp1 := true; - ELSE - IF NOT ('EXTENDED_TUPLE_SPACE' IN types1) - THEN - RETURN(?); - END_IF; - et1 := ts1; - use_up1 := false; - use_lp1 := false; - END_IF; - END_IF; - IF 'UNIFORM_PRODUCT_SPACE' IN types2 - THEN - up2 := ts2; - use_up2 := true; - use_lp2 := false; - ELSE - IF 'LISTED_PRODUCT_SPACE' IN types2 - THEN - lp2 := ts2; - use_up2 := false; - use_lp2 := true; - ELSE - IF NOT ('EXTENDED_TUPLE_SPACE' IN types2) - THEN - RETURN(?); - END_IF; - et2 := ts2; - use_up2 := false; - use_lp2 := false; - END_IF; - END_IF; - IF use_up1 - THEN - IF use_up2 - THEN - IF up1.base = up2.base - THEN - tspace := make_uniform_product_space(up1.base, up1.exponent + up2.exponent); - ELSE - factors := [up1.base:up1.exponent,up2.base:up2.exponent]; - tspace := make_listed_product_space(factors); - END_IF; - ELSE - IF use_lp2 - THEN - factors := [up1.base:up1.exponent]; - factors := factors + lp2.factors; - tspace := make_listed_product_space(factors); - ELSE - tspace := assoc_product_space(up1, et2.base); - tspace := make_extended_tuple_space(tspace, et2.extender); - END_IF; - END_IF; - ELSE - IF use_lp1 - THEN - IF use_up2 - THEN - factors := [up2.base:up2.exponent]; - factors := lp1.factors + factors; - tspace := make_listed_product_space(factors); - ELSE - IF use_lp2 - THEN - tspace := make_listed_product_space(lp1.factors + lp2.factors); - ELSE - tspace := assoc_product_space(lp1, et2.base); - tspace := make_extended_tuple_space(tspace, et2.extender); - END_IF; - END_IF; - ELSE - IF use_up2 - THEN - IF et1.extender = up2.base - THEN - tspace := assoc_product_space(et1.base, up2); - tspace := make_extended_tuple_space(tspace, et1.extender); - ELSE - RETURN(?); - END_IF; - ELSE - IF use_lp2 - THEN - factors := lp2.factors; - REPEAT i := 1 TO SIZEOF(factors); - IF et1.extender <> factors[i] - THEN - RETURN(?); - END_IF; - END_REPEAT; - tspace := assoc_product_space(et1.base, lp2); - tspace := make_extended_tuple_space(tspace, et1.extender); - ELSE - IF et1.extender = et2.extender - THEN - tspace := assoc_product_space(et1, et2.base); - ELSE - RETURN(?); - END_IF; - END_IF; - END_IF; - END_IF; - END_IF; - RETURN(tspace); -END_FUNCTION; - -FUNCTION associated_surface(arg : pcurve_or_surface) : surface; -LOCAL - surf : surface; -END_LOCAL; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PCURVE' IN TYPEOF(arg) - THEN - surf := arg\pcurve.basis_surface; - ELSE - surf := arg; - END_IF; - RETURN(surf); -END_FUNCTION; - -FUNCTION atan2(y : REAL; - x : REAL) : REAL; -LOCAL - r : REAL; -END_LOCAL; - IF (y = 0.0) AND (x = 0.0) - THEN - RETURN(?); - END_IF; - r := ATAN(y, x); - IF x < 0.0 - THEN - IF y < 0.0 - THEN - r := r - PI; - ELSE - r := r + PI; - END_IF; - END_IF; - RETURN(r); -END_FUNCTION; - -FUNCTION bag_to_set(the_bag : BAG OF GENERIC : INTYPE) : SET OF GENERIC : INTYPE; -LOCAL - the_set : SET OF GENERIC : INTYPE := []; -END_LOCAL; - IF SIZEOF(the_bag) > 0 - THEN - REPEAT i := 1 TO HIINDEX(the_bag); - the_set := the_set + the_bag[i]; - END_REPEAT; - END_IF; - RETURN(the_set); -END_FUNCTION; - -FUNCTION base_axis(dim : INTEGER; - axis1 : direction; - axis2 : direction; - axis3 : direction) : LIST [2 : 3] OF direction; -LOCAL - u : LIST [2 : 3] OF direction; - factor : REAL; - d1 : direction; - d2 : direction; -END_LOCAL; - IF (dim = 3) - THEN - d1 := NVL(normalise(axis3), dummy_gri || direction([0.0,0.0,1.0])); - d2 := first_proj_axis(d1, axis1); - u := [d2,second_proj_axis(d1, d2, axis2),d1]; - ELSE - IF EXISTS(axis1) - THEN - d1 := normalise(axis1); - u := [d1,orthogonal_complement(d1)]; - IF EXISTS(axis2) - THEN - factor := dot_product(axis2, u[2]); - IF (factor < 0.0) - THEN - u[2].direction_ratios[1] := -u[2].direction_ratios[1]; - u[2].direction_ratios[2] := -u[2].direction_ratios[2]; - END_IF; - END_IF; - ELSE - IF EXISTS(axis2) - THEN - d1 := normalise(axis2); - u := [orthogonal_complement(d1),d1]; - u[1].direction_ratios[1] := -u[1].direction_ratios[1]; - u[1].direction_ratios[2] := -u[1].direction_ratios[2]; - ELSE - u := [dummy_gri || direction([1.0,0.0]),dummy_gri || direction([0.0,1.0])]; - END_IF; - END_IF; - END_IF; - RETURN(u); -END_FUNCTION; - -FUNCTION bool(lgcl : LOGICAL) : BOOLEAN; - IF NOT EXISTS(lgcl) - THEN - RETURN(false); - END_IF; - IF lgcl <> true - THEN - RETURN(false); - END_IF; - RETURN(true); -END_FUNCTION; - -FUNCTION boolean_choose(b : BOOLEAN; - choice1 : GENERIC : ITEM; - choice2 : GENERIC : ITEM) : GENERIC : ITEM; - IF b - THEN - RETURN(choice1); - ELSE - RETURN(choice2); - END_IF; -END_FUNCTION; - -FUNCTION build_2axes(ref_direction : direction) : LIST [2 : 2] OF direction; -LOCAL - d : direction := NVL(normalise(ref_direction), dummy_gri || direction([1.0,0.0])); -END_LOCAL; - RETURN([d,orthogonal_complement(d)]); -END_FUNCTION; - -FUNCTION build_axes(axis : direction; - ref_direction : direction) : LIST [3 : 3] OF direction; -LOCAL - d1 : direction; - d2 : direction; -END_LOCAL; - d1 := NVL(normalise(axis), dummy_gri || direction([0.0,0.0,1.0])); - d2 := first_proj_axis(d1, ref_direction); - RETURN([d2,normalise(cross_product(d1, d2))\vector.orientation,d1]); -END_FUNCTION; - -FUNCTION categories_of_product(obj : product) : SET OF STRING; -LOCAL - category_assignments : BAG OF product_category; - categories : SET OF STRING := []; -END_LOCAL; - category_assignments := USEDIN(obj, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS'); - REPEAT i := LOINDEX(category_assignments) TO HIINDEX(category_assignments) BY 1; - categories := categories + category_assignments[i].name; - END_REPEAT; - RETURN(categories); -END_FUNCTION; - -FUNCTION cc_design_person_and_organization_correlation(e : cc_design_person_and_organization_assignment) : BOOLEAN; -LOCAL - po_role : STRING; -END_LOCAL; - po_role := e\person_and_organization_assignment.role.name; - CASE po_role OF - 'request_recipient' : IF SIZEOF(e.items) <> - SIZEOF(QUERY(x - <* e.items - | SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CHANGE_REQUEST', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.START_REQUEST'] * - TYPEOF(x)) = - 1)) - THEN - RETURN(false); - END_IF; - 'initiator' : IF SIZEOF(e.items) <> - SIZEOF(QUERY(x - <* e.items - | SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CHANGE_REQUEST', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.START_REQUEST', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.START_WORK', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CHANGE'] * - TYPEOF(x)) = - 1)) - THEN - RETURN(false); - END_IF; - 'creator' : IF SIZEOF(e.items) <> - SIZEOF(QUERY(x - <* e.items - | SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_FORMATION', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION'] * - TYPEOF(x)) = - 1)) - THEN - RETURN(false); - END_IF; - 'part_supplier' : IF SIZEOF(e.items) <> - SIZEOF(QUERY(x - <* e.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_FORMATION' IN - TYPEOF(x))) - THEN - RETURN(false); - END_IF; - 'design_supplier' : IF SIZEOF(e.items) <> - SIZEOF(QUERY(x - <* e.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_FORMATION' IN - TYPEOF(x))) - THEN - RETURN(false); - END_IF; - 'design_owner' : IF SIZEOF(e.items) <> - SIZEOF(QUERY(x - <* e.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT' IN TYPEOF(x))) - THEN - RETURN(false); - END_IF; - 'configuration_manager' : IF SIZEOF(e.items) <> - SIZEOF(QUERY(x - <* e.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONFIGURATION_ITEM' IN - TYPEOF(x))) - THEN - RETURN(false); - END_IF; - 'contractor' : IF SIZEOF(e.items) <> - SIZEOF(QUERY(x - <* e.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONTRACT' IN TYPEOF(x))) - THEN - RETURN(false); - END_IF; - 'classification_officer' : IF SIZEOF(e.items) <> - SIZEOF(QUERY(x - <* e.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SECURITY_CLASSIFICATION' IN - TYPEOF(x))) - THEN - RETURN(false); - END_IF; - OTHERWISE: RETURN(true); - END_CASE; - RETURN(true); -END_FUNCTION; - -FUNCTION check_continuous_edges(edges : LIST OF UNIQUE edge_curve) : BOOLEAN; -LOCAL - i : INTEGER; - next_vertex : vertex; -END_LOCAL; - IF (SIZEOF(edges) = 1) - THEN - RETURN(true); - END_IF; - IF ((edges[2].edge_start :=: edges[1].edge_end) XOR (edges[2].edge_start :=: edges[1].edge_start)) - THEN - next_vertex := edges[2].edge_end; - ELSE - IF ((edges[2].edge_end :=: edges[1].edge_end) XOR (edges[2].edge_end :=: edges[1].edge_start)) - THEN - next_vertex := edges[2].edge_start; - ELSE - RETURN(false); - END_IF; - END_IF; - IF (SIZEOF(edges) = 2) - THEN - RETURN(true); - END_IF; - REPEAT i := 3 TO HIINDEX(edges); - IF (edges[i].edge_start :=: next_vertex) - THEN - next_vertex := edges[i].edge_end; - ELSE - IF (edges[i].edge_end :=: next_vertex) - THEN - next_vertex := edges[i].edge_start; - ELSE - RETURN(false); - END_IF; - END_IF; - END_REPEAT; - RETURN(true); -END_FUNCTION; - -FUNCTION check_curve_planarity(checked_curve : curve) : BOOLEAN; -LOCAL - crv : curve := checked_curve; - i : INTEGER; - j : INTEGER; - result : BOOLEAN := false; -END_LOCAL; - IF (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONIC', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE'] * - TYPEOF(crv)) > - 0) - THEN - result := true; - ELSE - IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TRIMMED_CURVE' IN TYPEOF(crv)) AND - check_curve_planarity(crv\trimmed_curve.basis_curve)) - THEN - result := true; - ELSE - IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PCURVE' IN TYPEOF(crv)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE' IN TYPEOF(crv\pcurve.basis_surface))) - THEN - result := true; - ELSE - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_CURVE' IN TYPEOF(crv)) - THEN - BEGIN - REPEAT j := 1 TO HIINDEX(crv\surface_curve.basis_surface); - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE' IN - TYPEOF(crv\surface_curve.basis_surface[j])) - THEN - result := true; - END_IF; - END_REPEAT; - END; - END_IF; - END_IF; - END_IF; - END_IF; - RETURN(result); -END_FUNCTION; - -FUNCTION check_geometric_dimension(capt : SET [0 : ?] OF cartesian_point; - dir : SET [0 : ?] OF direction; - grc : SET [0 : ?] OF geometric_representation_context) : BOOLEAN; -LOCAL - globaldim : INTEGER := 0; - reps : SET [0 : ?] OF representation := []; - result : BOOLEAN := true; -END_LOCAL; - IF (SIZEOF(grc) = 0) - THEN - RETURN(false); - END_IF; - globaldim := geometric_dimensionalities_in_contexts(grc); - IF (globaldim > 0) - THEN - IF (SIZEOF(capt) > 0) - THEN - REPEAT i := 1 TO HIINDEX(capt); - IF (HIINDEX(capt[i].coordinates) <> globaldim) - THEN - RETURN(false); - END_IF; - END_REPEAT; - END_IF; - IF (SIZEOF(dir) > 0) - THEN - REPEAT i := 1 TO HIINDEX(dir); - IF (HIINDEX(dir[i].direction_ratios) <> globaldim) - THEN - RETURN(false); - END_IF; - END_REPEAT; - END_IF; - RETURN(result); - ELSE - IF (SIZEOF(capt) > 0) - THEN - REPEAT i := 1 TO HIINDEX(capt); - reps := using_representations(capt[i]); - IF (SIZEOF(reps) > 0) - THEN - REPEAT j := 1 TO HIINDEX(reps); - IF (HIINDEX(capt[i].coordinates) <> - reps[j].context_of_items\geometric_representation_context.coordinate_space_dimension) - THEN - RETURN(false); - END_IF; - END_REPEAT; - ELSE - RETURN(false); - END_IF; - END_REPEAT; - END_IF; - IF (SIZEOF(dir) > 0) - THEN - REPEAT i := 1 TO HIINDEX(dir); - reps := using_representations(dir[i]); - IF (SIZEOF(reps) > 0) - THEN - REPEAT j := 1 TO HIINDEX(reps); - IF (HIINDEX(dir[i].direction_ratios) <> - reps[j].context_of_items\geometric_representation_context.coordinate_space_dimension) - THEN - RETURN(false); - END_IF; - END_REPEAT; - ELSE - RETURN(false); - END_IF; - END_REPEAT; - END_IF; - END_IF; - RETURN(result); -END_FUNCTION; - -FUNCTION check_sparse_index_domain(idxdom : tuple_space; - base : zero_or_one; - shape : LIST [1 : ?] OF positive_integer; - order : ordering_type) : BOOLEAN; -LOCAL - mthspc : maths_space; - interval : finite_integer_interval; - i : INTEGER; -END_LOCAL; - mthspc := factor1(idxdom); - interval := mthspc; - IF order = by_rows - THEN - i := 1; - ELSE - i := 2; - END_IF; - RETURN(bool((interval.min <= base) AND (interval.max >= base + shape[i]))); -END_FUNCTION; - -FUNCTION check_sparse_index_to_loc(index_range : tuple_space; - loc_domain : tuple_space) : BOOLEAN; -LOCAL - temp : maths_space; - idx_rng_itvl : finite_integer_interval; - loc_dmn_itvl : finite_integer_interval; -END_LOCAL; - temp := factor1(index_range); - IF (schema_prefix + 'TUPLE_SPACE') IN TYPEOF(temp) - THEN - temp := factor1(temp); - END_IF; - IF NOT ((schema_prefix + 'FINITE_INTEGER_INTERVAL') IN TYPEOF(temp)) - THEN - RETURN(false); - END_IF; - idx_rng_itvl := temp; - temp := factor1(loc_domain); - IF (schema_prefix + 'TUPLE_SPACE') IN TYPEOF(temp) - THEN - temp := factor1(temp); - END_IF; - IF NOT ((schema_prefix + 'FINITE_INTEGER_INTERVAL') IN TYPEOF(temp)) - THEN - RETURN(false); - END_IF; - loc_dmn_itvl := temp; - RETURN(bool((loc_dmn_itvl.min <= idx_rng_itvl.min) AND (idx_rng_itvl.max <= loc_dmn_itvl.max + 1))); -END_FUNCTION; - -FUNCTION check_sparse_loc_range(locrng : tuple_space; - base : zero_or_one; - shape : LIST [1 : ?] OF positive_integer; - order : ordering_type) : BOOLEAN; -LOCAL - mthspc : maths_space; - interval : finite_integer_interval; - i : INTEGER; -END_LOCAL; - IF space_dimension(locrng) <> 1 - THEN - RETURN(false); - END_IF; - mthspc := factor1(locrng); - IF NOT ((schema_prefix + 'FINITE_INTEGER_INTERVAL') IN TYPEOF(mthspc)) - THEN - RETURN(false); - END_IF; - interval := mthspc; - IF order = by_rows - THEN - i := 2; - ELSE - i := 1; - END_IF; - RETURN(bool((interval.min >= base) AND (interval.max <= base + shape[i] - 1))); -END_FUNCTION; - -FUNCTION check_text_alignment(ct : composite_text) : BOOLEAN; -LOCAL - a : SET OF text_alignment := []; -END_LOCAL; - REPEAT i := 1 TO HIINDEX(ct.collected_text); - a := a + [ct.collected_text[i]\text_literal.alignment]; - END_REPEAT; - RETURN(SIZEOF(a) = 1); -END_FUNCTION; - -FUNCTION check_text_font(ct : composite_text) : BOOLEAN; -LOCAL - f : SET OF font_select := []; -END_LOCAL; - REPEAT i := 1 TO HIINDEX(ct.collected_text); - f := f + [ct.collected_text[i]\text_literal.font]; - END_REPEAT; - RETURN(SIZEOF(f) <= 1); -END_FUNCTION; - -FUNCTION class_assignment_is_valid(aia : applied_classification_assignment) : BOOLEAN; -LOCAL - item : classification_item; - role : classification_role; -END_LOCAL; - role := aia\classification_assignment.role; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLASS_SYSTEM' IN - TYPEOF(aia\classification_assignment.assigned_class)) - THEN - IF (role\classification_role.name <> 'class system membership') - THEN - RETURN(false); - END_IF; - REPEAT i := LOINDEX(aia\applied_classification_assignment.items) TO HIINDEX(aia\applied_classification_assignment.items); - item := aia\applied_classification_assignment.items[i]; - IF (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CHARACTERIZED_CLASS'] * TYPEOF(item)) = 0) - THEN - RETURN(false); - END_IF; - END_REPEAT; - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CHARACTERIZED_CLASS' IN - TYPEOF(aia\classification_assignment.assigned_class)) - THEN - IF NOT (role\classification_role.name IN ['definitional','non-definitional','']) - THEN - RETURN(false); - END_IF; - REPEAT i := LOINDEX(aia\applied_classification_assignment.items) TO HIINDEX(aia\applied_classification_assignment.items); - item := aia\applied_classification_assignment.items[i]; - IF (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLASSIFIED_ITEM'] * TYPEOF(item)) = 0) - THEN - RETURN(false); - END_IF; - END_REPEAT; - END_IF; - IF (role\classification_role.name = 'definitional') - THEN - IF NOT (SIZEOF(QUERY(it - <* aia\applied_classification_assignment.items - | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_FORMATION', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION'] * - TYPEOF(it)) = - 1))) = - 0) - THEN - RETURN(false); - END_IF; - END_IF; - RETURN(true); -END_FUNCTION; - -FUNCTION closed_shell_reversed(a_shell : closed_shell) : oriented_closed_shell; -LOCAL - the_reverse : oriented_closed_shell; -END_LOCAL; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORIENTED_CLOSED_SHELL' IN TYPEOF(a_shell)) - THEN - the_reverse := dummy_tri || connected_face_set(a_shell\connected_face_set.cfs_faces) || closed_shell() || - oriented_closed_shell(a_shell\oriented_closed_shell.closed_shell_element, - NOT (a_shell\oriented_closed_shell.orientation)); - ELSE - the_reverse := dummy_tri || connected_face_set(a_shell\connected_face_set.cfs_faces) || closed_shell() || - oriented_closed_shell(a_shell, false); - END_IF; - RETURN(the_reverse); -END_FUNCTION; - -FUNCTION collect_joints(items : SET [1 : ?] OF pair_representation_relationship) : SET OF kinematic_joint; -LOCAL - result : SET OF kinematic_joint := []; -END_LOCAL; - REPEAT i := 1 TO HIINDEX(items); - result := result + items[i].transformation_operator.joint; - END_REPEAT; - RETURN(result); -END_FUNCTION; - -FUNCTION compare_basis_and_coef(basis : LIST [1 : ?] OF b_spline_basis; - coef : maths_function) : BOOLEAN; -LOCAL - shape : LIST OF positive_integer; -END_LOCAL; - IF NOT EXISTS(basis) OR NOT EXISTS(coef) - THEN - RETURN(false); - END_IF; - shape := shape_of_array(coef); - IF NOT EXISTS(shape) - THEN - RETURN(false); - END_IF; - IF SIZEOF(shape) < SIZEOF(basis) - THEN - RETURN(false); - END_IF; - REPEAT i := 1 TO SIZEOF(basis); - IF (basis[i].num_basis = shape[i]) <> true - THEN - RETURN(false); - END_IF; - END_REPEAT; - RETURN(true); -END_FUNCTION; - -FUNCTION compatible_complex_number_regions(sp1 : maths_space; - sp2 : maths_space) : BOOLEAN; -LOCAL - typenames : SET OF STRING := stripped_typeof(sp1); - crgn1 : cartesian_complex_number_region; - crgn2 : cartesian_complex_number_region; - prgn1 : polar_complex_number_region; - prgn2 : polar_complex_number_region; - prgn1c2 : polar_complex_number_region; - prgn2c1 : polar_complex_number_region; - sp1_is_crgn : BOOLEAN; - sp2_is_crgn : BOOLEAN; -END_LOCAL; - IF 'CARTESIAN_COMPLEX_NUMBER_REGION' IN typenames - THEN - sp1_is_crgn := true; - crgn1 := sp1; - ELSE - IF 'POLAR_COMPLEX_NUMBER_REGION' IN typenames - THEN - sp1_is_crgn := false; - prgn1 := sp1; - ELSE - RETURN(true); - END_IF; - END_IF; - typenames := stripped_typeof(sp2); - IF 'CARTESIAN_COMPLEX_NUMBER_REGION' IN typenames - THEN - sp2_is_crgn := true; - crgn2 := sp2; - ELSE - IF 'POLAR_COMPLEX_NUMBER_REGION' IN typenames - THEN - sp2_is_crgn := false; - prgn2 := sp2; - ELSE - RETURN(true); - END_IF; - END_IF; - IF sp1_is_crgn AND sp2_is_crgn - THEN - RETURN(compatible_intervals(crgn1.real_constraint, crgn2.real_constraint) AND - compatible_intervals(crgn1.imag_constraint, crgn2.imag_constraint)); - END_IF; - IF NOT sp1_is_crgn AND - NOT sp2_is_crgn AND (prgn1.centre.real_part = prgn2.centre.real_part) AND - (prgn1.centre.imag_part = prgn2.centre.imag_part) - THEN - IF NOT compatible_intervals(prgn1.distance_constraint, prgn2.distance_constraint) - THEN - RETURN(false); - END_IF; - IF compatible_intervals(prgn1.direction_constraint, prgn2.direction_constraint) - THEN - RETURN(true); - END_IF; - IF (prgn1.direction_constraint.max > PI) AND (prgn2.direction_constraint.max < PI) - THEN - RETURN(compatible_intervals(prgn2.direction_constraint, - make_finite_real_interval(-PI, open, prgn1.direction_constraint.max - 2.0 * PI, - prgn1.direction_constraint.max_closure))); - END_IF; - IF (prgn2.direction_constraint.max > PI) AND (prgn1.direction_constraint.max < PI) - THEN - RETURN(compatible_intervals(prgn1.direction_constraint, - make_finite_real_interval(-PI, open, prgn2.direction_constraint.max - 2.0 * PI, - prgn2.direction_constraint.max_closure))); - END_IF; - RETURN(false); - END_IF; - IF sp1_is_crgn AND NOT sp2_is_crgn - THEN - crgn2 := enclose_pregion_in_cregion(prgn2); - prgn1 := enclose_cregion_in_pregion(crgn1, prgn2.centre); - RETURN(compatible_complex_number_regions(crgn1, crgn2) AND compatible_complex_number_regions(prgn1, prgn2)); - END_IF; - IF NOT sp1_is_crgn AND sp2_is_crgn - THEN - crgn1 := enclose_pregion_in_cregion(prgn1); - prgn2 := enclose_cregion_in_pregion(crgn2, prgn1.centre); - RETURN(compatible_complex_number_regions(crgn1, crgn2) AND compatible_complex_number_regions(prgn1, prgn2)); - END_IF; - prgn1c2 := enclose_pregion_in_pregion(prgn1, prgn2.centre); - prgn2c1 := enclose_pregion_in_pregion(prgn2, prgn1.centre); - RETURN(compatible_complex_number_regions(prgn1, prgn2c1) AND compatible_complex_number_regions(prgn1c2, prgn2)); -END_FUNCTION; - -FUNCTION compatible_es_values(esval1 : elementary_space_enumerators; - esval2 : elementary_space_enumerators) : BOOLEAN; -LOCAL - esval1_is_numeric : LOGICAL; - esval2_is_numeric : LOGICAL; -END_LOCAL; - IF (esval1 = esval2) OR (esval1 = es_generics) OR (esval2 = es_generics) - THEN - RETURN(true); - END_IF; - esval1_is_numeric := (esval1 >= es_numbers) AND (esval1 <= es_integers); - esval2_is_numeric := (esval2 >= es_numbers) AND (esval2 <= es_integers); - IF (esval1_is_numeric AND (esval2 = es_numbers)) OR (esval2_is_numeric AND (esval1 = es_numbers)) - THEN - RETURN(true); - END_IF; - IF esval1_is_numeric XOR esval2_is_numeric - THEN - RETURN(false); - END_IF; - IF ((esval1 = es_logicals) AND (esval2 = es_booleans)) OR ((esval1 = es_booleans) AND (esval2 = es_logicals)) - THEN - RETURN(true); - END_IF; - RETURN(false); -END_FUNCTION; - -FUNCTION compatible_intervals(sp1 : maths_space; - sp2 : maths_space) : BOOLEAN; -LOCAL - amin : REAL; - amax : REAL; -END_LOCAL; - IF min_exists(sp1) AND max_exists(sp2) - THEN - amin := real_min(sp1); - amax := real_max(sp2); - IF amin > amax - THEN - RETURN(false); - END_IF; - IF amin = amax - THEN - RETURN(min_included(sp1) AND max_included(sp2)); - END_IF; - END_IF; - IF min_exists(sp2) AND max_exists(sp1) - THEN - amin := real_min(sp2); - amax := real_max(sp1); - IF amin > amax - THEN - RETURN(false); - END_IF; - IF amin = amax - THEN - RETURN(min_included(sp2) AND max_included(sp1)); - END_IF; - END_IF; - RETURN(true); -END_FUNCTION; - -FUNCTION compatible_spaces(sp1 : maths_space; - sp2 : maths_space) : BOOLEAN; -LOCAL - types1 : SET OF STRING := stripped_typeof(sp1); - types2 : SET OF STRING := stripped_typeof(sp2); - lgcl : LOGICAL := unknown; - m : INTEGER; - n : INTEGER; - s1 : maths_space; - s2 : maths_space; -END_LOCAL; - IF 'FINITE_SPACE' IN types1 - THEN - REPEAT i := 1 TO SIZEOF(sp1\finite_space.members); - lgcl := member_of(sp1\finite_space.members[i], sp2); - IF lgcl <> false - THEN - RETURN(true); - END_IF; - END_REPEAT; - RETURN(false); - END_IF; - IF 'FINITE_SPACE' IN types2 - THEN - REPEAT i := 1 TO SIZEOF(sp2\finite_space.members); - lgcl := member_of(sp2\finite_space.members[i], sp1); - IF lgcl <> false - THEN - RETURN(true); - END_IF; - END_REPEAT; - RETURN(false); - END_IF; - IF 'ELEMENTARY_SPACE' IN types1 - THEN - IF sp1\elementary_space.space_id = es_generics - THEN - RETURN(true); - END_IF; - IF 'ELEMENTARY_SPACE' IN types2 - THEN - RETURN(compatible_es_values(sp1\elementary_space.space_id, sp2\elementary_space.space_id)); - END_IF; - IF ('FINITE_INTEGER_INTERVAL' IN types2) OR ('INTEGER_INTERVAL_FROM_MIN' IN types2) OR - ('INTEGER_INTERVAL_TO_MAX' IN types2) - THEN - RETURN(compatible_es_values(sp1\elementary_space.space_id, es_integers)); - END_IF; - IF ('FINITE_REAL_INTERVAL' IN types2) OR ('REAL_INTERVAL_FROM_MIN' IN types2) OR ('REAL_INTERVAL_TO_MAX' IN types2) - THEN - RETURN(compatible_es_values(sp1\elementary_space.space_id, es_reals)); - END_IF; - IF ('CARTESIAN_COMPLEX_NUMBER_REGION' IN types2) OR ('POLAR_COMPLEX_NUMBER_REGION' IN types2) - THEN - RETURN(compatible_es_values(sp1\elementary_space.space_id, es_complex_numbers)); - END_IF; - IF 'TUPLE_SPACE' IN types2 - THEN - RETURN(false); - END_IF; - IF 'FUNCTION_SPACE' IN types2 - THEN - RETURN(bool(sp1\elementary_space.space_id = es_maths_functions)); - END_IF; - RETURN(true); - END_IF; - IF 'ELEMENTARY_SPACE' IN types2 - THEN - IF sp2\elementary_space.space_id = es_generics - THEN - RETURN(true); - END_IF; - IF ('FINITE_INTEGER_INTERVAL' IN types1) OR ('INTEGER_INTERVAL_FROM_MIN' IN types1) OR - ('INTEGER_INTERVAL_TO_MAX' IN types1) - THEN - RETURN(compatible_es_values(sp2\elementary_space.space_id, es_integers)); - END_IF; - IF ('FINITE_REAL_INTERVAL' IN types1) OR ('REAL_INTERVAL_FROM_MIN' IN types1) OR ('REAL_INTERVAL_TO_MAX' IN types1) - THEN - RETURN(compatible_es_values(sp2\elementary_space.space_id, es_reals)); - END_IF; - IF ('CARTESIAN_COMPLEX_NUMBER_REGION' IN types1) OR ('POLAR_COMPLEX_NUMBER_REGION' IN types1) - THEN - RETURN(compatible_es_values(sp2\elementary_space.space_id, es_complex_numbers)); - END_IF; - IF 'TUPLE_SPACE' IN types1 - THEN - RETURN(false); - END_IF; - IF 'FUNCTION_SPACE' IN types1 - THEN - RETURN(bool(sp2\elementary_space.space_id = es_maths_functions)); - END_IF; - RETURN(true); - END_IF; - IF subspace_of_es(sp1, es_integers) - THEN - IF subspace_of_es(sp2, es_integers) - THEN - RETURN(compatible_intervals(sp1, sp2)); - END_IF; - RETURN(false); - END_IF; - IF subspace_of_es(sp2, es_integers) - THEN - RETURN(false); - END_IF; - IF subspace_of_es(sp1, es_reals) - THEN - IF subspace_of_es(sp2, es_reals) - THEN - RETURN(compatible_intervals(sp1, sp2)); - END_IF; - RETURN(false); - END_IF; - IF subspace_of_es(sp2, es_reals) - THEN - RETURN(false); - END_IF; - IF subspace_of_es(sp1, es_complex_numbers) - THEN - IF subspace_of_es(sp2, es_complex_numbers) - THEN - RETURN(compatible_complex_number_regions(sp1, sp2)); - END_IF; - RETURN(false); - END_IF; - IF subspace_of_es(sp2, es_complex_numbers) - THEN - RETURN(false); - END_IF; - IF 'UNIFORM_PRODUCT_SPACE' IN types1 - THEN - IF 'UNIFORM_PRODUCT_SPACE' IN types2 - THEN - IF sp1\uniform_product_space.exponent <> sp2\uniform_product_space.exponent - THEN - RETURN(false); - END_IF; - RETURN(compatible_spaces(sp1\uniform_product_space.base, sp2\uniform_product_space.base)); - END_IF; - IF 'LISTED_PRODUCT_SPACE' IN types2 - THEN - n := SIZEOF(sp2\listed_product_space.factors); - IF sp1\uniform_product_space.exponent <> n - THEN - RETURN(false); - END_IF; - REPEAT i := 1 TO n; - IF NOT compatible_spaces(sp1\uniform_product_space.base, sp2\listed_product_space.factors[i]) - THEN - RETURN(false); - END_IF; - END_REPEAT; - RETURN(true); - END_IF; - IF 'EXTENDED_TUPLE_SPACE' IN types2 - THEN - m := sp1\uniform_product_space.exponent; - n := space_dimension(sp2\extended_tuple_space.base); - IF m < n - THEN - RETURN(false); - END_IF; - IF m = n - THEN - RETURN(compatible_spaces(sp1, sp2\extended_tuple_space.base)); - END_IF; - RETURN(compatible_spaces(sp1, - assoc_product_space(sp2\extended_tuple_space.base, - make_uniform_product_space(sp2\extended_tuple_space.extender, - m - n)))); - END_IF; - IF 'FUNCTION_SPACE' IN types2 - THEN - RETURN(false); - END_IF; - RETURN(true); - END_IF; - IF 'LISTED_PRODUCT_SPACE' IN types1 - THEN - n := SIZEOF(sp1\listed_product_space.factors); - IF 'UNIFORM_PRODUCT_SPACE' IN types2 - THEN - IF n <> sp2\uniform_product_space.exponent - THEN - RETURN(false); - END_IF; - REPEAT i := 1 TO n; - IF NOT compatible_spaces(sp2\uniform_product_space.base, sp1\listed_product_space.factors[i]) - THEN - RETURN(false); - END_IF; - END_REPEAT; - RETURN(true); - END_IF; - IF 'LISTED_PRODUCT_SPACE' IN types2 - THEN - IF n <> SIZEOF(sp2\listed_product_space.factors) - THEN - RETURN(false); - END_IF; - REPEAT i := 1 TO n; - IF NOT compatible_spaces(sp1\listed_product_space.factors[i], sp2\listed_product_space.factors[i]) - THEN - RETURN(false); - END_IF; - END_REPEAT; - RETURN(true); - END_IF; - IF 'EXTENDED_TUPLE_SPACE' IN types2 - THEN - m := space_dimension(sp2\extended_tuple_space.base); - IF n < m - THEN - RETURN(false); - END_IF; - IF n = m - THEN - RETURN(compatible_spaces(sp1, sp2\extended_tuple_space.base)); - END_IF; - RETURN(compatible_spaces(sp1, - assoc_product_space(sp2\extended_tuple_space.base, - make_uniform_product_space(sp2\extended_tuple_space.extender, - n - m)))); - END_IF; - IF (schema_prefix + 'FUNCTION_SPACE') IN types2 - THEN - RETURN(false); - END_IF; - RETURN(true); - END_IF; - IF 'EXTENDED_TUPLE_SPACE' IN types1 - THEN - IF ('UNIFORM_PRODUCT_SPACE' IN types2) OR ('LISTED_PRODUCT_SPACE' IN types2) - THEN - RETURN(compatible_spaces(sp2, sp1)); - END_IF; - IF 'EXTENDED_TUPLE_SPACE' IN types2 - THEN - IF NOT compatible_spaces(sp1\extended_tuple_space.extender, sp2\extended_tuple_space.extender) - THEN - RETURN(false); - END_IF; - n := space_dimension(sp1\extended_tuple_space.base); - m := space_dimension(sp2\extended_tuple_space.base); - IF n < m - THEN - RETURN(compatible_spaces(assoc_product_space(sp1\extended_tuple_space.base, - make_uniform_product_space(sp1\extended_tuple_space.extender, - m - n)), - sp2\extended_tuple_space.base)); - END_IF; - IF n = m - THEN - RETURN(compatible_spaces(sp1\extended_tuple_space.base, sp2\extended_tuple_space.base)); - END_IF; - IF n > m - THEN - RETURN(compatible_spaces(sp1\extended_tuple_space.base, - assoc_product_space(sp2\extended_tuple_space.base, - make_uniform_product_space(sp2\extended_tuple_space.extender, - n - m)))); - END_IF; - END_IF; - IF 'FUNCTION_SPACE' IN types2 - THEN - RETURN(false); - END_IF; - RETURN(true); - END_IF; - IF 'FUNCTION_SPACE' IN types1 - THEN - IF 'FUNCTION_SPACE' IN types2 - THEN - s1 := sp1\function_space.domain_argument; - s2 := sp2\function_space.domain_argument; - CASE sp1\function_space.domain_constraint OF - sc_equal : BEGIN - CASE sp2\function_space.domain_constraint OF - sc_equal : lgcl := subspace_of(s1, s2) AND subspace_of(s2, s1); - sc_subspace : lgcl := subspace_of(s1, s2); - sc_member : lgcl := member_of(s1, s2); - END_CASE; - END; - sc_subspace : BEGIN - CASE sp2\function_space.domain_constraint OF - sc_equal : lgcl := subspace_of(s2, s1); - sc_subspace : lgcl := compatible_spaces(s1, s2); - sc_member : lgcl := unknown; - END_CASE; - END; - sc_member : BEGIN - CASE sp2\function_space.domain_constraint OF - sc_equal : lgcl := member_of(s2, s1); - sc_subspace : lgcl := unknown; - sc_member : lgcl := compatible_spaces(s1, s2); - END_CASE; - END; - END_CASE; - IF lgcl = false - THEN - RETURN(false); - END_IF; - s1 := sp1\function_space.range_argument; - s2 := sp2\function_space.range_argument; - CASE sp1\function_space.range_constraint OF - sc_equal : BEGIN - CASE sp2\function_space.range_constraint OF - sc_equal : lgcl := subspace_of(s1, s2) AND subspace_of(s2, s1); - sc_subspace : lgcl := subspace_of(s1, s2); - sc_member : lgcl := member_of(s1, s2); - END_CASE; - END; - sc_subspace : BEGIN - CASE sp2\function_space.range_constraint OF - sc_equal : lgcl := subspace_of(s2, s1); - sc_subspace : lgcl := compatible_spaces(s1, s2); - sc_member : lgcl := unknown; - END_CASE; - END; - sc_member : BEGIN - CASE sp2\function_space.range_constraint OF - sc_equal : lgcl := member_of(s2, s1); - sc_subspace : lgcl := unknown; - sc_member : lgcl := compatible_spaces(s1, s2); - END_CASE; - END; - END_CASE; - IF lgcl = false - THEN - RETURN(false); - END_IF; - RETURN(true); - END_IF; - RETURN(true); - END_IF; - RETURN(true); -END_FUNCTION; - -FUNCTION composable_sequence(operands : LIST [2 : ?] OF maths_function) : BOOLEAN; - REPEAT i := 1 TO SIZEOF(operands) - 1; - IF NOT compatible_spaces(operands[i].range, operands[i + 1].domain) - THEN - RETURN(false); - END_IF; - END_REPEAT; - RETURN(true); -END_FUNCTION; - -FUNCTION compute_total_depth(swsrh : solid_with_stepped_round_hole) : positive_length_measure; -LOCAL - i : positive_integer; - n : positive_integer := swsrh.segments; - td : positive_length_measure := swsrh.segment_depths[1]; -END_LOCAL; - IF n = 1 - THEN - RETURN(td); - ELSE - REPEAT i := 2 TO n; - td := td + swsrh.segment_depths[i]; - END_REPEAT; - END_IF; - RETURN(td); -END_FUNCTION; - -FUNCTION conditional_reverse(p : BOOLEAN; - an_item : reversible_topology) : reversible_topology; - IF p - THEN - RETURN(an_item); - ELSE - RETURN(topology_reversed(an_item)); - END_IF; -END_FUNCTION; - -FUNCTION consistent_sizes(max : INTEGER; - point_lists : LIST OF point_cloud_dataset) : BOOLEAN; -LOCAL - ndatasets : INTEGER := SIZEOF(point_lists); - result : BOOLEAN := true; -END_LOCAL; - REPEAT i := 1 TO (ndatasets - 1); - IF (SIZEOF(point_lists[i].point_coordinates) <> max) - THEN - result := false; - RETURN(result); - END_IF; - END_REPEAT; - IF (SIZEOF(point_lists[ndatasets].point_coordinates) > max) - THEN - result := false; - RETURN(result); - END_IF; - RETURN(result); -END_FUNCTION; - -FUNCTION constraints_composite_curve_on_surface(c : composite_curve_on_surface) : BOOLEAN; -LOCAL - n_segments : INTEGER := SIZEOF(c.segments); -END_LOCAL; - REPEAT k := 1 TO n_segments; - IF (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PCURVE' IN - TYPEOF(c\composite_curve.segments[k].parent_curve))) AND - (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_CURVE' IN - TYPEOF(c\composite_curve.segments[k].parent_curve))) AND - (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_CURVE_ON_SURFACE' IN - TYPEOF(c\composite_curve.segments[k].parent_curve))) - THEN - RETURN(false); - END_IF; - END_REPEAT; - RETURN(true); -END_FUNCTION; - -FUNCTION constraints_geometry_shell_based_surface_model(m : shell_based_surface_model) : BOOLEAN; -LOCAL - result : BOOLEAN := true; -END_LOCAL; - REPEAT j := 1 TO SIZEOF(m.sbsm_boundary); - IF (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OPEN_SHELL' IN TYPEOF(m.sbsm_boundary[j])) AND - (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLOSED_SHELL' IN TYPEOF(m.sbsm_boundary[j])))) - THEN - result := false; - RETURN(result); - END_IF; - END_REPEAT; - RETURN(result); -END_FUNCTION; - -FUNCTION constraints_geometry_shell_based_wireframe_model(m : shell_based_wireframe_model) : BOOLEAN; -LOCAL - result : BOOLEAN := true; -END_LOCAL; - REPEAT j := 1 TO SIZEOF(m.sbwm_boundary); - IF (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.WIRE_SHELL' IN TYPEOF(m.sbwm_boundary[j])) AND - (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_SHELL' IN TYPEOF(m.sbwm_boundary[j])))) - THEN - result := false; - RETURN(result); - END_IF; - END_REPEAT; - RETURN(result); -END_FUNCTION; - -FUNCTION constraints_param_b_spline(degree : INTEGER; - up_knots : INTEGER; - up_cp : INTEGER; - knot_mult : LIST [0 : ?] OF INTEGER; - knots : LIST [0 : ?] OF parameter_value) : BOOLEAN; -LOCAL - result : BOOLEAN := true; - k : INTEGER; - sum : INTEGER; -END_LOCAL; - (* Find sum of knot multiplicities. *) - sum := knot_mult[1]; - REPEAT i := 2 TO up_knots; - sum := sum + knot_mult[i]; - END_REPEAT; - (* Check limits holding for all B-spline parametrisations *) - IF (degree < 1) OR (up_knots < 2) OR (up_cp < degree) OR (sum <> (degree + up_cp + 2)) - THEN - result := false; - RETURN(result); - END_IF; - k := knot_mult[1]; - IF (k < 1) OR (k > degree + 1) - THEN - result := false; - RETURN(result); - END_IF; - REPEAT i := 2 TO up_knots; - IF (knot_mult[i] < 1) OR (knots[i] <= knots[i - 1]) - THEN - result := false; - RETURN(result); - END_IF; - k := knot_mult[i]; - IF (i < up_knots) AND (k > degree) - THEN - result := false; - RETURN(result); - END_IF; - IF (i = up_knots) AND (k > degree + 1) - THEN - result := false; - RETURN(result); - END_IF; - END_REPEAT; - RETURN(result); -END_FUNCTION; - -FUNCTION constraints_param_local_b_spline(degree : INTEGER; - knot_mult : LIST OF INTEGER; - knots : LIST OF INTEGER) : BOOLEAN; -LOCAL - result : BOOLEAN := true; - k : INTEGER; - up_knots : INTEGER; - sum : INTEGER; -END_LOCAL; - (* Find sum of knot multiplicities. *) - up_knots := SIZEOF(knots); - sum := knot_mult[1]; - REPEAT i := 2 TO up_knots; - sum := sum + knot_mult[i]; - END_REPEAT; - (* Check limits holding for all B-spline parametrisations *) - IF (degree < 1) OR (up_knots < 2) OR (sum <> (degree + 2)) - THEN - result := false; - RETURN(result); - END_IF; - k := knot_mult[1]; - IF (k < 1) OR (k > degree + 1) - THEN - result := false; - RETURN(result); - END_IF; - (* first pointer shall be 1 or more *) - IF (knots[1] < 1) - THEN - result := false; - END_IF; - REPEAT i := 2 TO up_knots; - IF (knot_mult[i] < 1) OR (knots[i] <= knots[i - 1]) - THEN - result := false; - RETURN(result); - END_IF; - k := knot_mult[i]; - IF (i < up_knots) AND (k > degree) - THEN - result := false; - RETURN(result); - END_IF; - IF (i = up_knots) AND (k > degree + 1) - THEN - result := false; - RETURN(result); - END_IF; - END_REPEAT; - RETURN(result); -END_FUNCTION; - -FUNCTION constraints_rectangular_composite_surface(s : rectangular_composite_surface) : BOOLEAN; - REPEAT i := 1 TO s.n_u; - REPEAT j := 1 TO s.n_v; - IF NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_SURFACE' IN - TYPEOF(s.segments[i][j].parent_surface)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_TRIMMED_SURFACE' IN - TYPEOF(s.segments[i][j].parent_surface))) - THEN - RETURN(false); - END_IF; - END_REPEAT; - END_REPEAT; - (* Check the transition codes, omitting the last row or column *) - REPEAT i := 1 TO s.n_u - 1; - REPEAT j := 1 TO s.n_v; - IF s.segments[i][j].u_transition = discontinuous - THEN - RETURN(false); - END_IF; - END_REPEAT; - END_REPEAT; - REPEAT i := 1 TO s.n_u; - REPEAT j := 1 TO s.n_v - 1; - IF s.segments[i][j].v_transition = discontinuous - THEN - RETURN(false); - END_IF; - END_REPEAT; - END_REPEAT; - RETURN(true); -END_FUNCTION; - -FUNCTION constraints_scaling(factors : LIST OF REAL) : BOOLEAN; -LOCAL - result : BOOLEAN := true; -END_LOCAL; - REPEAT i := 1 TO SIZEOF(factors); - IF NOT ({0.0 < factors[i] <= 1.0}) - THEN - result := false; - RETURN(result); - END_IF; - END_REPEAT; - RETURN(result); -END_FUNCTION; - -FUNCTION control_characters_free(s : STRING) : BOOLEAN; -LOCAL - ch : STRING; -END_LOCAL; - REPEAT i := 1 TO LENGTH(s); - ch := s[i]; - IF (ch = '\x9') OR (ch = '\xA') OR (ch = '\xD') - THEN - RETURN(false); - END_IF; - END_REPEAT; - RETURN(true); -END_FUNCTION; - -FUNCTION convert_spatial_to_ypr_rotation(pair : kinematic_pair; - rotation : spatial_rotation) : ypr_rotation; -LOCAL - axis : direction; - angle : plane_angle_measure; - conv_angle : plane_angle_measure; - ya : plane_angle_measure; - pa : plane_angle_measure; - ra : plane_angle_measure; - ucf : REAL; - dx : REAL; - dy : REAL; - dz : REAL; - s_a : REAL; - c_a : REAL; - rotmat : ARRAY [1 : 3] OF ARRAY [1 : 3] OF REAL; - cm1 : REAL; - s_y : REAL; - c_y : REAL; - s_r : REAL; - c_r : REAL; -END_LOCAL; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.YPR_ROTATION' IN TYPEOF(rotation) - THEN - RETURN(rotation); - END_IF; - axis := normalise(rotation\rotation_about_direction.direction_of_axis); - angle := rotation\rotation_about_direction.rotation_angle; - IF (angle = 0.0) - THEN - RETURN([0.0,0.0,0.0]); - END_IF; - dx := axis.direction_ratios[1]; - dy := axis.direction_ratios[2]; - dz := axis.direction_ratios[3]; - conv_angle := plane_angle_for_pair_in_radian(pair, angle); - IF NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' IN TYPEOF(conv_angle)) - THEN - RETURN(?); - END_IF; - ucf := angle / conv_angle; - s_a := SIN(conv_angle); - c_a := COS(conv_angle); - IF (dy = 0.0) AND (dx * dz = 0.0) - THEN - REPEAT WHILE (conv_angle <= -PI); - conv_angle := conv_angle + 2.0 * PI; - END_REPEAT; - REPEAT WHILE (conv_angle > PI); - conv_angle := conv_angle - 2.0 * PI; - END_REPEAT; - ya := ucf * conv_angle; - IF (conv_angle <> PI) - THEN - ra := -ya; - ELSE - ra := ya; - END_IF; - IF (dx <> 0.0) - THEN - IF (dx > 0.0) - THEN - RETURN([0.0,0.0,ya]); - ELSE - RETURN([0.0,0.0,ra]); - END_IF; - ELSE - IF (dz > 0.0) - THEN - RETURN([ya,0.0,0.0]); - ELSE - RETURN([ra,0.0,0.0]); - END_IF; - END_IF; - END_IF; - IF ((dy <> 0.0) AND (dx = 0.0) AND (dz = 0.0)) - THEN - IF (c_a >= 0.0) - THEN - ya := 0.0; - ra := 0.0; - ELSE - ya := ucf * PI; - ra := ya; - END_IF; - pa := ucf * ATAN(s_a, ABS(c_a)); - IF (dy < 0.0) - THEN - pa := -pa; - END_IF; - RETURN([ya,pa,ra]); - END_IF; - cm1 := 1.0 - c_a; - rotmat := [[dx * dx * cm1 + c_a,dx * dy * cm1 - dz * s_a,dx * dz * cm1 + dy * s_a], - [dx * dy * cm1 + dz * s_a,dy * dy * cm1 + c_a,dy * dz * cm1 - dx * s_a], - [dx * dz * cm1 - dy * s_a,dy * dz * cm1 + dx * s_a,dz * dz * cm1 + c_a]]; - IF (ABS(rotmat[1][3]) = 1.0) - THEN - BEGIN - IF (rotmat[1][3] = 1.0) - THEN - pa := 0.5 * PI; - ELSE - pa := -0.5 * PI; - END_IF; - ra := 0.0; - ya := ATAN(rotmat[2][1], rotmat[2][2]); - IF (rotmat[2][2] < 0.0) - THEN - IF ya <= 0.0 - THEN - ya := ya + PI; - ELSE - ya := ya - PI; - END_IF; - END_IF; - END; - ELSE - BEGIN - ya := ATAN(-rotmat[1][2], rotmat[1][1]); - IF (rotmat[1][1] < 0.0) - THEN - IF (ya <= 0.0) - THEN - ya := ya + PI; - ELSE - ya := ya - PI; - END_IF; - END_IF; - ra := ATAN(-rotmat[2][3], rotmat[3][3]); - IF (rotmat[3][3] < 0.0) - THEN - IF (ra <= 0.0) - THEN - ra := ra + PI; - ELSE - ra := ra - PI; - END_IF; - END_IF; - s_y := SIN(ya); - c_y := COS(ya); - s_r := SIN(ra); - c_r := COS(ra); - IF ((ABS(s_y) > ABS(c_y)) AND (ABS(s_y) > ABS(s_r)) AND (ABS(s_y) > ABS(c_r))) - THEN - cm1 := -rotmat[1][2] / s_y; - ELSE - IF ((ABS(c_y) > ABS(s_r)) AND (ABS(c_y) > ABS(c_r))) - THEN - cm1 := rotmat[1][1] / c_y; - ELSE - IF (ABS(s_r) > ABS(c_r)) - THEN - cm1 := -rotmat[2][3] / s_r; - ELSE - cm1 := rotmat[3][3] / c_r; - END_IF; - END_IF; - END_IF; - pa := ATAN(rotmat[1][3], cm1); - END; - END_IF; - ya := ya * ucf; - pa := pa * ucf; - ra := ra * ucf; - RETURN([ya,pa,ra]); -END_FUNCTION; - -FUNCTION convert_to_literal(val : maths_atom) : generic_literal; -LOCAL - types : SET OF STRING := TYPEOF(val); -END_LOCAL; - IF 'INTEGER' IN types - THEN - RETURN(make_int_literal(val)); - END_IF; - IF 'REAL' IN types - THEN - RETURN(make_real_literal(val)); - END_IF; - IF 'BOOLEAN' IN types - THEN - RETURN(make_boolean_literal(val)); - END_IF; - IF 'STRING' IN types - THEN - RETURN(make_string_literal(val)); - END_IF; - IF 'LOGICAL' IN types - THEN - RETURN(make_logical_literal(val)); - END_IF; - IF 'BINARY' IN types - THEN - RETURN(make_binary_literal(val)); - END_IF; - IF (schema_prefix + 'MATHS_ENUM_ATOM') IN types - THEN - RETURN(make_maths_enum_literal(val)); - END_IF; - RETURN(?); -END_FUNCTION; - -FUNCTION convert_to_maths_function(func : maths_function_select) : maths_function; -LOCAL - efenum : elementary_function_enumerators; - mthfun : maths_function; -END_LOCAL; - IF (schema_prefix + 'MATHS_FUNCTION') IN TYPEOF(func) - THEN - mthfun := func; - ELSE - efenum := func; - mthfun := make_elementary_function(efenum); - END_IF; - RETURN(mthfun); -END_FUNCTION; - -FUNCTION convert_to_operand(val : maths_value) : generic_expression; -LOCAL - types : SET OF STRING := stripped_typeof(val); -END_LOCAL; - IF 'GENERIC_EXPRESSION' IN types - THEN - RETURN(val); - END_IF; - IF 'MATHS_ATOM' IN types - THEN - RETURN(convert_to_literal(val)); - END_IF; - IF 'ATOM_BASED_VALUE' IN types - THEN - RETURN(make_atom_based_literal(val)); - END_IF; - IF 'MATHS_TUPLE' IN types - THEN - RETURN(make_maths_tuple_literal(val)); - END_IF; - RETURN(?); -END_FUNCTION; - -FUNCTION convert_to_operands(values : AGGREGATE OF maths_value) : LIST OF generic_expression; -LOCAL - operands : LIST OF generic_expression := []; - loc : INTEGER := 0; -END_LOCAL; - IF NOT EXISTS(values) - THEN - RETURN(?); - END_IF; - REPEAT i := LOINDEX(values) TO HIINDEX(values); - INSERT(operands, convert_to_operand(values[i]), loc); - loc := loc + 1; - END_REPEAT; - RETURN(operands); -END_FUNCTION; - -FUNCTION convert_to_operands_prcmfn(srcdom : maths_space_or_function; - prepfun : LIST OF maths_function; - finfun : maths_function_select) : LIST [2 : ?] OF generic_expression; -LOCAL - operands : LIST OF generic_expression := []; -END_LOCAL; - INSERT(operands, srcdom, 0); - REPEAT i := 1 TO SIZEOF(prepfun); - INSERT(operands, prepfun[i], i); - END_REPEAT; - INSERT(operands, convert_to_maths_function(finfun), SIZEOF(prepfun) + 1); - RETURN(operands); -END_FUNCTION; - -FUNCTION cross_product(arg1 : direction; - arg2 : direction) : vector; -LOCAL - mag : REAL; - res : direction; - v1 : LIST [3 : 3] OF REAL; - v2 : LIST [3 : 3] OF REAL; - result : vector; -END_LOCAL; - IF (NOT EXISTS(arg1) OR (arg1.dim = 2)) OR (NOT EXISTS(arg2) OR (arg2.dim = 2)) - THEN - RETURN(?); - ELSE - BEGIN - v1 := normalise(arg1).direction_ratios; - v2 := normalise(arg2).direction_ratios; - res := dummy_gri || - direction([(v1[2] * v2[3] - v1[3] * v2[2]), - (v1[3] * v2[1] - v1[1] * v2[3]), - (v1[1] * v2[2] - v1[2] * v2[1])]); - mag := 0.0; - REPEAT i := 1 TO 3; - mag := mag + res.direction_ratios[i] * res.direction_ratios[i]; - END_REPEAT; - IF (mag > 0.0) - THEN - result := dummy_gri || vector(res, SQRT(mag)); - ELSE - result := dummy_gri || vector(arg1, 0.0); - END_IF; - RETURN(result); - END; - END_IF; -END_FUNCTION; - -FUNCTION curve_weights_positive(b : rational_b_spline_curve) : BOOLEAN; -LOCAL - result : BOOLEAN := true; -END_LOCAL; - REPEAT i := 0 TO b.upper_index_on_control_points; - IF b.weights[i] <= 0.0 - THEN - result := false; - RETURN(result); - END_IF; - END_REPEAT; - RETURN(result); -END_FUNCTION; - -FUNCTION default_tolerance_table_cell_wr2(agg : compound_item_definition) : BOOLEAN; - BEGIN - IF SIZEOF(agg) <= 5 - THEN - RETURN(true); - ELSE - RETURN(false); - END_IF; - END; -END_FUNCTION; - -FUNCTION default_tolerance_table_cell_wr3(agg : compound_item_definition) : BOOLEAN; - BEGIN - IF (SIZEOF(QUERY(i - <* agg - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN - TYPEOF(i)) AND - (i\representation_item.name = 'significant number of digits')))) = - 1) OR - ((SIZEOF(QUERY(i - <* agg - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN - TYPEOF(i)) AND - (i\representation_item.name = 'lower limit')))) = - 1) AND - (SIZEOF(QUERY(i - <* agg - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN - TYPEOF(i)) AND - (i\representation_item.name = 'upper limit')))) = - 1)) - THEN - RETURN(true); - ELSE - RETURN(false); - END_IF; - END; -END_FUNCTION; - -FUNCTION default_tolerance_table_cell_wr4(agg : compound_item_definition) : BOOLEAN; - BEGIN - IF (SIZEOF(QUERY(i - <* agg - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN - TYPEOF(i)) AND - (i\representation_item.name = 'plus minus tolerance value')))) = - 1) OR - ((SIZEOF(QUERY(i - <* agg - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN - TYPEOF(i)) AND - (i\representation_item.name = 'lower tolerance value')))) = - 1) AND - (SIZEOF(QUERY(i - <* agg - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN - TYPEOF(i)) AND - (i\representation_item.name = 'upper tolerance value')))) = - 1)) - THEN - RETURN(true); - ELSE - RETURN(false); - END_IF; - END; -END_FUNCTION; - -FUNCTION default_tolerance_table_cell_wr5(agg : compound_item_definition) : BOOLEAN; - BEGIN - IF (SIZEOF(QUERY(i - <* agg - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN - TYPEOF(i)))) <= - 1) AND - (SIZEOF(QUERY(i - <* agg - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN - TYPEOF(i)))) = - SIZEOF(QUERY(i - <* agg - | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN - TYPEOF(i)) AND - (i\representation_item.name = 'cell description'))))) - THEN - RETURN(true); - ELSE - RETURN(false); - END_IF; - END; -END_FUNCTION; - -FUNCTION definite_integral_check(domain : tuple_space; - vrblint : input_selector; - lowerinf : BOOLEAN; - upperinf : BOOLEAN) : BOOLEAN; -LOCAL - domn : tuple_space := domain; - fspc : maths_space; - dim : nonnegative_integer; - k : positive_integer; -END_LOCAL; - IF (space_dimension(domain) = 1) AND ((schema_prefix + 'TUPLE_SPACE') IN TYPEOF(factor1(domain))) - THEN - domn := factor1(domain); - END_IF; - dim := space_dimension(domn); - k := vrblint; - IF k > dim - THEN - RETURN(false); - END_IF; - fspc := factor_space(domn, k); - IF NOT ((schema_prefix + 'REAL_INTERVAL') IN TYPEOF(fspc)) - THEN - RETURN(false); - END_IF; - IF lowerinf AND min_exists(fspc) - THEN - RETURN(false); - END_IF; - IF upperinf AND max_exists(fspc) - THEN - RETURN(false); - END_IF; - RETURN(true); -END_FUNCTION; - -FUNCTION definite_integral_expr_check(operands : LIST [2 : ?] OF generic_expression; - lowerinf : BOOLEAN; - upperinf : BOOLEAN) : BOOLEAN; -LOCAL - nops : INTEGER := 2; - vspc : maths_space; - dim : nonnegative_integer; - k : positive_integer; - bspc : maths_space; -END_LOCAL; - IF NOT lowerinf - THEN - nops := nops + 1; - END_IF; - IF NOT upperinf - THEN - nops := nops + 1; - END_IF; - IF SIZEOF(operands) <> nops - THEN - RETURN(false); - END_IF; - IF NOT ('GENERIC_VARIABLE' IN stripped_typeof(operands[2])) - THEN - RETURN(false); - END_IF; - IF NOT has_values_space(operands[2]) - THEN - RETURN(false); - END_IF; - vspc := values_space_of(operands[2]); - IF NOT ('REAL_INTERVAL' IN stripped_typeof(vspc)) - THEN - RETURN(false); - END_IF; - IF lowerinf - THEN - IF min_exists(vspc) - THEN - RETURN(false); - END_IF; - k := 3; - ELSE - IF NOT has_values_space(operands[3]) - THEN - RETURN(false); - END_IF; - bspc := values_space_of(operands[3]); - IF NOT compatible_spaces(bspc, vspc) - THEN - RETURN(false); - END_IF; - k := 4; - END_IF; - IF upperinf - THEN - IF max_exists(vspc) - THEN - RETURN(false); - END_IF; - ELSE - IF NOT has_values_space(operands[k]) - THEN - RETURN(false); - END_IF; - bspc := values_space_of(operands[k]); - IF NOT compatible_spaces(bspc, vspc) - THEN - RETURN(false); - END_IF; - END_IF; - RETURN(true); -END_FUNCTION; - -FUNCTION dependently_instantiated(set_of_input_instances : SET OF GENERIC : IGEN; - set_of_input_types : SET OF STRING; - previous_in_chain : LIST OF GENERIC : CGEN) : BOOLEAN; -(* 'dependently_instantiated' To test whether all instances in the - input set_of_input_instances are referenced by independently - instantiable instances. If so, this function returns true. - Set_of_input_types includes the type strings for all input instances. - The instances in previous_in_chain are used to detect cyclic - references during recursive calls to this function. The parameter - lists already tested instances in a chain of references. - *) -LOCAL - number_of_input_instances : INTEGER; - number_of_referring_instances : INTEGER; - bag_of_referring_instances : BAG OF GENERIC : IGEN := []; - dependently_instantiated_flag : BOOLEAN; - previous_in_chain_plus : LIST OF GENERIC : CGEN := []; - result : BOOLEAN := true; - set_of_types : SET OF STRING := []; -END_LOCAL; - IF EXISTS(set_of_input_instances) - THEN - number_of_input_instances := SIZEOF(set_of_input_instances); - set_of_input_types := set_of_input_types + 'GENERIC'; - REPEAT i := 1 TO number_of_input_instances; - bag_of_referring_instances := USEDIN(set_of_input_instances[i], ''); - IF EXISTS(bag_of_referring_instances) - THEN - number_of_referring_instances := SIZEOF(bag_of_referring_instances); - dependently_instantiated_flag := false; - REPEAT j := 1 TO number_of_referring_instances; - set_of_types := TYPEOF(bag_of_referring_instances[j]); - IF set_of_types <= set_of_input_types - THEN - IF NOT (bag_of_referring_instances[j] IN previous_in_chain) - THEN - previous_in_chain_plus := previous_in_chain + set_of_input_instances[i]; - IF dependently_instantiated([bag_of_referring_instances[j]], set_of_input_types, previous_in_chain_plus) - THEN - dependently_instantiated_flag := true; - ESCAPE; - ELSE - SKIP; - END_IF; - END_IF; - ELSE - dependently_instantiated_flag := true; - ESCAPE; - END_IF; - END_REPEAT; - IF NOT dependently_instantiated_flag - THEN - RETURN(false); - END_IF; - ELSE - RETURN(false); - END_IF; - END_REPEAT; - ELSE - RETURN(false); - END_IF; - RETURN(true); -END_FUNCTION; - -FUNCTION derive_angle(placement_1 : axis2_placement_3d; - placement_2 : axis2_placement_3d) : plane_angle_measure; -LOCAL - v1 : direction; - v2 : direction; - mag_v1 : REAL; - mag_v2 : REAL; - theta : plane_angle_measure; -END_LOCAL; - v1 := placement_1.p[1]; - v2 := placement_2.p[1]; - mag_v1 := SQRT((v1.direction_ratios[1] * v1.direction_ratios[1]) + (v1.direction_ratios[2] * v1.direction_ratios[2])); - mag_v2 := SQRT((v2.direction_ratios[1] * v2.direction_ratios[1]) + (v2.direction_ratios[2] * v2.direction_ratios[2])); - IF (mag_v1 = 0) OR (mag_v2 = 0) - THEN - theta := 0; - RETURN(theta); - END_IF; - theta := ACOS(((v1.direction_ratios[1] * v2.direction_ratios[1]) + - (v1.direction_ratios[2] * v2.direction_ratios[2])) / - (mag_v1 * mag_v2)); - RETURN(theta); -END_FUNCTION; - -FUNCTION derive_definite_integral_domain(igrl : definite_integral_function) : tuple_space; --- Internal utility function: -FUNCTION process_product_space(spc : product_space; - idx : INTEGER; - prefix : INTEGER; - vdomn : maths_space) : product_space; -LOCAL - uspc : uniform_product_space; - expnt : INTEGER; - factors : LIST OF maths_space; -END_LOCAL; - IF (schema_prefix + 'UNIFORM_PRODUCT_SPACE') IN TYPEOF(spc) - THEN - uspc := spc; - expnt := uspc.exponent + prefix; - IF idx <= uspc.exponent - THEN - expnt := expnt - 1; - END_IF; - IF expnt = 0 - THEN - RETURN(make_listed_product_space([])); - ELSE - RETURN(make_uniform_product_space(uspc.base, expnt)); - END_IF; - ELSE - factors := spc\listed_product_space.factors; - IF idx <= SIZEOF(factors) - THEN - REMOVE(factors, idx); - END_IF; - IF prefix > 0 - THEN - INSERT(factors, vdomn, 0); - IF prefix > 1 - THEN - INSERT(factors, vdomn, 0); - END_IF; - END_IF; - RETURN(make_listed_product_space(factors)); - END_IF; -END_FUNCTION; -LOCAL - idomn : tuple_space := igrl.integrand.domain; - types : SET OF STRING := TYPEOF(idomn); - idx : INTEGER := igrl.variable_of_integration; - tupled : BOOLEAN := bool(((space_dimension(idomn) = 1) AND ((schema_prefix + 'TUPLE_SPACE') IN types))); - prefix : INTEGER := 0; - espc : extended_tuple_space; - vdomn : maths_space; -END_LOCAL; - IF tupled - THEN - idomn := factor1(idomn); - types := TYPEOF(idomn); - END_IF; - IF igrl.lower_limit_neg_infinity - THEN - prefix := prefix + 1; - END_IF; - IF igrl.upper_limit_pos_infinity - THEN - prefix := prefix + 1; - END_IF; - vdomn := factor_space(idomn, idx); - IF (schema_prefix + 'EXTENDED_TUPLE_SPACE') IN types - THEN - espc := idomn; - idomn := make_extended_tuple_space(process_product_space(espc.base, idx, prefix, vdomn), espc.extender); - ELSE - idomn := process_product_space(idomn, idx, prefix, vdomn); - END_IF; - IF tupled - THEN - RETURN(one_tuples_of(idomn)); - ELSE - RETURN(idomn); - END_IF; -END_FUNCTION; - -FUNCTION derive_dimensional_exponents(x : unit) : dimensional_exponents; -LOCAL - result : dimensional_exponents := dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); -END_LOCAL; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DERIVED_UNIT' IN TYPEOF(x) - THEN - REPEAT i := LOINDEX(x\derived_unit.elements) TO HIINDEX(x\derived_unit.elements); - result.length_exponent := result.length_exponent + - (x\derived_unit.elements[i]\derived_unit_element.exponent * - x\derived_unit.elements[i]\derived_unit_element.unit\named_unit.dimensions.length_exponent); - result.mass_exponent := result.mass_exponent + - (x\derived_unit.elements[i]\derived_unit_element.exponent * - x\derived_unit.elements[i]\derived_unit_element.unit\named_unit.dimensions.mass_exponent); - result.time_exponent := result.time_exponent + - (x\derived_unit.elements[i]\derived_unit_element.exponent * - x\derived_unit.elements[i]\derived_unit_element.unit\named_unit.dimensions.time_exponent); - result.electric_current_exponent := result.electric_current_exponent + - (x\derived_unit.elements[i]\derived_unit_element.exponent * - x\derived_unit.elements[i]\derived_unit_element.unit\named_unit.dimensions.electric_current_exponent); - result.thermodynamic_temperature_exponent := result.thermodynamic_temperature_exponent + - (x\derived_unit.elements[i]\derived_unit_element.exponent * - x\derived_unit.elements[i]\derived_unit_element.unit\named_unit.dimensions.thermodynamic_temperature_exponent); - result.amount_of_substance_exponent := result.amount_of_substance_exponent + - (x\derived_unit.elements[i]\derived_unit_element.exponent * - x\derived_unit.elements[i]\derived_unit_element.unit\named_unit.dimensions.amount_of_substance_exponent); - result.luminous_intensity_exponent := result.luminous_intensity_exponent + - (x\derived_unit.elements[i]\derived_unit_element.exponent * - x\derived_unit.elements[i]\derived_unit_element.unit\named_unit.dimensions.luminous_intensity_exponent); - END_REPEAT; - ELSE - result := x\named_unit.dimensions; - END_IF; - RETURN(result); -END_FUNCTION; - -FUNCTION derive_elementary_function_domain(ef_val : elementary_function_enumerators) : tuple_space; - IF NOT EXISTS(ef_val) - THEN - RETURN(?); - END_IF; - CASE ef_val OF - ef_and : RETURN(make_extended_tuple_space(the_zero_tuple_space, the_logicals)); - ef_or : RETURN(make_extended_tuple_space(the_zero_tuple_space, the_logicals)); - ef_not : RETURN(make_uniform_product_space(the_logicals, 1)); - ef_xor : RETURN(make_uniform_product_space(the_logicals, 2)); - ef_negate_i : RETURN(make_uniform_product_space(the_integers, 1)); - ef_add_i : RETURN(the_integer_tuples); - ef_subtract_i : RETURN(make_uniform_product_space(the_integers, 2)); - ef_multiply_i : RETURN(the_integer_tuples); - ef_divide_i : RETURN(make_uniform_product_space(the_integers, 2)); - ef_mod_i : RETURN(make_uniform_product_space(the_integers, 2)); - ef_exponentiate_i : RETURN(make_uniform_product_space(the_integers, 2)); - ef_eq_i : RETURN(make_uniform_product_space(the_integers, 2)); - ef_ne_i : RETURN(make_uniform_product_space(the_integers, 2)); - ef_gt_i : RETURN(make_uniform_product_space(the_integers, 2)); - ef_lt_i : RETURN(make_uniform_product_space(the_integers, 2)); - ef_ge_i : RETURN(make_uniform_product_space(the_integers, 2)); - ef_le_i : RETURN(make_uniform_product_space(the_integers, 2)); - ef_abs_i : RETURN(make_uniform_product_space(the_integers, 1)); - ef_if_i : RETURN(make_listed_product_space([the_logicals,the_integers,the_integers])); - ef_negate_r : RETURN(make_uniform_product_space(the_reals, 1)); - ef_reciprocal_r : RETURN(make_uniform_product_space(the_reals, 1)); - ef_add_r : RETURN(the_real_tuples); - ef_subtract_r : RETURN(make_uniform_product_space(the_reals, 2)); - ef_multiply_r : RETURN(the_real_tuples); - ef_divide_r : RETURN(make_uniform_product_space(the_reals, 2)); - ef_mod_r : RETURN(make_uniform_product_space(the_reals, 2)); - ef_exponentiate_r : RETURN(make_listed_product_space([the_nonnegative_reals,the_reals])); - ef_exponentiate_ri : RETURN(make_listed_product_space([the_reals,the_integers])); - ef_eq_r : RETURN(make_uniform_product_space(the_reals, 2)); - ef_ne_r : RETURN(make_uniform_product_space(the_reals, 2)); - ef_gt_r : RETURN(make_uniform_product_space(the_reals, 2)); - ef_lt_r : RETURN(make_uniform_product_space(the_reals, 2)); - ef_ge_r : RETURN(make_uniform_product_space(the_reals, 2)); - ef_le_r : RETURN(make_uniform_product_space(the_reals, 2)); - ef_abs_r : RETURN(make_uniform_product_space(the_reals, 1)); - ef_acos_r : RETURN(make_uniform_product_space(the_neg1_one_interval, 1)); - ef_asin_r : RETURN(make_uniform_product_space(the_neg1_one_interval, 1)); - ef_atan2_r : RETURN(make_uniform_product_space(the_reals, 2)); - ef_cos_r : RETURN(make_uniform_product_space(the_reals, 1)); - ef_exp_r : RETURN(make_uniform_product_space(the_reals, 1)); - ef_ln_r : RETURN(make_uniform_product_space(the_nonnegative_reals, 1)); - ef_log2_r : RETURN(make_uniform_product_space(the_nonnegative_reals, 1)); - ef_log10_r : RETURN(make_uniform_product_space(the_nonnegative_reals, 1)); - ef_sin_r : RETURN(make_uniform_product_space(the_reals, 1)); - ef_sqrt_r : RETURN(make_uniform_product_space(the_nonnegative_reals, 1)); - ef_tan_r : RETURN(make_uniform_product_space(the_reals, 1)); - ef_if_r : RETURN(make_listed_product_space([the_logicals,the_reals,the_reals])); - ef_negate_c : RETURN(make_uniform_product_space(the_complex_numbers, 1)); - ef_reciprocal_c : RETURN(make_uniform_product_space(the_complex_numbers, 1)); - ef_add_c : RETURN(the_complex_tuples); - ef_subtract_c : RETURN(make_uniform_product_space(the_complex_numbers, 2)); - ef_multiply_c : RETURN(the_complex_tuples); - ef_divide_c : RETURN(make_uniform_product_space(the_complex_numbers, 2)); - ef_exponentiate_c : RETURN(make_uniform_product_space(the_complex_numbers, 2)); - ef_exponentiate_ci : RETURN(make_listed_product_space([the_complex_numbers,the_integers])); - ef_eq_c : RETURN(make_uniform_product_space(the_complex_numbers, 2)); - ef_ne_c : RETURN(make_uniform_product_space(the_complex_numbers, 2)); - ef_conjugate_c : RETURN(make_uniform_product_space(the_complex_numbers, 1)); - ef_abs_c : RETURN(make_uniform_product_space(the_complex_numbers, 1)); - ef_arg_c : RETURN(make_uniform_product_space(the_complex_numbers, 1)); - ef_cos_c : RETURN(make_uniform_product_space(the_complex_numbers, 1)); - ef_exp_c : RETURN(make_uniform_product_space(the_complex_numbers, 1)); - ef_ln_c : RETURN(make_uniform_product_space(the_complex_numbers, 1)); - ef_sin_c : RETURN(make_uniform_product_space(the_complex_numbers, 1)); - ef_sqrt_c : RETURN(make_uniform_product_space(the_complex_numbers, 1)); - ef_tan_c : RETURN(make_uniform_product_space(the_complex_numbers, 1)); - ef_if_c : RETURN(make_listed_product_space([the_logicals,the_complex_numbers,the_complex_numbers])); - ef_subscript_s : RETURN(make_listed_product_space([the_strings,the_integers])); - ef_eq_s : RETURN(make_uniform_product_space(the_strings, 2)); - ef_ne_s : RETURN(make_uniform_product_space(the_strings, 2)); - ef_gt_s : RETURN(make_uniform_product_space(the_strings, 2)); - ef_lt_s : RETURN(make_uniform_product_space(the_strings, 2)); - ef_ge_s : RETURN(make_uniform_product_space(the_strings, 2)); - ef_le_s : RETURN(make_uniform_product_space(the_strings, 2)); - ef_subsequence_s : RETURN(make_listed_product_space([the_strings,the_integers,the_integers])); - ef_concat_s : RETURN(make_extended_tuple_space(the_zero_tuple_space, the_strings)); - ef_size_s : RETURN(make_uniform_product_space(the_strings, 1)); - ef_format : RETURN(make_listed_product_space([the_numbers,the_strings])); - ef_value : RETURN(make_uniform_product_space(the_strings, 1)); - ef_like : RETURN(make_uniform_product_space(the_strings, 2)); - ef_if_s : RETURN(make_listed_product_space([the_logicals,the_strings,the_strings])); - ef_subscript_b : RETURN(make_listed_product_space([the_binarys,the_integers])); - ef_eq_b : RETURN(make_uniform_product_space(the_binarys, 2)); - ef_ne_b : RETURN(make_uniform_product_space(the_binarys, 2)); - ef_gt_b : RETURN(make_uniform_product_space(the_binarys, 2)); - ef_lt_b : RETURN(make_uniform_product_space(the_binarys, 2)); - ef_ge_b : RETURN(make_uniform_product_space(the_binarys, 2)); - ef_le_b : RETURN(make_uniform_product_space(the_binarys, 2)); - ef_subsequence_b : RETURN(make_listed_product_space([the_binarys,the_integers,the_integers])); - ef_concat_b : RETURN(make_extended_tuple_space(the_zero_tuple_space, the_binarys)); - ef_size_b : RETURN(make_uniform_product_space(the_binarys, 1)); - ef_if_b : RETURN(make_listed_product_space([the_logicals,the_binarys,the_binarys])); - ef_subscript_t : RETURN(make_listed_product_space([the_tuples,the_integers])); - ef_eq_t : RETURN(make_uniform_product_space(the_tuples, 2)); - ef_ne_t : RETURN(make_uniform_product_space(the_tuples, 2)); - ef_concat_t : RETURN(make_extended_tuple_space(the_zero_tuple_space, the_tuples)); - ef_size_t : RETURN(make_uniform_product_space(the_tuples, 1)); - ef_entuple : RETURN(the_tuples); - ef_detuple : RETURN(make_uniform_product_space(the_generics, 1)); - ef_insert : RETURN(make_listed_product_space([the_tuples,the_generics,the_integers])); - ef_remove : RETURN(make_listed_product_space([the_tuples,the_integers])); - ef_if_t : RETURN(make_listed_product_space([the_logicals,the_tuples,the_tuples])); - ef_sum_it : RETURN(make_uniform_product_space(the_integer_tuples, 1)); - ef_product_it : RETURN(make_uniform_product_space(the_integer_tuples, 1)); - ef_add_it : RETURN(make_extended_tuple_space(the_integer_tuples, the_integer_tuples)); - ef_subtract_it : RETURN(make_uniform_product_space(the_integer_tuples, 2)); - ef_scalar_mult_it : RETURN(make_listed_product_space([the_integers,the_integer_tuples])); - ef_dot_prod_it : RETURN(make_uniform_product_space(the_integer_tuples, 2)); - ef_sum_rt : RETURN(make_uniform_product_space(the_real_tuples, 1)); - ef_product_rt : RETURN(make_uniform_product_space(the_real_tuples, 1)); - ef_add_rt : RETURN(make_extended_tuple_space(the_real_tuples, the_real_tuples)); - ef_subtract_rt : RETURN(make_uniform_product_space(the_real_tuples, 2)); - ef_scalar_mult_rt : RETURN(make_listed_product_space([the_reals,the_real_tuples])); - ef_dot_prod_rt : RETURN(make_uniform_product_space(the_real_tuples, 2)); - ef_norm_rt : RETURN(make_uniform_product_space(the_real_tuples, 1)); - ef_sum_ct : RETURN(make_uniform_product_space(the_complex_tuples, 1)); - ef_product_ct : RETURN(make_uniform_product_space(the_complex_tuples, 1)); - ef_add_ct : RETURN(make_extended_tuple_space(the_complex_tuples, the_complex_tuples)); - ef_subtract_ct : RETURN(make_uniform_product_space(the_complex_tuples, 2)); - ef_scalar_mult_ct : RETURN(make_listed_product_space([the_complex_numbers,the_complex_tuples])); - ef_dot_prod_ct : RETURN(make_uniform_product_space(the_complex_tuples, 2)); - ef_norm_ct : RETURN(make_uniform_product_space(the_complex_tuples, 1)); - ef_if : RETURN(make_listed_product_space([the_logicals,the_generics,the_generics])); - ef_ensemble : RETURN(the_tuples); - ef_member_of : RETURN(make_listed_product_space([the_generics,the_maths_spaces])); - OTHERWISE: RETURN(?); - END_CASE; -END_FUNCTION; - -FUNCTION derive_elementary_function_range(ef_val : elementary_function_enumerators) : tuple_space; - IF NOT EXISTS(ef_val) - THEN - RETURN(?); - END_IF; - CASE ef_val OF - ef_and : RETURN(make_uniform_product_space(the_logicals, 1)); - ef_or : RETURN(make_uniform_product_space(the_logicals, 1)); - ef_not : RETURN(make_uniform_product_space(the_logicals, 1)); - ef_xor : RETURN(make_uniform_product_space(the_logicals, 2)); - ef_negate_i : RETURN(make_uniform_product_space(the_integers, 1)); - ef_add_i : RETURN(make_uniform_product_space(the_integers, 1)); - ef_subtract_i : RETURN(make_uniform_product_space(the_integers, 1)); - ef_multiply_i : RETURN(make_uniform_product_space(the_integers, 1)); - ef_divide_i : RETURN(make_uniform_product_space(the_integers, 1)); - ef_mod_i : RETURN(make_uniform_product_space(the_integers, 1)); - ef_exponentiate_i : RETURN(make_uniform_product_space(the_integers, 1)); - ef_eq_i : RETURN(make_uniform_product_space(the_logicals, 1)); - ef_ne_i : RETURN(make_uniform_product_space(the_logicals, 1)); - ef_gt_i : RETURN(make_uniform_product_space(the_logicals, 1)); - ef_lt_i : RETURN(make_uniform_product_space(the_logicals, 1)); - ef_ge_i : RETURN(make_uniform_product_space(the_logicals, 1)); - ef_le_i : RETURN(make_uniform_product_space(the_logicals, 1)); - ef_abs_i : RETURN(make_uniform_product_space(the_integers, 1)); - ef_if_i : RETURN(make_uniform_product_space(the_integers, 1)); - ef_negate_r : RETURN(make_uniform_product_space(the_reals, 1)); - ef_reciprocal_r : RETURN(make_uniform_product_space(the_reals, 1)); - ef_add_r : RETURN(make_uniform_product_space(the_reals, 1)); - ef_subtract_r : RETURN(make_uniform_product_space(the_reals, 1)); - ef_multiply_r : RETURN(make_uniform_product_space(the_reals, 1)); - ef_divide_r : RETURN(make_uniform_product_space(the_reals, 1)); - ef_mod_r : RETURN(make_uniform_product_space(the_reals, 1)); - ef_exponentiate_r : RETURN(make_uniform_product_space(the_reals, 1)); - ef_exponentiate_ri : RETURN(make_uniform_product_space(the_reals, 1)); - ef_eq_r : RETURN(make_uniform_product_space(the_logicals, 1)); - ef_ne_r : RETURN(make_uniform_product_space(the_logicals, 1)); - ef_gt_r : RETURN(make_uniform_product_space(the_logicals, 1)); - ef_lt_r : RETURN(make_uniform_product_space(the_logicals, 1)); - ef_ge_r : RETURN(make_uniform_product_space(the_logicals, 1)); - ef_le_r : RETURN(make_uniform_product_space(the_logicals, 1)); - ef_abs_r : RETURN(make_uniform_product_space(the_nonnegative_reals, 1)); - ef_acos_r : RETURN(make_uniform_product_space(the_zero_pi_interval, 1)); - ef_asin_r : RETURN(make_uniform_product_space(the_neghalfpi_halfpi_interval, 1)); - ef_atan2_r : RETURN(make_uniform_product_space(the_negpi_pi_interval, 1)); - ef_cos_r : RETURN(make_uniform_product_space(the_neg1_one_interval, 1)); - ef_exp_r : RETURN(make_uniform_product_space(the_nonnegative_reals, 1)); - ef_ln_r : RETURN(make_uniform_product_space(the_reals, 1)); - ef_log2_r : RETURN(make_uniform_product_space(the_reals, 1)); - ef_log10_r : RETURN(make_uniform_product_space(the_reals, 1)); - ef_sin_r : RETURN(make_uniform_product_space(the_neg1_one_interval, 1)); - ef_sqrt_r : RETURN(make_uniform_product_space(the_nonnegative_reals, 1)); - ef_tan_r : RETURN(make_uniform_product_space(the_reals, 1)); - ef_if_r : RETURN(make_uniform_product_space(the_reals, 1)); - ef_negate_c : RETURN(make_uniform_product_space(the_complex_numbers, 1)); - ef_reciprocal_c : RETURN(make_uniform_product_space(the_complex_numbers, 1)); - ef_add_c : RETURN(make_uniform_product_space(the_complex_numbers, 1)); - ef_subtract_c : RETURN(make_uniform_product_space(the_complex_numbers, 1)); - ef_multiply_c : RETURN(make_uniform_product_space(the_complex_numbers, 1)); - ef_divide_c : RETURN(make_uniform_product_space(the_complex_numbers, 1)); - ef_exponentiate_c : RETURN(make_uniform_product_space(the_complex_numbers, 1)); - ef_exponentiate_ci : RETURN(make_uniform_product_space(the_complex_numbers, 1)); - ef_eq_c : RETURN(make_uniform_product_space(the_logicals, 1)); - ef_ne_c : RETURN(make_uniform_product_space(the_logicals, 1)); - ef_conjugate_c : RETURN(make_uniform_product_space(the_complex_numbers, 1)); - ef_abs_c : RETURN(make_uniform_product_space(the_nonnegative_reals, 1)); - ef_arg_c : RETURN(make_uniform_product_space(the_negpi_pi_interval, 1)); - ef_cos_c : RETURN(make_uniform_product_space(the_complex_numbers, 1)); - ef_exp_c : RETURN(make_uniform_product_space(the_complex_numbers, 1)); - ef_ln_c : RETURN(make_uniform_product_space(the_complex_numbers, 1)); - ef_sin_c : RETURN(make_uniform_product_space(the_complex_numbers, 1)); - ef_sqrt_c : RETURN(make_uniform_product_space(the_complex_numbers, 1)); - ef_tan_c : RETURN(make_uniform_product_space(the_complex_numbers, 1)); - ef_if_c : RETURN(make_uniform_product_space(the_complex_numbers, 1)); - ef_subscript_s : RETURN(make_uniform_product_space(the_strings, 1)); - ef_eq_s : RETURN(make_uniform_product_space(the_logicals, 1)); - ef_ne_s : RETURN(make_uniform_product_space(the_logicals, 1)); - ef_gt_s : RETURN(make_uniform_product_space(the_logicals, 1)); - ef_lt_s : RETURN(make_uniform_product_space(the_logicals, 1)); - ef_ge_s : RETURN(make_uniform_product_space(the_logicals, 1)); - ef_le_s : RETURN(make_uniform_product_space(the_logicals, 1)); - ef_subsequence_s : RETURN(make_uniform_product_space(the_strings, 1)); - ef_concat_s : RETURN(make_uniform_product_space(the_strings, 1)); - ef_size_s : RETURN(make_uniform_product_space(the_integers, 1)); - ef_format : RETURN(make_uniform_product_space(the_strings, 1)); - ef_value : RETURN(make_uniform_product_space(the_reals, 1)); - ef_like : RETURN(make_uniform_product_space(the_booleans, 1)); - ef_if_s : RETURN(make_uniform_product_space(the_strings, 1)); - ef_subscript_b : RETURN(make_uniform_product_space(the_binarys, 1)); - ef_eq_b : RETURN(make_uniform_product_space(the_logicals, 1)); - ef_ne_b : RETURN(make_uniform_product_space(the_logicals, 1)); - ef_gt_b : RETURN(make_uniform_product_space(the_logicals, 1)); - ef_lt_b : RETURN(make_uniform_product_space(the_logicals, 1)); - ef_ge_b : RETURN(make_uniform_product_space(the_logicals, 1)); - ef_le_b : RETURN(make_uniform_product_space(the_logicals, 1)); - ef_subsequence_b : RETURN(make_uniform_product_space(the_binarys, 1)); - ef_concat_b : RETURN(make_uniform_product_space(the_binarys, 1)); - ef_size_b : RETURN(make_uniform_product_space(the_integers, 1)); - ef_if_b : RETURN(make_uniform_product_space(the_binarys, 1)); - ef_subscript_t : RETURN(make_uniform_product_space(the_generics, 1)); - ef_eq_t : RETURN(make_uniform_product_space(the_logicals, 1)); - ef_ne_t : RETURN(make_uniform_product_space(the_logicals, 1)); - ef_concat_t : RETURN(make_uniform_product_space(the_tuples, 1)); - ef_size_t : RETURN(make_uniform_product_space(the_integers, 1)); - ef_entuple : RETURN(make_uniform_product_space(the_tuples, 1)); - ef_detuple : RETURN(the_tuples); - ef_insert : RETURN(make_uniform_product_space(the_tuples, 1)); - ef_remove : RETURN(make_uniform_product_space(the_tuples, 1)); - ef_if_t : RETURN(make_uniform_product_space(the_tuples, 1)); - ef_sum_it : RETURN(make_uniform_product_space(the_integers, 1)); - ef_product_it : RETURN(make_uniform_product_space(the_integers, 1)); - ef_add_it : RETURN(make_uniform_product_space(the_integer_tuples, 1)); - ef_subtract_it : RETURN(make_uniform_product_space(the_integer_tuples, 1)); - ef_scalar_mult_it : RETURN(make_uniform_product_space(the_integer_tuples, 1)); - ef_dot_prod_it : RETURN(make_uniform_product_space(the_integers, 1)); - ef_sum_rt : RETURN(make_uniform_product_space(the_reals, 1)); - ef_product_rt : RETURN(make_uniform_product_space(the_reals, 1)); - ef_add_rt : RETURN(make_uniform_product_space(the_real_tuples, 1)); - ef_subtract_rt : RETURN(make_uniform_product_space(the_real_tuples, 1)); - ef_scalar_mult_rt : RETURN(make_uniform_product_space(the_real_tuples, 1)); - ef_dot_prod_rt : RETURN(make_uniform_product_space(the_reals, 1)); - ef_norm_rt : RETURN(make_uniform_product_space(the_reals, 1)); - ef_sum_ct : RETURN(make_uniform_product_space(the_complex_numbers, 1)); - ef_product_ct : RETURN(make_uniform_product_space(the_complex_numbers, 1)); - ef_add_ct : RETURN(make_uniform_product_space(the_complex_tuples, 1)); - ef_subtract_ct : RETURN(make_uniform_product_space(the_complex_tuples, 1)); - ef_scalar_mult_ct : RETURN(make_uniform_product_space(the_complex_tuples, 1)); - ef_dot_prod_ct : RETURN(make_uniform_product_space(the_complex_numbers, 1)); - ef_norm_ct : RETURN(make_uniform_product_space(the_nonnegative_reals, 1)); - ef_if : RETURN(make_uniform_product_space(the_generics, 1)); - ef_ensemble : RETURN(make_uniform_product_space(the_maths_spaces, 1)); - ef_member_of : RETURN(make_uniform_product_space(the_logicals, 1)); - OTHERWISE: RETURN(?); - END_CASE; -END_FUNCTION; - -FUNCTION derive_finite_function_domain(pairs : SET [1 : ?] OF LIST [2 : 2] OF maths_value) : tuple_space; -LOCAL - result : SET OF maths_value := []; -END_LOCAL; - result := result + list_selected_components(pairs, 1); - RETURN(one_tuples_of(make_finite_space(result))); -END_FUNCTION; - -FUNCTION derive_finite_function_range(pairs : SET [1 : ?] OF LIST [2 : 2] OF maths_value) : tuple_space; -LOCAL - result : SET OF maths_value := []; -END_LOCAL; - result := result + list_selected_components(pairs, 2); - RETURN(one_tuples_of(make_finite_space(result))); -END_FUNCTION; - -FUNCTION derive_function_domain(func : maths_function) : tuple_space; -LOCAL - typenames : SET OF STRING := stripped_typeof(func); - tspace : tuple_space := make_listed_product_space([]); - shape : LIST OF positive_integer; - sidxs : LIST OF INTEGER := [0]; - itvl : finite_integer_interval; - factors : LIST OF finite_integer_interval := []; - is_uniform : BOOLEAN := true; -END_LOCAL; - IF 'FINITE_FUNCTION' IN typenames - THEN - RETURN(derive_finite_function_domain(func\finite_function.pairs)); - END_IF; - IF 'CONSTANT_FUNCTION' IN typenames - THEN - RETURN(domain_from(func\constant_function.source_of_domain)); - END_IF; - IF 'SELECTOR_FUNCTION' IN typenames - THEN - RETURN(domain_from(func\selector_function.source_of_domain)); - END_IF; - IF 'ELEMENTARY_FUNCTION' IN typenames - THEN - RETURN(derive_elementary_function_domain(func\elementary_function.func_id)); - END_IF; - IF 'RESTRICTION_FUNCTION' IN typenames - THEN - RETURN(one_tuples_of(func\restriction_function.operand)); - END_IF; - IF 'REPACKAGING_FUNCTION' IN typenames - THEN - IF func\repackaging_function.input_repack = ro_nochange - THEN - RETURN(func\repackaging_function.operand.domain); - END_IF; - IF func\repackaging_function.input_repack = ro_wrap_as_tuple - THEN - RETURN(factor1(func\repackaging_function.operand.domain)); - END_IF; - IF func\repackaging_function.input_repack = ro_unwrap_tuple - THEN - RETURN(one_tuples_of(func\repackaging_function.operand.domain)); - END_IF; - RETURN(?); - END_IF; - IF 'REINDEXED_ARRAY_FUNCTION' IN typenames - THEN - shape := shape_of_array(func\unary_generic_expression.operand); - sidxs := func\reindexed_array_function.starting_indices; - REPEAT i := 1 TO SIZEOF(shape); - itvl := make_finite_integer_interval(sidxs[i], sidxs[i] + shape[i] - 1); - INSERT(factors, itvl, i - 1); - IF shape[i] <> shape[1] - THEN - is_uniform := false; - END_IF; - END_REPEAT; - IF is_uniform - THEN - RETURN(make_uniform_product_space(factors[1], SIZEOF(shape))); - END_IF; - RETURN(make_listed_product_space(factors)); - END_IF; - IF 'SERIES_COMPOSED_FUNCTION' IN typenames - THEN - RETURN(func\series_composed_function.operands[1].domain); - END_IF; - IF 'PARALLEL_COMPOSED_FUNCTION' IN typenames - THEN - RETURN(domain_from(func\parallel_composed_function.source_of_domain)); - END_IF; - IF 'EXPLICIT_TABLE_FUNCTION' IN typenames - THEN - shape := func\explicit_table_function.shape; - sidxs[1] := func\explicit_table_function.index_base; - REPEAT i := 1 TO SIZEOF(shape); - itvl := make_finite_integer_interval(sidxs[1], sidxs[1] + shape[i] - 1); - INSERT(factors, itvl, i - 1); - IF shape[i] <> shape[1] - THEN - is_uniform := false; - END_IF; - END_REPEAT; - IF is_uniform - THEN - RETURN(make_uniform_product_space(factors[1], SIZEOF(shape))); - END_IF; - RETURN(make_listed_product_space(factors)); - END_IF; - IF 'HOMOGENEOUS_LINEAR_FUNCTION' IN typenames - THEN - RETURN(one_tuples_of(make_uniform_product_space(factor1(func\homogeneous_linear_function.mat.range), - func\homogeneous_linear_function.mat\explicit_table_function.shape[func\homogeneous_linear_function.sum_index]))); - END_IF; - IF 'GENERAL_LINEAR_FUNCTION' IN typenames - THEN - RETURN(one_tuples_of(make_uniform_product_space(factor1(func\general_linear_function.mat.range), - func\general_linear_function.mat\explicit_table_function.shape[func\general_linear_function.sum_index] - - 1))); - END_IF; - IF 'B_SPLINE_BASIS' IN typenames - THEN - RETURN(one_tuples_of(make_finite_real_interval(func\b_spline_basis.repeated_knots[func\b_spline_basis.order], - closed, - func\b_spline_basis.repeated_knots[func\b_spline_basis.num_basis + - 1], - closed))); - END_IF; - IF 'B_SPLINE_FUNCTION' IN typenames - THEN - REPEAT i := 1 TO SIZEOF(func\b_spline_function.basis); - tspace := assoc_product_space(tspace, func\b_spline_function.basis[i].domain); - END_REPEAT; - RETURN(one_tuples_of(tspace)); - END_IF; - IF 'RATIONALIZE_FUNCTION' IN typenames - THEN - RETURN(func\rationalize_function.fun.domain); - END_IF; - IF 'PARTIAL_DERIVATIVE_FUNCTION' IN typenames - THEN - RETURN(func\partial_derivative_function.derivand.domain); - END_IF; - IF 'DEFINITE_INTEGRAL_FUNCTION' IN typenames - THEN - RETURN(derive_definite_integral_domain(func)); - END_IF; - IF 'ABSTRACTED_EXPRESSION_FUNCTION' IN typenames - THEN - REPEAT i := 1 TO SIZEOF(func\abstracted_expression_function.variables); - tspace := assoc_product_space(tspace, - one_tuples_of(values_space_of(func\abstracted_expression_function.variables[i]))); - END_REPEAT; - RETURN(tspace); - END_IF; - IF 'EXPRESSION_DENOTED_FUNCTION' IN typenames - THEN - RETURN(values_space_of(func\expression_denoted_function.expr)\function_space.domain_argument); - END_IF; - IF 'IMPORTED_POINT_FUNCTION' IN typenames - THEN - RETURN(one_tuples_of(make_listed_product_space([]))); - END_IF; - IF 'IMPORTED_CURVE_FUNCTION' IN typenames - THEN - RETURN(func\imported_curve_function.parametric_domain); - END_IF; - IF 'IMPORTED_SURFACE_FUNCTION' IN typenames - THEN - RETURN(func\imported_surface_function.parametric_domain); - END_IF; - IF 'IMPORTED_VOLUME_FUNCTION' IN typenames - THEN - RETURN(func\imported_volume_function.parametric_domain); - END_IF; - IF 'APPLICATION_DEFINED_FUNCTION' IN typenames - THEN - RETURN(func\application_defined_function.explicit_domain); - END_IF; - RETURN(?); -END_FUNCTION; - -FUNCTION derive_function_range(func : maths_function) : tuple_space; -LOCAL - typenames : SET OF STRING := stripped_typeof(func); - tspace : tuple_space := make_listed_product_space([]); - m : nonnegative_integer := 0; - n : nonnegative_integer := 0; - temp : INTEGER := 0; -END_LOCAL; - IF 'FINITE_FUNCTION' IN typenames - THEN - RETURN(derive_finite_function_range(func\finite_function.pairs)); - END_IF; - IF 'CONSTANT_FUNCTION' IN typenames - THEN - RETURN(one_tuples_of(make_finite_space([func\constant_function.sole_output]))); - END_IF; - IF 'SELECTOR_FUNCTION' IN typenames - THEN - tspace := func.domain; - IF (space_dimension(tspace) = 1) AND ((schema_prefix + 'TUPLE_SPACE') IN TYPEOF(tspace)) - THEN - tspace := factor1(tspace); - END_IF; - RETURN(one_tuples_of(factor_space(tspace, func\selector_function.selector))); - END_IF; - IF 'ELEMENTARY_FUNCTION' IN typenames - THEN - RETURN(derive_elementary_function_range(func\elementary_function.func_id)); - END_IF; - IF 'RESTRICTION_FUNCTION' IN typenames - THEN - RETURN(one_tuples_of(func\restriction_function.operand)); - END_IF; - IF 'REPACKAGING_FUNCTION' IN typenames - THEN - tspace := func\repackaging_function.operand.range; - IF func\repackaging_function.output_repack = ro_wrap_as_tuple - THEN - tspace := one_tuples_of(tspace); - END_IF; - IF func\repackaging_function.output_repack = ro_unwrap_tuple - THEN - tspace := factor1(tspace); - END_IF; - IF func\repackaging_function.selected_output > 0 - THEN - tspace := one_tuples_of(factor_space(tspace, func\repackaging_function.selected_output)); - END_IF; - RETURN(tspace); - END_IF; - IF 'REINDEXED_ARRAY_FUNCTION' IN typenames - THEN - RETURN(func\unary_generic_expression.operand\maths_function.range); - END_IF; - IF 'SERIES_COMPOSED_FUNCTION' IN typenames - THEN - RETURN(func\series_composed_function.operands[SIZEOF(func\series_composed_function.operands)].range); - END_IF; - IF 'PARALLEL_COMPOSED_FUNCTION' IN typenames - THEN - RETURN(func\parallel_composed_function.final_function.range); - END_IF; - IF 'EXPLICIT_TABLE_FUNCTION' IN typenames - THEN - IF 'LISTED_REAL_DATA' IN typenames - THEN - RETURN(one_tuples_of(the_reals)); - END_IF; - IF 'LISTED_INTEGER_DATA' IN typenames - THEN - RETURN(one_tuples_of(the_integers)); - END_IF; - IF 'LISTED_LOGICAL_DATA' IN typenames - THEN - RETURN(one_tuples_of(the_logicals)); - END_IF; - IF 'LISTED_STRING_DATA' IN typenames - THEN - RETURN(one_tuples_of(the_strings)); - END_IF; - IF 'LISTED_COMPLEX_NUMBER_DATA' IN typenames - THEN - RETURN(one_tuples_of(the_complex_numbers)); - END_IF; - IF 'LISTED_DATA' IN typenames - THEN - RETURN(one_tuples_of(func\listed_data.value_range)); - END_IF; - IF 'EXTERNALLY_LISTED_DATA' IN typenames - THEN - RETURN(one_tuples_of(func\externally_listed_data.value_range)); - END_IF; - IF 'LINEARIZED_TABLE_FUNCTION' IN typenames - THEN - RETURN(func\linearized_table_function.source.range); - END_IF; - IF 'BASIC_SPARSE_MATRIX' IN typenames - THEN - RETURN(func\basic_sparse_matrix.val.range); - END_IF; - RETURN(?); - END_IF; - IF 'HOMOGENEOUS_LINEAR_FUNCTION' IN typenames - THEN - RETURN(one_tuples_of(make_uniform_product_space(factor1(func\homogeneous_linear_function.mat.range), - func\homogeneous_linear_function.mat\explicit_table_function.shape[3 - - func\homogeneous_linear_function.sum_index]))); - END_IF; - IF 'GENERAL_LINEAR_FUNCTION' IN typenames - THEN - RETURN(one_tuples_of(make_uniform_product_space(factor1(func\general_linear_function.mat.range), - func\general_linear_function.mat\explicit_table_function.shape[3 - - func\general_linear_function.sum_index]))); - END_IF; - IF 'B_SPLINE_BASIS' IN typenames - THEN - RETURN(one_tuples_of(make_uniform_product_space(the_reals, func\b_spline_basis.num_basis))); - END_IF; - IF 'B_SPLINE_FUNCTION' IN typenames - THEN - tspace := factor1(func\b_spline_function.coef.domain); - m := SIZEOF(func\b_spline_function.basis); - n := space_dimension(tspace); - IF m = n - THEN - RETURN(one_tuples_of(the_reals)); - END_IF; - IF m = n - 1 - THEN - RETURN(one_tuples_of(make_uniform_product_space(the_reals, - factor_space(tspace, n)\finite_integer_interval.size))); - END_IF; - tspace := extract_factors(tspace, m + 1, n); - RETURN(one_tuples_of(make_function_space(sc_equal, tspace, sc_subspace, - number_superspace_of(func\b_spline_function.coef.range)))); - END_IF; - IF 'RATIONALIZE_FUNCTION' IN typenames - THEN - tspace := factor1(func\rationalize_function.fun.range); - n := space_dimension(tspace); - RETURN(one_tuples_of(make_uniform_product_space(number_superspace_of(factor1(tspace)), n - 1))); - END_IF; - IF 'PARTIAL_DERIVATIVE_FUNCTION' IN typenames - THEN - RETURN(drop_numeric_constraints(func\partial_derivative_function.derivand.range)); - END_IF; - IF 'DEFINITE_INTEGRAL_FUNCTION' IN typenames - THEN - RETURN(drop_numeric_constraints(func\definite_integral_function.integrand.range)); - END_IF; - IF 'ABSTRACTED_EXPRESSION_FUNCTION' IN typenames - THEN - RETURN(one_tuples_of(values_space_of(func\abstracted_expression_function.expr))); - END_IF; - IF 'EXPRESSION_DENOTED_FUNCTION' IN typenames - THEN - RETURN(values_space_of(func\expression_denoted_function.expr)\function_space.range_argument); - END_IF; - IF 'IMPORTED_POINT_FUNCTION' IN typenames - THEN - temp := dimension_of(func\imported_point_function.geometry); - RETURN(one_tuples_of(make_uniform_product_space(the_reals, temp))); - END_IF; - IF 'IMPORTED_CURVE_FUNCTION' IN typenames - THEN - temp := dimension_of(func\imported_curve_function.geometry); - RETURN(one_tuples_of(make_uniform_product_space(the_reals, temp))); - END_IF; - IF 'IMPORTED_SURFACE_FUNCTION' IN typenames - THEN - temp := dimension_of(func\imported_surface_function.geometry); - RETURN(one_tuples_of(make_uniform_product_space(the_reals, temp))); - END_IF; - IF 'IMPORTED_VOLUME_FUNCTION' IN typenames - THEN - temp := dimension_of(func\imported_volume_function.geometry); - RETURN(one_tuples_of(make_uniform_product_space(the_reals, temp))); - END_IF; - IF 'APPLICATION_DEFINED_FUNCTION' IN typenames - THEN - RETURN(func\application_defined_function.explicit_range); - END_IF; - RETURN(?); -END_FUNCTION; - -FUNCTION dimension_of(item : geometric_representation_item) : dimension_count; -LOCAL - x : SET OF representation; - y : representation_context; - dim : dimension_count; -END_LOCAL; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CARTESIAN_POINT' IN TYPEOF(item) - THEN - dim := SIZEOF(item\cartesian_point.coordinates); - RETURN(dim); - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIRECTION' IN TYPEOF(item) - THEN - dim := SIZEOF(item\direction.direction_ratios); - RETURN(dim); - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VECTOR' IN TYPEOF(item) - THEN - dim := SIZEOF(item\vector.orientation\direction.direction_ratios); - RETURN(dim); - END_IF; - x := using_representations(item); - IF (SIZEOF(x) > 0) - THEN - y := x[1].context_of_items; - dim := y\geometric_representation_context.coordinate_space_dimension; - RETURN(dim); - ELSE - RETURN(?); - END_IF; -END_FUNCTION; - -FUNCTION dimensions_for_si_unit(n : si_unit_name) : dimensional_exponents; - CASE n OF - metre : RETURN(dimensional_exponents(1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0)); - gram : RETURN(dimensional_exponents(0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0)); - second : RETURN(dimensional_exponents(0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0)); - ampere : RETURN(dimensional_exponents(0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0)); - kelvin : RETURN(dimensional_exponents(0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0)); - mole : RETURN(dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0)); - candela : RETURN(dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0)); - radian : RETURN(dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0)); - steradian : RETURN(dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0)); - hertz : RETURN(dimensional_exponents(0.0, 0.0, -1.0, 0.0, 0.0, 0.0, 0.0)); - newton : RETURN(dimensional_exponents(1.0, 1.0, -2.0, 0.0, 0.0, 0.0, 0.0)); - pascal : RETURN(dimensional_exponents(-1.0, 1.0, -2.0, 0.0, 0.0, 0.0, 0.0)); - joule : RETURN(dimensional_exponents(2.0, 1.0, -2.0, 0.0, 0.0, 0.0, 0.0)); - watt : RETURN(dimensional_exponents(2.0, 1.0, -3.0, 0.0, 0.0, 0.0, 0.0)); - coulomb : RETURN(dimensional_exponents(0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0)); - volt : RETURN(dimensional_exponents(2.0, 1.0, -3.0, -1.0, 0.0, 0.0, 0.0)); - farad : RETURN(dimensional_exponents(-2.0, -1.0, 4.0, 2.0, 0.0, 0.0, 0.0)); - ohm : RETURN(dimensional_exponents(2.0, 1.0, -3.0, -2.0, 0.0, 0.0, 0.0)); - siemens : RETURN(dimensional_exponents(-2.0, -1.0, 3.0, 2.0, 0.0, 0.0, 0.0)); - weber : RETURN(dimensional_exponents(2.0, 1.0, -2.0, -1.0, 0.0, 0.0, 0.0)); - tesla : RETURN(dimensional_exponents(0.0, 1.0, -2.0, -1.0, 0.0, 0.0, 0.0)); - henry : RETURN(dimensional_exponents(2.0, 1.0, -2.0, -2.0, 0.0, 0.0, 0.0)); - degree_celsius : RETURN(dimensional_exponents(0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0)); - lumen : RETURN(dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0)); - lux : RETURN(dimensional_exponents(-2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0)); - becquerel : RETURN(dimensional_exponents(0.0, 0.0, -1.0, 0.0, 0.0, 0.0, 0.0)); - gray : RETURN(dimensional_exponents(2.0, 0.0, -2.0, 0.0, 0.0, 0.0, 0.0)); - sievert : RETURN(dimensional_exponents(2.0, 0.0, -2.0, 0.0, 0.0, 0.0, 0.0)); - OTHERWISE: RETURN(?); - END_CASE; -END_FUNCTION; - -FUNCTION domain_from(ref : maths_space_or_function) : tuple_space; -LOCAL - typenames : SET OF STRING := stripped_typeof(ref); - func : maths_function; -END_LOCAL; - IF NOT EXISTS(ref) - THEN - RETURN(?); - END_IF; - IF 'TUPLE_SPACE' IN typenames - THEN - RETURN(ref); - END_IF; - IF 'MATHS_SPACE' IN typenames - THEN - RETURN(one_tuples_of(ref)); - END_IF; - func := ref; - IF 'CONSTANT_FUNCTION' IN typenames - THEN - RETURN(domain_from(func\constant_function.source_of_domain)); - END_IF; - IF 'SELECTOR_FUNCTION' IN typenames - THEN - RETURN(domain_from(func\selector_function.source_of_domain)); - END_IF; - IF 'PARALLEL_COMPOSED_FUNCTION' IN typenames - THEN - RETURN(domain_from(func\parallel_composed_function.source_of_domain)); - END_IF; - RETURN(func.domain); -END_FUNCTION; - -FUNCTION dot_count(str : STRING) : INTEGER; -LOCAL - n : INTEGER := 0; -END_LOCAL; - REPEAT i := 1 TO LENGTH(str); - IF str[i] = '.' - THEN - n := n + 1; - END_IF; - END_REPEAT; - RETURN(n); -END_FUNCTION; - -FUNCTION dot_product(arg1 : direction; - arg2 : direction) : REAL; -LOCAL - scalar : REAL; - vec1 : direction; - vec2 : direction; - ndim : INTEGER; -END_LOCAL; - IF NOT EXISTS(arg1) OR NOT EXISTS(arg2) - THEN - scalar := ?; - ELSE - IF (arg1.dim <> arg2.dim) - THEN - scalar := ?; - ELSE - BEGIN - vec1 := normalise(arg1); - vec2 := normalise(arg2); - ndim := arg1.dim; - scalar := 0.0; - REPEAT i := 1 TO ndim; - scalar := scalar + vec1.direction_ratios[i] * vec2.direction_ratios[i]; - END_REPEAT; - END; - END_IF; - END_IF; - RETURN(scalar); -END_FUNCTION; - -FUNCTION dotted_identifiers_syntax(str : STRING) : BOOLEAN; -LOCAL - k : positive_integer; - m : positive_integer; -END_LOCAL; - IF NOT EXISTS(str) - THEN - RETURN(false); - END_IF; - k := parse_express_identifier(str, 1); - IF k = 1 - THEN - RETURN(false); - END_IF; - REPEAT WHILE k <= LENGTH(str); - IF (str[k] <> '.') OR (k = LENGTH(str)) - THEN - RETURN(false); - END_IF; - m := parse_express_identifier(str, k + 1); - IF m = k + 1 - THEN - RETURN(false); - END_IF; - k := m; - END_REPEAT; - RETURN(true); -END_FUNCTION; - -FUNCTION drop_numeric_constraints(spc : maths_space) : maths_space; -LOCAL - typenames : SET OF STRING := stripped_typeof(spc); - tspc : listed_product_space; - factors : LIST OF maths_space := []; - xspc : extended_tuple_space; -END_LOCAL; - IF 'UNIFORM_PRODUCT_SPACE' IN typenames - THEN - RETURN(make_uniform_product_space(drop_numeric_constraints(spc\uniform_product_space.base), - spc\uniform_product_space.exponent)); - END_IF; - IF 'LISTED_PRODUCT_SPACE' IN typenames - THEN - tspc := spc; - REPEAT i := 1 TO SIZEOF(tspc.factors); - INSERT(factors, drop_numeric_constraints(tspc.factors[i]), i - 1); - END_REPEAT; - RETURN(make_listed_product_space(factors)); - END_IF; - IF 'EXTENDED_TUPLE_SPACE' IN typenames - THEN - xspc := spc; - RETURN(make_extended_tuple_space(drop_numeric_constraints(xspc.base), drop_numeric_constraints(xspc.extender))); - END_IF; - IF subspace_of_es(spc, es_numbers) - THEN - RETURN(number_superspace_of(spc)); - END_IF; - RETURN(spc); -END_FUNCTION; - -FUNCTION duration_is_negative(duration : time_measure_with_unit) : BOOLEAN; - IF (duration\measure_with_unit.value_component < 0.0) - THEN - RETURN(true); - ELSE - RETURN(false); - END_IF; -END_FUNCTION; - -FUNCTION duration_is_positive(duration : time_measure_with_unit) : BOOLEAN; - IF (duration\measure_with_unit.value_component > 0.0) - THEN - RETURN(true); - ELSE - RETURN(false); - END_IF; -END_FUNCTION; - -FUNCTION edge_reversed(an_edge : edge) : oriented_edge; -LOCAL - the_reverse : oriented_edge; -END_LOCAL; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORIENTED_EDGE' IN TYPEOF(an_edge)) - THEN - the_reverse := dummy_tri || edge(an_edge.edge_end, an_edge.edge_start) || - oriented_edge(an_edge\oriented_edge.edge_element, NOT (an_edge\oriented_edge.orientation)); - ELSE - the_reverse := dummy_tri || edge(an_edge.edge_end, an_edge.edge_start) || oriented_edge(an_edge, false); - END_IF; - RETURN(the_reverse); -END_FUNCTION; - -FUNCTION enclose_cregion_in_pregion(crgn : cartesian_complex_number_region; - centre : complex_number_literal) : polar_complex_number_region; --- Find equivalent direction in range -PI < a <= PI. -FUNCTION angle(a : REAL) : REAL; - REPEAT WHILE a > PI; - a := a - 2.0 * PI; - END_REPEAT; - REPEAT WHILE a <= -PI; - a := a + 2.0 * PI; - END_REPEAT; - RETURN(a); -END_FUNCTION; -FUNCTION strictly_in(z : REAL; - zitv : real_interval) : LOGICAL; - RETURN((NOT min_exists(zitv) OR (z > real_min(zitv))) AND (NOT max_exists(zitv) OR (z < real_max(zitv)))); -END_FUNCTION; -PROCEDURE angle_minmax(ab : REAL; a : REAL; a_in : BOOLEAN; VAR amin : REAL; VAR amax : REAL; VAR amin_in : BOOLEAN; - VAR amax_in : BOOLEAN); - a := angle(a - ab); - IF amin = a - THEN - amin_in := amin_in OR a_in; - END_IF; - IF amin > a - THEN - amin := a; - amin_in := a_in; - END_IF; - IF amax = a - THEN - amax_in := amax_in OR a_in; - END_IF; - IF amax < a - THEN - amax := a; - amax_in := a_in; - END_IF; -END_PROCEDURE; -PROCEDURE range_max(r : REAL; incl : BOOLEAN; VAR rmax : REAL; VAR rmax_in : BOOLEAN); - IF rmax = r - THEN - rmax_in := rmax_in OR incl; - END_IF; - IF rmax < r - THEN - rmax := r; - rmax_in := incl; - END_IF; -END_PROCEDURE; -PROCEDURE range_min(r : REAL; incl : BOOLEAN; VAR rmin : REAL; VAR rmin_in : BOOLEAN); - IF rmin = r - THEN - rmin_in := rmin_in OR incl; - END_IF; - IF (rmin < 0.0) OR (rmin > r) - THEN - rmin := r; - rmin_in := incl; - END_IF; -END_PROCEDURE; -LOCAL - xitv : real_interval; - yitv : real_interval; - is_xmin : BOOLEAN; - is_xmax : BOOLEAN; - is_ymin : BOOLEAN; - is_ymax : BOOLEAN; - xmin : REAL := 0.0; - xmax : REAL := 0.0; - ymin : REAL := 0.0; - ymax : REAL := 0.0; - xc : REAL := 0.0; - yc : REAL := 0.0; - xmin_in : BOOLEAN := false; - xmax_in : BOOLEAN := false; - ymin_in : BOOLEAN := false; - ymax_in : BOOLEAN := false; - rmin : REAL := -1.0; - rmax : REAL := -1.0; - amin : REAL := 4.0; - amax : REAL := -4.0; - rmax_exists : BOOLEAN := true; - outside : BOOLEAN := true; - rmin_in : BOOLEAN := false; - rmax_in : BOOLEAN := false; - amin_in : BOOLEAN := false; - amax_in : BOOLEAN := false; - ab : REAL := 0.0; - a : REAL := 0.0; - r : REAL := 0.0; - incl : BOOLEAN; - ritv : real_interval; - aitv : finite_real_interval; - minclo : open_closed := open; - maxclo : open_closed := open; -END_LOCAL; - IF NOT EXISTS(crgn) OR NOT EXISTS(centre) - THEN - RETURN(?); - END_IF; - xitv := crgn.real_constraint; - yitv := crgn.imag_constraint; - xc := centre.real_part; - yc := centre.imag_part; - is_xmin := min_exists(xitv); - is_xmax := max_exists(xitv); - is_ymin := min_exists(yitv); - is_ymax := max_exists(yitv); - IF is_xmin - THEN - xmin := real_min(xitv); - xmin_in := min_included(xitv); - END_IF; - IF is_xmax - THEN - xmax := real_max(xitv); - xmax_in := max_included(xitv); - END_IF; - IF is_ymin - THEN - ymin := real_min(yitv); - ymin_in := min_included(yitv); - END_IF; - IF is_ymax - THEN - ymax := real_max(yitv); - ymax_in := max_included(yitv); - END_IF; - rmax_exists := is_xmin AND is_xmax AND is_ymin AND is_ymax; - IF is_xmin AND (xc <= xmin) - THEN - ab := 0.0; - ELSE - IF is_ymin AND (yc <= ymin) - THEN - ab := 0.5 * PI; - ELSE - IF is_ymax AND (yc >= ymax) - THEN - ab := -0.5 * PI; - ELSE - IF is_xmax AND (xc >= xmax) - THEN - ab := PI; - ELSE - outside := false; - END_IF; - END_IF; - END_IF; - END_IF; - IF NOT outside AND NOT rmax_exists - THEN - RETURN(?); - END_IF; - IF is_xmin AND (xc <= xmin) AND strictly_in(yc, yitv) - THEN - rmin := xmin - xc; - rmin_in := xmin_in; - ELSE - IF is_ymin AND (yc <= ymin) AND strictly_in(xc, xitv) - THEN - rmin := ymin - yc; - rmin_in := ymin_in; - ELSE - IF is_ymax AND (yc >= ymax) AND strictly_in(xc, xitv) - THEN - rmin := yc - ymax; - rmin_in := ymax_in; - ELSE - IF is_xmax AND (xc >= xmax) AND strictly_in(yc, yitv) - THEN - rmin := xc - xmax; - rmin_in := xmax_in; - END_IF; - END_IF; - END_IF; - END_IF; - IF is_xmin - THEN - IF is_ymin - THEN - r := SQRT((xmin - xc) ** 2 + (ymin - yc) ** 2); - incl := xmin_in AND ymin_in; - IF rmax_exists - THEN - range_max(r, incl, rmax, rmax_in); - END_IF; - IF outside - THEN - IF r > 0.0 - THEN - range_min(r, incl, rmin, rmin_in); - a := angle(atan2(ymin - yc, xmin - xc) - ab); - IF xc = xmin - THEN - incl := xmin_in; - END_IF; - IF yc = ymin - THEN - incl := ymin_in; - END_IF; - angle_minmax(ab, a, incl, amin, amax, amin_in, amax_in); - ELSE - rmin := 0.0; - rmin_in := xmin_in AND ymin_in; - amin := angle(0.0 - ab); - amin_in := ymin_in; - amax := angle(0.5 * PI - ab); - amax_in := xmin_in; - END_IF; - END_IF; - ELSE - IF xc <= xmin - THEN - angle_minmax(ab, -0.5 * PI, (xc = xmin) AND xmin_in, amin, amax, amin_in, amax_in); - END_IF; - END_IF; - IF NOT is_ymax AND (xc <= xmin) - THEN - angle_minmax(ab, 0.5 * PI, (xc = xmin) AND xmin_in, amin, amax, amin_in, amax_in); - END_IF; - END_IF; - IF is_ymin - THEN - IF is_xmax - THEN - r := SQRT((xmax - xc) ** 2 + (ymin - yc) ** 2); - incl := xmax_in AND ymin_in; - IF rmax_exists - THEN - range_max(r, incl, rmax, rmax_in); - END_IF; - IF outside - THEN - IF r > 0.0 - THEN - range_min(r, incl, rmin, rmin_in); - a := angle(atan2(ymin - yc, xmax - xc) - ab); - IF xc = xmax - THEN - incl := xmax_in; - END_IF; - IF yc = ymin - THEN - incl := ymin_in; - END_IF; - angle_minmax(ab, a, incl, amin, amax, amin_in, amax_in); - ELSE - rmin := 0.0; - rmin_in := xmax_in AND ymin_in; - amin := angle(0.5 * PI - ab); - amin_in := ymin_in; - amax := angle(PI - ab); - amax_in := xmax_in; - END_IF; - END_IF; - ELSE - IF yc <= ymin - THEN - angle_minmax(ab, 0.0, (yc = ymin) AND ymin_in, amin, amax, amin_in, amax_in); - END_IF; - END_IF; - IF NOT is_xmin AND (yc <= ymin) - THEN - angle_minmax(ab, PI, (yc = ymin) AND ymin_in, amin, amax, amin_in, amax_in); - END_IF; - END_IF; - IF is_xmax - THEN - IF is_ymax - THEN - r := SQRT((xmax - xc) ** 2 + (ymax - yc) ** 2); - incl := xmax_in AND ymax_in; - IF rmax_exists - THEN - range_max(r, incl, rmax, rmax_in); - END_IF; - IF outside - THEN - IF r > 0.0 - THEN - range_min(r, incl, rmin, rmin_in); - a := angle(atan2(ymax - yc, xmax - xc) - ab); - IF xc = xmax - THEN - incl := xmax_in; - END_IF; - IF yc = ymax - THEN - incl := ymax_in; - END_IF; - angle_minmax(ab, a, incl, amin, amax, amin_in, amax_in); - ELSE - rmin := 0.0; - rmin_in := xmax_in AND ymax_in; - amin := angle(-PI - ab); - amin_in := ymax_in; - amax := angle(-0.5 * PI - ab); - amax_in := xmax_in; - END_IF; - END_IF; - ELSE - IF xc >= xmax - THEN - angle_minmax(ab, 0.5 * PI, (xc = xmax) AND xmax_in, amin, amax, amin_in, amax_in); - END_IF; - END_IF; - IF NOT is_ymin AND (xc >= xmax) - THEN - angle_minmax(ab, -0.5 * PI, (xc = xmax) AND xmax_in, amin, amax, amin_in, amax_in); - END_IF; - END_IF; - IF is_ymax - THEN - IF is_xmin - THEN - r := SQRT((xmin - xc) ** 2 + (ymax - yc) ** 2); - incl := xmin_in AND ymax_in; - IF rmax_exists - THEN - range_max(r, incl, rmax, rmax_in); - END_IF; - IF outside - THEN - IF r > 0.0 - THEN - range_min(r, incl, rmin, rmin_in); - a := angle(atan2(ymax - yc, xmin - xc) - ab); - IF xc = xmin - THEN - incl := xmin_in; - END_IF; - IF yc = ymax - THEN - incl := ymax_in; - END_IF; - angle_minmax(ab, a, incl, amin, amax, amin_in, amax_in); - ELSE - rmin := 0.0; - rmin_in := xmin_in AND ymax_in; - amin := angle(0.5 * PI - ab); - amin_in := ymax_in; - amax := angle(PI - ab); - amax_in := xmin_in; - END_IF; - END_IF; - ELSE - IF yc >= ymax - THEN - angle_minmax(ab, PI, (yc = ymax) AND ymax_in, amin, amax, amin_in, amax_in); - END_IF; - END_IF; - IF NOT is_xmax AND (yc >= ymax) - THEN - angle_minmax(ab, 0.0, (yc = ymax) AND ymax_in, amin, amax, amin_in, amax_in); - END_IF; - END_IF; - IF outside - THEN - amin := angle(amin + ab); - IF amin = PI - THEN - amin := -PI; - END_IF; - amax := angle(amax + ab); - IF amax <= amin - THEN - amax := amax + 2.0 * PI; - END_IF; - ELSE - amin := -PI; - amin_in := false; - amax := PI; - amax_in := false; - END_IF; - IF amin_in - THEN - minclo := closed; - END_IF; - IF amax_in - THEN - maxclo := closed; - END_IF; - aitv := make_finite_real_interval(amin, minclo, amax, maxclo); - minclo := open; - IF rmin_in - THEN - minclo := closed; - END_IF; - IF rmax_exists - THEN - maxclo := open; - IF rmax_in - THEN - maxclo := closed; - END_IF; - ritv := make_finite_real_interval(rmin, minclo, rmax, maxclo); - ELSE - ritv := make_real_interval_from_min(rmin, minclo); - END_IF; - RETURN(make_polar_complex_number_region(centre, ritv, aitv)); -END_FUNCTION; - -FUNCTION enclose_pregion_in_cregion(prgn : polar_complex_number_region) : cartesian_complex_number_region; -PROCEDURE nearest_good_direction(acart : REAL; aitv : finite_real_interval; VAR a : REAL; VAR a_in : BOOLEAN); - a := acart; - a_in := true; - IF a < aitv.min - THEN - IF a + 2.0 * PI < aitv.max - THEN - RETURN; - END_IF; - IF a + 2.0 * PI = aitv.max - THEN - a_in := max_included(aitv); - RETURN; - END_IF; - ELSE - IF a = aitv.min - THEN - a_in := min_included(aitv); - RETURN; - ELSE - IF a < aitv.max - THEN - RETURN; - ELSE - IF a = aitv.max - THEN - a_in := max_included(aitv); - RETURN; - END_IF; - END_IF; - END_IF; - END_IF; - IF COS(acart - aitv.max) >= COS(acart - aitv.min) - THEN - a := aitv.max; - a_in := max_included(aitv); - ELSE - a := aitv.min; - a_in := min_included(aitv); - END_IF; -END_PROCEDURE; -LOCAL - xc : REAL := 0.0; - yc : REAL := 0.0; - xmin : REAL := 0.0; - xmax : REAL := 0.0; - ymin : REAL := 0.0; - ymax : REAL := 0.0; - ritv : real_interval; - xitv : real_interval; - yitv : real_interval; - aitv : finite_real_interval; - xmin_exists : BOOLEAN; - xmax_exists : BOOLEAN; - ymin_exists : BOOLEAN; - ymax_exists : BOOLEAN; - xmin_in : BOOLEAN := false; - xmax_in : BOOLEAN := false; - ymin_in : BOOLEAN := false; - ymax_in : BOOLEAN := false; - a : REAL := 0.0; - r : REAL := 0.0; - a_in : BOOLEAN := false; - min_clo : open_closed := open; - max_clo : open_closed := open; -END_LOCAL; - IF NOT EXISTS(prgn) - THEN - RETURN(?); - END_IF; - xc := prgn.centre.real_part; - yc := prgn.centre.imag_part; - ritv := prgn.distance_constraint; - aitv := prgn.direction_constraint; - nearest_good_direction(PI, aitv, a, a_in); - IF COS(a) >= 0.0 - THEN - xmin_exists := true; - xmin := xc + real_min(ritv) * COS(a); - xmin_in := a_in AND (min_included(ritv) OR (COS(a) = 0.0)); - ELSE - IF max_exists(ritv) - THEN - xmin_exists := true; - xmin := xc + real_max(ritv) * COS(a); - xmin_in := a_in AND max_included(ritv); - ELSE - xmin_exists := false; - END_IF; - END_IF; - nearest_good_direction(0.0, aitv, a, a_in); - IF COS(a) <= 0.0 - THEN - xmax_exists := true; - xmax := xc + real_min(ritv) * COS(a); - xmax_in := a_in AND (min_included(ritv) OR (COS(a) = 0.0)); - ELSE - IF max_exists(ritv) - THEN - xmax_exists := true; - xmax := xc + real_max(ritv) * COS(a); - xmax_in := a_in AND max_included(ritv); - ELSE - xmax_exists := false; - END_IF; - END_IF; - nearest_good_direction(-0.5 * PI, aitv, a, a_in); - IF SIN(a) >= 0.0 - THEN - ymin_exists := true; - ymin := yc + real_min(ritv) * SIN(a); - ymin_in := a_in AND (min_included(ritv) OR (SIN(a) = 0.0)); - ELSE - IF max_exists(ritv) - THEN - ymin_exists := true; - ymin := yc + real_max(ritv) * SIN(a); - ymin_in := a_in AND max_included(ritv); - ELSE - ymin_exists := false; - END_IF; - END_IF; - nearest_good_direction(0.5 * PI, aitv, a, a_in); - IF SIN(a) <= 0.0 - THEN - ymax_exists := true; - ymax := yc + real_min(ritv) * SIN(a); - ymax_in := a_in AND (min_included(ritv) OR (SIN(a) = 0.0)); - ELSE - IF max_exists(ritv) - THEN - ymax_exists := true; - ymax := yc + real_max(ritv) * SIN(a); - ymax_in := a_in AND max_included(ritv); - ELSE - ymax_exists := false; - END_IF; - END_IF; - IF NOT (xmin_exists OR xmax_exists OR ymin_exists OR ymax_exists) - THEN - RETURN(?); - END_IF; - IF xmin_exists - THEN - IF xmin_in - THEN - min_clo := closed; - ELSE - min_clo := open; - END_IF; - IF xmax_exists - THEN - IF xmax_in - THEN - max_clo := closed; - ELSE - max_clo := open; - END_IF; - xitv := make_finite_real_interval(xmin, min_clo, xmax, max_clo); - ELSE - xitv := make_real_interval_from_min(xmin, min_clo); - END_IF; - ELSE - IF xmax_exists - THEN - IF xmax_in - THEN - max_clo := closed; - ELSE - max_clo := open; - END_IF; - xitv := make_real_interval_to_max(xmax, max_clo); - ELSE - xitv := the_reals; - END_IF; - END_IF; - IF ymin_exists - THEN - IF ymin_in - THEN - min_clo := closed; - ELSE - min_clo := open; - END_IF; - IF ymax_exists - THEN - IF ymax_in - THEN - max_clo := closed; - ELSE - max_clo := open; - END_IF; - yitv := make_finite_real_interval(ymin, min_clo, ymax, max_clo); - ELSE - yitv := make_real_interval_from_min(ymin, min_clo); - END_IF; - ELSE - IF ymax_exists - THEN - IF ymax_in - THEN - max_clo := closed; - ELSE - max_clo := open; - END_IF; - yitv := make_real_interval_to_max(ymax, max_clo); - ELSE - yitv := the_reals; - END_IF; - END_IF; - RETURN(make_cartesian_complex_number_region(xitv, yitv)); -END_FUNCTION; - -FUNCTION enclose_pregion_in_pregion(prgn : polar_complex_number_region; - centre : complex_number_literal) : polar_complex_number_region; --- Find equivalent direction in range -PI < a <= PI. -FUNCTION angle(a : REAL) : REAL; - REPEAT WHILE a > PI; - a := a - 2.0 * PI; - END_REPEAT; - REPEAT WHILE a <= -PI; - a := a + 2.0 * PI; - END_REPEAT; - RETURN(a); -END_FUNCTION; -PROCEDURE angle_range(VAR amin : REAL; VAR amax : REAL); - amin := angle(amin); - IF amin = PI - THEN - amin := -PI; - END_IF; - amax := angle(amax); - IF amax <= amin - THEN - amax := amax + 2.0 * PI; - END_IF; -END_PROCEDURE; -FUNCTION strictly_in(a : REAL; - aitv : finite_real_interval) : LOGICAL; - a := angle(a); - RETURN({aitv.min < a < aitv.max} OR {aitv.min < a + 2.0 * PI < aitv.max}); -END_FUNCTION; -PROCEDURE find_aminmax(ab : REAL; a0 : REAL; a1 : REAL; a2 : REAL; a3 : REAL; in0 : BOOLEAN; in1 : BOOLEAN; - in2 : BOOLEAN; in3 : BOOLEAN; VAR amin : REAL; VAR amax : REAL; VAR amin_in : BOOLEAN; - VAR amax_in : BOOLEAN); - LOCAL - a : REAL; - END_LOCAL; - amin := angle(a0 - ab); - amin_in := in0; - amax := amin; - amax_in := in0; - a := angle(a1 - ab); - IF a = amin - THEN - amin_in := amin_in OR in1; - END_IF; - IF a < amin - THEN - amin := a; - amin_in := in1; - END_IF; - IF a = amax - THEN - amax_in := amax_in OR in1; - END_IF; - IF a > amax - THEN - amax := a; - amax_in := in1; - END_IF; - a := angle(a2 - ab); - IF a = amin - THEN - amin_in := amin_in OR in2; - END_IF; - IF a < amin - THEN - amin := a; - amin_in := in2; - END_IF; - IF a = amax - THEN - amax_in := amax_in OR in2; - END_IF; - IF a > amax - THEN - amax := a; - amax_in := in2; - END_IF; - a := angle(a3 - ab); - IF a = amin - THEN - amin_in := amin_in OR in3; - END_IF; - IF a < amin - THEN - amin := a; - amin_in := in3; - END_IF; - IF a = amax - THEN - amax_in := amax_in OR in3; - END_IF; - IF a > amax - THEN - amax := a; - amax_in := in3; - END_IF; - amin := amin + ab; - amax := amax + ab; - angle_range(amin, amax); -END_PROCEDURE; -LOCAL - ritp : real_interval; - ritv : real_interval; - aitp : finite_real_interval; - aitv : finite_real_interval; - xp : REAL := 0.0; - yp : REAL := 0.0; - xc : REAL := 0.0; - yc : REAL := 0.0; - rmax : REAL := 0.0; - rmin : REAL := 0.0; - amin : REAL := 0.0; - amax : REAL := 0.0; - rc : REAL := 0.0; - acp : REAL := 0.0; - apc : REAL := 0.0; - rmax_in : BOOLEAN := false; - rmin_in : BOOLEAN := false; - amin_in : BOOLEAN := false; - amax_in : BOOLEAN := false; - rmxp : REAL := 0.0; - rmnp : REAL := 0.0; - x : REAL := 0.0; - y : REAL := 0.0; - r : REAL := 0.0; - a : REAL := 0.0; - ab : REAL := 0.0; - r0 : REAL := 0.0; - a0 : REAL := 0.0; - r1 : REAL := 0.0; - a1 : REAL := 0.0; - r2 : REAL := 0.0; - a2 : REAL := 0.0; - r3 : REAL := 0.0; - a3 : REAL := 0.0; - in0 : BOOLEAN := false; - in1 : BOOLEAN := false; - in2 : BOOLEAN := false; - in3 : BOOLEAN := false; - inn : BOOLEAN := false; - minclo : open_closed := open; - maxclo : open_closed := open; -END_LOCAL; - IF NOT EXISTS(prgn) OR NOT EXISTS(centre) - THEN - RETURN(?); - END_IF; - xp := prgn.centre.real_part; - yp := prgn.centre.imag_part; - ritp := prgn.distance_constraint; - aitp := prgn.direction_constraint; - xc := centre.real_part; - yc := centre.imag_part; - IF (xc = xp) AND (yc = yp) - THEN - RETURN(prgn); - END_IF; - rc := SQRT((xp - xc) ** 2 + (yp - yc) ** 2); - acp := atan2(yp - yc, xp - xc); - apc := atan2(yc - yp, xc - xp); - rmnp := real_min(ritp); - IF max_exists(ritp) - THEN - rmxp := real_max(ritp); - IF aitp.max - aitp.min = 2.0 * PI - THEN - inn := NOT max_included(aitp); - a := angle(aitp.min); - rmax := rc + rmxp; - rmax_in := max_included(ritp); - IF inn AND (acp = a) - THEN - rmax_in := false; - END_IF; - IF rc > rmxp - THEN - a0 := ASIN(rmxp / rc); - amin := angle(acp - a0); - amin_in := max_included(ritp); - IF amin = PI - THEN - amin := -PI; - END_IF; - amax := angle(acp + a0); - amax_in := amin_in; - IF amax < amin - THEN - amax := amax + 2.0 * PI; - END_IF; - rmin := rc - rmxp; - rmin_in := amin_in; - IF inn - THEN - IF apc = a - THEN - rmin_in := false; - END_IF; - IF angle(amin + 0.5 * PI) = a - THEN - amin_in := false; - END_IF; - IF angle(amax - 0.5 * PI) = a - THEN - amax_in := false; - END_IF; - END_IF; - ELSE - IF rc = rmxp - THEN - amin := angle(acp - 0.5 * PI); - amin_in := false; - IF amin = PI - THEN - amin := -PI; - END_IF; - amax := angle(acp + 0.5 * PI); - amax_in := false; - IF amax < amin - THEN - amax := amax + 2.0 * PI; - END_IF; - rmin := 0.0; - rmin_in := max_included(ritp); - IF inn AND (apc = a) - THEN - rmin_in := false; - END_IF; - ELSE - IF rc > rmnp - THEN - IF inn AND (apc = a) - THEN - rmin := 0.0; - rmin_in := false; - amin := aitp.min; - amin_in := false; - amax := aitp.max; - amax_in := false; - ELSE - rmin := 0.0; - rmin_in := true; - amin := -PI; - amin_in := false; - amax := PI; - amax_in := true; - END_IF; - ELSE - rmin := rmnp - rc; - rmin_in := min_included(ritp); - amin := -PI; - amin_in := false; - amax := PI; - amax_in := true; - IF inn - THEN - IF apc = a - THEN - rmin_in := false; - amin := aitp.min; - amin_in := false; - amax := aitp.max; - amax_in := false; - ELSE - IF acp = a - THEN - amin := aitp.min; - amin_in := false; - amax := aitp.max; - amax_in := false; - END_IF; - END_IF; - END_IF; - END_IF; - END_IF; - END_IF; - ELSE - x := xp + rmxp * COS(aitp.min) - xc; - y := yp + rmxp * SIN(aitp.min) - yc; - r0 := SQRT(x ** 2 + y ** 2); - in0 := max_included(ritp) AND min_included(aitp); - IF r0 <> 0.0 - THEN - a0 := atan2(y, x); - END_IF; - x := xp + rmxp * COS(aitp.max) - xc; - y := yp + rmxp * SIN(aitp.max) - yc; - r1 := SQRT(x ** 2 + y ** 2); - in1 := max_included(ritp) AND max_included(aitp); - IF r1 <> 0.0 - THEN - a1 := atan2(y, x); - END_IF; - x := xp + rmnp * COS(aitp.max) - xc; - y := yp + rmnp * SIN(aitp.max) - yc; - r2 := SQRT(x ** 2 + y ** 2); - in2 := min_included(ritp) AND max_included(aitp); - IF r2 <> 0.0 - THEN - a2 := atan2(y, x); - ELSE - a2 := a1; - in2 := in1; - END_IF; - IF r1 = 0.0 - THEN - a1 := a2; - in1 := in2; - END_IF; - x := xp + rmnp * COS(aitp.min) - xc; - y := yp + rmnp * SIN(aitp.min) - yc; - r3 := SQRT(x ** 2 + y ** 2); - in3 := min_included(ritp) AND min_included(aitp); - IF r3 <> 0.0 - THEN - a3 := atan2(y, x); - ELSE - a3 := a0; - in3 := in0; - END_IF; - IF r0 = 0.0 - THEN - a0 := a3; - in0 := in3; - END_IF; - IF rmnp = 0.0 - THEN - in2 := min_included(ritp); - in3 := in2; - END_IF; - IF (apc = angle(aitp.min)) OR (acp = angle(aitp.min)) - THEN - in0 := min_included(aitp); - in3 := in0; - ELSE - IF (apc = angle(aitp.max)) OR (acp = angle(aitp.max)) - THEN - in1 := max_included(aitp); - in2 := in1; - END_IF; - END_IF; - IF strictly_in(acp, aitp) - THEN - rmax := rc + rmxp; - rmax_in := max_included(ritp); - ELSE - rmax := r0; - rmax_in := in0; - IF rmax = r1 - THEN - rmax_in := rmax_in OR in1; - END_IF; - IF rmax < r1 - THEN - rmax := r1; - rmax_in := in1; - END_IF; - IF rmax = r2 - THEN - rmax_in := rmax_in OR in2; - END_IF; - IF rmax < r2 - THEN - rmax := r2; - rmax_in := in2; - END_IF; - IF rmax = r3 - THEN - rmax_in := rmax_in OR in3; - END_IF; - IF rmax < r3 - THEN - rmax := r3; - rmax_in := in3; - END_IF; - END_IF; - IF strictly_in(apc, aitp) - THEN - IF rc >= rmxp - THEN - rmin := rc - rmxp; - rmin_in := max_included(ritp); - ELSE - IF rc <= rmnp - THEN - rmin := rmnp - rc; - rmin_in := min_included(ritp); - ELSE - rmin := 0.0; - rmin_in := true; - END_IF; - END_IF; - ELSE - rmin := r0; - rmin_in := in0; - a := apc - aitp.min; - r := rc * COS(a); - IF {rmnp < r < rmxp} - THEN - rmin := rc * SIN(ABS(a)); - rmin_in := min_included(aitp); - END_IF; - a := apc - aitp.max; - r := rc * COS(a); - IF {rmnp < r < rmxp} - THEN - r := rc * SIN(ABS(a)); - inn := max_included(aitp); - IF r = rmin - THEN - rmin_in := rmin_in OR inn; - END_IF; - IF r < rmin - THEN - rmin := r; - rmin_in := inn; - END_IF; - END_IF; - IF r1 = rmin - THEN - rmin_in := rmin_in OR in1; - END_IF; - IF r1 < rmin - THEN - rmin := r1; - rmin_in := in1; - END_IF; - IF r2 = rmin - THEN - rmin_in := rmin_in OR in2; - END_IF; - IF r2 < rmin - THEN - rmin := r2; - rmin_in := in2; - END_IF; - IF r3 = rmin - THEN - rmin_in := rmin_in OR in3; - END_IF; - IF r3 < rmin - THEN - rmin := r3; - rmin_in := in3; - END_IF; - END_IF; - IF rc >= rmxp - THEN - ab := acp; - find_aminmax(ab, a0, a1, a2, a3, in0, in1, in2, in3, amin, amax, amin_in, amax_in); - a := ACOS(rmxp / rc); - IF strictly_in(apc - a, aitp) - THEN - amin := ab - ASIN(rmxp / rc); - amin_in := max_included(ritp); - END_IF; - IF strictly_in(apc + a, aitp) - THEN - amax := ab + ASIN(rmxp / rc); - amax_in := max_included(ritp); - END_IF; - angle_range(amin, amax); - ELSE - IF rc > rmnp - THEN - ab := angle(0.5 * (aitp.min + aitp.max)); - find_aminmax(ab, a0, a1, a2, a3, in0, in1, in2, in3, amin, amax, amin_in, amax_in); - ELSE - ab := angle(0.5 * (aitp.min + aitp.max)); - a0 := angle(a0 - ab); - a1 := angle(a1 - ab); - a2 := angle(a2 - ab); - a3 := angle(a3 - ab); - IF a3 > a2 - THEN - a2 := a2 + 2.0 * PI; - END_IF; - IF a0 > a1 - THEN - a0 := a0 + 2.0 * PI; - END_IF; - IF a3 < a0 - THEN - amin := a3; - amin_in := in3; - ELSE - amin := a0; - amin_in := in0; - END_IF; - IF a2 > a1 - THEN - amax := a2; - amax_in := in2; - ELSE - amax := a1; - amax_in := in1; - END_IF; - IF (amax - amin > 2.0 * PI) OR ((amax - amin = 2.0 * PI) AND (amin_in OR amax_in)) - THEN - amin := -PI; - amin_in := false; - amax := PI; - amax_in := true; - ELSE - amin := amin + ab; - amax := amax + ab; - angle_range(amin, amax); - END_IF; - END_IF; - END_IF; - END_IF; - IF rmin_in - THEN - minclo := closed; - END_IF; - IF rmax_in - THEN - maxclo := closed; - END_IF; - ritv := make_finite_real_interval(rmin, minclo, rmax, maxclo); - ELSE - IF (rc > rmnp) AND strictly_in(apc, aitp) - THEN - RETURN(?); - END_IF; - IF aitp.max - aitp.min = 2.0 * PI - THEN - a := angle(aitp.min); - IF rc > rmnp - THEN - IF max_included(aitp) - THEN - RETURN(?); - END_IF; - rmin := 0.0; - rmin_in := false; - amin := aitp.min; - amin_in := false; - amax := aitp.max; - amax_in := false; - ELSE - rmin := rmnp - rc; - rmin_in := min_included(ritp); - amin := -PI; - amin_in := false; - amax := PI; - amax_in := true; - IF NOT max_included(aitp) - THEN - IF apc = a - THEN - rmin_in := false; - amin := aitp.min; - amin_in := false; - amax := aitp.max; - amax_in := false; - ELSE - IF acp = a - THEN - amin := aitp.min; - amin_in := false; - amax := aitp.max; - amax_in := false; - END_IF; - END_IF; - END_IF; - END_IF; - ELSE - a0 := angle(aitp.min); - in0 := false; - a1 := angle(aitp.max); - in1 := false; - x := xp + rmnp * COS(aitp.max) - xc; - y := yp + rmnp * SIN(aitp.max) - yc; - r2 := SQRT(x ** 2 + y ** 2); - in2 := min_included(ritp) AND max_included(aitp); - IF r2 <> 0.0 - THEN - a2 := atan2(y, x); - ELSE - a2 := a1; - in2 := in1; - END_IF; - x := xp + rmnp * COS(aitp.min) - xc; - y := yp + rmnp * SIN(aitp.min) - yc; - r3 := SQRT(x ** 2 + y ** 2); - in3 := min_included(ritp) AND min_included(aitp); - IF r3 <> 0.0 - THEN - a3 := atan2(y, x); - ELSE - a3 := a0; - in3 := in0; - END_IF; - IF rmnp = 0.0 - THEN - in2 := min_included(ritp); - in3 := in2; - END_IF; - IF (apc = angle(aitp.min)) OR (acp = angle(aitp.min)) - THEN - in0 := min_included(aitp); - in3 := in0; - ELSE - IF (apc = angle(aitp.max)) OR (acp = angle(aitp.max)) - THEN - in1 := max_included(aitp); - in2 := in1; - END_IF; - END_IF; - IF strictly_in(apc, aitp) - THEN - rmin := rmnp - rc; - rmin_in := min_included(ritp); - ELSE - rmin := r2; - rmin_in := in2; - a := apc - aitp.min; - r := rc * COS(a); - IF rmnp < r - THEN - rmin := rc * SIN(ABS(a)); - rmin_in := min_included(aitp); - END_IF; - a := apc - aitp.max; - r := rc * COS(a); - IF rmnp < r - THEN - r := rc * SIN(ABS(a)); - inn := max_included(aitp); - IF r = rmin - THEN - rmin_in := rmin_in OR inn; - END_IF; - IF r < rmin - THEN - rmin := r; - rmin_in := inn; - END_IF; - END_IF; - IF r3 = rmin - THEN - rmin_in := rmin_in OR in3; - END_IF; - IF r3 < rmin - THEN - rmin := r3; - rmin_in := in3; - END_IF; - END_IF; - ab := angle(0.5 * (aitp.min + aitp.max)); - IF rc > rmnp - THEN - find_aminmax(ab, a0, a1, a2, a3, in0, in1, in2, in3, amin, amax, amin_in, amax_in); - ELSE - a0 := angle(a0 - ab); - a1 := angle(a1 - ab); - a2 := angle(a2 - ab); - a3 := angle(a3 - ab); - IF a3 > a2 - THEN - a2 := a2 + 2.0 * PI; - END_IF; - IF a0 > a1 - THEN - a0 := a0 + 2.0 * PI; - END_IF; - IF a3 < a0 - THEN - amin := a3; - amin_in := in3; - ELSE - amin := a0; - amin_in := in0; - END_IF; - IF a2 > a1 - THEN - amax := a2; - amax_in := in2; - ELSE - amax := a1; - amax_in := in1; - END_IF; - IF (amax - amin > 2.0 * PI) OR ((amax - amin = 2.0 * PI) AND (amin_in OR amax_in)) - THEN - amin := -PI; - amin_in := false; - amax := PI; - amax_in := true; - IF (rmin = 0.0) AND rmin_in - THEN - RETURN(?); - END_IF; - ELSE - amin := amin + ab; - amax := amax + ab; - angle_range(amin, amax); - END_IF; - END_IF; - END_IF; - IF rmin_in - THEN - minclo := closed; - END_IF; - ritv := make_real_interval_from_min(rmin, minclo); - END_IF; - minclo := open; - maxclo := open; - IF amin_in - THEN - minclo := closed; - END_IF; - IF amax_in - THEN - maxclo := closed; - END_IF; - aitv := make_finite_real_interval(amin, minclo, amax, maxclo); - RETURN(make_polar_complex_number_region(centre, ritv, aitv)); -END_FUNCTION; - -FUNCTION equal_cregion_pregion(crgn : cartesian_complex_number_region; - prgn : polar_complex_number_region) : LOGICAL; -LOCAL - arng : REAL; - amin : REAL; - xc : REAL; - yc : REAL; - aitv : real_interval; - xitv : real_interval; - yitv : real_interval; - c_in : BOOLEAN; -END_LOCAL; - IF NOT EXISTS(crgn) OR NOT EXISTS(prgn) - THEN - RETURN(false); - END_IF; - IF max_exists(prgn.distance_constraint) - THEN - RETURN(false); - END_IF; - IF real_min(prgn.distance_constraint) <> 0.0 - THEN - RETURN(false); - END_IF; - c_in := min_included(prgn.distance_constraint); - aitv := prgn.direction_constraint; - amin := aitv.min; - arng := aitv.max - amin; - xc := prgn.centre.real_part; - yc := prgn.centre.imag_part; - xitv := crgn.real_constraint; - yitv := crgn.imag_constraint; - IF arng = 0.5 * PI - THEN - IF amin = 0.0 - THEN - RETURN(NOT max_exists(xitv) AND - NOT max_exists(yitv) AND min_exists(xitv) AND min_exists(yitv) AND (real_min(xitv) = xc) AND - (real_min(yitv) = yc) AND - ((c_in AND min_included(aitv) AND max_included(aitv) AND min_included(xitv) AND - min_included(yitv)) OR - (NOT c_in AND - NOT min_included(aitv) AND max_included(aitv) AND min_included(xitv) AND - NOT min_included(yitv)) OR - (NOT c_in AND min_included(aitv) AND - NOT max_included(aitv) AND NOT min_included(xitv) AND min_included(yitv)) OR - (NOT c_in AND - NOT min_included(aitv) AND - NOT max_included(aitv) AND NOT min_included(xitv) AND NOT min_included(yitv)))); - END_IF; - IF amin = 0.5 * PI - THEN - RETURN(max_exists(xitv) AND - NOT max_exists(yitv) AND - NOT min_exists(xitv) AND min_exists(yitv) AND (real_max(xitv) = xc) AND (real_min(yitv) = yc) AND - ((c_in AND min_included(aitv) AND max_included(aitv) AND max_included(xitv) AND - min_included(yitv)) OR - (NOT c_in AND - NOT min_included(aitv) AND max_included(aitv) AND max_included(xitv) AND - NOT min_included(yitv)) OR - (NOT c_in AND min_included(aitv) AND - NOT max_included(aitv) AND NOT max_included(xitv) AND min_included(yitv)) OR - (NOT c_in AND - NOT min_included(aitv) AND - NOT max_included(aitv) AND NOT max_included(xitv) AND NOT min_included(yitv)))); - END_IF; - IF amin = -PI - THEN - RETURN(max_exists(xitv) AND max_exists(yitv) AND - NOT min_exists(xitv) AND - NOT min_exists(yitv) AND (real_max(xitv) = xc) AND (real_max(yitv) = yc) AND - ((c_in AND min_included(aitv) AND max_included(aitv) AND max_included(xitv) AND - max_included(yitv)) OR - (NOT c_in AND - NOT min_included(aitv) AND max_included(aitv) AND max_included(xitv) AND - NOT max_included(yitv)) OR - (NOT c_in AND min_included(aitv) AND - NOT max_included(aitv) AND NOT max_included(xitv) AND max_included(yitv)) OR - (NOT c_in AND - NOT min_included(aitv) AND - NOT max_included(aitv) AND NOT max_included(xitv) AND NOT max_included(yitv)))); - END_IF; - IF amin = -0.5 * PI - THEN - RETURN(NOT max_exists(xitv) AND max_exists(yitv) AND min_exists(xitv) AND - NOT min_exists(yitv) AND (real_min(xitv) = xc) AND (real_max(yitv) = yc) AND - ((c_in AND min_included(aitv) AND max_included(aitv) AND min_included(xitv) AND - max_included(yitv)) OR - (NOT c_in AND - NOT min_included(aitv) AND max_included(aitv) AND min_included(xitv) AND - NOT max_included(yitv)) OR - (NOT c_in AND min_included(aitv) AND - NOT max_included(aitv) AND NOT min_included(xitv) AND max_included(yitv)) OR - (NOT c_in AND - NOT min_included(aitv) AND - NOT max_included(aitv) AND NOT min_included(xitv) AND NOT max_included(yitv)))); - END_IF; - END_IF; - IF arng = PI - THEN - IF amin = 0.0 - THEN - RETURN(NOT max_exists(xitv) AND - NOT max_exists(yitv) AND - NOT min_exists(xitv) AND min_exists(yitv) AND (real_min(yitv) = yc) AND - ((c_in AND min_included(aitv) AND max_included(aitv) AND min_included(yitv)) OR - (NOT c_in AND NOT min_included(aitv) AND NOT max_included(aitv) AND NOT min_included(yitv)))); - END_IF; - IF amin = 0.5 * PI - THEN - RETURN(max_exists(xitv) AND - NOT max_exists(yitv) AND - NOT min_exists(xitv) AND - NOT min_exists(yitv) AND (real_max(xitv) = xc) AND - ((c_in AND min_included(aitv) AND max_included(aitv) AND max_included(xitv)) OR - (NOT c_in AND NOT min_included(aitv) AND NOT max_included(aitv) AND NOT max_included(xitv)))); - END_IF; - IF amin = -PI - THEN - RETURN(NOT max_exists(xitv) AND max_exists(yitv) AND - NOT min_exists(xitv) AND - NOT min_exists(yitv) AND (real_max(yitv) = yc) AND - ((c_in AND min_included(aitv) AND max_included(aitv) AND max_included(yitv)) OR - (NOT c_in AND NOT min_included(aitv) AND NOT max_included(aitv) AND NOT max_included(yitv)))); - END_IF; - IF amin = -0.5 * PI - THEN - RETURN(NOT max_exists(xitv) AND - NOT max_exists(yitv) AND min_exists(xitv) AND - NOT min_exists(yitv) AND (real_min(xitv) = xc) AND - ((c_in AND min_included(aitv) AND max_included(aitv) AND min_included(xitv)) OR - (NOT c_in AND NOT min_included(aitv) AND NOT max_included(aitv) AND NOT min_included(xitv)))); - END_IF; - END_IF; - RETURN(false); -END_FUNCTION; - -FUNCTION equal_maths_functions(fun1 : maths_function; - fun2 : maths_function) : LOGICAL; -LOCAL - cum : LOGICAL; -END_LOCAL; - IF fun1 = fun2 - THEN - RETURN(true); - END_IF; - cum := equal_maths_spaces(fun1.domain, fun2.domain); - IF cum = false - THEN - RETURN(false); - END_IF; - cum := cum AND equal_maths_spaces(fun1.range, fun2.range); - IF cum = false - THEN - RETURN(false); - END_IF; - RETURN(unknown); -END_FUNCTION; - -FUNCTION equal_maths_spaces(spc1 : maths_space; - spc2 : maths_space) : LOGICAL; -LOCAL - spc1types : SET OF STRING := stripped_typeof(spc1); - spc2types : SET OF STRING := stripped_typeof(spc2); - set1 : SET OF maths_value; - set2 : SET OF maths_value; - cum : LOGICAL := true; - base : maths_space; - expnt : INTEGER; - factors : LIST OF maths_space; - factors2 : LIST OF maths_space; - fs1 : function_space; - fs2 : function_space; - cum2 : LOGICAL; -END_LOCAL; - IF spc1 = spc2 - THEN - RETURN(true); - END_IF; - IF 'FINITE_SPACE' IN spc1types - THEN - set1 := spc1\finite_space.members; - IF 'FINITE_SPACE' IN spc2types - THEN - set2 := spc2\finite_space.members; - REPEAT i := 1 TO SIZEOF(set1); - cum := cum AND member_of(set1[i], spc2); - IF cum = false - THEN - RETURN(false); - END_IF; - END_REPEAT; - IF cum = true - THEN - REPEAT i := 1 TO SIZEOF(set2); - cum := cum AND member_of(set2[i], spc1); - IF cum = false - THEN - RETURN(false); - END_IF; - END_REPEAT; - END_IF; - RETURN(cum); - END_IF; - IF 'FINITE_INTEGER_INTERVAL' IN spc2types - THEN - set2 := []; - REPEAT i := spc2\finite_integer_interval.min TO spc2\finite_integer_interval.max; - set2 := set2 + [i]; - END_REPEAT; - RETURN(equal_maths_spaces(spc1, make_finite_space(set2))); - END_IF; - END_IF; - IF ('FINITE_INTEGER_INTERVAL' IN spc1types) AND ('FINITE_SPACE' IN spc2types) - THEN - set1 := []; - REPEAT i := spc1\finite_integer_interval.min TO spc1\finite_integer_interval.max; - set1 := set1 + [i]; - END_REPEAT; - RETURN(equal_maths_spaces(make_finite_space(set1), spc2)); - END_IF; - IF ('CARTESIAN_COMPLEX_NUMBER_REGION' IN spc1types) AND ('POLAR_COMPLEX_NUMBER_REGION' IN spc2types) - THEN - RETURN(equal_cregion_pregion(spc1, spc2)); - END_IF; - IF ('POLAR_COMPLEX_NUMBER_REGION' IN spc1types) AND ('CARTESIAN_COMPLEX_NUMBER_REGION' IN spc2types) - THEN - RETURN(equal_cregion_pregion(spc2, spc1)); - END_IF; - IF 'UNIFORM_PRODUCT_SPACE' IN spc1types - THEN - base := spc1\uniform_product_space.base; - expnt := spc1\uniform_product_space.exponent; - IF 'UNIFORM_PRODUCT_SPACE' IN spc2types - THEN - IF expnt <> spc2\uniform_product_space.exponent - THEN - RETURN(false); - END_IF; - RETURN(equal_maths_spaces(base, spc2\uniform_product_space.base)); - END_IF; - IF 'LISTED_PRODUCT_SPACE' IN spc2types - THEN - factors := spc2\listed_product_space.factors; - IF expnt <> SIZEOF(factors) - THEN - RETURN(false); - END_IF; - REPEAT i := 1 TO SIZEOF(factors); - cum := cum AND equal_maths_spaces(base, factors[i]); - IF cum = false - THEN - RETURN(false); - END_IF; - END_REPEAT; - RETURN(cum); - END_IF; - END_IF; - IF 'LISTED_PRODUCT_SPACE' IN spc1types - THEN - factors := spc1\listed_product_space.factors; - IF 'UNIFORM_PRODUCT_SPACE' IN spc2types - THEN - IF spc2\uniform_product_space.exponent <> SIZEOF(factors) - THEN - RETURN(false); - END_IF; - base := spc2\uniform_product_space.base; - REPEAT i := 1 TO SIZEOF(factors); - cum := cum AND equal_maths_spaces(base, factors[i]); - IF cum = false - THEN - RETURN(false); - END_IF; - END_REPEAT; - RETURN(cum); - END_IF; - IF 'LISTED_PRODUCT_SPACE' IN spc2types - THEN - factors2 := spc2\listed_product_space.factors; - IF SIZEOF(factors) <> SIZEOF(factors2) - THEN - RETURN(false); - END_IF; - REPEAT i := 1 TO SIZEOF(factors); - cum := cum AND equal_maths_spaces(factors[i], factors2[i]); - IF cum = false - THEN - RETURN(false); - END_IF; - END_REPEAT; - RETURN(cum); - END_IF; - END_IF; - IF ('EXTENDED_TUPLE_SPACE' IN spc1types) AND ('EXTENDED_TUPLE_SPACE' IN spc2types) - THEN - RETURN(equal_maths_spaces(spc1\extended_tuple_space.extender, spc2\extended_tuple_space.extender) AND - equal_maths_spaces(spc1\extended_tuple_space.base, spc2\extended_tuple_space.base)); - END_IF; - IF ('FUNCTION_SPACE' IN spc1types) AND ('FUNCTION_SPACE' IN spc2types) - THEN - fs1 := spc1; - fs2 := spc2; - IF fs1.domain_constraint <> fs2.domain_constraint - THEN - IF (fs1.domain_constraint = sc_equal) OR (fs2.domain_constraint = sc_equal) - THEN - RETURN(false); - END_IF; - IF (fs1.domain_constraint <> sc_subspace) - THEN - fs1 := spc2; - fs2 := spc1; - END_IF; - IF (fs1.domain_constraint <> sc_subspace) OR (fs2.domain_constraint <> sc_member) - THEN - RETURN(unknown); - END_IF; - IF any_space_satisfies(fs1.domain_constraint, fs1.domain_argument) <> - any_space_satisfies(fs2.domain_constraint, fs2.domain_argument) - THEN - RETURN(false); - END_IF; - IF NOT ('FINITE_SPACE' IN stripped_typeof(fs2.domain_argument)) - THEN - RETURN(false); - END_IF; - IF SIZEOF(['FINITE_SPACE','FINITE_INTEGER_INTERVAL'] * stripped_typeof(fs1.domain_argument)) = 0 - THEN - RETURN(false); - END_IF; - RETURN(unknown); - END_IF; - cum := equal_maths_spaces(fs1.domain_argument, fs2.domain_argument); - IF cum = false - THEN - RETURN(false); - END_IF; - IF fs1.range_constraint <> fs2.range_constraint - THEN - IF (fs1.range_constraint = sc_equal) OR (fs2.range_constraint = sc_equal) - THEN - RETURN(false); - END_IF; - IF (fs1.range_constraint <> sc_subspace) - THEN - fs1 := spc2; - fs2 := spc1; - END_IF; - IF (fs1.range_constraint <> sc_subspace) OR (fs2.range_constraint <> sc_member) - THEN - RETURN(unknown); - END_IF; - IF any_space_satisfies(fs1.range_constraint, fs1.range_argument) <> - any_space_satisfies(fs2.range_constraint, fs2.range_argument) - THEN - RETURN(false); - END_IF; - IF NOT ('FINITE_SPACE' IN stripped_typeof(fs2.range_argument)) - THEN - RETURN(false); - END_IF; - IF SIZEOF(['FINITE_SPACE','FINITE_INTEGER_INTERVAL'] * stripped_typeof(fs1.range_argument)) = 0 - THEN - RETURN(false); - END_IF; - RETURN(unknown); - END_IF; - cum := cum AND equal_maths_spaces(fs1.range_argument, fs2.range_argument); - RETURN(cum); - END_IF; - RETURN(false); -END_FUNCTION; - -FUNCTION equal_maths_values(val1 : maths_value; - val2 : maths_value) : LOGICAL; -FUNCTION mem_of_vs(val1 : maths_value; - val2 : maths_value) : LOGICAL; - IF NOT has_values_space(val2) - THEN - RETURN(unknown); - END_IF; - IF NOT member_of(val1, values_space_of(val2)) - THEN - RETURN(false); - END_IF; - RETURN(unknown); -END_FUNCTION; -LOCAL - types1 : SET OF STRING; - types2 : SET OF STRING; - list1 : LIST OF maths_value; - list2 : LIST OF maths_value; - cum : LOGICAL := true; -END_LOCAL; - IF NOT EXISTS(val1) OR NOT EXISTS(val2) - THEN - RETURN(false); - END_IF; - IF val1 = val2 - THEN - RETURN(true); - END_IF; - types1 := stripped_typeof(val1); - types2 := stripped_typeof(val2); - IF ('MATHS_ATOM' IN types1) OR ('COMPLEX_NUMBER_LITERAL' IN types1) - THEN - IF 'MATHS_ATOM' IN types2 - THEN - RETURN(false); - END_IF; - IF 'COMPLEX_NUMBER_LITERAL' IN types2 - THEN - RETURN(false); - END_IF; - IF 'LIST' IN types2 - THEN - RETURN(false); - END_IF; - IF 'MATHS_SPACE' IN types2 - THEN - RETURN(false); - END_IF; - IF 'MATHS_FUNCTION' IN types2 - THEN - RETURN(false); - END_IF; - IF 'GENERIC_EXPRESSION' IN types2 - THEN - RETURN(mem_of_vs(val1, val2)); - END_IF; - RETURN(unknown); - END_IF; - IF ('MATHS_ATOM' IN types2) OR ('COMPLEX_NUMBER_LITERAL' IN types2) - THEN - RETURN(equal_maths_values(val2, val1)); - END_IF; - IF 'LIST' IN types1 - THEN - IF 'LIST' IN types2 - THEN - list1 := val1; - list2 := val2; - IF SIZEOF(list1) <> SIZEOF(list2) - THEN - RETURN(false); - END_IF; - REPEAT i := 1 TO SIZEOF(list1); - cum := cum AND equal_maths_values(list1[i], list2[i]); - IF cum = false - THEN - RETURN(false); - END_IF; - END_REPEAT; - RETURN(cum); - END_IF; - IF 'MATHS_SPACE' IN types2 - THEN - RETURN(false); - END_IF; - IF 'MATHS_FUNCTION' IN types2 - THEN - RETURN(false); - END_IF; - IF 'GENERIC_EXPRESSION' IN types2 - THEN - RETURN(mem_of_vs(val1, val2)); - END_IF; - RETURN(unknown); - END_IF; - IF 'LIST' IN types2 - THEN - RETURN(equal_maths_values(val2, val1)); - END_IF; - IF 'MATHS_SPACE' IN types1 - THEN - IF 'MATHS_SPACE' IN types2 - THEN - RETURN(equal_maths_spaces(val1, val2)); - END_IF; - IF 'MATHS_FUNCTION' IN types2 - THEN - RETURN(false); - END_IF; - IF 'GENERIC_EXPRESSION' IN types2 - THEN - RETURN(mem_of_vs(val1, val2)); - END_IF; - RETURN(unknown); - END_IF; - IF 'MATHS_SPACE' IN types2 - THEN - RETURN(equal_maths_values(val2, val1)); - END_IF; - IF 'MATHS_FUNCTION' IN types1 - THEN - IF 'MATHS_FUNCTION' IN types2 - THEN - RETURN(equal_maths_functions(val1, val2)); - END_IF; - IF 'GENERIC_EXPRESSION' IN types2 - THEN - RETURN(mem_of_vs(val1, val2)); - END_IF; - RETURN(unknown); - END_IF; - IF 'MATHS_FUNCTION' IN types2 - THEN - RETURN(equal_maths_values(val2, val1)); - END_IF; - IF ('GENERIC_EXPRESSION' IN types1) AND ('GENERIC_EXPRESSION' IN types2) - THEN - IF NOT has_values_space(val1) OR NOT has_values_space(val2) - THEN - RETURN(unknown); - END_IF; - IF NOT compatible_spaces(values_space_of(val1), values_space_of(val2)) - THEN - RETURN(false); - END_IF; - END_IF; - RETURN(unknown); -END_FUNCTION; - -FUNCTION es_subspace_of_es(es1 : elementary_space_enumerators; - es2 : elementary_space_enumerators) : BOOLEAN; - IF NOT EXISTS(es1) OR NOT EXISTS(es2) - THEN - RETURN(false); - END_IF; - IF es1 = es2 - THEN - RETURN(true); - END_IF; - IF es2 = es_generics - THEN - RETURN(true); - END_IF; - IF (es1 = es_booleans) AND (es2 = es_logicals) - THEN - RETURN(true); - END_IF; - IF (es2 = es_numbers) AND ((es1 = es_complex_numbers) OR (es1 = es_reals) OR (es1 = es_integers)) - THEN - RETURN(true); - END_IF; - RETURN(false); -END_FUNCTION; - -FUNCTION expression_is_constant(expr : generic_expression) : BOOLEAN; - RETURN(bool(SIZEOF(free_variables_of(expr)) = 0)); -END_FUNCTION; - -FUNCTION external_version_assignment_is_valid(aia : applied_external_identification_assignment) : BOOLEAN; -LOCAL - item : external_identification_item; - role : identification_role; -END_LOCAL; - role := aia.role; - IF role.name = 'version' - THEN - REPEAT i := LOINDEX(aia\applied_external_identification_assignment.items) TO HIINDEX(aia\applied_external_identification_assignment.items); - item := aia\applied_external_identification_assignment.items[i]; - IF (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXTERNALLY_DEFINED_GENERAL_PROPERTY'] * - TYPEOF(item)) = - 0) - THEN - RETURN(false); - END_IF; - END_REPEAT; - RETURN(true); - ELSE - RETURN(true); - END_IF; -END_FUNCTION; - -FUNCTION extract_factors(tspace : tuple_space; - m : INTEGER; - n : INTEGER) : tuple_space; -LOCAL - tsp : tuple_space := the_zero_tuple_space; -END_LOCAL; - REPEAT i := m TO n; - tsp := assoc_product_space(tsp, factor_space(tspace, i)); - END_REPEAT; - RETURN(tsp); -END_FUNCTION; - -FUNCTION extremal_position_check(fun : linearized_table_function) : BOOLEAN; -LOCAL - source_domain : maths_space; - source_interval : finite_integer_interval; - index : INTEGER := 1; - base : INTEGER; - shape : LIST OF positive_integer; - ndim : positive_integer; - slo : INTEGER; - shi : INTEGER; - sublo : LIST OF INTEGER := []; - subhi : LIST OF INTEGER := []; -END_LOCAL; - IF NOT EXISTS(fun) - THEN - RETURN(false); - END_IF; - source_domain := factor1(fun.source.domain); - IF (schema_prefix + 'TUPLE_SPACE') IN TYPEOF(source_domain) - THEN - source_domain := factor1(source_domain); - END_IF; - IF NOT ((schema_prefix + 'FINITE_INTEGER_INTERVAL') IN TYPEOF(source_domain)) - THEN - RETURN(false); - END_IF; - source_interval := source_domain; - base := fun\explicit_table_function.index_base; - shape := fun\explicit_table_function.shape; - IF (schema_prefix + 'STANDARD_TABLE_FUNCTION') IN TYPEOF(fun) - THEN - REPEAT j := 1 TO SIZEOF(shape); - index := index * shape[j]; - END_REPEAT; - index := fun.first + index - 1; - RETURN(bool({source_interval.min <= index <= source_interval.max})); - END_IF; - IF (schema_prefix + 'REGULAR_TABLE_FUNCTION') IN TYPEOF(fun) - THEN - ndim := SIZEOF(fun\explicit_table_function.shape); - REPEAT j := 1 TO ndim; - slo := base; - shi := base + shape[j] - 1; - IF fun\regular_table_function.increments[j] >= 0 - THEN - INSERT(sublo, slo, j - 1); - INSERT(subhi, shi, j - 1); - ELSE - INSERT(sublo, shi, j - 1); - INSERT(subhi, slo, j - 1); - END_IF; - END_REPEAT; - index := regular_indexing(sublo, base, shape, fun\regular_table_function.increments, fun.first); - IF NOT ({source_interval.min <= index <= source_interval.max}) - THEN - RETURN(false); - END_IF; - index := regular_indexing(subhi, base, shape, fun\regular_table_function.increments, fun.first); - IF NOT ({source_interval.min <= index <= source_interval.max}) - THEN - RETURN(false); - END_IF; - RETURN(true); - END_IF; - RETURN(false); -END_FUNCTION; - -FUNCTION face_bound_reversed(a_face_bound : face_bound) : face_bound; -LOCAL - the_reverse : face_bound; -END_LOCAL; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_OUTER_BOUND' IN TYPEOF(a_face_bound)) - THEN - the_reverse := dummy_tri || face_bound(a_face_bound\face_bound.bound, NOT (a_face_bound\face_bound.orientation)) || - face_outer_bound(); - ELSE - the_reverse := dummy_tri || face_bound(a_face_bound.bound, NOT (a_face_bound.orientation)); - END_IF; - RETURN(the_reverse); -END_FUNCTION; - -FUNCTION face_reversed(a_face : face) : oriented_face; -LOCAL - the_reverse : oriented_face; -END_LOCAL; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORIENTED_FACE' IN TYPEOF(a_face)) - THEN - the_reverse := dummy_tri || face(set_of_topology_reversed(a_face.bounds)) || - oriented_face(a_face\oriented_face.face_element, NOT (a_face\oriented_face.orientation)); - ELSE - the_reverse := dummy_tri || face(set_of_topology_reversed(a_face.bounds)) || oriented_face(a_face, false); - END_IF; - RETURN(the_reverse); -END_FUNCTION; - -FUNCTION factor_space(tspace : tuple_space; - idx : positive_integer) : maths_space; -LOCAL - typenames : SET OF STRING := TYPEOF(tspace); -END_LOCAL; - IF (schema_prefix + 'UNIFORM_PRODUCT_SPACE') IN typenames - THEN - IF idx <= tspace\uniform_product_space.exponent - THEN - RETURN(tspace\uniform_product_space.base); - END_IF; - RETURN(?); - END_IF; - IF (schema_prefix + 'LISTED_PRODUCT_SPACE') IN typenames - THEN - IF idx <= SIZEOF(tspace\listed_product_space.factors) - THEN - RETURN(tspace\listed_product_space.factors[idx]); - END_IF; - RETURN(?); - END_IF; - IF (schema_prefix + 'EXTENDED_TUPLE_SPACE') IN typenames - THEN - IF idx <= space_dimension(tspace\extended_tuple_space.base) - THEN - RETURN(factor_space(tspace\extended_tuple_space.base, idx)); - END_IF; - RETURN(tspace\extended_tuple_space.extender); - END_IF; - RETURN(?); -END_FUNCTION; - -FUNCTION factor1(tspace : tuple_space) : maths_space; -LOCAL - typenames : SET OF STRING := TYPEOF(tspace); -END_LOCAL; - IF (schema_prefix + 'UNIFORM_PRODUCT_SPACE') IN typenames - THEN - RETURN(tspace\uniform_product_space.base); - END_IF; - IF (schema_prefix + 'LISTED_PRODUCT_SPACE') IN typenames - THEN - RETURN(tspace\listed_product_space.factors[1]); - END_IF; - IF (schema_prefix + 'EXTENDED_TUPLE_SPACE') IN typenames - THEN - RETURN(factor1(tspace\extended_tuple_space.base)); - END_IF; - RETURN(?); -END_FUNCTION; - -FUNCTION find_assembly_root(constituent : SET OF product_definition) : SET OF product_definition; -LOCAL - local_relation : SET OF assembly_component_usage := []; - local_relation2 : BAG OF assembly_component_usage := []; - local_parent : SET OF product_definition := []; - root : SET OF product_definition; - i : INTEGER := 0; - j : INTEGER := 0; -END_LOCAL; - IF ((SIZEOF(constituent) = 1) AND assembly_root(constituent[1])) - THEN - RETURN([constituent[1]]); - ELSE - IF (SIZEOF(constituent) = 0) - THEN - RETURN([]); - ELSE - REPEAT j := 1 TO HIINDEX(constituent); - local_relation2 := local_relation2 + - QUERY(pdr - <* USEDIN(constituent[j], - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ASSEMBLY_COMPONENT_USAGE' IN - TYPEOF(pdr)); - END_REPEAT; - local_relation := bag_to_set(local_relation2); - IF (SIZEOF(local_relation) = 0) - THEN - IF (SIZEOF(constituent) = 1) - THEN - RETURN([constituent[1]]); - ELSE - RETURN([]); - END_IF; - ELSE - REPEAT i := 1 TO HIINDEX(local_relation); - REPEAT j := 1 TO HIINDEX(constituent); - IF (local_relation[i].relating_product_definition <> constituent[j]) - THEN - local_parent := local_parent + local_relation[i].relating_product_definition; - END_IF; - END_REPEAT; - END_REPEAT; - IF ((SIZEOF(local_parent) = 1) AND assembly_root(local_parent[1])) - THEN - RETURN([local_parent[1]]); - ELSE - IF (SIZEOF(local_parent) = 0) - THEN - RETURN([]); - ELSE - root := find_assembly_root(local_parent); - IF (SIZEOF(root) = 1) - THEN - RETURN(root); - ELSE - IF (SIZEOF(root) = 0) - THEN - RETURN([]); - END_IF; - END_IF; - END_IF; - END_IF; - END_IF; - END_IF; - END_IF; - RETURN([]); -END_FUNCTION; - -FUNCTION find_representative_shape_representation_of_product_definition(item : product_definition) : shape_representation; -LOCAL - local_s_r : SET OF shape_representation := []; -END_LOCAL; - local_s_r := QUERY(z - <* find_shape_representation_of_product_definition(item) - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATIVE_SHAPE_REPRESENTATION' IN - TYPEOF(z)); - IF (SIZEOF(local_s_r) = 1) - THEN - RETURN(local_s_r[1]); - ELSE - RETURN(?); - END_IF; -END_FUNCTION; - -FUNCTION find_representative_shape_representation_of_shape_aspect(item : shape_aspect) : shape_representation; -LOCAL - local_s_r : SET OF shape_representation := []; -END_LOCAL; - local_s_r := QUERY(z - <* find_shape_representation_of_shape_aspect(item) - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATIVE_SHAPE_REPRESENTATION' IN - TYPEOF(z)); - IF (SIZEOF(local_s_r) = 1) - THEN - RETURN(local_s_r[1]); - ELSE - RETURN(?); - END_IF; -END_FUNCTION; - -FUNCTION find_shape_representation_of_product_definition(item : product_definition) : SET OF shape_representation; -LOCAL - local_p_d_s : SET OF product_definition_shape := []; - local_p_d_s2 : BAG OF product_definition_shape := []; - local_s_d_r : SET OF shape_definition_representation := []; - local_s_d_r2 : BAG OF shape_definition_representation := []; - local_s_r : SET OF shape_representation := []; - i : INTEGER; -END_LOCAL; - local_p_d_s2 := local_p_d_s2 + - QUERY(pd - <* USEDIN(item, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)); - local_p_d_s := bag_to_set(local_p_d_s2); - REPEAT i := 1 TO HIINDEX(local_p_d_s); - local_s_d_r2 := local_s_d_r2 + - QUERY(pdr - <* USEDIN(local_p_d_s[i], - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINITION_REPRESENTATION' IN - TYPEOF(pdr)); - END_REPEAT; - local_s_d_r := bag_to_set(local_s_d_r2); - REPEAT i := 1 TO HIINDEX(local_s_d_r); - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION' IN - TYPEOF(local_s_d_r[i].used_representation)) - THEN - local_s_r := local_s_r + local_s_d_r[i].used_representation; - END_IF; - END_REPEAT; - RETURN(local_s_r); -END_FUNCTION; - -FUNCTION find_shape_representation_of_shape_aspect(item : shape_aspect) : SET OF shape_representation; -LOCAL - local_p_d : SET OF property_definition := []; - local_s_d_r : SET OF shape_definition_representation := []; - local_s_d_r2 : BAG OF shape_definition_representation := []; - local_s_r : SET OF shape_representation := []; - i : INTEGER; -END_LOCAL; - local_p_d := bag_to_set(USEDIN(item, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION')); - REPEAT i := 1 TO HIINDEX(local_p_d); - local_s_d_r2 := local_s_d_r2 + - QUERY(pdr - <* USEDIN(local_p_d[i], - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINITION_REPRESENTATION' IN - TYPEOF(pdr)); - END_REPEAT; - local_s_d_r := bag_to_set(local_s_d_r2); - REPEAT i := 1 TO HIINDEX(local_s_d_r); - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION' IN - TYPEOF(local_s_d_r[i].used_representation)) - THEN - local_s_r := local_s_r + local_s_d_r[i].used_representation; - END_IF; - END_REPEAT; - RETURN(local_s_r); -END_FUNCTION; - -FUNCTION first_proj_axis(z_axis : direction; - arg : direction) : direction; -LOCAL - x_axis : direction; - v : direction; - z : direction; - x_vec : vector; -END_LOCAL; - IF (NOT EXISTS(z_axis)) - THEN - RETURN(?); - ELSE - z := normalise(z_axis); - IF NOT EXISTS(arg) - THEN - IF ((z.direction_ratios <> [1.0,0.0,0.0]) AND (z.direction_ratios <> [-1.0,0.0,0.0])) - THEN - v := dummy_gri || direction([1.0,0.0,0.0]); - ELSE - v := dummy_gri || direction([0.0,1.0,0.0]); - END_IF; - ELSE - IF (arg.dim <> 3) - THEN - RETURN(?); - END_IF; - IF ((cross_product(arg, z).magnitude) = 0.0) - THEN - RETURN(?); - ELSE - v := normalise(arg); - END_IF; - END_IF; - x_vec := scalar_times_vector(dot_product(v, z), z); - x_axis := vector_difference(v, x_vec).orientation; - x_axis := normalise(x_axis); - END_IF; - RETURN(x_axis); -END_FUNCTION; - -FUNCTION free_variables_of(expr : generic_expression) : SET OF generic_variable; -LOCAL - typenames : SET OF STRING := stripped_typeof(expr); - result : SET OF generic_variable := []; - exprs : LIST OF generic_expression := []; -END_LOCAL; - IF 'GENERIC_LITERAL' IN typenames - THEN - RETURN(result); - END_IF; - IF 'GENERIC_VARIABLE' IN typenames - THEN - result := result + expr; - RETURN(result); - END_IF; - IF 'QUANTIFIER_EXPRESSION' IN typenames - THEN - exprs := QUERY(ge - <* expr\multiple_arity_generic_expression.operands - | NOT (ge IN expr\quantifier_expression.variables)); - REPEAT i := 1 TO SIZEOF(exprs); - result := result + free_variables_of(exprs[i]); - END_REPEAT; - REPEAT i := 1 TO SIZEOF(expr\quantifier_expression.variables); - result := result - expr\quantifier_expression.variables[i]; - END_REPEAT; - RETURN(result); - END_IF; - IF 'UNARY_GENERIC_EXPRESSION' IN typenames - THEN - RETURN(free_variables_of(expr\unary_generic_expression.operand)); - END_IF; - IF 'BINARY_GENERIC_EXPRESSION' IN typenames - THEN - result := free_variables_of(expr\binary_generic_expression.operands[1]); - RETURN(result + free_variables_of(expr\binary_generic_expression.operands[2])); - END_IF; - IF 'MULTIPLE_ARITY_GENERIC_EXPRESSION' IN typenames - THEN - REPEAT i := 1 TO SIZEOF(expr\multiple_arity_generic_expression.operands); - result := result + free_variables_of(expr\multiple_arity_generic_expression.operands[i]); - END_REPEAT; - RETURN(result); - END_IF; - RETURN(result); -END_FUNCTION; - -FUNCTION function_applicability(func : maths_function_select; - arguments : LIST [1 : ?] OF maths_value) : BOOLEAN; -LOCAL - domain : tuple_space := convert_to_maths_function(func).domain; - domain_types : SET OF STRING := TYPEOF(domain); - narg : positive_integer := SIZEOF(arguments); - arg : generic_expression; -END_LOCAL; - IF (schema_prefix + 'PRODUCT_SPACE') IN domain_types - THEN - IF space_dimension(domain) <> narg - THEN - RETURN(false); - END_IF; - ELSE - IF (schema_prefix + 'EXTENDED_TUPLE_SPACE') IN domain_types - THEN - IF space_dimension(domain) > narg - THEN - RETURN(false); - END_IF; - ELSE - RETURN(false); - END_IF; - END_IF; - REPEAT i := 1 TO narg; - arg := convert_to_operand(arguments[i]); - IF NOT has_values_space(arg) - THEN - RETURN(false); - END_IF; - IF NOT compatible_spaces(factor_space(domain, i), values_space_of(arg)) - THEN - RETURN(false); - END_IF; - END_REPEAT; - RETURN(true); -END_FUNCTION; - -FUNCTION function_is_1d_array(func : maths_function) : BOOLEAN; -LOCAL - temp : maths_space; -END_LOCAL; - IF NOT EXISTS(func) - THEN - RETURN(false); - END_IF; - IF space_dimension(func.domain) <> 1 - THEN - RETURN(false); - END_IF; - temp := factor1(func.domain); - IF (schema_prefix + 'PRODUCT_SPACE') IN TYPEOF(temp) - THEN - IF space_dimension(temp) <> 1 - THEN - RETURN(false); - END_IF; - temp := factor1(temp); - END_IF; - IF (schema_prefix + 'FINITE_INTEGER_INTERVAL') IN TYPEOF(temp) - THEN - RETURN(true); - END_IF; - RETURN(false); -END_FUNCTION; - -FUNCTION function_is_1d_table(func : maths_function) : BOOLEAN; -LOCAL - temp : maths_space; - itvl : finite_integer_interval; -END_LOCAL; - IF NOT EXISTS(func) - THEN - RETURN(false); - END_IF; - IF space_dimension(func.domain) <> 1 - THEN - RETURN(false); - END_IF; - temp := factor1(func.domain); - IF (schema_prefix + 'PRODUCT_SPACE') IN TYPEOF(temp) - THEN - IF space_dimension(temp) <> 1 - THEN - RETURN(false); - END_IF; - temp := factor1(temp); - END_IF; - IF (schema_prefix + 'FINITE_INTEGER_INTERVAL') IN TYPEOF(temp) - THEN - itvl := temp; - RETURN(bool((itvl.min = 0) OR (itvl.min = 1))); - END_IF; - RETURN(false); -END_FUNCTION; - -FUNCTION function_is_2d_table(func : maths_function) : BOOLEAN; -LOCAL - temp : maths_space; - pspace : product_space; - itvl1 : finite_integer_interval; - itvl2 : finite_integer_interval; -END_LOCAL; - IF NOT EXISTS(func) - THEN - RETURN(false); - END_IF; - IF space_dimension(func.domain) <> 1 - THEN - RETURN(false); - END_IF; - temp := factor1(func.domain); - IF NOT ('PRODUCT_SPACE' IN stripped_typeof(temp)) - THEN - RETURN(false); - END_IF; - pspace := temp; - IF space_dimension(pspace) <> 2 - THEN - RETURN(false); - END_IF; - temp := factor1(pspace); - IF NOT ('FINITE_INTEGER_INTERVAL' IN stripped_typeof(temp)) - THEN - RETURN(false); - END_IF; - itvl1 := temp; - temp := factor_space(pspace, 2); - IF NOT ('FINITE_INTEGER_INTERVAL' IN stripped_typeof(temp)) - THEN - RETURN(false); - END_IF; - itvl2 := temp; - RETURN(bool((itvl1.min = itvl2.min) AND ((itvl1.min = 0) OR (itvl1.min = 1)))); -END_FUNCTION; - -FUNCTION function_is_array(func : maths_function) : BOOLEAN; -LOCAL - tspace : tuple_space; - temp : maths_space; -END_LOCAL; - IF NOT EXISTS(func) - THEN - RETURN(false); - END_IF; - tspace := func.domain; - IF (space_dimension(tspace) = 1) AND ((schema_prefix + 'TUPLE_SPACE') IN TYPEOF(factor1(tspace))) - THEN - tspace := factor1(tspace); - END_IF; - IF NOT ((schema_prefix + 'PRODUCT_SPACE') IN TYPEOF(tspace)) - THEN - RETURN(false); - END_IF; - REPEAT i := 1 TO space_dimension(tspace); - temp := factor_space(tspace, i); - IF NOT ((schema_prefix + 'FINITE_INTEGER_INTERVAL') IN TYPEOF(temp)) - THEN - RETURN(false); - END_IF; - END_REPEAT; - RETURN(true); -END_FUNCTION; - -FUNCTION function_is_table(func : maths_function) : BOOLEAN; -LOCAL - tspace : tuple_space; - temp : maths_space; - base : INTEGER; -END_LOCAL; - IF NOT EXISTS(func) - THEN - RETURN(false); - END_IF; - tspace := func.domain; - IF (space_dimension(tspace) = 1) AND ((schema_prefix + 'TUPLE_SPACE') IN TYPEOF(factor1(tspace))) - THEN - tspace := factor1(tspace); - END_IF; - IF NOT ((schema_prefix + 'PRODUCT_SPACE') IN TYPEOF(tspace)) - THEN - RETURN(false); - END_IF; - temp := factor1(tspace); - IF NOT ((schema_prefix + 'FINITE_INTEGER_INTERVAL') IN TYPEOF(temp)) - THEN - RETURN(false); - END_IF; - base := temp\finite_integer_interval.min; - IF (base <> 0) AND (base <> 1) - THEN - RETURN(false); - END_IF; - REPEAT i := 2 TO space_dimension(tspace); - temp := factor_space(tspace, i); - IF NOT ((schema_prefix + 'FINITE_INTEGER_INTERVAL') IN TYPEOF(temp)) - THEN - RETURN(false); - END_IF; - IF temp\finite_integer_interval.min <> base - THEN - RETURN(false); - END_IF; - END_REPEAT; - RETURN(true); -END_FUNCTION; - -FUNCTION gbsf_check_curve(cv : representation_item) : BOOLEAN; - IF SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOUNDED_CURVE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONIC', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_REPLICA', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OFFSET_CURVE_3D'] * - TYPEOF(cv)) > - 1 - THEN - RETURN(false); - END_IF; - IF SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCLE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ELLIPSE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TRIMMED_CURVE'] * - TYPEOF(cv)) = - 1 - THEN - RETURN(true); - ELSE - IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE' IN TYPEOF(cv)) AND - (cv\b_spline_curve.self_intersect = false) OR - (cv\b_spline_curve.self_intersect = unknown)) - THEN - RETURN(true); - ELSE - IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_CURVE' IN TYPEOF(cv)) AND - (cv\composite_curve.self_intersect = false) OR - (cv\composite_curve.self_intersect = unknown)) - THEN - RETURN(SIZEOF(QUERY(seg <* cv\composite_curve.segments | NOT (gbsf_check_curve(seg.parent_curve)))) = 0); - ELSE - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_REPLICA' IN TYPEOF(cv) - THEN - RETURN(gbsf_check_curve(cv\curve_replica.parent_curve)); - ELSE - IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OFFSET_CURVE_3D' IN TYPEOF(cv)) AND - ((cv\offset_curve_3d.self_intersect = false) OR (cv\offset_curve_3d.self_intersect = unknown)) AND - (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYLINE' IN - TYPEOF(cv\offset_curve_3d.basis_curve)))) - THEN - RETURN(gbsf_check_curve(cv\offset_curve_3d.basis_curve)); - ELSE - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PCURVE' IN TYPEOF(cv) - THEN - RETURN((gbsf_check_curve(cv\pcurve.reference_to_curve\representation.items[1])) AND - (gbsf_check_surface(cv\pcurve.basis_surface))); - ELSE - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYLINE' IN TYPEOF(cv) - THEN - IF (SIZEOF(cv\polyline.points) >= 3) - THEN - RETURN(true); - END_IF; - ELSE - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_CURVE' IN TYPEOF(cv) - THEN - IF gbsf_check_curve(cv\surface_curve.curve_3d) - THEN - REPEAT i := 1 TO SIZEOF(cv\surface_curve.associated_geometry); - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE' IN - TYPEOF(cv\surface_curve.associated_geometry[i]) - THEN - IF NOT gbsf_check_surface(cv\surface_curve.associated_geometry[i]) - THEN - RETURN(false); - END_IF; - ELSE - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PCURVE' IN - TYPEOF(cv\surface_curve.associated_geometry[i]) - THEN - IF NOT gbsf_check_curve(cv\surface_curve.associated_geometry[i]) - THEN - RETURN(false); - END_IF; - END_IF; - END_IF; - END_REPEAT; - RETURN(true); - END_IF; - END_IF; - END_IF; - END_IF; - END_IF; - END_IF; - END_IF; - END_IF; - END_IF; - RETURN(false); -END_FUNCTION; - -FUNCTION gbsf_check_point(pnt : point) : BOOLEAN; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CARTESIAN_POINT' IN TYPEOF(pnt) - THEN - RETURN(true); - ELSE - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_CURVE' IN TYPEOF(pnt) - THEN - RETURN(gbsf_check_curve(pnt\point_on_curve.basis_curve)); - ELSE - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_SURFACE' IN TYPEOF(pnt) - THEN - RETURN(gbsf_check_surface(pnt\point_on_surface.basis_surface)); - ELSE - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DEGENERATE_PCURVE' IN TYPEOF(pnt) - THEN - RETURN((gbsf_check_curve(pnt\degenerate_pcurve.reference_to_curve\representation.items[1])) AND - (gbsf_check_surface(pnt\degenerate_pcurve.basis_surface))); - END_IF; - END_IF; - END_IF; - END_IF; - RETURN(false); -END_FUNCTION; - -FUNCTION gbsf_check_surface(sf : surface) : BOOLEAN; - IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_SURFACE' IN TYPEOF(sf)) AND - (sf\b_spline_surface.self_intersect = false) OR - (sf\b_spline_surface.self_intersect = unknown)) - THEN - RETURN(true); - ELSE - IF SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SPHERICAL_SURFACE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TOROIDAL_SURFACE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_BOUNDED_SURFACE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_TRIMMED_SURFACE'] * - TYPEOF(sf)) = - 1 - THEN - RETURN(true); - ELSE - IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OFFSET_SURFACE' IN TYPEOF(sf)) AND - (sf\offset_surface.self_intersect = false) OR - (sf\offset_surface.self_intersect = unknown)) - THEN - RETURN(gbsf_check_surface(sf\offset_surface.basis_surface)); - ELSE - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_COMPOSITE_SURFACE' IN TYPEOF(sf) - THEN - REPEAT i := 1 TO SIZEOF(sf\rectangular_composite_surface.segments); - REPEAT j := 1 TO SIZEOF(sf\rectangular_composite_surface.segments[i]); - IF NOT (gbsf_check_surface(sf\rectangular_composite_surface.segments[i][j].parent_surface)) - THEN - RETURN(false); - END_IF; - END_REPEAT; - END_REPEAT; - RETURN(true); - ELSE - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_REPLICA' IN TYPEOF(sf) - THEN - RETURN(gbsf_check_surface(sf\surface_replica.parent_surface)); - ELSE - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_OF_REVOLUTION' IN TYPEOF(sf) - THEN - RETURN(gbsf_check_curve(sf\swept_surface.swept_curve)); - END_IF; - END_IF; - END_IF; - END_IF; - END_IF; - END_IF; - RETURN(false); -END_FUNCTION; - -FUNCTION geometric_dimensionalities_in_contexts(grcs : SET [1 : ?] OF geometric_representation_context) : INTEGER; -LOCAL - grcs_1d : INTEGER := 0; - grcs_2d : INTEGER := 0; - grcs_3d : INTEGER := 0; -END_LOCAL; - IF (SIZEOF(grcs) = 1) - THEN - RETURN(grcs[1]\geometric_representation_context.coordinate_space_dimension); - ELSE - REPEAT i := 1 TO HIINDEX(grcs); - IF (grcs[i]\geometric_representation_context.coordinate_space_dimension = 1) - THEN - grcs_1d := grcs_1d + 1; - ELSE - IF (grcs[i]\geometric_representation_context.coordinate_space_dimension = 2) - THEN - grcs_2d := grcs_2d + 1; - ELSE - IF (grcs[i]\geometric_representation_context.coordinate_space_dimension = 3) - THEN - grcs_3d := grcs_3d + 1; - END_IF; - END_IF; - END_IF; - END_REPEAT; - END_IF; - IF (grcs_1d + grcs_2d = 0) - THEN - RETURN(3); - ELSE - IF (grcs_1d + grcs_3d = 0) - THEN - RETURN(2); - ELSE - IF (grcs_2d + grcs_3d = 0) - THEN - RETURN(1); - ELSE - RETURN(0); - END_IF; - END_IF; - END_IF; -END_FUNCTION; - -FUNCTION get_aggregate_id_value(obj : id_attribute_select) : identifier; -LOCAL - aggregate_id_bag : BAG OF aggregate_id_attribute := (USEDIN(obj, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AGGREGATE_ID_ATTRIBUTE.IDENTIFIED_ITEM')); -END_LOCAL; - IF SIZEOF(aggregate_id_bag) = 1 - THEN - RETURN(aggregate_id_bag[1].attribute_value); - ELSE - RETURN(?); - END_IF; -END_FUNCTION; - -FUNCTION get_associated_mandatory_document_ids(pdc : product_definition_context) : SET OF STRING; -LOCAL - result : SET OF STRING := []; - adrs_raw : SET OF applied_document_reference := bag_to_set(USEDIN(pdc, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.APPLIED_DOCUMENT_REFERENCE.ITEMS')); - adrs_filtered : SET OF applied_document_reference := []; - ras : SET OF role_association; - dpas : SET OF document_product_association; -END_LOCAL; - REPEAT i := 1 TO HIINDEX(adrs_raw); - IF adrs_raw[i]\document_reference.role\object_role.name = 'mandatory' - THEN - adrs_filtered := adrs_filtered + adrs_raw[i]; - END_IF; - END_REPEAT; - REPEAT i := 1 TO HIINDEX(adrs_filtered); - dpas := bag_to_set(USEDIN(adrs_filtered[i]\document_reference.assigned_document, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DOCUMENT_PRODUCT_ASSOCIATION.RELATING_DOCUMENT')); - REPEAT j := 1 TO HIINDEX(dpas); - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DOCUMENT_PRODUCT_EQUIVALENCE' IN TYPEOF(dpas[j]) - THEN - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_FORMATION' IN - TYPEOF(dpas[j]\document_product_association.related_product) - THEN - result := result + - dpas[j]\document_product_association.related_product\product_definition_formation.of_product\product.id; - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT' IN TYPEOF(dpas[j].related_product) - THEN - result := result + dpas[j]\document_product_association.related_product\product.id; - END_IF; - END_IF; - END_REPEAT; - END_REPEAT; - RETURN(result); -END_FUNCTION; - -FUNCTION get_basis_surface(c : curve_on_surface) : SET [0 : 2] OF surface; -LOCAL - surfs : SET [0 : 2] OF surface; - n : INTEGER; -END_LOCAL; - surfs := []; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PCURVE' IN TYPEOF(c) - THEN - surfs := [c\pcurve.basis_surface]; - ELSE - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_CURVE' IN TYPEOF(c) - THEN - n := SIZEOF(c\surface_curve.associated_geometry); - REPEAT i := 1 TO n; - surfs := surfs + associated_surface(c\surface_curve.associated_geometry[i]); - END_REPEAT; - END_IF; - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_CURVE_ON_SURFACE' IN TYPEOF(c) - THEN - n := SIZEOF(c\composite_curve.segments); - surfs := get_basis_surface(c\composite_curve.segments[1].parent_curve); - IF n > 1 - THEN - REPEAT i := 2 TO n; - surfs := surfs * get_basis_surface(c\composite_curve.segments[i].parent_curve); - END_REPEAT; - END_IF; - END_IF; - RETURN(surfs); -END_FUNCTION; - -FUNCTION get_coordinate_values(source : tessellated_surface_item) : coordinates_list; -LOCAL - coordinate_values : coordinates_list; - max : INTEGER; -END_LOCAL; - (* If source is of type tessellated_face its single coordinates_list is returned *) - CASE true OF - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_FACE' IN - TYPEOF(source) : BEGIN - coordinate_values := source\tessellated_face.coordinates; - RETURN(coordinate_values); - END; - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_SURFACE_SET' IN - TYPEOF(source) : BEGIN - coordinate_values := source\tessellated_surface_set.coordinates; - RETURN(coordinate_values); - END; - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_SOLID' IN - TYPEOF(source) : BEGIN - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_FACE' IN - TYPEOF(source\tessellated_solid.items[1]) - THEN - coordinate_values := source\tessellated_solid.items[1]\tessellated_face.coordinates; - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_EDGE' IN - TYPEOF(source\tessellated_solid.items[1]) - THEN - coordinate_values := source\tessellated_solid.items[1]\tessellated_edge.coordinates; - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_VERTEX' IN - TYPEOF(source\tessellated_solid.items[1]) - THEN - coordinate_values := source\tessellated_solid.items[1]\tessellated_vertex.coordinates; - END_IF; - max := SIZEOF(source\tessellated_solid.items); - IF max = 1 - THEN - RETURN(coordinate_values); - ELSE - REPEAT i := 2 TO max; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_FACE' IN - TYPEOF(source\tessellated_solid.items[i]) - THEN - IF NOT (coordinate_values :=: - source\tessellated_solid.items[i]\tessellated_face.coordinates) - THEN - RETURN(?); - END_IF; - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_EDGE' IN - TYPEOF(source\tessellated_solid.items[i]) - THEN - IF NOT (coordinate_values :=: - source\tessellated_solid.items[i]\tessellated_edge.coordinates) - THEN - RETURN(?); - END_IF; - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_VERTEX' IN - TYPEOF(source\tessellated_solid.items[i]) - THEN - IF NOT (coordinate_values :=: - source\tessellated_solid.items[i]\tessellated_vertex.coordinates) - THEN - RETURN(?); - END_IF; - END_IF; - END_REPEAT; - RETURN(coordinate_values); - END_IF; - END; - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_SHELL' IN - TYPEOF(source) : BEGIN - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_FACE' IN - TYPEOF(source\tessellated_shell.items[1]) - THEN - coordinate_values := source\tessellated_shell.items[1]\tessellated_face.coordinates; - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_EDGE' IN - TYPEOF(source\tessellated_shell.items[1]) - THEN - coordinate_values := source\tessellated_shell.items[1]\tessellated_edge.coordinates; - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_VERTEX' IN - TYPEOF(source\tessellated_shell.items[1]) - THEN - coordinate_values := source\tessellated_shell.items[1]\tessellated_vertex.coordinates; - END_IF; - max := SIZEOF(source\tessellated_shell.items); - IF max = 1 - THEN - RETURN(coordinate_values); - ELSE - REPEAT i := 2 TO max; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_FACE' IN - TYPEOF(source\tessellated_shell.items[i]) - THEN - IF NOT (coordinate_values :=: - source\tessellated_shell.items[i]\tessellated_face.coordinates) - THEN - RETURN(?); - END_IF; - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_EDGE' IN - TYPEOF(source\tessellated_shell.items[i]) - THEN - IF NOT (coordinate_values :=: - source\tessellated_shell.items[i]\tessellated_edge.coordinates) - THEN - RETURN(?); - END_IF; - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_VERTEX' IN - TYPEOF(source\tessellated_shell.items[i]) - THEN - IF NOT (coordinate_values :=: - source\tessellated_shell.items[i]\tessellated_vertex.coordinates) - THEN - RETURN(?); - END_IF; - END_IF; - END_REPEAT; - RETURN(coordinate_values); - END_IF; - END; - END_CASE; -END_FUNCTION; - -FUNCTION get_descendant_occurrences(input : product_definition_occurrence) : SET [0 : ?] OF product_definition_specified_occurrence; -LOCAL - result : SET OF product_definition_specified_occurrence := input.child_occurrences; -END_LOCAL; - REPEAT i := 1 TO HIINDEX(input.child_occurrences) BY 1; - result := result + get_descendant_occurrences(input.child_occurrences[i]); - END_REPEAT; - RETURN(result); -END_FUNCTION; - -FUNCTION get_description_value(obj : description_attribute_select) : text; -LOCAL - description_bag : BAG OF description_attribute := (USEDIN(obj, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')); -END_LOCAL; - IF SIZEOF(description_bag) = 1 - THEN - RETURN(description_bag[1].attribute_value); - ELSE - RETURN(?); - END_IF; -END_FUNCTION; - -FUNCTION get_directed_link(nodes : LIST OF representation; - undirected_link : LIST OF chained_representation_link) : LIST OF representation_relationship; -LOCAL - directed_link : LIST OF representation_relationship := []; -END_LOCAL; - IF (SIZEOF(nodes) <> SIZEOF(undirected_link) + 1) OR (VALUE_UNIQUE(nodes) = false) - THEN - RETURN(?); - END_IF; - REPEAT i := 1 TO SIZEOF(undirected_link); - CASE true OF - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_CONTEXT' IN TYPEOF(undirected_link[i])) : BEGIN - IF ((nodes[i]\representation.context_of_items :=: - undirected_link[i]) AND - (nodes[i + - 1]\representation.context_of_items :=: - undirected_link[i])) - THEN - INSERT(directed_link, - representation_relationship('', - '', - nodes[i + - 1], - nodes[i]), - (i - - 1)); - ELSE - RETURN(?); - END_IF; - END; - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_RELATIONSHIP' IN - TYPEOF(undirected_link[i])) : BEGIN - IF (((nodes[i] :=: - undirected_link[i]\representation_relationship.rep_1) AND - (nodes[i + 1] :=: - undirected_link[i]\representation_relationship.rep_2)) OR - ((nodes[i] :=: - undirected_link[i]\representation_relationship.rep_2) AND - (nodes[i + 1] :=: - undirected_link[i]\representation_relationship.rep_1))) - THEN - INSERT(directed_link, - representation_relationship('', '', nodes[i + 1], nodes[i]), - (i - 1)); - ELSE - RETURN(?); - END_IF; - END; - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF(undirected_link[i])) : BEGIN - IF ((nodes[i] IN - using_representations(undirected_link[i])) AND - (nodes[i + - 1] :=: - undirected_link[i]\mapped_item.mapping_source\representation_map.mapped_representation)) - THEN - INSERT(directed_link, - representation_relationship('', - '', - nodes[i + - 1], - nodes[i]), - (i - - 1)); - ELSE - RETURN(?); - END_IF; - END; - OTHERWISE: RETURN(?); - END_CASE; - END_REPEAT; - IF (VALUE_UNIQUE(directed_link) = false) - THEN - RETURN(?); - END_IF; - RETURN(directed_link); -END_FUNCTION; - -FUNCTION get_id_value(obj : id_attribute_select) : identifier; -LOCAL - id_bag : BAG OF id_attribute := (USEDIN(obj, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ID_ATTRIBUTE.IDENTIFIED_ITEM')); -END_LOCAL; - IF SIZEOF(id_bag) = 1 - THEN - RETURN(id_bag[1].attribute_value); - ELSE - RETURN(?); - END_IF; -END_FUNCTION; - -FUNCTION get_kinematic_joints_from_kinematic_loops(kls : SET OF kinematic_loop) : SET OF kinematic_joint; -LOCAL - result : SET OF oriented_joint := []; -END_LOCAL; - IF SIZEOF(kls) > 0 - THEN - REPEAT i := 1 TO HIINDEX(kls); - result := result + kls[i].edge_list; - END_REPEAT; - END_IF; - RETURN(get_kinematic_joints_from_oriented_joints(result)); -END_FUNCTION; - -FUNCTION get_kinematic_joints_from_oriented_joints(ors : SET OF oriented_joint) : SET OF kinematic_joint; -LOCAL - result : SET OF kinematic_joint := []; -END_LOCAL; - IF SIZEOF(ors) > 0 - THEN - REPEAT i := 1 TO HIINDEX(ors); - result := result + ors[i].edge_element; - END_REPEAT; - END_IF; - RETURN(result); -END_FUNCTION; - -FUNCTION get_name_value(obj : name_attribute_select) : label; -LOCAL - name_bag : BAG OF name_attribute := (USEDIN(obj, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NAME_ATTRIBUTE.NAMED_ITEM')); -END_LOCAL; - IF SIZEOF(name_bag) = 1 - THEN - RETURN(name_bag[1].attribute_value); - ELSE - RETURN(?); - END_IF; -END_FUNCTION; - -FUNCTION get_plane_of_implicit_geometry(ps : positioned_sketch) : plane; -LOCAL - sb : sketch_basis_select := ps.sketch_basis; - result : plane := ?; -END_LOCAL; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE' IN TYPEOF(sb)) - THEN - result := sb\face_surface.face_geometry; - ELSE - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_BOUNDED_SURFACE' IN TYPEOF(sb)) - THEN - result := sb\curve_bounded_surface.basis_surface; - ELSE - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_CURVE_SELECT' IN TYPEOF(sb)) - THEN - BEGIN - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONIC' IN TYPEOF(sb)) - THEN - result := dummy_gri || surface() || elementary_surface(sb\conic.position) || plane(); - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TRIMMED_CURVE' IN TYPEOF(sb)) - THEN - BEGIN - result := get_plane_of_implicit_geometry(dummy_gri || - positioned_sketch(sb\trimmed_curve.basis_curve, [])); - END; - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PCURVE' IN TYPEOF(sb)) - THEN - result := sb\pcurve.basis_surface; - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_CURVE' IN TYPEOF(sb)) - THEN - BEGIN - IF ((SIZEOF(sb\surface_curve.basis_surface) = 1) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE' IN - TYPEOF(sb\surface_curve.basis_surface[1]))) - THEN - result := sb\surface_curve.basis_surface[1]; - ELSE - IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE' IN - TYPEOF(sb\surface_curve.basis_surface[1])) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE' IN - TYPEOF(sb\surface_curve.basis_surface[2]))) - THEN - result := ?; - ELSE - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE' IN - TYPEOF(sb\surface_curve.basis_surface[1])) - THEN - result := sb\surface_curve.basis_surface[1]; - ELSE - result := sb\surface_curve.basis_surface[2]; - END_IF; - END_IF; - END_IF; - END; - END_IF; - END; - END_IF; - END_IF; - END_IF; - RETURN(result); -END_FUNCTION; - -FUNCTION get_property_definition_representations(c_def_instance : characterized_definition) : SET OF property_definition_representation; -LOCAL - pd_set : SET OF property_definition := []; - pdr_set : SET OF property_definition_representation := []; -END_LOCAL; - pd_set := bag_to_set(USEDIN(c_def_instance, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION')); - IF (SIZEOF(pd_set) < 1) - THEN - RETURN(pdr_set); - END_IF; - REPEAT i := 1 TO HIINDEX(pd_set); - pdr_set := pdr_set + - bag_to_set(USEDIN(pd_set[i], - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')); - END_REPEAT; - RETURN(pdr_set); -END_FUNCTION; - -FUNCTION get_relative_direction_2points(cp1 : cartesian_point; - cp2 : cartesian_point) : direction; -LOCAL - d1 : REAL; - d2 : REAL; - d3 : REAL; - magnitude : REAL; - result : direction := ?; -END_LOCAL; - IF ((cp1.dim <> 3) OR (cp2.dim <> 3)) - THEN - RETURN(result); - ELSE - BEGIN - d1 := cp2.coordinates[1] - cp1.coordinates[1]; - d2 := cp2.coordinates[2] - cp1.coordinates[2]; - d3 := cp2.coordinates[3] - cp1.coordinates[3]; - magnitude := SQRT(d1 * d1 + d2 * d2 + d3 * d3); - IF (magnitude = 0) - THEN - RETURN(result); - END_IF; - result := dummy_gri || direction([d1,d2,d3]); - END; - END_IF; - RETURN(result); -END_FUNCTION; - -FUNCTION get_representations_for_items(input : SET OF founded_item_select) : SET OF representation; -LOCAL - r_set : SET OF representation := []; -END_LOCAL; - REPEAT i := LOINDEX(input) TO HIINDEX(input); - r_set := r_set + using_representations(input[i]); - END_REPEAT; - RETURN(r_set); -END_FUNCTION; - -FUNCTION get_role(obj : role_select) : object_role; -LOCAL - role_bag : BAG OF role_association := (USEDIN(obj, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROLE_ASSOCIATION.ITEM_WITH_ROLE')); -END_LOCAL; - IF SIZEOF(role_bag) = 1 - THEN - RETURN(role_bag[1].role); - ELSE - RETURN(?); - END_IF; -END_FUNCTION; - -FUNCTION get_root_shape_aspect(current : shape_aspect) : product_definition_shape; - REPEAT WHILE ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONSTITUENT_SHAPE_ASPECT' IN TYPEOF(current)); - current := current.parent; - END_REPEAT; - RETURN(current.of_shape); -END_FUNCTION; - -FUNCTION get_shape_aspect_property_definition_representations(s_a_instance : shape_aspect) : SET OF property_definition_representation; -LOCAL - pd_set : SET OF property_definition := []; - pdr_set : SET OF property_definition_representation := []; -END_LOCAL; - pd_set := bag_to_set(USEDIN(s_a_instance, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION')); - IF (SIZEOF(pd_set) < 1) - THEN - RETURN(pdr_set); - END_IF; - REPEAT i := 1 TO HIINDEX(pd_set); - pdr_set := pdr_set + - (QUERY(pdr - <* USEDIN(pd_set[i], - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINITION_REPRESENTATION' IN - TYPEOF(pdr))); - END_REPEAT; - RETURN(pdr_set); -END_FUNCTION; - -FUNCTION get_shape_aspects(c_def_instance : characterized_definition) : SET OF shape_aspect; -LOCAL - pd_set : SET OF product_definition_shape := []; - pdr_set : SET OF shape_aspect := []; -END_LOCAL; - pd_set := bag_to_set(QUERY(pd - <* USEDIN(c_def_instance, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd))); - IF (SIZEOF(pd_set) < 1) - THEN - RETURN(pdr_set); - END_IF; - REPEAT i := 1 TO HIINDEX(pd_set); - pdr_set := pdr_set + - bag_to_set(USEDIN(pd_set[i], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE')); - END_REPEAT; - RETURN(pdr_set); -END_FUNCTION; - -FUNCTION has_values_space(expr : generic_expression) : BOOLEAN; -LOCAL - typenames : SET OF STRING := stripped_typeof(expr); -END_LOCAL; - IF 'EXPRESSION' IN typenames - THEN - RETURN(bool(('NUMERIC_EXPRESSION' IN typenames) OR ('STRING_EXPRESSION' IN typenames) OR - ('BOOLEAN_EXPRESSION' IN typenames))); - END_IF; - IF 'MATHS_FUNCTION' IN typenames - THEN - RETURN(true); - END_IF; - IF 'FUNCTION_APPLICATION' IN typenames - THEN - RETURN(true); - END_IF; - IF 'MATHS_SPACE' IN typenames - THEN - RETURN(true); - END_IF; - IF 'MATHS_VARIABLE' IN typenames - THEN - RETURN(true); - END_IF; - IF 'DEPENDENT_VARIABLE_DEFINITION' IN typenames - THEN - RETURN(has_values_space(expr\unary_generic_expression.operand)); - END_IF; - IF 'COMPLEX_NUMBER_LITERAL' IN typenames - THEN - RETURN(true); - END_IF; - IF 'LOGICAL_LITERAL' IN typenames - THEN - RETURN(true); - END_IF; - IF 'BINARY_LITERAL' IN typenames - THEN - RETURN(true); - END_IF; - IF 'MATHS_ENUM_LITERAL' IN typenames - THEN - RETURN(true); - END_IF; - IF 'REAL_TUPLE_LITERAL' IN typenames - THEN - RETURN(true); - END_IF; - IF 'INTEGER_TUPLE_LITERAL' IN typenames - THEN - RETURN(true); - END_IF; - IF 'ATOM_BASED_LITERAL' IN typenames - THEN - RETURN(true); - END_IF; - IF 'MATHS_TUPLE_LITERAL' IN typenames - THEN - RETURN(true); - END_IF; - IF 'PARTIAL_DERIVATIVE_EXPRESSION' IN typenames - THEN - RETURN(true); - END_IF; - IF 'DEFINITE_INTEGRAL_EXPRESSION' IN typenames - THEN - RETURN(true); - END_IF; - RETURN(false); -END_FUNCTION; - -FUNCTION increasing_values_in_list(values : LIST [2 : ?] OF REAL) : BOOLEAN; -LOCAL - result : BOOLEAN := true; - limit : INTEGER := SIZEOF(values); -END_LOCAL; - REPEAT i := 2 TO limit; - IF values[i] <= values[i - 1] - THEN - result := false; - END_IF; - END_REPEAT; - RETURN(result); -END_FUNCTION; - -FUNCTION inspected_product_definition(dqir : data_quality_inspection_result_representation) : BAG OF product_definition; -LOCAL - dqdr : BAG OF data_quality_definition_representation_relationship := []; - pdqdr : BAG OF product_data_and_data_quality_relationship := []; - pd : BAG OF product_definition := []; -END_LOCAL; - dqdr := USEDIN(dqir, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_QUALITY_DEFINITION_REPRESENTATION_RELATIONSHIP.USED_REPRESENTATION'); - REPEAT i := 1 TO SIZEOF(dqdr); - pdqdr := USEDIN(dqdr[i].definition, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DATA_AND_DATA_QUALITY_RELATIONSHIP.DATA_QUALITY'); - REPEAT j := 1 TO SIZEOF(pdqdr); - pd := pd + pdqdr[j].product_data; - END_REPEAT; - END_REPEAT; - RETURN(pd); -END_FUNCTION; - -FUNCTION invalidate_vrep_item(item : variational_representation_item) : BOOLEAN; -LOCAL - reps : SET [1 : ?] OF representation := using_representations(item); - svri : SET [1 : ?] OF variational_representation_item; - iar : instance_attribute_reference; - i : INTEGER; - n : INTEGER := HIINDEX(reps); -END_LOCAL; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOUND_VARIATIONAL_PARAMETER' IN TYPEOF(item)) - THEN - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.INSTANCE_ATTRIBUTE_REFERENCE' IN - TYPEOF(item\generic_variable.interpretation\environment.semantics) - THEN - BEGIN - iar := item\generic_variable.interpretation\environment.semantics; - IF (reps <> using_representations(iar\instance_attribute_reference.owning_instance)) - THEN - RETURN(true); - END_IF; - END; - ELSE - RETURN(true); - END_IF; - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.UNBOUND_VARIATIONAL_PARAMETER' IN TYPEOF(item)) - THEN - BEGIN - REPEAT i := 1 TO n; - svri := QUERY(q - <* reps[i]\representation.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FREE_FORM_CONSTRAINT' IN TYPEOF(q)); - IF SIZEOF(QUERY(r - <* svri - | item IN - (r\free_form_constraint.reference_elements + - r\free_form_constraint.constrained_elements))) = - 0 - THEN - RETURN(true); - END_IF; - END_REPEAT; - END; - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FIXED_INSTANCE_ATTRIBUTE_SET' IN TYPEOF(item)) - THEN - REPEAT i := 1 TO SIZEOF(item\fixed_instance_attribute_set.fixed_attributes); - IF (reps <> - using_representations(item\fixed_instance_attribute_set.fixed_attributes[i]\instance_attribute_reference.owning_instance)) - THEN - RETURN(true); - END_IF; - END_REPEAT; - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXPLICIT_CONSTRAINT' IN TYPEOF(item)) - THEN - IF SIZEOF(QUERY(q - <* (item\explicit_constraint.reference_elements + item\explicit_constraint.constrained_elements) - | reps <> using_representations(q))) > - 0 - THEN - RETURN(true); - END_IF; - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AUXILIARY_GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(item)) - THEN - BEGIN - REPEAT i := 1 TO n; - svri := QUERY(q - <* reps[i]\representation.items - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXPLICIT_GEOMETRIC_CONSTRAINT' IN - TYPEOF(q)); - IF SIZEOF(QUERY(r <* svri | item IN r\explicit_geometric_constraint.reference_elements)) = 0 - THEN - RETURN(true); - END_IF; - END_REPEAT; - END; - END_IF; - RETURN(false); -END_FUNCTION; - -FUNCTION is_acyclic(arg : generic_expression) : BOOLEAN; - RETURN(acyclic(arg, [])); -END_FUNCTION; - -FUNCTION is_int_expr(arg : numeric_expression) : BOOLEAN; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.INT_LITERAL' IN TYPEOF(arg) - THEN - RETURN(true); - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REAL_LITERAL' IN TYPEOF(arg) - THEN - RETURN(false); - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.INT_NUMERIC_VARIABLE' IN TYPEOF(arg) - THEN - RETURN(true); - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REAL_NUMERIC_VARIABLE' IN TYPEOF(arg) - THEN - RETURN(false); - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ABS_FUNCTION' IN TYPEOF(arg) - THEN - RETURN(is_int_expr(arg\unary_numeric_expression.operand)); - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MINUS_FUNCTION' IN TYPEOF(arg) - THEN - RETURN(is_int_expr(arg\unary_numeric_expression.operand)); - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SIN_FUNCTION' IN TYPEOF(arg)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COS_FUNCTION' IN TYPEOF(arg)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TAN_FUNCTION' IN TYPEOF(arg)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ASIN_FUNCTION' IN TYPEOF(arg)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ACOS_FUNCTION' IN TYPEOF(arg)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ATAN_FUNCTION' IN TYPEOF(arg)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXP_FUNCTION' IN TYPEOF(arg)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LOG_FUNCTION' IN TYPEOF(arg)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LOG2_FUNCTION' IN TYPEOF(arg)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LOG10_FUNCTION' IN TYPEOF(arg)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SQUARE_ROOT_FUNCTION' IN TYPEOF(arg)) - THEN - RETURN(false); - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLUS_EXPRESSION' IN TYPEOF(arg)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MULT_EXPRESSION' IN TYPEOF(arg)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAXIMUM_FUNCTION' IN TYPEOF(arg)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MINIMUM_FUNCTION' IN TYPEOF(arg)) - THEN - REPEAT i := 1 TO SIZEOF(arg\multiple_arity_numeric_expression.operands); - IF NOT is_int_expr(arg\multiple_arity_numeric_expression.operands[i]) - THEN - RETURN(false); - END_IF; - END_REPEAT; - RETURN(true); - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MINUS_EXPRESSION' IN TYPEOF(arg)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POWER_EXPRESSION' IN TYPEOF(arg)) - THEN - RETURN(is_int_expr(arg\binary_numeric_expression.operands[1]) AND - is_int_expr(arg\binary_numeric_expression.operands[2])); - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIV_EXPRESSION' IN TYPEOF(arg)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MOD_EXPRESSION' IN TYPEOF(arg)) - THEN - RETURN(true); - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SLASH_EXPRESSION' IN TYPEOF(arg) - THEN - RETURN(false); - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_FUNCTION' IN TYPEOF(arg) - THEN - RETURN(true); - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VALUE_FUNCTION' IN TYPEOF(arg) - THEN - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.INT_VALUE_FUNCTION' IN TYPEOF(arg) - THEN - RETURN(true); - ELSE - RETURN(false); - END_IF; - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.INTEGER_DEFINED_FUNCTION' IN TYPEOF(arg) - THEN - RETURN(true); - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REAL_DEFINED_FUNCTION' IN TYPEOF(arg) - THEN - RETURN(false); - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_DEFINED_FUNCTION' IN TYPEOF(arg) - THEN - RETURN(false); - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STRING_DEFINED_FUNCTION' IN TYPEOF(arg) - THEN - RETURN(false); - END_IF; - RETURN(false); -END_FUNCTION; - -FUNCTION is_sql_mappable(arg : expression) : BOOLEAN; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SIMPLE_NUMERIC_EXPRESSION' IN TYPEOF(arg) - THEN - RETURN(true); - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SQL_MAPPABLE_DEFINED_FUNCTION' IN TYPEOF(arg) - THEN - RETURN(true); - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MINUS_FUNCTION' IN TYPEOF(arg) - THEN - RETURN(is_sql_mappable(arg\unary_numeric_expression.operand)); - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ABS_FUNCTION' IN TYPEOF(arg)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SIN_FUNCTION' IN TYPEOF(arg)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COS_FUNCTION' IN TYPEOF(arg)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TAN_FUNCTION' IN TYPEOF(arg)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ASIN_FUNCTION' IN TYPEOF(arg)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ACOS_FUNCTION' IN TYPEOF(arg)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ATAN_FUNCTION' IN TYPEOF(arg)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXP_FUNCTION' IN TYPEOF(arg)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LOG_FUNCTION' IN TYPEOF(arg)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LOG2_FUNCTION' IN TYPEOF(arg)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LOG10_FUNCTION' IN TYPEOF(arg)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SQUARE_ROOT_FUNCTION' IN TYPEOF(arg)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VALUE_FUNCTION' IN TYPEOF(arg)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_FUNCTION' IN TYPEOF(arg)) - THEN - RETURN(false); - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLUS_EXPRESSION' IN TYPEOF(arg)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MULT_EXPRESSION' IN TYPEOF(arg)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAXIMUM_FUNCTION' IN TYPEOF(arg)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MINIMUM_FUNCTION' IN TYPEOF(arg)) - THEN - REPEAT i := 1 TO SIZEOF(arg\multiple_arity_numeric_expression.operands); - IF NOT is_sql_mappable(arg\multiple_arity_numeric_expression.operands[i]) - THEN - RETURN(false); - END_IF; - END_REPEAT; - RETURN(true); - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MINUS_EXPRESSION' IN TYPEOF(arg)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SLASH_EXPRESSION' IN TYPEOF(arg)) - THEN - RETURN(is_sql_mappable(arg\binary_numeric_expression.operands[1]) AND - is_sql_mappable(arg\binary_numeric_expression.operands[2])); - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIV_EXPRESSION' IN TYPEOF(arg)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MOD_EXPRESSION' IN TYPEOF(arg)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POWER_EXPRESSION' IN TYPEOF(arg)) - THEN - RETURN(false); - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SIMPLE_BOOLEAN_EXPRESSION' IN TYPEOF(arg) - THEN - RETURN(true); - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NOT_EXPRESSION' IN TYPEOF(arg) - THEN - RETURN(is_sql_mappable(arg\unary_generic_expression.operand)); - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ODD_FUNCTION' IN TYPEOF(arg)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.XOR_EXPRESSION' IN TYPEOF(arg)) - THEN - RETURN(false); - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AND_EXPRESSION' IN TYPEOF(arg)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OR_EXPRESSION' IN TYPEOF(arg)) - THEN - REPEAT i := 1 TO SIZEOF(arg\multiple_arity_boolean_expression.operands); - IF NOT is_sql_mappable(arg\multiple_arity_boolean_expression.operands[i]) - THEN - RETURN(false); - END_IF; - END_REPEAT; - RETURN(true); - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EQUALS_EXPRESSION' IN TYPEOF(arg) - THEN - RETURN(is_sql_mappable(arg\binary_generic_expression.operands[1]) AND - is_sql_mappable(arg\binary_generic_expression.operands[2])); - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPARISON_EQUAL' IN TYPEOF(arg)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPARISON_GREATER' IN TYPEOF(arg)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPARISON_GREATER_EQUAL' IN TYPEOF(arg)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPARISON_LESS' IN TYPEOF(arg)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPARISON_LESS_EQUAL' IN TYPEOF(arg)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPARISON_NOT_EQUAL' IN TYPEOF(arg)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LIKE_EXPRESSION' IN TYPEOF(arg)) - THEN - RETURN(is_sql_mappable(arg\comparison_expression.operands[1]) AND - is_sql_mappable(arg\comparison_expression.operands[2])); - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.INTERVAL_EXPRESSION' IN TYPEOF(arg) - THEN - RETURN(is_sql_mappable(arg\interval_expression.interval_low) AND - is_sql_mappable(arg\interval_expression.interval_high) AND - is_sql_mappable(arg\interval_expression.interval_item)); - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NUMERIC_DEFINED_FUNCTION' IN TYPEOF(arg)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_DEFINED_FUNCTION' IN TYPEOF(arg)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STRING_DEFINED_FUNCTION' IN TYPEOF(arg)) - THEN - RETURN(false); - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SIMPLE_STRING_EXPRESSION' IN TYPEOF(arg) - THEN - RETURN(true); - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.INDEX_EXPRESSION' IN TYPEOF(arg)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SUBSTRING_EXPRESSION' IN TYPEOF(arg)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONCAT_EXPRESSION' IN TYPEOF(arg)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FORMAT_FUNCTION' IN TYPEOF(arg)) - THEN - RETURN(false); - END_IF; - RETURN(false); -END_FUNCTION; - -FUNCTION item_in_context(item : representation_item; - cntxt : representation_context) : BOOLEAN; -LOCAL - y : BAG OF representation_item; -END_LOCAL; - IF SIZEOF(USEDIN(item, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION.ITEMS') * - cntxt.representations_in_context) > - 0 - THEN - RETURN(true); - ELSE - y := QUERY(z - <* USEDIN(item, '') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_ITEM' IN TYPEOF(z)); - IF SIZEOF(y) > 0 - THEN - REPEAT i := 1 TO HIINDEX(y); - IF item_in_context(y[i], cntxt) - THEN - RETURN(true); - END_IF; - END_REPEAT; - END_IF; - END_IF; - RETURN(false); -END_FUNCTION; - -FUNCTION leap_year(year : year_number) : BOOLEAN; - IF ((((year MOD 4) = 0) AND ((year MOD 100) <> 0)) OR ((year MOD 400) = 0)) - THEN - RETURN(true); - ELSE - RETURN(false); - END_IF; -END_FUNCTION; - -FUNCTION list_face_loops(f : face) : LIST [0 : ?] OF loop; -LOCAL - loops : LIST [0 : ?] OF loop := []; -END_LOCAL; - REPEAT i := 1 TO SIZEOF(f.bounds); - loops := loops + (f.bounds[i].bound); - END_REPEAT; - RETURN(loops); -END_FUNCTION; - -FUNCTION list_of_topology_reversed(a_list : list_of_reversible_topology_item) : list_of_reversible_topology_item; -LOCAL - the_reverse : list_of_reversible_topology_item; -END_LOCAL; - the_reverse := []; - REPEAT i := 1 TO SIZEOF(a_list); - the_reverse := topology_reversed(a_list[i]) + the_reverse; - END_REPEAT; - RETURN(the_reverse); -END_FUNCTION; - -FUNCTION list_selected_components(aggr : AGGREGATE OF LIST OF maths_value; - k : positive_integer) : LIST OF maths_value; -LOCAL - result : LIST OF maths_value := []; - j : INTEGER := 0; -END_LOCAL; - REPEAT i := LOINDEX(aggr) TO HIINDEX(aggr); - IF k <= SIZEOF(aggr[i]) - THEN - INSERT(result, aggr[i][k], j); - j := j + 1; - END_IF; - END_REPEAT; - RETURN(result); -END_FUNCTION; - -FUNCTION list_to_array(lis : LIST [0 : ?] OF GENERIC : T; - low : INTEGER; - u : INTEGER) : ARRAY [low : u] OF GENERIC : T; -LOCAL - n : INTEGER; - res : ARRAY [low : u] OF GENERIC : T; -END_LOCAL; - n := SIZEOF(lis); - IF (n <> (u - low + 1)) - THEN - RETURN(?); - ELSE - res := [lis[1]:n]; - REPEAT i := 2 TO n; - res[low + i - 1] := lis[i]; - END_REPEAT; - RETURN(res); - END_IF; -END_FUNCTION; - -FUNCTION list_to_set(l : LIST [0 : ?] OF GENERIC : T) : SET OF GENERIC : T; -LOCAL - s : SET OF GENERIC : T := []; -END_LOCAL; - REPEAT i := 1 TO SIZEOF(l); - s := s + l[i]; - END_REPEAT; - RETURN(s); -END_FUNCTION; - -FUNCTION make_array_of_array(lis : LIST [1 : ?] OF LIST [1 : ?] OF GENERIC : T; - low1 : INTEGER; - u1 : INTEGER; - low2 : INTEGER; - u2 : INTEGER) : ARRAY [low1 : u1] OF ARRAY [low2 : u2] OF GENERIC : T; -LOCAL - res : ARRAY [low1 : u1] OF ARRAY [low2 : u2] OF GENERIC : T; -END_LOCAL; - (* Check input dimensions for consistency *) - IF (u1 - low1 + 1) <> SIZEOF(lis) - THEN - RETURN(?); - END_IF; - IF (u2 - low2 + 1) <> SIZEOF(lis[1]) - THEN - RETURN(?); - END_IF; - (* Initialise res with values from lis[1] *) - res := [list_to_array(lis[1], low2, u2):(u1 - low1 + 1)]; - REPEAT i := 2 TO HIINDEX(lis); - IF (u2 - low2 + 1) <> SIZEOF(lis[i]) - THEN - RETURN(?); - END_IF; - res[low1 + i - 1] := list_to_array(lis[i], low2, u2); - END_REPEAT; - RETURN(res); -END_FUNCTION; - -FUNCTION make_array_of_array_of_array(lis : LIST [1 : ?] OF LIST [1 : ?] OF LIST [1 : ?] OF GENERIC : T; - low1 : INTEGER; - u1 : INTEGER; - low2 : INTEGER; - u2 : INTEGER; - low3 : INTEGER; - u3 : INTEGER) : ARRAY [low1 : u1] OF ARRAY [low2 : u2] OF ARRAY [low3 : u3] OF GENERIC : T; -LOCAL - res : ARRAY [low1 : u1] OF ARRAY [low2 : u2] OF ARRAY [low3 : u3] OF GENERIC : T; -END_LOCAL; - (* Check input dimensions for consistency *) - IF (u1 - low1 + 1) <> SIZEOF(lis) - THEN - RETURN(?); - END_IF; - IF (u2 - low2 + 1) <> SIZEOF(lis[1]) - THEN - RETURN(?); - END_IF; - (* Initialise res with values from lis[1] *) - res := [make_array_of_array(lis[1], low2, u2, low3, u3):(u1 - low1 + 1)]; - REPEAT i := 2 TO HIINDEX(lis); - IF (u2 - low2 + 1) <> SIZEOF(lis[i]) - THEN - RETURN(?); - END_IF; - res[low1 + i - 1] := make_array_of_array(lis[i], low2, u2, low3, u3); - END_REPEAT; - RETURN(res); -END_FUNCTION; - -FUNCTION make_atom_based_literal(lit_value : atom_based_value) : atom_based_literal; - RETURN(atom_based_literal(lit_value) || generic_literal() || simple_generic_expression() || generic_expression()); -END_FUNCTION; - -FUNCTION make_binary_literal(lit_value : BINARY) : binary_literal; - RETURN(binary_literal(lit_value) || generic_literal() || simple_generic_expression() || generic_expression()); -END_FUNCTION; - -FUNCTION make_boolean_literal(lit_value : BOOLEAN) : boolean_literal; - RETURN(boolean_literal(lit_value) || simple_boolean_expression() || boolean_expression() || expression() || - generic_expression() || simple_generic_expression() || generic_literal()); -END_FUNCTION; - -FUNCTION make_cartesian_complex_number_region(real_constraint : real_interval; - imag_constraint : real_interval) : cartesian_complex_number_region; - RETURN(cartesian_complex_number_region(real_constraint, imag_constraint) || maths_space() || generic_expression() || - generic_literal() || simple_generic_expression()); -END_FUNCTION; - -FUNCTION make_complex_number_literal(rpart : REAL; - ipart : REAL) : complex_number_literal; - RETURN(complex_number_literal(rpart, ipart) || generic_literal() || simple_generic_expression() || - generic_expression()); -END_FUNCTION; - -FUNCTION make_elementary_function(func_id : elementary_function_enumerators) : elementary_function; - RETURN(elementary_function(func_id) || maths_function() || generic_expression() || generic_literal() || - simple_generic_expression()); -END_FUNCTION; - -FUNCTION make_elementary_space(space_id : elementary_space_enumerators) : elementary_space; - RETURN(elementary_space(space_id) || maths_space() || generic_expression() || generic_literal() || - simple_generic_expression()); -END_FUNCTION; - -FUNCTION make_extended_tuple_space(base : tuple_space; - extender : maths_space) : extended_tuple_space; - RETURN(extended_tuple_space(base, extender) || maths_space() || generic_expression() || generic_literal() || - simple_generic_expression()); -END_FUNCTION; - -FUNCTION make_finite_integer_interval(min : INTEGER; - max : INTEGER) : finite_integer_interval; - RETURN(finite_integer_interval(min, max) || maths_space() || generic_expression() || generic_literal() || - simple_generic_expression()); -END_FUNCTION; - -FUNCTION make_finite_real_interval(min : REAL; - minclo : open_closed; - max : REAL; - maxclo : open_closed) : finite_real_interval; - RETURN(finite_real_interval(min, minclo, max, maxclo) || maths_space() || generic_expression() || - generic_literal() || simple_generic_expression()); -END_FUNCTION; - -FUNCTION make_finite_space(members : SET OF maths_value) : finite_space; - RETURN(finite_space(members) || maths_space() || generic_expression() || generic_literal() || - simple_generic_expression()); -END_FUNCTION; - -FUNCTION make_function_application(afunction : maths_function_select; - arguments : LIST [1 : ?] OF maths_value) : function_application; - RETURN(function_application(afunction, arguments) || - multiple_arity_generic_expression(convert_to_maths_function(afunction) + convert_to_operands(arguments)) || - generic_expression()); -END_FUNCTION; - -FUNCTION make_function_space(domain_constraint : space_constraint_type; - domain_argument : maths_space; - range_constraint : space_constraint_type; - range_argument : maths_space) : function_space; - RETURN(function_space(domain_constraint, domain_argument, range_constraint, range_argument) || maths_space() || - generic_expression() || generic_literal() || simple_generic_expression()); -END_FUNCTION; - -FUNCTION make_int_literal(lit_value : INTEGER) : int_literal; - RETURN(int_literal() || literal_number(lit_value) || simple_numeric_expression() || numeric_expression() || - expression() || generic_expression() || simple_generic_expression() || generic_literal()); -END_FUNCTION; - -FUNCTION make_listed_product_space(factors : LIST OF maths_space) : listed_product_space; - RETURN(listed_product_space(factors) || maths_space() || generic_expression() || generic_literal() || - simple_generic_expression()); -END_FUNCTION; - -FUNCTION make_logical_literal(lit_value : LOGICAL) : logical_literal; - RETURN(logical_literal(lit_value) || generic_literal() || simple_generic_expression() || generic_expression()); -END_FUNCTION; - -FUNCTION make_maths_enum_literal(lit_value : maths_enum_atom) : maths_enum_literal; - RETURN(maths_enum_literal(lit_value) || generic_literal() || simple_generic_expression() || generic_expression()); -END_FUNCTION; - -FUNCTION make_maths_tuple_literal(lit_value : LIST OF maths_value) : maths_tuple_literal; - RETURN(maths_tuple_literal(lit_value) || generic_literal() || simple_generic_expression() || generic_expression()); -END_FUNCTION; - -FUNCTION make_numeric_set(start : maths_number; - delta : maths_number; - incs : positive_integer) : SET [2 : ?] OF maths_number; -LOCAL - i : INTEGER; - numeric_set : SET [2 : ?] OF maths_number := [start,(start + delta)]; -END_LOCAL; - IF incs > 1 - THEN - REPEAT i := 2 TO incs; - numeric_set := numeric_set + (start + (i * delta)); - END_REPEAT; - END_IF; - RETURN(numeric_set); -END_FUNCTION; - -FUNCTION make_parallel_composed_function(srcdom : maths_space_or_function; - prepfuncs : LIST [2 : ?] OF maths_function; - finfunc : maths_function_select) : parallel_composed_function; - RETURN(parallel_composed_function(srcdom, prepfuncs, finfunc) || maths_function() || generic_expression() || - multiple_arity_generic_expression(convert_to_operands_prcmfn(srcdom, prepfuncs, finfunc))); -END_FUNCTION; - -FUNCTION make_polar_complex_number_region(centre : complex_number_literal; - dis_constraint : real_interval; - dir_constraint : finite_real_interval) : polar_complex_number_region; - RETURN(polar_complex_number_region(centre, dis_constraint, dir_constraint) || maths_space() || - generic_expression() || generic_literal() || simple_generic_expression()); -END_FUNCTION; - -FUNCTION make_real_interval_from_min(min : REAL; - minclo : open_closed) : real_interval_from_min; - RETURN(real_interval_from_min(min, minclo) || maths_space() || generic_expression() || generic_literal() || - simple_generic_expression()); -END_FUNCTION; - -FUNCTION make_real_interval_to_max(max : REAL; - maxclo : open_closed) : real_interval_to_max; - RETURN(real_interval_to_max(max, maxclo) || maths_space() || generic_expression() || generic_literal() || - simple_generic_expression()); -END_FUNCTION; - -FUNCTION make_real_literal(lit_value : REAL) : real_literal; - RETURN(real_literal() || literal_number(lit_value) || simple_numeric_expression() || numeric_expression() || - expression() || generic_expression() || simple_generic_expression() || generic_literal()); -END_FUNCTION; - -FUNCTION make_string_literal(lit_value : STRING) : string_literal; - RETURN(string_literal(lit_value) || simple_string_expression() || string_expression() || expression() || - generic_expression() || simple_generic_expression() || generic_literal()); -END_FUNCTION; - -FUNCTION make_uniform_product_space(base : maths_space; - exponent : positive_integer) : uniform_product_space; - RETURN(uniform_product_space(base, exponent) || maths_space() || generic_expression() || generic_literal() || - simple_generic_expression()); -END_FUNCTION; - -FUNCTION max_exists(spc : maths_space) : BOOLEAN; -LOCAL - types : SET OF STRING := TYPEOF(spc); -END_LOCAL; - RETURN(bool(((schema_prefix + 'FINITE_INTEGER_INTERVAL') IN types) OR - ((schema_prefix + 'INTEGER_INTERVAL_TO_MAX') IN types) OR - ((schema_prefix + 'FINITE_REAL_INTERVAL') IN types) OR - ((schema_prefix + 'REAL_INTERVAL_TO_MAX') IN types))); -END_FUNCTION; - -FUNCTION max_included(spc : maths_space) : BOOLEAN; -LOCAL - types : SET OF STRING := TYPEOF(spc); -END_LOCAL; - IF ((schema_prefix + 'FINITE_INTEGER_INTERVAL') IN types) OR ((schema_prefix + 'INTEGER_INTERVAL_TO_MAX') IN types) - THEN - RETURN(true); - END_IF; - IF ((schema_prefix + 'FINITE_REAL_INTERVAL') IN types) - THEN - RETURN(bool(spc\finite_real_interval.max_closure = closed)); - END_IF; - IF ((schema_prefix + 'REAL_INTERVAL_TO_MAX') IN types) - THEN - RETURN(bool(spc\real_interval_to_max.max_closure = closed)); - END_IF; - RETURN(false); -END_FUNCTION; - -FUNCTION md_pmi_name_and_type_correlation(input : annotation_placeholder_occurrence) : BOOLEAN; -LOCAL - pmi_role : STRING := input\annotation_placeholder_occurrence.item\representation_item.name; - dmiawps : SET OF draughting_model_item_association_with_placeholder := input\annotation_placeholder_occurrence.the_draughting_model_item_association_with_placeholders; - v : SET OF STRING := []; -END_LOCAL; - IF (SIZEOF(dmiawps) = 1) - THEN - v := TYPEOF(dmiawps[1]\draughting_model_item_association_with_placeholder.definition); - ELSE - RETURN(false); - END_IF; - IF NOT (pmi_role IN - ['angular dimension', - 'angularity', - 'circular runout', - 'circularity', - 'coaxiality', - 'concentricity', - 'curve dimension', - 'cylindricity', - 'datum', - 'datum target', - 'diameter dimension', - 'flatness', - 'general dimension', - 'general note', - 'general tolerance', - 'label', - 'linear dimension', - 'note', - 'ordinate dimension', - 'parallelism', - 'perpendicularity', - 'position', - 'profile of line', - 'profile of surface', - 'radial dimension', - 'roundness', - 'runout', - 'straightness', - 'surface roughness', - 'symmetry', - 'total runout']) - THEN - RETURN(?); - END_IF; - CASE pmi_role OF - 'angular dimension' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANGULAR_LOCATION' IN v - THEN - RETURN(true); - END_IF; - 'angularity' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANGULARITY_TOLERANCE' IN v - THEN - RETURN(true); - END_IF; - 'circular runout' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_RUNOUT_TOLERANCE' IN v - THEN - RETURN(true); - END_IF; - 'circularity' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROUNDNESS_TOLERANCE' IN v - THEN - RETURN(true); - END_IF; - 'coaxiality' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COAXIALITY_TOLERANCE' IN v - THEN - RETURN(true); - END_IF; - 'concentricity' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONCENTRICITY_TOLERANCE' IN v - THEN - RETURN(true); - END_IF; - 'curve dimension' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSIONAL_SIZE' IN v - THEN - RETURN(true); - END_IF; - 'cylindricity' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CYLINDRICITY_TOLERANCE' IN v - THEN - RETURN(true); - END_IF; - 'datum' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATUM' IN v - THEN - RETURN(true); - END_IF; - 'datum target' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATUM_TARGET' IN v - THEN - RETURN(true); - END_IF; - 'diameter dimension' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSIONAL_SIZE' IN v - THEN - RETURN(true); - END_IF; - 'flatness' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FLATNESS_TOLERANCE' IN v - THEN - RETURN(true); - END_IF; - 'general dimension' : IF (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSIONAL_SIZE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSIONAL_LOCATION'] * - v) = - 1) - THEN - RETURN(true); - END_IF; - 'general note' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION' IN v - THEN - RETURN(true); - END_IF; - 'general tolerance' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_TOLERANCE' IN v - THEN - RETURN(true); - END_IF; - 'label' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION' IN v - THEN - RETURN(true); - END_IF; - 'linear dimension' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSIONAL_SIZE' IN v - THEN - RETURN(true); - END_IF; - 'note' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION' IN v - THEN - RETURN(true); - END_IF; - 'ordinate dimension' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSIONAL_SIZE' IN v - THEN - RETURN(true); - END_IF; - 'parallelism' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PARALLELISM_TOLERANCE' IN v - THEN - RETURN(true); - END_IF; - 'perpendicularity' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PERPENDICULARITY_TOLERANCE' IN v - THEN - RETURN(true); - END_IF; - 'position' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITION_TOLERANCE' IN v - THEN - RETURN(true); - END_IF; - 'profile of line' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE_PROFILE_TOLERANCE' IN v - THEN - RETURN(true); - END_IF; - 'profile of surface' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_PROFILE_TOLERANCE' IN v - THEN - RETURN(true); - END_IF; - 'radial dimension' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSIONAL_SIZE' IN v - THEN - RETURN(true); - END_IF; - 'roundness' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROUNDNESS_TOLERANCE' IN v - THEN - RETURN(true); - END_IF; - 'runout' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TOTAL_RUNOUT_TOLERANCE' IN v - THEN - RETURN(true); - END_IF; - 'straightness' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STRAIGHTNESS_TOLERANCE' IN v - THEN - RETURN(true); - END_IF; - 'surface roughness' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION' IN v - THEN - RETURN(true); - END_IF; - 'symmetry' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SYMMETRY_TOLERANCE' IN v - THEN - RETURN(true); - END_IF; - 'total runout' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TOTAL_RUNOUT_TOLERANCE' IN v - THEN - RETURN(true); - END_IF; - OTHERWISE: RETURN(false); - END_CASE; -END_FUNCTION; - -FUNCTION md_valid_content_in_geometric_set_for_placeholder(input : geometric_set) : BOOLEAN; -LOCAL - pass : BOOLEAN := true; - boxes : BAG OF planar_box := []; - texts : BAG OF annotation_text := []; - placements : BAG OF placement := []; - points : BAG OF point := []; -END_LOCAL; - REPEAT i := LOINDEX(input\geometric_set.elements) TO HIINDEX(input\geometric_set.elements); - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT' IN TYPEOF(input\geometric_set.elements[i])) AND - NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CARTESIAN_POINT', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_CURVE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_SURFACE'] * - TYPEOF(input\geometric_set.elements[i])) = - 1) - THEN - pass := false; - ELSE - points := points + input\geometric_set.elements[i]; - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_BOX' IN TYPEOF(input\geometric_set.elements[i]) - THEN - boxes := boxes + input\geometric_set.elements[i]; - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT' IN TYPEOF(input\geometric_set.elements[i]) - THEN - texts := texts + input\geometric_set.elements[i]; - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' IN TYPEOF(input\geometric_set.elements[i]) - THEN - placements := placements + input\geometric_set.elements[i]; - END_IF; - END_REPEAT; - IF SIZEOF(boxes) > 1 - THEN - pass := false; - END_IF; - IF SIZEOF(texts) > 1 - THEN - pass := false; - END_IF; - IF SIZEOF(points) < 1 - THEN - pass := false; - END_IF; - IF SIZEOF(placements) <> 1 - THEN - pass := false; - END_IF; - RETURN(pass); -END_FUNCTION; - -FUNCTION member_of(val : GENERIC : G; - spc : maths_space) : LOGICAL; --- Trivial function introduced to avoid NIST Fedex compiler error -FUNCTION fedex(val : AGGREGATE OF GENERIC : X; - i : INTEGER) : GENERIC : X; - RETURN(val[i]); -END_FUNCTION; -LOCAL - v : maths_value := simplify_maths_value(convert_to_maths_value(val)); - vtypes : SET OF STRING := stripped_typeof(v); - s : maths_space := simplify_maths_space(spc); - stypes : SET OF STRING := stripped_typeof(s); - tmp_int : INTEGER; - tmp_real : REAL; - tmp_cmplx : complex_number_literal; - lgcl : LOGICAL; - cum : LOGICAL; - vspc : maths_space; - sspc : maths_space; - smem : SET OF maths_value; - factors : LIST OF maths_space; -END_LOCAL; - IF NOT EXISTS(s) - THEN - RETURN(false); - END_IF; - IF NOT EXISTS(v) - THEN - RETURN(s = the_generics); - END_IF; - IF ('GENERIC_EXPRESSION' IN vtypes) AND - NOT ('MATHS_SPACE' IN vtypes) AND NOT ('MATHS_FUNCTION' IN vtypes) AND NOT ('COMPLEX_NUMBER_LITERAL' IN vtypes) - THEN - IF has_values_space(v) - THEN - vspc := values_space_of(v); - IF subspace_of(vspc, s) - THEN - RETURN(true); - END_IF; - IF NOT compatible_spaces(vspc, s) - THEN - RETURN(false); - END_IF; - RETURN(unknown); - END_IF; - RETURN(unknown); - END_IF; - IF 'ELEMENTARY_SPACE' IN stypes - THEN - CASE s\elementary_space.space_id OF - es_numbers : RETURN(('NUMBER' IN vtypes) OR ('COMPLEX_NUMBER_LITERAL' IN vtypes)); - es_complex_numbers : RETURN('COMPLEX_NUMBER_LITERAL' IN vtypes); - es_reals : RETURN(('REAL' IN vtypes) AND NOT ('INTEGER' IN vtypes)); - es_integers : RETURN('INTEGER' IN vtypes); - es_logicals : RETURN('LOGICAL' IN vtypes); - es_booleans : RETURN('BOOLEAN' IN vtypes); - es_strings : RETURN('STRING' IN vtypes); - es_binarys : RETURN('BINARY' IN vtypes); - es_maths_spaces : RETURN('MATHS_SPACE' IN vtypes); - es_maths_functions : RETURN('MATHS_FUNCTION' IN vtypes); - es_generics : RETURN(true); - END_CASE; - END_IF; - IF 'FINITE_INTEGER_INTERVAL' IN stypes - THEN - IF 'INTEGER' IN vtypes - THEN - tmp_int := v; - RETURN({s\finite_integer_interval.min <= tmp_int <= s\finite_integer_interval.max}); - END_IF; - RETURN(false); - END_IF; - IF 'INTEGER_INTERVAL_FROM_MIN' IN stypes - THEN - IF 'INTEGER' IN vtypes - THEN - tmp_int := v; - RETURN(s\integer_interval_from_min.min <= tmp_int); - END_IF; - RETURN(false); - END_IF; - IF 'INTEGER_INTERVAL_TO_MAX' IN stypes - THEN - IF 'INTEGER' IN vtypes - THEN - tmp_int := v; - RETURN(tmp_int <= s\integer_interval_to_max.max); - END_IF; - RETURN(false); - END_IF; - IF 'FINITE_REAL_INTERVAL' IN stypes - THEN - IF ('REAL' IN vtypes) AND NOT ('INTEGER' IN vtypes) - THEN - tmp_real := v; - IF s\finite_real_interval.min_closure = closed - THEN - IF s\finite_real_interval.max_closure = closed - THEN - RETURN({s\finite_real_interval.min <= tmp_real <= s\finite_real_interval.max}); - ELSE - RETURN({s\finite_real_interval.min <= tmp_real < s\finite_real_interval.max}); - END_IF; - ELSE - IF s\finite_real_interval.max_closure = closed - THEN - RETURN({s\finite_real_interval.min < tmp_real <= s\finite_real_interval.max}); - ELSE - RETURN({s\finite_real_interval.min < tmp_real < s\finite_real_interval.max}); - END_IF; - END_IF; - END_IF; - RETURN(false); - END_IF; - IF 'REAL_INTERVAL_FROM_MIN' IN stypes - THEN - IF ('REAL' IN vtypes) AND NOT ('INTEGER' IN vtypes) - THEN - tmp_real := v; - IF s\real_interval_from_min.min_closure = closed - THEN - RETURN(s\real_interval_from_min.min <= tmp_real); - ELSE - RETURN(s\real_interval_from_min.min < tmp_real); - END_IF; - END_IF; - RETURN(false); - END_IF; - IF 'REAL_INTERVAL_TO_MAX' IN stypes - THEN - IF ('REAL' IN vtypes) AND NOT ('INTEGER' IN vtypes) - THEN - tmp_real := v; - IF s\real_interval_to_max.max_closure = closed - THEN - RETURN(tmp_real <= s\real_interval_to_max.max); - ELSE - RETURN(tmp_real < s\real_interval_to_max.max); - END_IF; - END_IF; - RETURN(false); - END_IF; - IF 'CARTESIAN_COMPLEX_NUMBER_REGION' IN stypes - THEN - IF 'COMPLEX_NUMBER_LITERAL' IN vtypes - THEN - RETURN(member_of(v\complex_number_literal.real_part, s\cartesian_complex_number_region.real_constraint) AND - member_of(v\complex_number_literal.imag_part, s\cartesian_complex_number_region.imag_constraint)); - END_IF; - RETURN(false); - END_IF; - IF 'POLAR_COMPLEX_NUMBER_REGION' IN stypes - THEN - IF 'COMPLEX_NUMBER_LITERAL' IN vtypes - THEN - tmp_cmplx := v; - tmp_cmplx.real_part := tmp_cmplx.real_part - s\polar_complex_number_region.centre.real_part; - tmp_cmplx.imag_part := tmp_cmplx.imag_part - s\polar_complex_number_region.centre.imag_part; - tmp_real := SQRT(tmp_cmplx.real_part ** 2 + tmp_cmplx.imag_part ** 2); - IF NOT member_of(tmp_real, s\polar_complex_number_region.distance_constraint) - THEN - RETURN(false); - END_IF; - IF tmp_real = 0.0 - THEN - RETURN(true); - END_IF; - tmp_real := atan2(tmp_cmplx.imag_part, tmp_cmplx.real_part); - RETURN(member_of(tmp_real, s\polar_complex_number_region.direction_constraint) OR - member_of(tmp_real + 2.0 * PI, s\polar_complex_number_region.direction_constraint)); - END_IF; - RETURN(false); - END_IF; - IF 'FINITE_SPACE' IN stypes - THEN - smem := s\finite_space.members; - cum := false; - REPEAT i := 1 TO SIZEOF(smem); - cum := cum OR equal_maths_values(v, smem[i]); - IF cum = true - THEN - RETURN(true); - END_IF; - END_REPEAT; - RETURN(cum); - END_IF; - IF 'UNIFORM_PRODUCT_SPACE' IN stypes - THEN - IF 'LIST' IN vtypes - THEN - IF SIZEOF(v) = s\uniform_product_space.exponent - THEN - sspc := s\uniform_product_space.base; - cum := true; - REPEAT i := 1 TO SIZEOF(v); - cum := cum AND member_of(v[i], sspc); - IF cum = false - THEN - RETURN(false); - END_IF; - END_REPEAT; - RETURN(cum); - END_IF; - END_IF; - RETURN(false); - END_IF; - IF 'LISTED_PRODUCT_SPACE' IN stypes - THEN - IF 'LIST' IN vtypes - THEN - factors := s\listed_product_space.factors; - IF SIZEOF(v) = SIZEOF(factors) - THEN - cum := true; - REPEAT i := 1 TO SIZEOF(v); - cum := cum AND member_of(v[i], factors[i]); - IF cum = false - THEN - RETURN(false); - END_IF; - END_REPEAT; - RETURN(cum); - END_IF; - END_IF; - RETURN(false); - END_IF; - IF 'EXTENDED_TUPLE_SPACE' IN stypes - THEN - IF 'LIST' IN vtypes - THEN - sspc := s\extended_tuple_space.base; - tmp_int := space_dimension(sspc); - IF SIZEOF(v) >= tmp_int - THEN - cum := true; - REPEAT i := 1 TO tmp_int; - cum := cum AND member_of(v[i], factor_space(sspc, i)); - IF cum = false - THEN - RETURN(false); - END_IF; - END_REPEAT; - sspc := s\extended_tuple_space.extender; - REPEAT i := tmp_int + 1 TO SIZEOF(v); - cum := cum AND member_of(v[i], sspc); - IF cum = false - THEN - RETURN(false); - END_IF; - END_REPEAT; - RETURN(cum); - END_IF; - END_IF; - RETURN(false); - END_IF; - IF 'FUNCTION_SPACE' IN stypes - THEN - IF 'MATHS_FUNCTION' IN vtypes - THEN - vspc := v\maths_function.domain; - sspc := s\function_space.domain_argument; - CASE s\function_space.domain_constraint OF - sc_equal : cum := equal_maths_spaces(vspc, sspc); - sc_subspace : cum := subspace_of(vspc, sspc); - sc_member : cum := member_of(vspc, sspc); - END_CASE; - IF cum = false - THEN - RETURN(false); - END_IF; - vspc := v\maths_function.range; - sspc := s\function_space.range_argument; - CASE s\function_space.range_constraint OF - sc_equal : cum := cum AND equal_maths_spaces(vspc, sspc); - sc_subspace : cum := cum AND subspace_of(vspc, sspc); - sc_member : cum := cum AND member_of(vspc, sspc); - END_CASE; - RETURN(cum); - END_IF; - RETURN(false); - END_IF; - RETURN(unknown); -END_FUNCTION; - -FUNCTION min_exists(spc : maths_space) : BOOLEAN; -LOCAL - types : SET OF STRING := TYPEOF(spc); -END_LOCAL; - RETURN(bool(((schema_prefix + 'FINITE_INTEGER_INTERVAL') IN types) OR - ((schema_prefix + 'INTEGER_INTERVAL_FROM_MIN') IN types) OR - ((schema_prefix + 'FINITE_REAL_INTERVAL') IN types) OR - ((schema_prefix + 'REAL_INTERVAL_FROM_MIN') IN types))); -END_FUNCTION; - -FUNCTION min_included(spc : maths_space) : BOOLEAN; -LOCAL - types : SET OF STRING := TYPEOF(spc); -END_LOCAL; - IF ((schema_prefix + 'FINITE_INTEGER_INTERVAL') IN types) OR ((schema_prefix + 'INTEGER_INTERVAL_FROM_MIN') IN types) - THEN - RETURN(true); - END_IF; - IF ((schema_prefix + 'FINITE_REAL_INTERVAL') IN types) - THEN - RETURN(bool(spc\finite_real_interval.min_closure = closed)); - END_IF; - IF ((schema_prefix + 'REAL_INTERVAL_FROM_MIN') IN types) - THEN - RETURN(bool(spc\real_interval_from_min.min_closure = closed)); - END_IF; - RETURN(false); -END_FUNCTION; - -FUNCTION mixed_loop_type_set(l : SET [0 : ?] OF loop) : LOGICAL; -LOCAL - poly_loop_type : LOGICAL; -END_LOCAL; - IF (SIZEOF(l) <= 1) - THEN - RETURN(false); - END_IF; - poly_loop_type := ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLY_LOOP' IN TYPEOF(l[1])); - REPEAT i := 2 TO SIZEOF(l); - IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLY_LOOP' IN TYPEOF(l[i])) <> poly_loop_type) - THEN - RETURN(true); - END_IF; - END_REPEAT; - RETURN(false); -END_FUNCTION; - -FUNCTION msb_shells(brep : manifold_solid_brep) : SET [1 : ?] OF closed_shell; -LOCAL - return_set : SET [1 : ?] OF closed_shell := [brep.outer]; -END_LOCAL; - IF SIZEOF(QUERY(msbtype <* TYPEOF(brep) | msbtype LIKE '*BREP_WITH_VOIDS')) >= 1 - THEN - return_set := return_set + brep\brep_with_voids.voids; - END_IF; - RETURN(return_set); -END_FUNCTION; - -FUNCTION msf_curve_check(cv : representation_item) : BOOLEAN; -(* This function varifies the validity of a curve in the context of a - manifold surface model. Representation_items are - valid input, however, they are supposed to be curves; otherwise - this function will return false. - *) -(* complex subtypes of curve that are both bounded_curve and - oneof conic, curve_replica, line, or offset_curve_3d are not - valid - *) - (* This function varifies the validity of a curve in the context of a - manifold surface model. Representation_items are - valid input, however, they are supposed to be curves; otherwise - this function will return false. - *) - (* complex subtypes of curve that are both bounded_curve and - oneof conic, curve_replica, line, or offset_curve_3d are not - valid - *) - IF SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOUNDED_CURVE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONIC', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_REPLICA', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OFFSET_CURVE_3D'] * - TYPEOF(cv)) > - 1 - THEN - RETURN(false); - END_IF; - (* b_spline_curves shall not self-intersect - *) - IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE' IN TYPEOF(cv)) AND - (cv\b_spline_curve.self_intersect = false) OR - (cv\b_spline_curve.self_intersect = unknown)) - THEN - RETURN(true); - ELSE - IF SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONIC', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE'] * - TYPEOF(cv)) = - 1 - THEN - RETURN(true); - ELSE - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_REPLICA' IN TYPEOF(cv) - THEN - RETURN(msf_curve_check(cv\curve_replica.parent_curve)); - ELSE - IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OFFSET_CURVE_3D' IN TYPEOF(cv)) AND - ((cv\offset_curve_3d.self_intersect = false) OR (cv\offset_curve_3d.self_intersect = unknown)) AND - (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYLINE' IN - TYPEOF(cv\offset_curve_3d.basis_curve)))) - THEN - RETURN(msf_curve_check(cv\offset_curve_3d.basis_curve)); - ELSE - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PCURVE' IN TYPEOF(cv) - THEN - RETURN((msf_curve_check(cv\pcurve.reference_to_curve\representation.items[1])) AND - (msf_surface_check(cv\pcurve.basis_surface))); - ELSE - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_CURVE' IN TYPEOF(cv) - THEN - IF msf_curve_check(cv\surface_curve.curve_3d) - THEN - REPEAT i := 1 TO SIZEOF(cv\surface_curve.associated_geometry); - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE' IN - TYPEOF(cv\surface_curve.associated_geometry[i]) - THEN - IF NOT msf_surface_check(cv\surface_curve.associated_geometry[i]) - THEN - RETURN(false); - END_IF; - ELSE - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PCURVE' IN - TYPEOF(cv\surface_curve.associated_geometry[i]) - THEN - IF NOT msf_curve_check(cv\surface_curve.associated_geometry[i]) - THEN - RETURN(false); - END_IF; - END_IF; - END_IF; - END_REPEAT; - RETURN(true); - END_IF; - ELSE - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYLINE' IN TYPEOF(cv) - THEN - IF (SIZEOF(cv\polyline.points) >= 3) - THEN - RETURN(true); - END_IF; - END_IF; - END_IF; - END_IF; - END_IF; - END_IF; - END_IF; - END_IF; - (* FALSE is returned if the input parameter cv is not a valid curve. - *) - RETURN(false); -END_FUNCTION; - -FUNCTION msf_surface_check(surf : surface) : BOOLEAN; -(* This function varifies the validity of a surface in the - context of a manifold surface model. - *) -(* elementary_surfaces are valid surface types - *) - (* This function varifies the validity of a surface in the - context of a manifold surface model. - *) - (* elementary_surfaces are valid surface types - *) - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ELEMENTARY_SURFACE' IN TYPEOF(surf) - THEN - RETURN(true); - ELSE - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SWEPT_SURFACE' IN TYPEOF(surf) - THEN - RETURN(msf_curve_check(surf\swept_surface.swept_curve)); - ELSE - IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OFFSET_SURFACE' IN TYPEOF(surf)) AND - (surf\offset_surface.self_intersect = false) OR - (surf\offset_surface.self_intersect = unknown)) - THEN - RETURN(msf_surface_check(surf\offset_surface.basis_surface)); - ELSE - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_REPLICA' IN TYPEOF(surf) - THEN - RETURN(msf_surface_check(surf\surface_replica.parent_surface)); - ELSE - IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_SURFACE' IN TYPEOF(surf)) AND - (surf\b_spline_surface.self_intersect = false) OR - (surf\b_spline_surface.self_intersect = unknown)) - THEN - RETURN(true); - END_IF; - END_IF; - END_IF; - END_IF; - END_IF; - RETURN(false); -END_FUNCTION; - -FUNCTION nmsf_curve_check(cv : representation_item) : BOOLEAN; -(* This function varifies the validity of a curve in the context of a - non-manifold surface model. Representation_items are - valid input, however, they are supposed to be curves; otherwise - this function will return false. - *) -(* complex subtypes of curve that are both bounded_curve and - oneof conic, curve_replica, line, or offset_curve_3d are not - valid - *) - (* This function varifies the validity of a curve in the context of a - non-manifold surface model. Representation_items are - valid input, however, they are supposed to be curves; otherwise - this function will return false. - *) - (* complex subtypes of curve that are both bounded_curve and - oneof conic, curve_replica, line, or offset_curve_3d are not - valid - *) - IF SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOUNDED_CURVE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONIC', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_REPLICA', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OFFSET_CURVE_3D'] * - TYPEOF(cv)) > - 1 - THEN - RETURN(false); - ELSE - IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE' IN TYPEOF(cv)) AND - (cv\b_spline_curve.self_intersect = false) OR - (cv\b_spline_curve.self_intersect = unknown)) - THEN - RETURN(true); - ELSE - IF SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONIC', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE'] * - TYPEOF(cv)) = - 1 - THEN - RETURN(true); - ELSE - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_REPLICA' IN TYPEOF(cv) - THEN - RETURN(nmsf_curve_check(cv\curve_replica.parent_curve)); - ELSE - IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OFFSET_CURVE_3D' IN TYPEOF(cv)) AND - ((cv\offset_curve_3d.self_intersect = false) OR (cv\offset_curve_3d.self_intersect = unknown)) AND - (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYLINE' IN - TYPEOF(cv\offset_curve_3d.basis_curve)))) - THEN - RETURN(nmsf_curve_check(cv\offset_curve_3d.basis_curve)); - ELSE - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PCURVE' IN TYPEOF(cv) - THEN - RETURN((nmsf_curve_check(cv\pcurve.reference_to_curve\representation.items[1])) AND - (nmsf_surface_check(cv\pcurve.basis_surface))); - ELSE - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_CURVE' IN TYPEOF(cv) - THEN - IF nmsf_curve_check(cv\surface_curve.curve_3d) - THEN - REPEAT i := 1 TO SIZEOF(cv\surface_curve.associated_geometry); - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE' IN - TYPEOF(cv\surface_curve.associated_geometry[i]) - THEN - IF NOT nmsf_surface_check(cv\surface_curve.associated_geometry[i]) - THEN - RETURN(false); - END_IF; - ELSE - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PCURVE' IN - TYPEOF(cv\surface_curve.associated_geometry[i]) - THEN - IF NOT nmsf_curve_check(cv\surface_curve.associated_geometry[i]) - THEN - RETURN(false); - END_IF; - END_IF; - END_IF; - END_REPEAT; - RETURN(true); - END_IF; - ELSE - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYLINE' IN TYPEOF(cv) - THEN - IF (SIZEOF(cv\polyline.points) >= 3) - THEN - RETURN(true); - END_IF; - END_IF; - END_IF; - END_IF; - END_IF; - END_IF; - END_IF; - END_IF; - END_IF; - (* FALSE is returned if the input parameter cv is not a valid curve. - *) - RETURN(false); -END_FUNCTION; - -FUNCTION nmsf_surface_check(surf : surface) : BOOLEAN; -(* This function varifies the validity of a surface in the - context of a non-manifold surface model. - *) -(* elementary_surfaces are valid surface types - *) - (* This function varifies the validity of a surface in the - context of a non-manifold surface model. - *) - (* elementary_surfaces are valid surface types - *) - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ELEMENTARY_SURFACE' IN TYPEOF(surf) - THEN - RETURN(true); - ELSE - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SWEPT_SURFACE' IN TYPEOF(surf) - THEN - RETURN(nmsf_curve_check(surf\swept_surface.swept_curve)); - ELSE - IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OFFSET_SURFACE' IN TYPEOF(surf)) AND - (surf\offset_surface.self_intersect = false) OR - (surf\offset_surface.self_intersect = unknown)) - THEN - RETURN(nmsf_surface_check(surf\offset_surface.basis_surface)); - ELSE - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_REPLICA' IN TYPEOF(surf) - THEN - RETURN(nmsf_surface_check(surf\surface_replica.parent_surface)); - ELSE - IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_SURFACE' IN TYPEOF(surf)) AND - (surf\b_spline_surface.self_intersect = false) OR - (surf\b_spline_surface.self_intersect = unknown)) - THEN - RETURN(true); - END_IF; - END_IF; - END_IF; - END_IF; - END_IF; - RETURN(false); -END_FUNCTION; - -FUNCTION no_cyclic_domain_reference(ref : maths_space_or_function; - used : SET OF maths_function) : BOOLEAN; -LOCAL - typenames : SET OF STRING := TYPEOF(ref); - func : maths_function; -END_LOCAL; - IF (NOT EXISTS(ref)) OR (NOT EXISTS(used)) - THEN - RETURN(false); - END_IF; - IF (schema_prefix + 'MATHS_SPACE') IN typenames - THEN - RETURN(true); - END_IF; - func := ref; - IF func IN used - THEN - RETURN(false); - END_IF; - IF (schema_prefix + 'CONSTANT_FUNCTION') IN typenames - THEN - RETURN(no_cyclic_domain_reference(func\constant_function.source_of_domain, used + [func])); - END_IF; - IF (schema_prefix + 'SELECTOR_FUNCTION') IN typenames - THEN - RETURN(no_cyclic_domain_reference(func\selector_function.source_of_domain, used + [func])); - END_IF; - IF (schema_prefix + 'PARALLEL_COMPOSED_FUNCTION') IN typenames - THEN - RETURN(no_cyclic_domain_reference(func\parallel_composed_function.source_of_domain, used + [func])); - END_IF; - RETURN(true); -END_FUNCTION; - -FUNCTION no_cyclic_space_reference(spc : maths_space; - refs : SET OF maths_space) : BOOLEAN; -LOCAL - types : SET OF STRING; - refs_plus : SET OF maths_space; -END_LOCAL; - IF (spc IN refs) - THEN - RETURN(false); - END_IF; - types := TYPEOF(spc); - refs_plus := refs + spc; - IF (schema_prefix + 'FINITE_SPACE') IN types - THEN - RETURN(bool(SIZEOF(QUERY(sp - <* QUERY(mem <* spc\finite_space.members | (schema_prefix + 'MATHS_SPACE') IN TYPEOF(mem)) - | NOT no_cyclic_space_reference(sp, refs_plus))) = - 0)); - END_IF; - IF (schema_prefix + 'UNIFORM_PRODUCT_SPACE') IN types - THEN - RETURN(no_cyclic_space_reference(spc\uniform_product_space.base, refs_plus)); - END_IF; - IF (schema_prefix + 'LISTED_PRODUCT_SPACE') IN types - THEN - RETURN(bool(SIZEOF(QUERY(fac - <* spc\listed_product_space.factors - | NOT no_cyclic_space_reference(fac, refs_plus))) = - 0)); - END_IF; - IF (schema_prefix + 'EXTENDED_TUPLE_SPACE') IN types - THEN - RETURN(no_cyclic_space_reference(spc\extended_tuple_space.base, refs_plus) AND - no_cyclic_space_reference(spc\extended_tuple_space.extender, refs_plus)); - END_IF; - RETURN(true); -END_FUNCTION; - -FUNCTION nondecreasing(lr : LIST OF REAL) : BOOLEAN; - IF NOT EXISTS(lr) - THEN - RETURN(false); - END_IF; - REPEAT j := 2 TO SIZEOF(lr); - IF lr[j] < lr[j - 1] - THEN - RETURN(false); - END_IF; - END_REPEAT; - RETURN(true); -END_FUNCTION; - -FUNCTION normalise(arg : vector_or_direction) : vector_or_direction; -LOCAL - ndim : INTEGER; - v : direction := dummy_gri || direction([1.0,0.0,0.0]); - result : vector_or_direction; - vec : vector := dummy_gri || vector(v, 1.0); - mag : REAL; -END_LOCAL; - IF NOT EXISTS(arg) - THEN - result := ?; - ELSE - ndim := arg.dim; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VECTOR' IN TYPEOF(arg) - THEN - BEGIN - v := dummy_gri || direction(arg\vector.orientation.direction_ratios); - IF arg\vector.magnitude = 0.0 - THEN - RETURN(?); - ELSE - vec := dummy_gri || vector(v, 1.0); - END_IF; - END; - ELSE - v := dummy_gri || direction(arg.direction_ratios); - END_IF; - mag := 0.0; - REPEAT i := 1 TO ndim; - mag := mag + v.direction_ratios[i] * v.direction_ratios[i]; - END_REPEAT; - IF mag > 0.0 - THEN - mag := SQRT(mag); - REPEAT i := 1 TO ndim; - v.direction_ratios[i] := v.direction_ratios[i] / mag; - END_REPEAT; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VECTOR' IN TYPEOF(arg) - THEN - vec.orientation := v; - result := vec; - ELSE - result := v; - END_IF; - ELSE - RETURN(?); - END_IF; - END_IF; - RETURN(result); -END_FUNCTION; - -FUNCTION number_superspace_of(spc : maths_space) : elementary_space; - IF subspace_of_es(spc, es_integers) - THEN - RETURN(the_integers); - END_IF; - IF subspace_of_es(spc, es_reals) - THEN - RETURN(the_reals); - END_IF; - IF subspace_of_es(spc, es_complex_numbers) - THEN - RETURN(the_complex_numbers); - END_IF; - IF subspace_of_es(spc, es_numbers) - THEN - RETURN(the_numbers); - END_IF; - RETURN(?); -END_FUNCTION; - -FUNCTION number_tuple_subspace_check(spc : maths_space) : LOGICAL; -LOCAL - types : SET OF STRING := stripped_typeof(spc); - factors : LIST OF maths_space; - cum : LOGICAL := true; -END_LOCAL; - IF 'UNIFORM_PRODUCT_SPACE' IN types - THEN - RETURN(subspace_of_es(spc\uniform_product_space.base, es_numbers)); - END_IF; - IF 'LISTED_PRODUCT_SPACE' IN types - THEN - factors := spc\listed_product_space.factors; - REPEAT i := 1 TO SIZEOF(factors); - cum := cum AND subspace_of_es(factors[i], es_numbers); - END_REPEAT; - RETURN(cum); - END_IF; - IF 'EXTENDED_TUPLE_SPACE' IN types - THEN - cum := subspace_of_es(spc\extended_tuple_space.extender, es_numbers); - cum := cum AND number_tuple_subspace_check(spc\extended_tuple_space.base); - RETURN(cum); - END_IF; - RETURN(false); -END_FUNCTION; - -FUNCTION one_tuples_of(spc : maths_space) : tuple_space; - RETURN(make_uniform_product_space(spc, 1)); -END_FUNCTION; - -FUNCTION open_path_based_inner_boundary(input : SET OF primitive_2d) : BOOLEAN; -LOCAL - pass : BOOLEAN := true; -END_LOCAL; - REPEAT i := 1 TO SIZEOF(input); - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PATH_AREA_WITH_PARAMETERS' IN TYPEOF(input[i])) AND - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCLE' IN - TYPEOF(input[i]\mapped_item.mapping_source\representation_map.mapping_origin)) OR - (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_CURVE' IN - TYPEOF(input[i]\mapped_item.mapping_source\representation_map.mapping_origin)) AND - (input[i]\mapped_item.mapping_source\representation_map.mapping_origin\composite_curve.closed_curve = true))) - THEN - pass := false; - END_IF; - END_REPEAT; - RETURN(pass); -END_FUNCTION; - -FUNCTION open_shell_reversed(a_shell : open_shell) : oriented_open_shell; -LOCAL - the_reverse : oriented_open_shell; -END_LOCAL; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORIENTED_OPEN_SHELL' IN TYPEOF(a_shell)) - THEN - the_reverse := dummy_tri || connected_face_set(a_shell\connected_face_set.cfs_faces) || open_shell() || - oriented_open_shell(a_shell\oriented_open_shell.open_shell_element, - (NOT (a_shell\oriented_open_shell.orientation))); - ELSE - the_reverse := dummy_tri || connected_face_set(a_shell\connected_face_set.cfs_faces) || open_shell() || - oriented_open_shell(a_shell, false); - END_IF; - RETURN(the_reverse); -END_FUNCTION; - -FUNCTION orthogonal_complement(vec : direction) : direction; -LOCAL - result : direction; -END_LOCAL; - IF (vec.dim <> 2) OR NOT EXISTS(vec) - THEN - RETURN(?); - ELSE - result := dummy_gri || direction([-vec.direction_ratios[2],vec.direction_ratios[1]]); - RETURN(result); - END_IF; -END_FUNCTION; - -FUNCTION parallel_composed_function_composability_check(funcs : LIST OF maths_function; - final : maths_function_select) : BOOLEAN; -LOCAL - tplsp : tuple_space := the_zero_tuple_space; - finfun : maths_function := convert_to_maths_function(final); -END_LOCAL; - REPEAT i := 1 TO SIZEOF(funcs); - tplsp := assoc_product_space(tplsp, funcs[i].range); - END_REPEAT; - RETURN(compatible_spaces(tplsp, finfun.domain)); -END_FUNCTION; - -FUNCTION parallel_composed_function_domain_check(comdom : tuple_space; - funcs : LIST OF maths_function) : BOOLEAN; - REPEAT i := 1 TO SIZEOF(funcs); - IF NOT (compatible_spaces(comdom, funcs[i].domain)) - THEN - RETURN(false); - END_IF; - END_REPEAT; - RETURN(true); -END_FUNCTION; - -FUNCTION parse_express_identifier(s : STRING; - i : positive_integer) : positive_integer; -LOCAL - k : positive_integer; -END_LOCAL; - k := i; - IF i <= LENGTH(s) - THEN - IF (s[i] LIKE '@') - THEN - REPEAT UNTIL (k > LENGTH(s)) OR ((s[k] <> '_') AND NOT (s[k] LIKE '@') AND NOT (s[k] LIKE '#')); - k := k + 1; - END_REPEAT; - END_IF; - END_IF; - RETURN(k); -END_FUNCTION; - -FUNCTION partial_derivative_check(domain : tuple_space; - d_vars : LIST [1 : ?] OF input_selector) : BOOLEAN; -LOCAL - domn : tuple_space := domain; - fspc : maths_space; - dim : INTEGER; - k : INTEGER; -END_LOCAL; - IF (space_dimension(domain) = 1) AND ((schema_prefix + 'TUPLE_SPACE') IN TYPEOF(factor1(domain))) - THEN - domn := factor1(domain); - END_IF; - dim := space_dimension(domn); - REPEAT i := 1 TO SIZEOF(d_vars); - k := d_vars[i]; - IF k > dim - THEN - RETURN(false); - END_IF; - fspc := factor_space(domn, k); - IF (NOT subspace_of_es(fspc, es_reals)) AND (NOT subspace_of_es(fspc, es_complex_numbers)) - THEN - RETURN(false); - END_IF; - END_REPEAT; - RETURN(true); -END_FUNCTION; - -FUNCTION path_head_to_tail(a_path : path) : LOGICAL; -LOCAL - n : INTEGER; - p : LOGICAL := true; -END_LOCAL; - n := SIZEOF(a_path.edge_list); - REPEAT i := 2 TO n; - p := p AND (a_path.edge_list[i - 1].edge_end :=: a_path.edge_list[i].edge_start); - END_REPEAT; - RETURN(p); -END_FUNCTION; - -FUNCTION path_reversed(a_path : path) : oriented_path; -LOCAL - the_reverse : oriented_path; -END_LOCAL; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORIENTED_PATH' IN TYPEOF(a_path)) - THEN - the_reverse := dummy_tri || path(list_of_topology_reversed(a_path.edge_list)) || - oriented_path(a_path\oriented_path.path_element, NOT (a_path\oriented_path.orientation)); - ELSE - the_reverse := dummy_tri || path(list_of_topology_reversed(a_path.edge_list)) || oriented_path(a_path, false); - END_IF; - RETURN(the_reverse); -END_FUNCTION; - -FUNCTION plane_angle_for_pair_in_radian(pair : kinematic_pair; - angle : plane_angle_measure) : plane_angle_measure; -LOCAL - converted_angle : plane_angle_measure := angle; - link_rep : kinematic_link_representation := representation_of_link(pair.joint.edge_start); - link_cntxt : representation_context; - pa_units : SET OF unit := []; - pau : unit; -END_LOCAL; - link_cntxt := link_rep\representation.context_of_items; - IF NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GLOBAL_UNIT_ASSIGNED_CONTEXT' IN TYPEOF(link_cntxt)) - THEN - RETURN(?); - END_IF; - pa_units := QUERY(unit - <* link_cntxt\global_unit_assigned_context.units - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_UNIT' IN TYPEOF(unit)); - IF SIZEOF(pa_units) <> 1 - THEN - RETURN(?); - END_IF; - pau := pa_units[1]; - IF (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SI_UNIT' IN TYPEOF(pau)) AND - NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONVERSION_BASED_UNIT' IN TYPEOF(pau))) - THEN - RETURN(?); - END_IF; - REPEAT WHILE ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONVERSION_BASED_UNIT' IN TYPEOF(pau)); - converted_angle := converted_angle * pau\conversion_based_unit.conversion_factor.value_component; - pau := pau\conversion_based_unit.conversion_factor.unit_component; - IF ((NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SI_UNIT' IN TYPEOF(pau)) AND - NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONVERSION_BASED_UNIT' IN TYPEOF(pau))) OR - (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_UNIT' IN TYPEOF(pau)))) - THEN - RETURN(?); - END_IF; - END_REPEAT; - IF (pau\si_unit.name <> si_unit_name.radian) - THEN - RETURN(?); - END_IF; - CASE pau\si_unit.prefix OF - si_prefix.exa : RETURN(1.E18 * converted_angle); - si_prefix.peta : RETURN(1.E15 * converted_angle); - si_prefix.tera : RETURN(1.E12 * converted_angle); - si_prefix.giga : RETURN(1.E9 * converted_angle); - si_prefix.mega : RETURN(1.E6 * converted_angle); - si_prefix.kilo : RETURN(1.E3 * converted_angle); - si_prefix.hecto : RETURN(1.E2 * converted_angle); - si_prefix.deca : RETURN(1.E1 * converted_angle); - si_prefix.deci : RETURN(1.E-1 * converted_angle); - si_prefix.centi : RETURN(1.E-2 * converted_angle); - si_prefix.milli : RETURN(1.E-3 * converted_angle); - si_prefix.micro : RETURN(1.E-6 * converted_angle); - si_prefix.nano : RETURN(1.E-9 * converted_angle); - si_prefix.pico : RETURN(1.E-12 * converted_angle); - si_prefix.femto : RETURN(1.E-15 * converted_angle); - si_prefix.atto : RETURN(1.E-18 * converted_angle); - OTHERWISE: RETURN(converted_angle); - END_CASE; -END_FUNCTION; - -FUNCTION real_max(spc : maths_space) : REAL; -LOCAL - types : SET OF STRING := TYPEOF(spc); -END_LOCAL; - IF ((schema_prefix + 'FINITE_INTEGER_INTERVAL') IN types) - THEN - RETURN(spc\finite_integer_interval.max); - END_IF; - IF ((schema_prefix + 'INTEGER_INTERVAL_TO_MAX') IN types) - THEN - RETURN(spc\integer_interval_to_max.max); - END_IF; - IF ((schema_prefix + 'FINITE_REAL_INTERVAL') IN types) - THEN - RETURN(spc\finite_real_interval.max); - END_IF; - IF ((schema_prefix + 'REAL_INTERVAL_TO_MAX') IN types) - THEN - RETURN(spc\real_interval_to_max.max); - END_IF; - RETURN(?); -END_FUNCTION; - -FUNCTION real_min(spc : maths_space) : REAL; -LOCAL - types : SET OF STRING := TYPEOF(spc); -END_LOCAL; - IF ((schema_prefix + 'FINITE_INTEGER_INTERVAL') IN types) - THEN - RETURN(spc\finite_integer_interval.min); - END_IF; - IF ((schema_prefix + 'INTEGER_INTERVAL_FROM_MIN') IN types) - THEN - RETURN(spc\integer_interval_from_min.min); - END_IF; - IF ((schema_prefix + 'FINITE_REAL_INTERVAL') IN types) - THEN - RETURN(spc\finite_real_interval.min); - END_IF; - IF ((schema_prefix + 'REAL_INTERVAL_FROM_MIN') IN types) - THEN - RETURN(spc\real_interval_from_min.min); - END_IF; - RETURN(?); -END_FUNCTION; - -FUNCTION regular_indexing(sub : LIST OF INTEGER; - base : zero_or_one; - shape : LIST [1 : ?] OF positive_integer; - inc : LIST [1 : ?] OF INTEGER; - first : INTEGER) : INTEGER; -LOCAL - k : INTEGER; - index : INTEGER; -END_LOCAL; - IF NOT EXISTS(sub) OR NOT EXISTS(base) OR NOT EXISTS(shape) OR NOT EXISTS(inc) OR NOT EXISTS(first) - THEN - RETURN(?); - END_IF; - IF (SIZEOF(sub) <> SIZEOF(inc)) OR (SIZEOF(sub) <> SIZEOF(shape)) - THEN - RETURN(?); - END_IF; - index := first; - REPEAT j := 1 TO SIZEOF(sub); - IF NOT EXISTS(sub[j]) OR NOT EXISTS(inc[j]) - THEN - RETURN(?); - END_IF; - k := sub[j] - base; - IF NOT ({0 <= k < shape[j]}) - THEN - RETURN(?); - END_IF; - index := index + k * inc[j]; - END_REPEAT; - RETURN(index); -END_FUNCTION; - -FUNCTION relating_shape_representations_of_extreme_values(item : location_of_extreme_value_select) : SET OF shape_representation; -LOCAL - results : SET OF shape_representation := []; - exti : SET OF extreme_instance := []; - ii_ei : SET OF instance_report_item_with_extreme_instances := []; - sdiir : SET OF shape_data_quality_inspection_instance_report := []; - sdqr : SET OF shape_data_quality_inspection_result_representation := []; - sdisr : SET OF shape_data_quality_inspected_shape_and_result_relationship := []; -END_LOCAL; - exti := exti + - bag_to_set(USEDIN(item, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXTREME_INSTANCE.LOCATIONS_OF_EXTREME_VALUE')); - REPEAT i := 1 TO HIINDEX(exti); - ii_ei := ii_ei + - bag_to_set(USEDIN(exti[i], - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.INSTANCE_REPORT_ITEM_WITH_EXTREME_INSTANCES.EXTREME_INSTANCES')); - END_REPEAT; - REPEAT i := 1 TO HIINDEX(ii_ei); - sdiir := sdiir + - bag_to_set(USEDIN(ii_ei[i], - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT.INSPECTED_INSTANCES')); - END_REPEAT; - REPEAT i := 1 TO HIINDEX(sdiir); - sdqr := sdqr + - QUERY(i1 - <* bag_to_set(USEDIN(sdiir[i].inspection_result, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION.ITEMS')) - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_INSPECTION_RESULT_REPRESENTATION' IN - TYPEOF(i1)); - END_REPEAT; - REPEAT i := 1 TO HIINDEX(sdqr); - sdisr := sdisr + - bag_to_set(USEDIN(sdqr[i], - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_INSPECTED_SHAPE_AND_RESULT_RELATIONSHIP.REP_2')); - END_REPEAT; - REPEAT i := 1 TO HIINDEX(sdisr); - results := results + sdisr[i].rep_1; - END_REPEAT; - RETURN(results); -END_FUNCTION; - -FUNCTION remove_first(alist : LIST OF GENERIC : GEN) : LIST OF GENERIC : GEN; -LOCAL - blist : LIST OF GENERIC : GEN := alist; -END_LOCAL; - IF SIZEOF(blist) > 0 - THEN - REMOVE(blist, 1); - END_IF; - RETURN(blist); -END_FUNCTION; - -FUNCTION repackage(tspace : tuple_space; - repckg : repackage_options) : tuple_space; - CASE repckg OF - ro_nochange : RETURN(tspace); - ro_wrap_as_tuple : RETURN(one_tuples_of(tspace)); - ro_unwrap_tuple : RETURN(factor1(tspace)); - OTHERWISE: RETURN(?); - END_CASE; -END_FUNCTION; - -FUNCTION representation_of_link(link : kinematic_link) : kinematic_link_representation; -(* - LOCAL - link_rep_rel : BAG OF kinematic_link_representation_relation; - END_LOCAL; - - link_rep_rel := USEDIN (link, 'KINEMATIC_STRUCTURE_SCHEMA.'+ - 'KINEMATIC_LINK_REPRESENTATION_RELATION.'+ - 'TOPOLOGICAL_ASPECTS'); - IF (SIZEOF (link_rep_rel) = 0) THEN - RETURN (?); - ELSE - RETURN (link_rep_rel[1].geometric_aspects); - END_IF; - *) - (* - LOCAL - link_rep_rel : BAG OF kinematic_link_representation_relation; - END_LOCAL; - - link_rep_rel := USEDIN (link, 'KINEMATIC_STRUCTURE_SCHEMA.'+ - 'KINEMATIC_LINK_REPRESENTATION_RELATION.'+ - 'TOPOLOGICAL_ASPECTS'); - IF (SIZEOF (link_rep_rel) = 0) THEN - RETURN (?); - ELSE - RETURN (link_rep_rel[1].geometric_aspects); - END_IF; - *) - RETURN(?); -END_FUNCTION; - -FUNCTION same_side(plane_pts : LIST [3 : 3] OF cartesian_point; - test_points : LIST [2 : ?] OF cartesian_point) : BOOLEAN; -LOCAL - val1 : REAL; - val2 : REAL; - n : INTEGER; -END_LOCAL; - IF (plane_pts[1].dim = 2) OR (test_points[1].dim = 2) - THEN - RETURN(?); - END_IF; - n := SIZEOF(test_points); - val1 := above_plane(plane_pts[1], plane_pts[2], plane_pts[3], test_points[1]); - REPEAT i := 2 TO n; - val2 := above_plane(plane_pts[1], plane_pts[2], plane_pts[3], test_points[i]); - IF (val1 * val2 <= 0.0) - THEN - RETURN(false); - END_IF; - END_REPEAT; - RETURN(true); -END_FUNCTION; - -FUNCTION scalar_times_vector(scalar : REAL; - vec : vector_or_direction) : vector; -LOCAL - v : direction; - mag : REAL; - result : vector; -END_LOCAL; - IF NOT EXISTS(scalar) OR NOT EXISTS(vec) - THEN - RETURN(?); - ELSE - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VECTOR' IN TYPEOF(vec) - THEN - v := dummy_gri || direction(vec\vector.orientation.direction_ratios); - mag := scalar * vec\vector.magnitude; - ELSE - v := dummy_gri || direction(vec.direction_ratios); - mag := scalar; - END_IF; - IF (mag < 0.0) - THEN - REPEAT i := 1 TO SIZEOF(v.direction_ratios); - v.direction_ratios[i] := -v.direction_ratios[i]; - END_REPEAT; - mag := -mag; - END_IF; - result := dummy_gri || vector(normalise(v), mag); - END_IF; - RETURN(result); -END_FUNCTION; - -FUNCTION second_proj_axis(z_axis : direction; - x_axis : direction; - arg : direction) : direction; -LOCAL - y_axis : vector; - v : direction; - temp : vector; -END_LOCAL; - IF NOT EXISTS(arg) - THEN - v := dummy_gri || direction([0.0,1.0,0.0]); - ELSE - v := arg; - END_IF; - temp := scalar_times_vector(dot_product(v, z_axis), z_axis); - y_axis := vector_difference(v, temp); - temp := scalar_times_vector(dot_product(v, x_axis), x_axis); - y_axis := vector_difference(y_axis, temp); - y_axis := normalise(y_axis); - RETURN(y_axis.orientation); -END_FUNCTION; - -FUNCTION set_of_topology_reversed(a_set : set_of_reversible_topology_item) : set_of_reversible_topology_item; -LOCAL - the_reverse : set_of_reversible_topology_item; -END_LOCAL; - the_reverse := []; - REPEAT i := 1 TO SIZEOF(a_set); - the_reverse := the_reverse + topology_reversed(a_set[i]); - END_REPEAT; - RETURN(the_reverse); -END_FUNCTION; - -FUNCTION shape_of_array(func : maths_function) : LIST OF positive_integer; -LOCAL - tspace : tuple_space; - temp : maths_space; - result : LIST OF positive_integer := []; -END_LOCAL; - IF (schema_prefix + 'EXPLICIT_TABLE_FUNCTION') IN TYPEOF(func) - THEN - RETURN(func\explicit_table_function.shape); - END_IF; - tspace := func.domain; - IF (space_dimension(tspace) = 1) AND ((schema_prefix + 'TUPLE_SPACE') IN TYPEOF(factor1(tspace))) - THEN - tspace := factor1(tspace); - END_IF; - REPEAT i := 1 TO space_dimension(tspace); - temp := factor_space(tspace, i); - IF NOT ((schema_prefix + 'FINITE_INTEGER_INTERVAL') IN TYPEOF(temp)) - THEN - RETURN(?); - END_IF; - INSERT(result, temp\finite_integer_interval.size, i - 1); - END_REPEAT; - RETURN(result); -END_FUNCTION; - -FUNCTION shell_reversed(a_shell : shell) : shell; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OPEN_SHELL' IN TYPEOF(a_shell)) - THEN - RETURN(open_shell_reversed(a_shell)); - ELSE - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLOSED_SHELL' IN TYPEOF(a_shell)) - THEN - RETURN(closed_shell_reversed(a_shell)); - ELSE - RETURN(?); - END_IF; - END_IF; -END_FUNCTION; - -FUNCTION simplify_function_application(expr : function_application) : maths_value; -FUNCTION ctmv(x : GENERIC : G) : maths_value; - RETURN(convert_to_maths_value(x)); -END_FUNCTION; -PROCEDURE parts(c : complex_number_literal; VAR x : REAL; VAR y : REAL); - x := c.real_part; - y := c.imag_part; -END_PROCEDURE; -FUNCTION makec(x : REAL; - y : REAL) : complex_number_literal; - RETURN(make_complex_number_literal(x, y)); -END_FUNCTION; -FUNCTION good_t(v : maths_value; - tn : STRING) : BOOLEAN; -LOCAL - tpl : LIST OF maths_value; -END_LOCAL; - IF 'LIST' IN TYPEOF(v) - THEN - tpl := v; - REPEAT i := 1 TO SIZEOF(tpl); - IF NOT (tn IN TYPEOF(tpl[i])) - THEN - RETURN(false); - END_IF; - END_REPEAT; - RETURN(true); - END_IF; - RETURN(false); -END_FUNCTION; - -CONSTANT - cnlit : STRING := schema_prefix + 'COMPLEX_NUMBER_LITERAL'; -END_CONSTANT; -LOCAL - types : SET OF STRING := stripped_typeof(expr.func); - ef_val : elementary_function_enumerators; - is_elementary : BOOLEAN := false; - v : maths_value; - v1 : maths_value; - v2 : maths_value; - v3 : maths_value; - vlist : LIST OF maths_value := []; - gexpr : generic_expression; - pairs : SET [1 : ?] OF LIST [2 : 2] OF maths_value; - boo : BOOLEAN; - lgc : LOGICAL; - cum : LOGICAL; - j : INTEGER; - k : INTEGER; - n : INTEGER; - p : REAL; - q : REAL; - r : REAL; - s : REAL; - t : REAL; - u : REAL; - str : STRING; - st2 : STRING; - bin : BINARY; - bi2 : BINARY; - tpl : LIST OF maths_value; - tp2 : LIST OF maths_value; - mem : SET OF maths_value := []; -END_LOCAL; - REPEAT i := 1 TO SIZEOF(expr.arguments); - v := simplify_maths_value(expr.arguments[i]); - INSERT(vlist, v, i - 1); - END_REPEAT; - IF SIZEOF(vlist) >= 1 - THEN - v1 := vlist[1]; - END_IF; - IF SIZEOF(vlist) >= 2 - THEN - v2 := vlist[2]; - END_IF; - IF SIZEOF(vlist) >= 3 - THEN - v3 := vlist[3]; - END_IF; - IF 'ELEMENTARY_FUNCTION_ENUMERATORS' IN types - THEN - ef_val := expr.func; - is_elementary := true; - END_IF; - IF 'ELEMENTARY_FUNCTION' IN types - THEN - ef_val := expr.func\elementary_function.func_id; - is_elementary := true; - END_IF; - IF is_elementary - THEN - CASE ef_val OF - ef_and : BEGIN - cum := true; - REPEAT i := SIZEOF(vlist) TO 1 BY -1; - IF 'LOGICAL' IN TYPEOF(vlist[i]) - THEN - lgc := vlist[i]; - cum := cum AND lgc; - IF lgc = false - THEN - RETURN(ctmv(false)); - END_IF; - REMOVE(vlist, i); - END_IF; - END_REPEAT; - IF SIZEOF(vlist) = 0 - THEN - RETURN(ctmv(cum)); - END_IF; - IF cum <> true - THEN - INSERT(vlist, ctmv(cum), 0); - END_IF; - IF SIZEOF(vlist) = 1 - THEN - RETURN(vlist[1]); - END_IF; - END; - ef_or : BEGIN - cum := false; - REPEAT i := SIZEOF(vlist) TO 1 BY -1; - IF 'LOGICAL' IN TYPEOF(vlist[i]) - THEN - lgc := vlist[i]; - cum := cum OR lgc; - IF lgc = true - THEN - RETURN(ctmv(true)); - END_IF; - REMOVE(vlist, i); - END_IF; - END_REPEAT; - IF SIZEOF(vlist) = 0 - THEN - RETURN(ctmv(cum)); - END_IF; - IF cum <> false - THEN - INSERT(vlist, ctmv(cum), 0); - END_IF; - IF SIZEOF(vlist) = 1 - THEN - RETURN(vlist[1]); - END_IF; - END; - ef_not : IF 'LOGICAL' IN TYPEOF(v1) - THEN - lgc := v1; - RETURN(ctmv(NOT lgc)); - END_IF; - ef_xor : BEGIN - IF 'LOGICAL' IN TYPEOF(v1) - THEN - lgc := v1; - IF 'LOGICAL' IN TYPEOF(v2) - THEN - cum := v2; - RETURN(ctmv(lgc XOR cum)); - ELSE - IF lgc = false - THEN - RETURN(ctmv(v2)); - ELSE - IF lgc = unknown - THEN - RETURN(ctmv(unknown)); - ELSE - RETURN(make_function_application(ef_not, [v2])); - END_IF; - END_IF; - END_IF; - ELSE - IF 'LOGICAL' IN TYPEOF(v2) - THEN - lgc := v2; - IF lgc = false - THEN - RETURN(ctmv(v1)); - ELSE - IF lgc = unknown - THEN - RETURN(ctmv(unknown)); - ELSE - RETURN(make_function_application(ef_not, [v1])); - END_IF; - END_IF; - END_IF; - END_IF; - END; - ef_negate_i : IF 'INTEGER' IN TYPEOF(v1) - THEN - j := v1; - RETURN(ctmv(-j)); - END_IF; - ef_add_i : BEGIN - j := 0; - REPEAT i := SIZEOF(vlist) TO 1 BY -1; - IF 'INTEGER' IN TYPEOF(vlist[i]) - THEN - k := vlist[i]; - j := j + k; - REMOVE(vlist, i); - END_IF; - END_REPEAT; - IF SIZEOF(vlist) = 0 - THEN - RETURN(ctmv(j)); - END_IF; - IF j <> 0 - THEN - INSERT(vlist, ctmv(j), 0); - END_IF; - IF SIZEOF(vlist) = 1 - THEN - RETURN(vlist[1]); - END_IF; - END; - ef_subtract_i : IF ('INTEGER' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2)) - THEN - j := v1; - k := v2; - RETURN(ctmv(j - k)); - END_IF; - ef_multiply_i : BEGIN - j := 1; - REPEAT i := SIZEOF(vlist) TO 1 BY -1; - IF 'INTEGER' IN TYPEOF(vlist[i]) - THEN - k := vlist[i]; - j := j * k; - REMOVE(vlist, i); - END_IF; - END_REPEAT; - IF SIZEOF(vlist) = 0 - THEN - RETURN(ctmv(j)); - END_IF; - IF j <> 1 - THEN - INSERT(vlist, ctmv(j), 0); - END_IF; - IF SIZEOF(vlist) = 1 - THEN - RETURN(vlist[1]); - END_IF; - END; - ef_divide_i : IF ('INTEGER' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2)) - THEN - j := v1; - k := v2; - RETURN(ctmv(j DIV k)); - END_IF; - ef_mod_i : IF ('INTEGER' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2)) - THEN - j := v1; - k := v2; - RETURN(ctmv(j MOD k)); - END_IF; - ef_exponentiate_i : IF ('INTEGER' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2)) - THEN - j := v1; - k := v2; - n := 1; - REPEAT i := 1 TO ABS(k); - n := n * j; - END_REPEAT; - IF k < 0 - THEN - n := 1 DIV n; - END_IF; - RETURN(ctmv(n)); - END_IF; - ef_eq_i : IF ('INTEGER' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2)) - THEN - j := v1; - k := v2; - RETURN(ctmv(j = k)); - END_IF; - ef_ne_i : IF ('INTEGER' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2)) - THEN - j := v1; - k := v2; - RETURN(ctmv(j <> k)); - END_IF; - ef_gt_i : IF ('INTEGER' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2)) - THEN - j := v1; - k := v2; - RETURN(ctmv(j > k)); - END_IF; - ef_lt_i : IF ('INTEGER' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2)) - THEN - j := v1; - k := v2; - RETURN(ctmv(j < k)); - END_IF; - ef_ge_i : IF ('INTEGER' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2)) - THEN - j := v1; - k := v2; - RETURN(ctmv(j >= k)); - END_IF; - ef_le_i : IF ('INTEGER' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2)) - THEN - j := v1; - k := v2; - RETURN(ctmv(j <= k)); - END_IF; - ef_abs_i : IF 'INTEGER' IN TYPEOF(v1) - THEN - j := v1; - RETURN(ctmv(ABS(j))); - END_IF; - ef_max_i : BEGIN - boo := false; - REPEAT i := SIZEOF(vlist) TO 1 BY -1; - IF 'INTEGER' IN TYPEOF(vlist[i]) - THEN - IF boo - THEN - k := vlist[i]; - IF k > j - THEN - j := k; - END_IF; - ELSE - j := vlist[i]; - boo := true; - END_IF; - REMOVE(vlist, i); - END_IF; - END_REPEAT; - IF SIZEOF(vlist) = 0 - THEN - RETURN(ctmv(j)); - END_IF; - IF boo - THEN - INSERT(vlist, ctmv(j), 0); - END_IF; - IF SIZEOF(vlist) = 1 - THEN - RETURN(vlist[1]); - END_IF; - END; - ef_min_i : BEGIN - boo := false; - REPEAT i := SIZEOF(vlist) TO 1 BY -1; - IF 'INTEGER' IN TYPEOF(vlist[i]) - THEN - IF boo - THEN - k := vlist[i]; - IF k < j - THEN - j := k; - END_IF; - ELSE - j := vlist[i]; - boo := true; - END_IF; - REMOVE(vlist, i); - END_IF; - END_REPEAT; - IF SIZEOF(vlist) = 0 - THEN - RETURN(ctmv(j)); - END_IF; - IF boo - THEN - INSERT(vlist, ctmv(j), 0); - END_IF; - IF SIZEOF(vlist) = 1 - THEN - RETURN(vlist[1]); - END_IF; - END; - ef_negate_r : IF 'REAL' IN TYPEOF(v1) - THEN - r := v1; - RETURN(ctmv(-r)); - END_IF; - ef_reciprocal_r : IF 'REAL' IN TYPEOF(v1) - THEN - r := v1; - RETURN(ctmv(1.0 / r)); - END_IF; - ef_add_r : BEGIN - r := 0.0; - REPEAT i := SIZEOF(vlist) TO 1 BY -1; - IF 'REAL' IN TYPEOF(vlist[i]) - THEN - s := vlist[i]; - r := r + s; - REMOVE(vlist, i); - END_IF; - END_REPEAT; - IF SIZEOF(vlist) = 0 - THEN - RETURN(ctmv(r)); - END_IF; - IF r <> 0.0 - THEN - INSERT(vlist, ctmv(r), 0); - END_IF; - IF SIZEOF(vlist) = 1 - THEN - RETURN(vlist[1]); - END_IF; - END; - ef_subtract_r : IF ('REAL' IN TYPEOF(v1)) AND ('REAL' IN TYPEOF(v2)) - THEN - r := v1; - s := v2; - RETURN(ctmv(r - s)); - END_IF; - ef_multiply_r : BEGIN - r := 1.0; - REPEAT i := SIZEOF(vlist) TO 1 BY -1; - IF 'REAL' IN TYPEOF(vlist[i]) - THEN - s := vlist[i]; - r := r * s; - REMOVE(vlist, i); - END_IF; - END_REPEAT; - IF SIZEOF(vlist) = 0 - THEN - RETURN(ctmv(r)); - END_IF; - IF r <> 1.0 - THEN - INSERT(vlist, ctmv(r), 0); - END_IF; - IF SIZEOF(vlist) = 1 - THEN - RETURN(vlist[1]); - END_IF; - END; - ef_divide_r : IF ('REAL' IN TYPEOF(v1)) AND ('REAL' IN TYPEOF(v2)) - THEN - r := v1; - s := v2; - RETURN(ctmv(r / s)); - END_IF; - ef_mod_r : IF ('REAL' IN TYPEOF(v1)) AND ('REAL' IN TYPEOF(v2)) - THEN - r := v1; - s := v2; - t := r / s; - j := t DIV 1; - IF (t < 0.0) AND (j <> t) - THEN - j := j - 1; - END_IF; - RETURN(ctmv(r - j * s)); - END_IF; - ef_exponentiate_r : IF ('REAL' IN TYPEOF(v1)) AND ('REAL' IN TYPEOF(v2)) - THEN - r := v1; - s := v2; - RETURN(ctmv(r ** s)); - END_IF; - ef_exponentiate_ri : IF ('REAL' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2)) - THEN - r := v1; - k := v2; - t := 1.0; - REPEAT i := 1 TO ABS(k); - t := t * r; - END_REPEAT; - IF k < 0 - THEN - t := 1.0 / t; - END_IF; - RETURN(ctmv(t)); - END_IF; - ef_eq_r : IF ('REAL' IN TYPEOF(v1)) AND ('REAL' IN TYPEOF(v2)) - THEN - r := v1; - s := v2; - RETURN(ctmv(r = s)); - END_IF; - ef_ne_r : IF ('REAL' IN TYPEOF(v1)) AND ('REAL' IN TYPEOF(v2)) - THEN - r := v1; - s := v2; - RETURN(ctmv(r <> s)); - END_IF; - ef_gt_r : IF ('REAL' IN TYPEOF(v1)) AND ('REAL' IN TYPEOF(v2)) - THEN - r := v1; - s := v2; - RETURN(ctmv(r > s)); - END_IF; - ef_lt_r : IF ('REAL' IN TYPEOF(v1)) AND ('REAL' IN TYPEOF(v2)) - THEN - r := v1; - s := v2; - RETURN(ctmv(r < s)); - END_IF; - ef_ge_r : IF ('REAL' IN TYPEOF(v1)) AND ('REAL' IN TYPEOF(v2)) - THEN - r := v1; - s := v2; - RETURN(ctmv(r >= s)); - END_IF; - ef_le_r : IF ('REAL' IN TYPEOF(v1)) AND ('REAL' IN TYPEOF(v2)) - THEN - r := v1; - s := v2; - RETURN(ctmv(r <= s)); - END_IF; - ef_abs_r : IF 'REAL' IN TYPEOF(v1) - THEN - r := v1; - RETURN(ctmv(ABS(r))); - END_IF; - ef_max_r : BEGIN - boo := false; - REPEAT i := SIZEOF(vlist) TO 1 BY -1; - IF 'REAL' IN TYPEOF(vlist[i]) - THEN - IF boo - THEN - s := vlist[i]; - IF s > r - THEN - r := s; - END_IF; - ELSE - r := vlist[i]; - boo := true; - END_IF; - REMOVE(vlist, i); - END_IF; - END_REPEAT; - IF SIZEOF(vlist) = 0 - THEN - RETURN(ctmv(r)); - END_IF; - IF boo - THEN - INSERT(vlist, ctmv(r), 0); - END_IF; - IF SIZEOF(vlist) = 1 - THEN - RETURN(vlist[1]); - END_IF; - END; - ef_min_r : BEGIN - boo := false; - REPEAT i := SIZEOF(vlist) TO 1 BY -1; - IF 'REAL' IN TYPEOF(vlist[i]) - THEN - IF boo - THEN - s := vlist[i]; - IF s < r - THEN - r := s; - END_IF; - ELSE - r := vlist[i]; - boo := true; - END_IF; - REMOVE(vlist, i); - END_IF; - END_REPEAT; - IF SIZEOF(vlist) = 0 - THEN - RETURN(ctmv(r)); - END_IF; - IF boo - THEN - INSERT(vlist, ctmv(r), 0); - END_IF; - IF SIZEOF(vlist) = 1 - THEN - RETURN(vlist[1]); - END_IF; - END; - ef_acos_r : IF 'REAL' IN TYPEOF(v1) - THEN - r := v1; - RETURN(ctmv(ACOS(r))); - END_IF; - ef_asin_r : IF 'REAL' IN TYPEOF(v1) - THEN - r := v1; - RETURN(ctmv(ASIN(r))); - END_IF; - ef_atan2_r : IF ('REAL' IN TYPEOF(v1)) AND ('REAL' IN TYPEOF(v2)) - THEN - r := v1; - s := v2; - RETURN(ctmv(atan2(r, s))); - END_IF; - ef_cos_r : IF 'REAL' IN TYPEOF(v1) - THEN - r := v1; - RETURN(ctmv(COS(r))); - END_IF; - ef_exp_r : IF 'REAL' IN TYPEOF(v1) - THEN - r := v1; - RETURN(ctmv(EXP(r))); - END_IF; - ef_ln_r : IF 'REAL' IN TYPEOF(v1) - THEN - r := v1; - RETURN(ctmv(LOG(r))); - END_IF; - ef_log2_r : IF 'REAL' IN TYPEOF(v1) - THEN - r := v1; - RETURN(ctmv(LOG2(r))); - END_IF; - ef_log10_r : IF 'REAL' IN TYPEOF(v1) - THEN - r := v1; - RETURN(ctmv(LOG10(r))); - END_IF; - ef_sin_r : IF 'REAL' IN TYPEOF(v1) - THEN - r := v1; - RETURN(ctmv(SIN(r))); - END_IF; - ef_sqrt_r : IF 'REAL' IN TYPEOF(v1) - THEN - r := v1; - RETURN(ctmv(SQRT(r))); - END_IF; - ef_tan_r : IF 'REAL' IN TYPEOF(v1) - THEN - r := v1; - RETURN(ctmv(TAN(r))); - END_IF; - ef_form_c : IF ('REAL' IN TYPEOF(v1)) AND ('REAL' IN TYPEOF(v2)) - THEN - r := v1; - s := v2; - RETURN(makec(r, s)); - END_IF; - ef_rpart_c : IF cnlit IN TYPEOF(v1) - THEN - RETURN(ctmv(v1\complex_number_literal.real_part)); - END_IF; - ef_ipart_c : IF cnlit IN TYPEOF(v1) - THEN - RETURN(ctmv(v1\complex_number_literal.imag_part)); - END_IF; - ef_negate_c : IF cnlit IN TYPEOF(v1) - THEN - parts(v1, p, q); - RETURN(makec(-p, -q)); - END_IF; - ef_reciprocal_c : IF cnlit IN TYPEOF(v1) - THEN - parts(v1, p, q); - t := p * p + q * q; - RETURN(makec(p / t, -q / t)); - END_IF; - ef_add_c : BEGIN - p := 0.0; - q := 0.0; - REPEAT i := SIZEOF(vlist) TO 1 BY -1; - IF cnlit IN TYPEOF(vlist[i]) - THEN - parts(vlist[i], r, s); - p := p + r; - q := q + s; - REMOVE(vlist, i); - END_IF; - END_REPEAT; - IF SIZEOF(vlist) = 0 - THEN - RETURN(makec(p, q)); - END_IF; - IF p * p + q * q <> 0.0 - THEN - INSERT(vlist, makec(p, q), 0); - END_IF; - IF SIZEOF(vlist) = 1 - THEN - RETURN(vlist[1]); - END_IF; - END; - ef_subtract_c : IF (cnlit IN TYPEOF(v1)) AND (cnlit IN TYPEOF(v2)) - THEN - parts(v1, p, q); - parts(v2, r, s); - RETURN(makec(p - r, q - s)); - END_IF; - ef_multiply_c : BEGIN - p := 1.0; - q := 0.0; - REPEAT i := SIZEOF(vlist) TO 1 BY -1; - IF cnlit IN TYPEOF(vlist[i]) - THEN - parts(vlist[i], r, s); - p := p * r - q * s; - q := p * s + q * r; - REMOVE(vlist, i); - END_IF; - END_REPEAT; - IF SIZEOF(vlist) = 0 - THEN - RETURN(makec(p, q)); - END_IF; - IF (p <> 1.0) OR (q <> 0.0) - THEN - INSERT(vlist, makec(p, q), 0); - END_IF; - IF SIZEOF(vlist) = 1 - THEN - RETURN(vlist[1]); - END_IF; - END; - ef_divide_c : IF (cnlit IN TYPEOF(v1)) AND (cnlit IN TYPEOF(v2)) - THEN - parts(v1, p, q); - parts(v2, r, s); - t := r * r + s * s; - RETURN(makec((p * r + q * s) / t, (q * r - p * s) / t)); - END_IF; - ef_exponentiate_c : IF (cnlit IN TYPEOF(v1)) AND (cnlit IN TYPEOF(v2)) - THEN - parts(v1, p, q); - parts(v2, r, s); - t := 0.5 * LOG(p * p + q * q); - u := atan2(q, p); - p := r * t - s * u; - q := r * u + s * t; - r := EXP(p); - RETURN(makec(r * COS(q), r * SIN(q))); - END_IF; - ef_exponentiate_ci : IF (cnlit IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2)) - THEN - parts(v1, p, q); - k := v2; - r := 1.0; - s := 0.0; - REPEAT i := 1 TO ABS(k); - r := p * r - q * s; - s := p * s + q * r; - END_REPEAT; - IF k < 0 - THEN - t := r * r + s * s; - r := r / t; - s := -s / t; - END_IF; - RETURN(makec(r, s)); - END_IF; - ef_eq_c : IF (cnlit IN TYPEOF(v1)) AND (cnlit IN TYPEOF(v2)) - THEN - parts(v1, p, q); - parts(v2, r, s); - RETURN(ctmv((p = r) AND (q = s))); - END_IF; - ef_ne_c : IF (cnlit IN TYPEOF(v1)) AND (cnlit IN TYPEOF(v2)) - THEN - parts(v1, p, q); - parts(v2, r, s); - RETURN(ctmv((p <> r) OR (q <> s))); - END_IF; - ef_conjugate_c : IF cnlit IN TYPEOF(v1) - THEN - parts(v1, p, q); - RETURN(makec(p, -q)); - END_IF; - ef_abs_c : IF cnlit IN TYPEOF(v1) - THEN - parts(v1, p, q); - RETURN(ctmv(SQRT(p * p + q * q))); - END_IF; - ef_arg_c : IF cnlit IN TYPEOF(v1) - THEN - parts(v1, p, q); - RETURN(ctmv(atan2(q, p))); - END_IF; - ef_cos_c : IF cnlit IN TYPEOF(v1) - THEN - parts(v1, p, q); - t := 0.5 * EXP(-q); - u := 0.5 * EXP(q); - RETURN(makec((t + u) * COS(p), (t - u) * SIN(p))); - END_IF; - ef_exp_c : IF cnlit IN TYPEOF(v1) - THEN - parts(v1, p, q); - RETURN(makec(EXP(p) * COS(q), EXP(p) * SIN(q))); - END_IF; - ef_ln_c : IF cnlit IN TYPEOF(v1) - THEN - parts(v1, p, q); - RETURN(makec(0.5 * LOG(p * p + q * q), atan2(q, p))); - END_IF; - ef_sin_c : IF cnlit IN TYPEOF(v1) - THEN - parts(v1, p, q); - t := 0.5 * EXP(-q); - u := 0.5 * EXP(q); - RETURN(makec((t + u) * SIN(p), (u - t) * COS(p))); - END_IF; - ef_sqrt_c : IF cnlit IN TYPEOF(v1) - THEN - parts(v1, p, q); - t := SQRT(SQRT(p * p + q * q)); - u := 0.5 * atan2(q, p); - RETURN(makec(t * COS(u), t * SIN(u))); - END_IF; - ef_tan_c : IF cnlit IN TYPEOF(v1) - THEN - parts(v1, p, q); - t := EXP(2.0 * q) + EXP(-2.0 * q) + 2.0 * COS(2.0 * p); - RETURN(makec(2.0 * SIN(2.0 * p) / t, (EXP(-2.0 * q) - EXP(2.0 * q)) / t)); - END_IF; - ef_subscript_s : IF ('STRING' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2)) - THEN - str := v1; - k := v2; - RETURN(ctmv(str[k])); - END_IF; - ef_eq_s : IF ('STRING' IN TYPEOF(v1)) AND ('STRING' IN TYPEOF(v2)) - THEN - str := v1; - st2 := v2; - RETURN(ctmv(str = st2)); - END_IF; - ef_ne_s : IF ('STRING' IN TYPEOF(v1)) AND ('STRING' IN TYPEOF(v2)) - THEN - str := v1; - st2 := v2; - RETURN(ctmv(str <> st2)); - END_IF; - ef_gt_s : IF ('STRING' IN TYPEOF(v1)) AND ('STRING' IN TYPEOF(v2)) - THEN - str := v1; - st2 := v2; - RETURN(ctmv(str > st2)); - END_IF; - ef_lt_s : IF ('STRING' IN TYPEOF(v1)) AND ('STRING' IN TYPEOF(v2)) - THEN - str := v1; - st2 := v2; - RETURN(ctmv(str < st2)); - END_IF; - ef_ge_s : IF ('STRING' IN TYPEOF(v1)) AND ('STRING' IN TYPEOF(v2)) - THEN - str := v1; - st2 := v2; - RETURN(ctmv(str >= st2)); - END_IF; - ef_le_s : IF ('STRING' IN TYPEOF(v1)) AND ('STRING' IN TYPEOF(v2)) - THEN - str := v1; - st2 := v2; - RETURN(ctmv(str <= st2)); - END_IF; - ef_subsequence_s : IF ('STRING' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2)) AND ('INTEGER' IN TYPEOF(v3)) - THEN - str := v1; - j := v2; - k := v3; - RETURN(ctmv(str[j:k])); - END_IF; - ef_concat_s : BEGIN - str := ''; - REPEAT i := SIZEOF(vlist) TO 1 BY -1; - IF 'STRING' IN TYPEOF(vlist[i]) - THEN - st2 := vlist[i]; - str := str + st2; - REMOVE(vlist, i); - ELSE - IF str <> '' - THEN - INSERT(vlist, ctmv(str), i); - str := ''; - END_IF; - END_IF; - END_REPEAT; - IF SIZEOF(vlist) = 0 - THEN - RETURN(ctmv(str)); - END_IF; - IF str <> '' - THEN - INSERT(vlist, ctmv(str), 0); - END_IF; - IF SIZEOF(vlist) = 1 - THEN - RETURN(vlist[1]); - END_IF; - END; - ef_size_s : IF 'STRING' IN TYPEOF(v1) - THEN - str := v1; - RETURN(ctmv(LENGTH(str))); - END_IF; - ef_format : IF ('NUMBER' IN TYPEOF(v1)) AND ('STRING' IN TYPEOF(v2)) - THEN - RETURN(ctmv(FORMAT(v1, v2))); - END_IF; - ef_value : IF 'STRING' IN TYPEOF(v1) - THEN - str := v1; - RETURN(ctmv(VALUE(str))); - END_IF; - ef_like : IF ('STRING' IN TYPEOF(v1)) AND ('STRING' IN TYPEOF(v2)) - THEN - RETURN(ctmv(v1 LIKE v2)); - END_IF; - ef_subscript_b : IF ('BINARY' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2)) - THEN - bin := v1; - k := v2; - RETURN(ctmv(bin[k])); - END_IF; - ef_eq_b : IF ('BINARY' IN TYPEOF(v1)) AND ('BINARY' IN TYPEOF(v2)) - THEN - bin := v1; - bi2 := v2; - RETURN(ctmv(bin = bi2)); - END_IF; - ef_ne_b : IF ('BINARY' IN TYPEOF(v1)) AND ('BINARY' IN TYPEOF(v2)) - THEN - bin := v1; - bi2 := v2; - RETURN(ctmv(bin <> bi2)); - END_IF; - ef_gt_b : IF ('BINARY' IN TYPEOF(v1)) AND ('BINARY' IN TYPEOF(v2)) - THEN - bin := v1; - bi2 := v2; - RETURN(ctmv(bin > bi2)); - END_IF; - ef_lt_b : IF ('BINARY' IN TYPEOF(v1)) AND ('BINARY' IN TYPEOF(v2)) - THEN - bin := v1; - bi2 := v2; - RETURN(ctmv(bin < bi2)); - END_IF; - ef_ge_b : IF ('BINARY' IN TYPEOF(v1)) AND ('BINARY' IN TYPEOF(v2)) - THEN - bin := v1; - bi2 := v2; - RETURN(ctmv(bin >= bi2)); - END_IF; - ef_le_b : IF ('BINARY' IN TYPEOF(v1)) AND ('BINARY' IN TYPEOF(v2)) - THEN - bin := v1; - bi2 := v2; - RETURN(ctmv(bin <= bi2)); - END_IF; - ef_subsequence_b : IF ('BINARY' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2)) AND ('INTEGER' IN TYPEOF(v3)) - THEN - bin := v1; - j := v2; - k := v3; - RETURN(ctmv(bin[j:k])); - END_IF; - ef_concat_b : BEGIN - boo := false; - REPEAT i := SIZEOF(vlist) TO 1 BY -1; - IF 'BINARY' IN TYPEOF(vlist[i]) - THEN - IF boo - THEN - bi2 := vlist[i]; - bin := bin + bi2; - ELSE - bin := vlist[i]; - boo := true; - END_IF; - REMOVE(vlist, i); - ELSE - IF boo - THEN - INSERT(vlist, ctmv(bin), i); - boo := false; - END_IF; - END_IF; - END_REPEAT; - IF SIZEOF(vlist) = 0 - THEN - RETURN(ctmv(bin)); - END_IF; - IF boo - THEN - INSERT(vlist, ctmv(bin), 0); - END_IF; - IF SIZEOF(vlist) = 1 - THEN - RETURN(vlist[1]); - END_IF; - END; - ef_size_b : IF 'BINARY' IN TYPEOF(v1) - THEN - bin := v1; - RETURN(ctmv(BLENGTH(bin))); - END_IF; - ef_subscript_t : IF ('LIST' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2)) - THEN - tpl := v1; - k := v2; - RETURN(ctmv(tpl[k])); - END_IF; - ef_eq_t : IF ('LIST' IN TYPEOF(v1)) AND ('LIST' IN TYPEOF(v2)) - THEN - lgc := equal_maths_values(v1, v2); - IF lgc <> unknown - THEN - RETURN(ctmv(lgc)); - END_IF; - END_IF; - ef_ne_t : IF ('LIST' IN TYPEOF(v1)) AND ('LIST' IN TYPEOF(v2)) - THEN - lgc := equal_maths_values(v1, v2); - IF lgc <> unknown - THEN - RETURN(ctmv(NOT lgc)); - END_IF; - END_IF; - ef_concat_t : BEGIN - tpl := []; - REPEAT i := SIZEOF(vlist) TO 1 BY -1; - IF 'STRING' IN TYPEOF(vlist[i]) - THEN - tp2 := vlist[i]; - tpl := tpl + tp2; - REMOVE(vlist, i); - ELSE - IF SIZEOF(tpl) <> 0 - THEN - INSERT(vlist, ctmv(tpl), i); - tpl := []; - END_IF; - END_IF; - END_REPEAT; - IF SIZEOF(vlist) = 0 - THEN - RETURN(ctmv(tpl)); - END_IF; - IF SIZEOF(tpl) <> 0 - THEN - INSERT(vlist, ctmv(tpl), 0); - END_IF; - IF SIZEOF(vlist) = 1 - THEN - RETURN(vlist[1]); - END_IF; - END; - ef_size_t : IF 'LIST' IN TYPEOF(v1) - THEN - tpl := v1; - RETURN(ctmv(SIZEOF(tpl))); - END_IF; - ef_entuple : RETURN(ctmv(vlist)); - ef_detuple : IF 'LIST' IN TYPEOF(v1) - THEN - tpl := v1; - RETURN(ctmv(tpl[1])); - END_IF; - ef_insert : IF ('LIST' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v3)) - THEN - tpl := v1; - k := v3; - INSERT(tpl, v2, k); - RETURN(ctmv(tpl)); - END_IF; - ef_remove : IF ('LIST' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2)) - THEN - tpl := v1; - k := v2; - REMOVE(tpl, k); - RETURN(ctmv(tpl)); - END_IF; - ef_sum_it : IF good_t(v1, 'INTEGER') - THEN - tpl := v1; - j := 0; - REPEAT i := 1 TO SIZEOF(tpl); - j := j + tpl[i]; - END_REPEAT; - RETURN(ctmv(j)); - END_IF; - ef_product_it : IF good_t(v1, 'INTEGER') - THEN - tpl := v1; - j := 1; - REPEAT i := 1 TO SIZEOF(tpl); - j := j * tpl[i]; - END_REPEAT; - RETURN(ctmv(j)); - END_IF; - ef_add_it : BEGIN - boo := false; - REPEAT i := SIZEOF(vlist) TO 1 BY -1; - IF good_t(vlist[i], 'INTEGER') - THEN - IF NOT boo - THEN - tpl := vlist[i]; - boo := true; - ELSE - tp2 := vlist[i]; - IF SIZEOF(tpl) <> SIZEOF(tp2) - THEN - RETURN(?); - END_IF; - REPEAT l := 1 TO SIZEOF(tpl); - tpl[j] := tpl[j] + tp2[j]; - END_REPEAT; - END_IF; - REMOVE(vlist, i); - END_IF; - END_REPEAT; - IF SIZEOF(vlist) = 0 - THEN - RETURN(ctmv(tpl)); - END_IF; - IF boo - THEN - INSERT(vlist, ctmv(tpl), 0); - END_IF; - IF SIZEOF(vlist) = 1 - THEN - RETURN(vlist[1]); - END_IF; - END; - ef_subtract_it : IF good_t(v1, 'INTEGER') AND good_t(v2, 'INTEGER') - THEN - tpl := v1; - tp2 := v2; - IF SIZEOF(tpl) <> SIZEOF(tp2) - THEN - RETURN(?); - END_IF; - REPEAT i := 1 TO SIZEOF(tpl); - tpl[i] := tpl[i] - tp2[i]; - END_REPEAT; - RETURN(ctmv(tpl)); - END_IF; - ef_scalar_mult_it : IF ('INTEGER' IN TYPEOF(v1)) AND good_t(v2, 'INTEGER') - THEN - j := v1; - tpl := v2; - REPEAT i := 1 TO SIZEOF(tpl); - tpl[i] := j * tpl[i]; - END_REPEAT; - RETURN(ctmv(tpl)); - END_IF; - ef_dot_prod_it : IF good_t(v1, 'INTEGER') AND good_t(v2, 'INTEGER') - THEN - tpl := v1; - tp2 := v2; - j := 0; - IF SIZEOF(tpl) <> SIZEOF(tp2) - THEN - RETURN(?); - END_IF; - REPEAT i := 1 TO SIZEOF(tpl); - j := j + tpl[i] * tp2[i]; - END_REPEAT; - RETURN(ctmv(j)); - END_IF; - ef_sum_rt : IF good_t(v1, 'REAL') - THEN - tpl := v1; - r := 0.0; - REPEAT i := 1 TO SIZEOF(tpl); - r := r + tpl[i]; - END_REPEAT; - RETURN(ctmv(r)); - END_IF; - ef_product_rt : IF good_t(v1, 'REAL') - THEN - tpl := v1; - r := 1.0; - REPEAT i := 1 TO SIZEOF(tpl); - r := r * tpl[i]; - END_REPEAT; - RETURN(ctmv(r)); - END_IF; - ef_add_rt : BEGIN - boo := false; - REPEAT i := SIZEOF(vlist) TO 1 BY -1; - IF good_t(vlist[i], 'REAL') - THEN - IF NOT boo - THEN - tpl := vlist[i]; - boo := true; - ELSE - tp2 := vlist[i]; - IF SIZEOF(tpl) <> SIZEOF(tp2) - THEN - RETURN(?); - END_IF; - REPEAT l := 1 TO SIZEOF(tpl); - tpl[j] := tpl[j] + tp2[j]; - END_REPEAT; - END_IF; - REMOVE(vlist, i); - END_IF; - END_REPEAT; - IF SIZEOF(vlist) = 0 - THEN - RETURN(ctmv(tpl)); - END_IF; - IF boo - THEN - INSERT(vlist, ctmv(tpl), 0); - END_IF; - IF SIZEOF(vlist) = 1 - THEN - RETURN(vlist[1]); - END_IF; - END; - ef_subtract_rt : IF good_t(v1, 'REAL') AND good_t(v2, 'REAL') - THEN - tpl := v1; - tp2 := v2; - IF SIZEOF(tpl) <> SIZEOF(tp2) - THEN - RETURN(?); - END_IF; - REPEAT i := 1 TO SIZEOF(tpl); - tpl[i] := tpl[i] - tp2[i]; - END_REPEAT; - RETURN(ctmv(tpl)); - END_IF; - ef_scalar_mult_rt : IF ('REAL' IN TYPEOF(v1)) AND good_t(v2, 'REAL') - THEN - r := v1; - tpl := v2; - REPEAT i := 1 TO SIZEOF(tpl); - tpl[i] := r * tpl[i]; - END_REPEAT; - RETURN(ctmv(tpl)); - END_IF; - ef_dot_prod_rt : IF good_t(v1, 'REAL') AND good_t(v2, 'REAL') - THEN - tpl := v1; - tp2 := v2; - r := 0; - IF SIZEOF(tpl) <> SIZEOF(tp2) - THEN - RETURN(?); - END_IF; - REPEAT i := 1 TO SIZEOF(tpl); - r := r + tpl[i] * tp2[i]; - END_REPEAT; - RETURN(ctmv(r)); - END_IF; - ef_norm_rt : IF good_t(v1, 'REAL') - THEN - tpl := v1; - r := 0.0; - REPEAT i := 1 TO SIZEOF(tpl); - r := r + tpl[i] * tpl[i]; - END_REPEAT; - RETURN(ctmv(SQRT(r))); - END_IF; - ef_sum_ct : IF good_t(v1, cnlit) - THEN - tpl := v1; - p := 0.0; - q := 0.0; - REPEAT i := 1 TO SIZEOF(tpl); - parts(tpl[i], r, s); - p := p + r; - q := q + s; - END_REPEAT; - RETURN(makec(p, q)); - END_IF; - ef_product_ct : IF good_t(v1, cnlit) - THEN - tpl := v1; - p := 1.0; - q := 0.0; - REPEAT i := 1 TO SIZEOF(tpl); - parts(tpl[i], r, s); - p := p * r - q * s; - q := p * s + q * r; - END_REPEAT; - RETURN(makec(p, q)); - END_IF; - ef_add_ct : BEGIN - boo := false; - REPEAT i := SIZEOF(vlist) TO 1 BY -1; - IF good_t(vlist[i], cnlit) - THEN - IF NOT boo - THEN - tpl := vlist[i]; - boo := true; - ELSE - tp2 := vlist[i]; - IF SIZEOF(tpl) <> SIZEOF(tp2) - THEN - RETURN(?); - END_IF; - REPEAT l := 1 TO SIZEOF(tpl); - parts(tpl[j], p, q); - parts(tp2[j], r, s); - tpl[j] := makec(p + r, q + s); - END_REPEAT; - END_IF; - REMOVE(vlist, i); - END_IF; - END_REPEAT; - IF SIZEOF(vlist) = 0 - THEN - RETURN(ctmv(tpl)); - END_IF; - IF boo - THEN - INSERT(vlist, ctmv(tpl), 0); - END_IF; - IF SIZEOF(vlist) = 1 - THEN - RETURN(vlist[1]); - END_IF; - END; - ef_subtract_ct : IF good_t(v1, cnlit) AND good_t(v2, cnlit) - THEN - tpl := v1; - tp2 := v2; - IF SIZEOF(tpl) <> SIZEOF(tp2) - THEN - RETURN(?); - END_IF; - REPEAT i := 1 TO SIZEOF(tpl); - parts(tpl[i], p, q); - parts(tp2[i], r, s); - tpl[i] := makec(p - r, q - s); - END_REPEAT; - RETURN(ctmv(tpl)); - END_IF; - ef_scalar_mult_ct : IF (cnlit IN TYPEOF(v1)) AND good_t(v2, cnlit) - THEN - parts(v1, p, q); - tpl := v2; - REPEAT i := 1 TO SIZEOF(tpl); - parts(tpl[i], r, s); - tpl[i] := makec(p * r - q * s, p * s + q * r); - END_REPEAT; - RETURN(ctmv(tpl)); - END_IF; - ef_dot_prod_ct : IF good_t(v1, cnlit) AND good_t(v2, cnlit) - THEN - tpl := v1; - tp2 := v2; - t := 0.0; - u := 0.0; - IF SIZEOF(tpl) <> SIZEOF(tp2) - THEN - RETURN(?); - END_IF; - REPEAT i := 1 TO SIZEOF(tpl); - parts(tpl[i], p, q); - parts(tp2[i], r, s); - t := t + p * r + q * s; - u := u + q * r - p * s; - END_REPEAT; - RETURN(makec(t, u)); - END_IF; - ef_norm_ct : IF good_t(v1, cnlit) - THEN - tpl := v1; - r := 0.0; - REPEAT i := 1 TO SIZEOF(tpl); - parts(tpl[i], p, q); - r := r + p * p + q * q; - END_REPEAT; - RETURN(ctmv(SQRT(r))); - END_IF; - ef_if, ef_if_i, ef_if_r, ef_if_c, ef_if_s, ef_if_b, ef_if_t : IF 'LOGICAL' IN TYPEOF(v1) - THEN - lgc := v1; - IF lgc - THEN - RETURN(v2); - ELSE - RETURN(v3); - END_IF; - END_IF; - ef_ensemble : RETURN(make_finite_space(mem + vlist)); - ef_member_of : IF (schema_prefix + 'MATHS_SPACE') IN TYPEOF(v2) - THEN - lgc := member_of(v1, v2); - IF lgc <> unknown - THEN - RETURN(ctmv(lgc)); - END_IF; - END_IF; - END_CASE; - RETURN(make_function_application(expr.func, vlist)); - END_IF; - IF 'ABSTRACTED_EXPRESSION_FUNCTION' IN types - THEN - gexpr := substitute(expr.func\abstracted_expression_function.expr, expr.func\quantifier_expression.variables, - vlist); - RETURN(simplify_generic_expression(gexpr)); - END_IF; - IF 'FINITE_FUNCTION' IN types - THEN - pairs := expr.func\finite_function.pairs; - REPEAT i := 1 TO SIZEOF(pairs); - IF equal_maths_values(vlist[1], pairs[i][1]) - THEN - RETURN(simplify_maths_value(pairs[i][2])); - END_IF; - END_REPEAT; - RETURN(make_function_application(expr.func, vlist)); - END_IF; - RETURN(expr); -END_FUNCTION; - -FUNCTION simplify_generic_expression(expr : generic_expression) : maths_value; -FUNCTION restore_unary(expr : unary_generic_expression; - opnd : generic_expression) : generic_expression; - expr.operand := opnd; - RETURN(expr); -END_FUNCTION; -FUNCTION restore_binary(expr : binary_generic_expression; - opd1 : generic_expression; - opd2 : generic_expression) : generic_expression; - expr.operands[1] := opd1; - expr.operands[2] := opd2; - RETURN(expr); -END_FUNCTION; -FUNCTION restore_mulary(expr : multiple_arity_generic_expression; - ops : LIST OF generic_expression) : generic_expression; - expr.operands := ops; - RETURN(expr); -END_FUNCTION; -FUNCTION make_number_literal(nmb : NUMBER) : generic_literal; - IF 'INTEGER' IN TYPEOF(nmb) - THEN - RETURN(make_int_literal(nmb)); - END_IF; - RETURN(make_real_literal(nmb)); -END_FUNCTION; -LOCAL - types : SET OF STRING := stripped_typeof(expr); - v1 : maths_value; - v2 : maths_value; - vlist : LIST OF maths_value := []; - op1 : generic_expression; - op2 : generic_expression; - oplist : LIST OF generic_expression := []; - opnds : LIST [2 : ?] OF generic_expression; - n : INTEGER; - m : INTEGER; - finfun : maths_function_select; - boo : BOOLEAN; - str : STRING; - nmb : NUMBER; -END_LOCAL; - IF 'INT_LITERAL' IN types - THEN - RETURN(convert_to_maths_value(expr\int_literal.the_value)); - END_IF; - IF 'REAL_LITERAL' IN types - THEN - RETURN(convert_to_maths_value(expr\real_literal.the_value)); - END_IF; - IF 'BOOLEAN_LITERAL' IN types - THEN - RETURN(convert_to_maths_value(expr\boolean_literal.the_value)); - END_IF; - IF 'STRING_LITERAL' IN types - THEN - RETURN(convert_to_maths_value(expr\string_literal.the_value)); - END_IF; - IF 'COMPLEX_NUMBER_LITERAL' IN types - THEN - RETURN(expr); - END_IF; - IF 'LOGICAL_LITERAL' IN types - THEN - RETURN(convert_to_maths_value(expr\logical_literal.lit_value)); - END_IF; - IF 'BINARY_LITERAL' IN types - THEN - RETURN(convert_to_maths_value(expr\binary_literal.lit_value)); - END_IF; - IF 'MATHS_ENUM_LITERAL' IN types - THEN - RETURN(expr\maths_enum_literal.lit_value); - END_IF; - IF 'REAL_TUPLE_LITERAL' IN types - THEN - RETURN(convert_to_maths_value(expr\real_tuple_literal.lit_value)); - END_IF; - IF 'INTEGER_TUPLE_LITERAL' IN types - THEN - RETURN(convert_to_maths_value(expr\integer_tuple_literal.lit_value)); - END_IF; - IF 'ATOM_BASED_LITERAL' IN types - THEN - RETURN(expr\atom_based_literal.lit_value); - END_IF; - IF 'MATHS_TUPLE_LITERAL' IN types - THEN - RETURN(convert_to_maths_value(expr\maths_tuple_literal.lit_value)); - END_IF; - IF 'MATHS_SPACE' IN types - THEN - RETURN(simplify_maths_space(expr)); - END_IF; - IF 'FUNCTION_APPLICATION' IN types - THEN - RETURN(simplify_function_application(expr)); - END_IF; - IF 'UNARY_GENERIC_EXPRESSION' IN types - THEN - v1 := simplify_generic_expression(expr\unary_generic_expression.operand); - op1 := convert_to_operand(v1); - END_IF; - IF 'BINARY_GENERIC_EXPRESSION' IN types - THEN - v1 := simplify_generic_expression(expr\binary_generic_expression.operands[1]); - op1 := convert_to_operand(v1); - v2 := simplify_generic_expression(expr\binary_generic_expression.operands[2]); - op2 := convert_to_operand(v2); - END_IF; - IF 'MULTIPLE_ARITY_GENERIC_EXPRESSION' IN types - THEN - opnds := expr\multiple_arity_generic_expression.operands; - REPEAT i := 1 TO SIZEOF(opnds); - v1 := simplify_generic_expression(opnds[i]); - INSERT(vlist, v1, i - 1); - INSERT(oplist, convert_to_operand(v1), i - 1); - END_REPEAT; - END_IF; - IF 'PARALLEL_COMPOSED_FUNCTION' IN types - THEN - v1 := vlist[1]; - n := SIZEOF(vlist); - finfun := vlist[n]; - REMOVE(vlist, n); - REMOVE(vlist, 1); - RETURN(make_parallel_composed_function(v1, vlist, finfun)); - END_IF; - IF ('ABS_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1)) - THEN - RETURN(convert_to_maths_value(ABS(v1))); - END_IF; - IF ('ACOS_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1)) - THEN - RETURN(convert_to_maths_value(ACOS(v1))); - END_IF; - IF 'AND_EXPRESSION' IN types - THEN - REPEAT i := SIZEOF(vlist) TO 1 BY -1; - IF 'BOOLEAN' IN TYPEOF(vlist[i]) - THEN - boo := vlist[i]; - IF NOT boo - THEN - RETURN(convert_to_maths_value(false)); - END_IF; - REMOVE(oplist, i); - END_IF; - END_REPEAT; - IF SIZEOF(oplist) = 0 - THEN - RETURN(convert_to_maths_value(true)); - END_IF; - IF SIZEOF(oplist) = 1 - THEN - RETURN(oplist[1]); - END_IF; - END_IF; - IF ('ASIN_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1)) - THEN - RETURN(convert_to_maths_value(ASIN(v1))); - END_IF; - IF ('ATAN_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1)) AND ('NUMBER' IN TYPEOF(v2)) - THEN - RETURN(convert_to_maths_value(ATAN(v1, v2))); - END_IF; - IF ('COMPARISON_EXPRESSION' IN types) AND - ((('NUMBER' IN TYPEOF(v1)) AND ('NUMBER' IN TYPEOF(v2))) OR - (('STRING' IN TYPEOF(v1)) AND ('STRING' IN TYPEOF(v2))) OR - (('BOOLEAN' IN TYPEOF(v1)) AND ('BOOLEAN' IN TYPEOF(v2)))) - THEN - IF 'COMPARISON_EQUAL' IN types - THEN - boo := bool(v1 = v2); - ELSE - IF 'COMPARISON_GREATER' IN types - THEN - boo := bool(v1 > v2); - ELSE - IF 'COMPARISON_GREATER_EQUAL' IN types - THEN - boo := bool(v1 >= v2); - ELSE - IF 'COMPARISON_LESS' IN types - THEN - boo := bool(v1 < v2); - ELSE - IF 'COMPARISON_LESS_EQUAL' IN types - THEN - boo := bool(v1 <= v2); - ELSE - IF 'COMPARISON_NOT_EQUAL' IN types - THEN - boo := bool(v1 <> v2); - ELSE - IF 'LIKE_EXPRESSION' IN types - THEN - boo := bool(v1 LIKE v2); - ELSE - RETURN(?); - END_IF; - END_IF; - END_IF; - END_IF; - END_IF; - END_IF; - END_IF; - RETURN(convert_to_maths_value(boo)); - END_IF; - IF 'CONCAT_EXPRESSION' IN types - THEN - str := ''; - REPEAT i := SIZEOF(vlist) TO 1 BY -1; - IF 'STRING' IN TYPEOF(vlist[i]) - THEN - str := vlist[i] + str; - REMOVE(oplist, i); - ELSE - IF LENGTH(str) > 0 - THEN - INSERT(oplist, make_string_literal(str), i); - str := ''; - END_IF; - END_IF; - END_REPEAT; - IF SIZEOF(oplist) = 0 - THEN - RETURN(convert_to_maths_value(str)); - END_IF; - IF LENGTH(str) > 0 - THEN - INSERT(oplist, make_string_literal(str), 0); - END_IF; - IF SIZEOF(oplist) = 1 - THEN - RETURN(oplist[1]); - END_IF; - END_IF; - IF ('COS_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1)) - THEN - RETURN(convert_to_maths_value(COS(v1))); - END_IF; - IF ('DIV_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1)) AND ('NUMBER' IN TYPEOF(v2)) - THEN - RETURN(convert_to_maths_value(v1 DIV v2)); - END_IF; - IF 'EQUALS_EXPRESSION' IN types - THEN - opnds := expr\binary_generic_expression.operands; - RETURN(convert_to_maths_value(opnds[1] :=: opnds[2])); - END_IF; - IF ('EXP_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1)) - THEN - RETURN(convert_to_maths_value(EXP(v1))); - END_IF; - IF ('FORMAT_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1)) AND ('STRING' IN TYPEOF(v2)) - THEN - RETURN(convert_to_maths_value(FORMAT(v1, v2))); - END_IF; - IF ('INDEX_EXPRESSION' IN types) AND ('STRING' IN TYPEOF(v1)) AND ('NUMBER' IN TYPEOF(v2)) - THEN - str := v1; - n := v2; - RETURN(convert_to_maths_value(str[n])); - END_IF; - IF ('INT_VALUE_EXPRESSION' IN types) AND ('STRING' IN TYPEOF(v1)) - THEN - RETURN(convert_to_maths_value(VALUE(v1))); - END_IF; - IF 'INTERVAL_EXPRESSION' IN types - THEN - str := ''; - IF 'NUMBER' IN TYPEOF(vlist[1]) - THEN - str := 'NUMBER'; - END_IF; - IF 'STRING' IN TYPEOF(vlist[1]) - THEN - str := 'STRING'; - END_IF; - IF 'BOOLEAN' IN TYPEOF(vlist[1]) - THEN - str := 'BOOLEAN'; - END_IF; - IF (LENGTH(str) > 0) AND (str IN TYPEOF(vlist[2])) AND (str IN TYPEOF(vlist[3])) - THEN - RETURN(convert_to_maths_value({vlist[1] <= vlist[2] <= vlist[3]})); - END_IF; - END_IF; - IF ('LENGTH_EXPRESSION' IN types) AND ('STRING' IN TYPEOF(v1)) - THEN - RETURN(convert_to_maths_value(LENGTH(v1))); - END_IF; - IF ('LOG_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1)) - THEN - RETURN(convert_to_maths_value(LOG(v1))); - END_IF; - IF ('LOG10_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1)) - THEN - RETURN(convert_to_maths_value(LOG10(v1))); - END_IF; - IF ('LOG2_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1)) - THEN - RETURN(convert_to_maths_value(LOG2(v1))); - END_IF; - IF 'MAXIMUM_EXPRESSION' IN types - THEN - boo := false; - REPEAT i := SIZEOF(vlist) TO 1 BY -1; - IF 'NUMBER' IN TYPEOF(vlist[i]) - THEN - IF boo - THEN - IF nmb < vlist[i] - THEN - nmb := vlist[i]; - END_IF; - ELSE - nmb := vlist[i]; - boo := true; - END_IF; - REMOVE(oplist, i); - END_IF; - END_REPEAT; - IF SIZEOF(oplist) = 0 - THEN - RETURN(convert_to_maths_value(nmb)); - END_IF; - IF boo - THEN - INSERT(oplist, make_number_literal(nmb), 0); - END_IF; - END_IF; - IF 'MINIMUM_EXPRESSION' IN types - THEN - boo := false; - REPEAT i := SIZEOF(vlist) TO 1 BY -1; - IF 'NUMBER' IN TYPEOF(vlist[i]) - THEN - IF boo - THEN - IF nmb > vlist[i] - THEN - nmb := vlist[i]; - END_IF; - ELSE - nmb := vlist[i]; - boo := true; - END_IF; - REMOVE(oplist, i); - END_IF; - END_REPEAT; - IF SIZEOF(oplist) = 0 - THEN - RETURN(convert_to_maths_value(nmb)); - END_IF; - IF boo - THEN - INSERT(oplist, make_number_literal(nmb), 0); - END_IF; - END_IF; - IF ('MINUS_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1)) AND ('NUMBER' IN TYPEOF(v2)) - THEN - RETURN(convert_to_maths_value(v1 - v2)); - END_IF; - IF ('MOD_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1)) AND ('NUMBER' IN TYPEOF(v2)) - THEN - RETURN(convert_to_maths_value(v1 MOD v2)); - END_IF; - IF 'MULT_EXPRESSION' IN types - THEN - nmb := 1; - REPEAT i := SIZEOF(vlist) TO 1 BY -1; - IF 'NUMBER' IN TYPEOF(vlist[i]) - THEN - nmb := nmb * vlist[i]; - REMOVE(oplist, i); - END_IF; - END_REPEAT; - IF SIZEOF(oplist) = 0 - THEN - RETURN(convert_to_maths_value(nmb)); - END_IF; - IF nmb <> 1 - THEN - INSERT(oplist, make_number_literal(nmb), 0); - END_IF; - IF SIZEOF(oplist) = 1 - THEN - RETURN(oplist[1]); - END_IF; - END_IF; - IF ('NOT_EXPRESSION' IN types) AND ('BOOLEAN' IN TYPEOF(v1)) - THEN - boo := v1; - RETURN(convert_to_maths_value(NOT (boo))); - END_IF; - IF ('ODD_EXPRESSION' IN types) AND ('INTEGER' IN TYPEOF(v1)) - THEN - RETURN(convert_to_maths_value(ODD(v1))); - END_IF; - IF 'OR_EXPRESSION' IN types - THEN - REPEAT i := SIZEOF(vlist) TO 1 BY -1; - IF 'BOOLEAN' IN TYPEOF(vlist[i]) - THEN - boo := vlist[i]; - IF boo - THEN - RETURN(convert_to_maths_value(true)); - END_IF; - REMOVE(oplist, i); - END_IF; - END_REPEAT; - IF SIZEOF(oplist) = 0 - THEN - RETURN(convert_to_maths_value(false)); - END_IF; - IF SIZEOF(oplist) = 1 - THEN - RETURN(oplist[1]); - END_IF; - END_IF; - IF 'PLUS_EXPRESSION' IN types - THEN - nmb := 0; - REPEAT i := SIZEOF(vlist) TO 1 BY -1; - IF 'NUMBER' IN TYPEOF(vlist[i]) - THEN - nmb := nmb + vlist[i]; - REMOVE(oplist, i); - END_IF; - END_REPEAT; - IF SIZEOF(oplist) = 0 - THEN - RETURN(convert_to_maths_value(nmb)); - END_IF; - IF nmb <> 0 - THEN - INSERT(oplist, make_number_literal(nmb), 0); - END_IF; - IF SIZEOF(oplist) = 1 - THEN - RETURN(oplist[1]); - END_IF; - END_IF; - IF ('POWER_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1)) AND ('NUMBER' IN TYPEOF(v2)) - THEN - RETURN(convert_to_maths_value(v1 ** v2)); - END_IF; - IF ('SIN_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1)) - THEN - RETURN(convert_to_maths_value(SIN(v1))); - END_IF; - IF ('SLASH_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1)) AND ('NUMBER' IN TYPEOF(v2)) - THEN - RETURN(convert_to_maths_value(v1 / v2)); - END_IF; - IF ('SQUARE_ROOT_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1)) - THEN - RETURN(convert_to_maths_value(SQRT(v1))); - END_IF; - IF ('SUBSTRING_EXPRESSION' IN types) AND ('STRING' IN TYPEOF(vlist[1])) AND ('NUMBER' IN TYPEOF(vlist[2])) AND - ('NUMBER' IN TYPEOF(vlist[3])) - THEN - str := vlist[1]; - n := vlist[2]; - m := vlist[3]; - RETURN(convert_to_maths_value(str[n:m])); - END_IF; - IF ('TAN_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1)) - THEN - RETURN(convert_to_maths_value(TAN(v1))); - END_IF; - IF ('UNARY_MINUS_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1)) - THEN - nmb := v1; - RETURN(convert_to_maths_value(-nmb)); - END_IF; - IF ('VALUE_EXPRESSION' IN types) AND ('STRING' IN TYPEOF(v1)) - THEN - RETURN(convert_to_maths_value(VALUE(v1))); - END_IF; - IF ('XOR_EXPRESSION' IN types) AND ('BOOLEAN' IN TYPEOF(v1)) AND ('BOOLEAN' IN TYPEOF(v2)) - THEN - RETURN(convert_to_maths_value(v1 XOR v2)); - END_IF; - IF 'UNARY_GENERIC_EXPRESSION' IN types - THEN - RETURN(restore_unary(expr, op1)); - END_IF; - IF 'BINARY_GENERIC_EXPRESSION' IN types - THEN - RETURN(restore_binary(expr, op1, op2)); - END_IF; - IF 'MULTIPLE_ARITY_GENERIC_EXPRESSION' IN types - THEN - RETURN(restore_mulary(expr, oplist)); - END_IF; - RETURN(expr); -END_FUNCTION; - -FUNCTION simplify_maths_space(spc : maths_space) : maths_space; -LOCAL - stypes : SET OF STRING := stripped_typeof(spc); - sset : SET OF maths_value; - zset : SET OF maths_value := []; - zval : maths_value; - zspc : maths_space; - zallint : BOOLEAN := true; - zint : INTEGER; - zmin : INTEGER; - zmax : INTEGER; - factors : LIST OF maths_space; - zfactors : LIST OF maths_space := []; - rspc : maths_space; -END_LOCAL; - IF 'FINITE_SPACE' IN stypes - THEN - sset := spc\finite_space.members; - REPEAT i := 1 TO SIZEOF(sset); - zval := simplify_maths_value(sset[i]); - zset := zset + [zval]; - IF zallint AND ('INTEGER' IN TYPEOF(zval)) - THEN - zint := zval; - IF i = 1 - THEN - zmin := zint; - zmax := zint; - ELSE - IF zint < zmin - THEN - zmin := zint; - END_IF; - IF zint > zmax - THEN - zmax := zint; - END_IF; - END_IF; - ELSE - zallint := false; - END_IF; - END_REPEAT; - IF zallint AND (SIZEOF(zset) = zmax - zmin + 1) - THEN - RETURN(make_finite_integer_interval(zmin, zmax)); - END_IF; - RETURN(make_finite_space(zset)); - END_IF; - IF 'UNIFORM_PRODUCT_SPACE' IN stypes - THEN - zspc := simplify_maths_space(spc\uniform_product_space.base); - RETURN(make_uniform_product_space(zspc, spc\uniform_product_space.exponent)); - END_IF; - IF 'LISTED_PRODUCT_SPACE' IN stypes - THEN - factors := spc\listed_product_space.factors; - REPEAT i := 1 TO SIZEOF(factors); - INSERT(zfactors, simplify_maths_space(factors[i]), i - 1); - END_REPEAT; - RETURN(make_listed_product_space(zfactors)); - END_IF; - IF 'EXTENDED_TUPLE_SPACE' IN stypes - THEN - zspc := simplify_maths_space(spc\extended_tuple_space.base); - rspc := simplify_maths_space(spc\extended_tuple_space.extender); - RETURN(make_extended_tuple_space(zspc, rspc)); - END_IF; - IF 'FUNCTION_SPACE' IN stypes - THEN - zspc := simplify_maths_space(spc\function_space.domain_argument); - rspc := simplify_maths_space(spc\function_space.range_argument); - RETURN(make_function_space(spc\function_space.domain_constraint, zspc, spc\function_space.range_constraint, rspc)); - END_IF; - RETURN(spc); -END_FUNCTION; - -FUNCTION simplify_maths_value(val : maths_value) : maths_value; -LOCAL - vtypes : SET OF STRING := stripped_typeof(val); - vlist : LIST OF maths_value; - nlist : LIST OF maths_value := []; -END_LOCAL; - IF 'GENERIC_EXPRESSION' IN vtypes - THEN - RETURN(simplify_generic_expression(val)); - END_IF; - IF 'LIST' IN vtypes - THEN - vlist := val; - REPEAT i := 1 TO SIZEOF(vlist); - INSERT(nlist, simplify_maths_value(vlist[i]), i - 1); - END_REPEAT; - RETURN(convert_to_maths_value(nlist)); - END_IF; - RETURN(val); -END_FUNCTION; - -FUNCTION singleton_member_of(spc : maths_space) : maths_value; -LOCAL - types : SET OF STRING := stripped_typeof(spc); -END_LOCAL; - IF 'FINITE_SPACE' IN types - THEN - IF SIZEOF(spc\finite_space.members) = 1 - THEN - RETURN(spc\finite_space.members[1]); - END_IF; - RETURN(?); - END_IF; - IF 'FINITE_INTEGER_INTERVAL' IN types - THEN - IF spc\finite_integer_interval.size = 1 - THEN - RETURN(spc\finite_integer_interval.min); - END_IF; - RETURN(?); - END_IF; - RETURN(?); -END_FUNCTION; - -FUNCTION sort_link_associations(aprr : SET [1 : ?] OF pair_representation_relationship; - one_not_two : BOOLEAN) : SET OF kinematic_link_representation; -LOCAL - result : SET OF kinematic_link_representation := []; -END_LOCAL; - IF one_not_two - THEN - REPEAT i := 1 TO HIINDEX(aprr); - result := result + aprr[i].rep_1; - END_REPEAT; - ELSE - REPEAT i := 1 TO HIINDEX(aprr); - result := result + aprr[i].rep_2; - END_REPEAT; - END_IF; - RETURN(result); -END_FUNCTION; - -FUNCTION space_dimension(tspace : tuple_space) : nonnegative_integer; -LOCAL - types : SET OF STRING := TYPEOF(tspace); -END_LOCAL; - IF (schema_prefix + 'UNIFORM_PRODUCT_SPACE') IN types - THEN - RETURN(tspace\uniform_product_space.exponent); - END_IF; - IF (schema_prefix + 'LISTED_PRODUCT_SPACE') IN types - THEN - RETURN(SIZEOF(tspace\listed_product_space.factors)); - END_IF; - IF (schema_prefix + 'EXTENDED_TUPLE_SPACE') IN types - THEN - RETURN(space_dimension(tspace\extended_tuple_space.base)); - END_IF; - RETURN(?); -END_FUNCTION; - -FUNCTION space_is_continuum(space : maths_space) : BOOLEAN; -LOCAL - typenames : SET OF STRING := TYPEOF(space); - factors : LIST OF maths_space; -END_LOCAL; - IF NOT EXISTS(space) - THEN - RETURN(false); - END_IF; - IF subspace_of_es(space, es_reals) OR subspace_of_es(space, es_complex_numbers) - THEN - RETURN(true); - END_IF; - IF (schema_prefix + 'UNIFORM_PRODUCT_SPACE') IN typenames - THEN - RETURN(space_is_continuum(space\uniform_product_space.base)); - END_IF; - IF (schema_prefix + 'LISTED_PRODUCT_SPACE') IN typenames - THEN - factors := space\listed_product_space.factors; - IF SIZEOF(factors) = 0 - THEN - RETURN(false); - END_IF; - REPEAT i := 1 TO SIZEOF(factors); - IF NOT space_is_continuum(factors[i]) - THEN - RETURN(false); - END_IF; - END_REPEAT; - RETURN(true); - END_IF; - RETURN(false); -END_FUNCTION; - -FUNCTION space_is_singleton(spc : maths_space) : BOOLEAN; -LOCAL - types : SET OF STRING := stripped_typeof(spc); -END_LOCAL; - IF 'FINITE_SPACE' IN types - THEN - RETURN(bool(SIZEOF(spc\finite_space.members) = 1)); - END_IF; - IF 'FINITE_INTEGER_INTERVAL' IN types - THEN - RETURN(bool(spc\finite_integer_interval.size = 1)); - END_IF; - RETURN(false); -END_FUNCTION; - -FUNCTION stripped_typeof(arg : GENERIC : G) : SET OF STRING; -LOCAL - types : SET OF STRING := TYPEOF(arg); - stypes : SET OF STRING := []; - n : INTEGER := LENGTH(schema_prefix); -END_LOCAL; - REPEAT i := 1 TO SIZEOF(types); - IF ((LENGTH(types[i]) > n) AND (types[i][1:n] = schema_prefix)) - THEN - stypes := stypes + [types[i][n + 1:LENGTH(types[i])]]; - ELSE - stypes := stypes + [types[i]]; - END_IF; - END_REPEAT; - RETURN(stypes); -END_FUNCTION; - -FUNCTION sts_get_general_datum_reference(input : datum_reference_element) : general_datum_reference; -LOCAL - general_datum_reference_bag : BAG OF general_datum_reference := (USEDIN(input, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GENERAL_DATUM_REFERENCE.BASE')); -END_LOCAL; - IF SIZEOF(general_datum_reference_bag) = 1 - THEN - RETURN(general_datum_reference_bag[1]); - ELSE - RETURN(?); - END_IF; -END_FUNCTION; - -FUNCTION sts_get_product_definition_shape(input : geometric_tolerance_target) : product_definition_shape; - CASE true OF - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSIONAL_LOCATION' IN - TYPEOF(input)) : RETURN(input\shape_aspect_relationship.relating_shape_aspect\shape_aspect.of_shape); - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSIONAL_SIZE' IN - TYPEOF(input)) : RETURN(input\dimensional_size.applies_to\shape_aspect.of_shape); - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(input)) : RETURN(input); - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT' IN - TYPEOF(input)) : RETURN(input\shape_aspect.of_shape); - OTHERWISE: RETURN(?); - END_CASE; -END_FUNCTION; - -FUNCTION subspace_of(space1 : maths_space; - space2 : maths_space) : LOGICAL; -LOCAL - spc1 : maths_space := simplify_maths_space(space1); - spc2 : maths_space := simplify_maths_space(space2); - types1 : SET OF STRING := stripped_typeof(spc1); - types2 : SET OF STRING := stripped_typeof(spc2); - lgcl : LOGICAL; - cum : LOGICAL; - es_val : elementary_space_enumerators; - bnd1 : REAL; - bnd2 : REAL; - n : INTEGER; - sp1 : maths_space; - sp2 : maths_space; - prgn1 : polar_complex_number_region; - prgn2 : polar_complex_number_region; - aitv : finite_real_interval; -END_LOCAL; - IF NOT EXISTS(spc1) OR NOT EXISTS(spc2) - THEN - RETURN(false); - END_IF; - IF spc2 = the_generics - THEN - RETURN(true); - END_IF; - IF 'ELEMENTARY_SPACE' IN types1 - THEN - IF NOT ('ELEMENTARY_SPACE' IN types2) - THEN - RETURN(false); - END_IF; - es_val := spc2\elementary_space.space_id; - IF spc1\elementary_space.space_id = es_val - THEN - RETURN(true); - END_IF; - CASE spc1\elementary_space.space_id OF - es_numbers : RETURN(false); - es_complex_numbers : RETURN(es_val = es_numbers); - es_reals : RETURN(es_val = es_numbers); - es_integers : RETURN(es_val = es_numbers); - es_logicals : RETURN(false); - es_booleans : RETURN(es_val = es_logicals); - es_strings : RETURN(false); - es_binarys : RETURN(false); - es_maths_spaces : RETURN(false); - es_maths_functions : RETURN(false); - es_generics : RETURN(false); - END_CASE; - RETURN(unknown); - END_IF; - IF 'FINITE_INTEGER_INTERVAL' IN types1 - THEN - cum := true; - REPEAT i := spc1\finite_integer_interval.min TO spc1\finite_integer_interval.max; - cum := cum AND member_of(i, spc2); - IF cum = false - THEN - RETURN(false); - END_IF; - END_REPEAT; - RETURN(cum); - END_IF; - IF 'INTEGER_INTERVAL_FROM_MIN' IN types1 - THEN - IF 'ELEMENTARY_SPACE' IN types2 - THEN - es_val := spc2\elementary_space.space_id; - RETURN((es_val = es_numbers) OR (es_val = es_integers)); - END_IF; - IF 'INTEGER_INTERVAL_FROM_MIN' IN types2 - THEN - RETURN(spc1\integer_interval_from_min.min >= spc2\integer_interval_from_min.min); - END_IF; - RETURN(false); - END_IF; - IF 'INTEGER_INTERVAL_TO_MAX' IN types1 - THEN - IF 'ELEMENTARY_SPACE' IN types2 - THEN - es_val := spc2\elementary_space.space_id; - RETURN((es_val = es_numbers) OR (es_val = es_integers)); - END_IF; - IF 'INTEGER_INTERVAL_TO_MAX' IN types2 - THEN - RETURN(spc1\integer_interval_to_max.max <= spc2\integer_interval_to_max.max); - END_IF; - RETURN(false); - END_IF; - IF 'FINITE_REAL_INTERVAL' IN types1 - THEN - IF 'ELEMENTARY_SPACE' IN types2 - THEN - es_val := spc2\elementary_space.space_id; - RETURN((es_val = es_numbers) OR (es_val = es_reals)); - END_IF; - IF ('FINITE_REAL_INTERVAL' IN types2) OR ('REAL_INTERVAL_FROM_MIN' IN types2) OR ('REAL_INTERVAL_TO_MAX' IN types2) - THEN - IF min_exists(spc2) - THEN - bnd1 := spc1\finite_real_interval.min; - bnd2 := real_min(spc2); - IF (bnd1 < bnd2) OR ((bnd1 = bnd2) AND min_included(spc1) AND NOT min_included(spc2)) - THEN - RETURN(false); - END_IF; - END_IF; - IF max_exists(spc2) - THEN - bnd1 := spc1\finite_real_interval.max; - bnd2 := real_max(spc2); - IF (bnd1 > bnd2) OR ((bnd1 = bnd2) AND max_included(spc1) AND NOT max_included(spc2)) - THEN - RETURN(false); - END_IF; - END_IF; - RETURN(true); - END_IF; - RETURN(false); - END_IF; - IF 'REAL_INTERVAL_FROM_MIN' IN types1 - THEN - IF 'ELEMENTARY_SPACE' IN types2 - THEN - es_val := spc2\elementary_space.space_id; - RETURN((es_val = es_numbers) OR (es_val = es_reals)); - END_IF; - IF 'REAL_INTERVAL_FROM_MIN' IN types2 - THEN - bnd1 := spc1\real_interval_from_min.min; - bnd2 := spc2\real_interval_from_min.min; - RETURN((bnd2 < bnd1) OR ((bnd2 = bnd1) AND (min_included(spc2) OR NOT min_included(spc1)))); - END_IF; - RETURN(false); - END_IF; - IF 'REAL_INTERVAL_TO_MAX' IN types1 - THEN - IF 'ELEMENTARY_SPACE' IN types2 - THEN - es_val := spc2\elementary_space.space_id; - RETURN((es_val = es_numbers) OR (es_val = es_reals)); - END_IF; - IF 'REAL_INTERVAL_TO_MAX' IN types2 - THEN - bnd1 := spc1\real_interval_to_max.max; - bnd2 := spc2\real_interval_to_max.max; - RETURN((bnd2 > bnd1) OR ((bnd2 = bnd1) AND (max_included(spc2) OR NOT max_included(spc1)))); - END_IF; - RETURN(false); - END_IF; - IF 'CARTESIAN_COMPLEX_NUMBER_REGION' IN types1 - THEN - IF 'ELEMENTARY_SPACE' IN types2 - THEN - es_val := spc2\elementary_space.space_id; - RETURN((es_val = es_numbers) OR (es_val = es_complex_numbers)); - END_IF; - IF 'CARTESIAN_COMPLEX_NUMBER_REGION' IN types2 - THEN - RETURN(subspace_of(spc1\cartesian_complex_number_region.real_constraint, - spc2\cartesian_complex_number_region.real_constraint) AND - subspace_of(spc1\cartesian_complex_number_region.imag_constraint, - spc2\cartesian_complex_number_region.imag_constraint)); - END_IF; - IF 'POLAR_COMPLEX_NUMBER_REGION' IN types2 - THEN - RETURN(subspace_of(enclose_cregion_in_pregion(spc1, spc2\polar_complex_number_region.centre), spc2)); - END_IF; - RETURN(false); - END_IF; - IF 'POLAR_COMPLEX_NUMBER_REGION' IN types1 - THEN - IF 'ELEMENTARY_SPACE' IN types2 - THEN - es_val := spc2\elementary_space.space_id; - RETURN((es_val = es_numbers) OR (es_val = es_complex_numbers)); - END_IF; - IF 'CARTESIAN_COMPLEX_NUMBER_REGION' IN types2 - THEN - RETURN(subspace_of(enclose_pregion_in_cregion(spc1), spc2)); - END_IF; - IF 'POLAR_COMPLEX_NUMBER_REGION' IN types2 - THEN - prgn1 := spc1; - prgn2 := spc2; - IF prgn1.centre = prgn2.centre - THEN - IF prgn2.direction_constraint.max > PI - THEN - aitv := make_finite_real_interval(-PI, open, prgn2.direction_constraint.max - 2.0 * PI, - prgn2.direction_constraint.max_closure); - RETURN(subspace_of(prgn1.distance_constraint, prgn2.distance_constraint) AND - (subspace_of(prgn1.direction_constraint, prgn2.direction_constraint) OR - subspace_of(prgn1.direction_constraint, aitv))); - ELSE - RETURN(subspace_of(prgn1.distance_constraint, prgn2.distance_constraint) AND - subspace_of(prgn1.direction_constraint, prgn2.direction_constraint)); - END_IF; - END_IF; - RETURN(subspace_of(enclose_pregion_in_pregion(prgn1, prgn2.centre), prgn2)); - END_IF; - RETURN(false); - END_IF; - IF 'FINITE_SPACE' IN types1 - THEN - cum := true; - REPEAT i := 1 TO SIZEOF(spc1\finite_space.members); - cum := cum AND member_of(spc1\finite_space.members[i], spc2); - IF cum = false - THEN - RETURN(false); - END_IF; - END_REPEAT; - RETURN(cum); - END_IF; - IF 'PRODUCT_SPACE' IN types1 - THEN - IF 'PRODUCT_SPACE' IN types2 - THEN - IF space_dimension(spc1) = space_dimension(spc2) - THEN - cum := true; - REPEAT i := 1 TO space_dimension(spc1); - cum := cum AND subspace_of(factor_space(spc1, i), factor_space(spc2, i)); - IF cum = false - THEN - RETURN(false); - END_IF; - END_REPEAT; - RETURN(cum); - END_IF; - END_IF; - IF 'EXTENDED_TUPLE_SPACE' IN types2 - THEN - IF space_dimension(spc1) >= space_dimension(spc2) - THEN - cum := true; - REPEAT i := 1 TO space_dimension(spc1); - cum := cum AND subspace_of(factor_space(spc1, i), factor_space(spc2, i)); - IF cum = false - THEN - RETURN(false); - END_IF; - END_REPEAT; - RETURN(cum); - END_IF; - END_IF; - RETURN(false); - END_IF; - IF 'EXTENDED_TUPLE_SPACE' IN types1 - THEN - IF 'EXTENDED_TUPLE_SPACE' IN types2 - THEN - n := space_dimension(spc1); - IF n < space_dimension(spc2) - THEN - n := space_dimension(spc2); - END_IF; - cum := true; - REPEAT i := 1 TO n + 1; - cum := cum AND subspace_of(factor_space(spc1, i), factor_space(spc2, i)); - IF cum = false - THEN - RETURN(false); - END_IF; - END_REPEAT; - RETURN(cum); - END_IF; - RETURN(false); - END_IF; - IF 'FUNCTION_SPACE' IN types1 - THEN - IF 'ELEMENTARY_SPACE' IN types2 - THEN - RETURN(spc2\elementary_space.space_id = es_maths_functions); - END_IF; - IF 'FUNCTION_SPACE' IN types2 - THEN - cum := true; - sp1 := spc1\function_space.domain_argument; - sp2 := spc2\function_space.domain_argument; - CASE spc1\function_space.domain_constraint OF - sc_equal : BEGIN - CASE spc2\function_space.domain_constraint OF - sc_equal : cum := cum AND equal_maths_spaces(sp1, sp2); - sc_subspace : cum := cum AND subspace_of(sp1, sp2); - sc_member : cum := cum AND member_of(sp1, sp2); - END_CASE; - END; - sc_subspace : BEGIN - CASE spc2\function_space.domain_constraint OF - sc_equal : RETURN(false); - sc_subspace : cum := cum AND subspace_of(sp1, sp2); - sc_member : BEGIN - IF NOT member_of(sp1, sp2) - THEN - RETURN(false); - END_IF; - cum := unknown; - END; - END_CASE; - END; - sc_member : BEGIN - CASE spc2\function_space.domain_constraint OF - sc_equal : cum := cum AND space_is_singleton(sp1) AND - equal_maths_spaces(singleton_member_of(sp1), sp2); - sc_subspace : BEGIN - IF NOT member_of(sp2, sp1) - THEN - RETURN(false); - END_IF; - cum := unknown; - END; - sc_member : cum := cum AND (subspace_of(sp1, sp2)); - END_CASE; - END; - END_CASE; - IF cum = false - THEN - RETURN(false); - END_IF; - sp1 := spc1\function_space.range_argument; - sp2 := spc2\function_space.range_argument; - CASE spc1\function_space.range_constraint OF - sc_equal : BEGIN - CASE spc2\function_space.range_constraint OF - sc_equal : cum := cum AND equal_maths_spaces(sp1, sp2); - sc_subspace : cum := cum AND subspace_of(sp1, sp2); - sc_member : cum := cum AND member_of(sp1, sp2); - END_CASE; - END; - sc_subspace : BEGIN - CASE spc2\function_space.domain_constraint OF - sc_equal : RETURN(false); - sc_subspace : cum := cum AND subspace_of(sp1, sp2); - sc_member : BEGIN - IF NOT member_of(sp1, sp2) - THEN - RETURN(false); - END_IF; - cum := unknown; - END; - END_CASE; - END; - sc_member : BEGIN - CASE spc2\function_space.domain_constraint OF - sc_equal : cum := cum AND space_is_singleton(sp1) AND - equal_maths_spaces(singleton_member_of(sp1), sp2); - sc_subspace : BEGIN - IF NOT member_of(sp2, sp1) - THEN - RETURN(false); - END_IF; - cum := unknown; - END; - sc_member : cum := cum AND subspace_of(sp1, sp2); - END_CASE; - END; - END_CASE; - RETURN(cum); - END_IF; - RETURN(false); - END_IF; - RETURN(unknown); -END_FUNCTION; - -FUNCTION subspace_of_es(spc : maths_space; - es : elementary_space_enumerators) : LOGICAL; -LOCAL - types : SET OF STRING := stripped_typeof(spc); -END_LOCAL; - IF NOT EXISTS(spc) OR NOT EXISTS(es) - THEN - RETURN(false); - END_IF; - IF 'ELEMENTARY_SPACE' IN types - THEN - RETURN(es_subspace_of_es(spc\elementary_space.space_id, es)); - END_IF; - IF 'FINITE_SPACE' IN types - THEN - RETURN(all_members_of_es(spc\finite_space.members, es)); - END_IF; - CASE es OF - es_numbers : RETURN(('FINITE_INTEGER_INTERVAL' IN types) OR ('INTEGER_INTERVAL_FROM_MIN' IN types) OR - ('INTEGER_INTERVAL_TO_MAX' IN types) OR ('FINITE_REAL_INTERVAL' IN types) OR - ('REAL_INTERVAL_FROM_MIN' IN types) OR ('REAL_INTERVAL_TO_MAX' IN types) OR - ('CARTESIAN_COMPLEX_NUMBER_REGION' IN types) OR ('POLAR_COMPLEX_NUMBER_REGION' IN types)); - es_complex_numbers : RETURN(('CARTESIAN_COMPLEX_NUMBER_REGION' IN types) OR - ('POLAR_COMPLEX_NUMBER_REGION' IN types)); - es_reals : RETURN(('FINITE_REAL_INTERVAL' IN types) OR ('REAL_INTERVAL_FROM_MIN' IN types) OR - ('REAL_INTERVAL_TO_MAX' IN types)); - es_integers : RETURN(('FINITE_INTEGER_INTERVAL' IN types) OR ('INTEGER_INTERVAL_FROM_MIN' IN types) OR - ('INTEGER_INTERVAL_TO_MAX' IN types)); - es_logicals : RETURN(false); - es_booleans : RETURN(false); - es_strings : RETURN(false); - es_binarys : RETURN(false); - es_maths_spaces : RETURN(false); - es_maths_functions : RETURN('FUNCTION_SPACE' IN types); - es_generics : RETURN(true); - END_CASE; - RETURN(unknown); -END_FUNCTION; - -FUNCTION substitute(expr : generic_expression; - vars : LIST [1 : ?] OF generic_variable; - vals : LIST [1 : ?] OF maths_value) : generic_expression; -LOCAL - types : SET OF STRING := stripped_typeof(expr); - opnds : LIST OF generic_expression; - op1 : generic_expression; - op2 : generic_expression; - qvars : LIST OF generic_variable; - srcdom : maths_space_or_function; - prpfun : LIST [1 : ?] OF maths_function; - finfun : maths_function_select; -END_LOCAL; - IF SIZEOF(vars) <> SIZEOF(vals) - THEN - RETURN(?); - END_IF; - IF 'GENERIC_LITERAL' IN types - THEN - RETURN(expr); - END_IF; - IF 'GENERIC_VARIABLE' IN types - THEN - REPEAT i := 1 TO SIZEOF(vars); - IF expr :=: vars[i] - THEN - RETURN(vals[i]); - END_IF; - END_REPEAT; - RETURN(expr); - END_IF; - IF 'QUANTIFIER_EXPRESSION' IN types - THEN - qvars := expr\quantifier_expression.variables; - REPEAT i := SIZEOF(vars) TO 1 BY -1; - IF vars[i] IN qvars - THEN - REMOVE(vars, i); - REMOVE(vals, i); - END_IF; - END_REPEAT; - opnds := expr\multiple_arity_generic_expression.operands; - REPEAT i := 1 TO SIZEOF(opnds); - IF NOT (opnds[i] IN qvars) - THEN - expr\multiple_arity_generic_expression.operands[i] := substitute(opnds[i], vars, vals); - END_IF; - END_REPEAT; - RETURN(expr); - END_IF; - IF 'UNARY_GENERIC_EXPRESSION' IN types - THEN - op1 := expr\unary_generic_expression.operand; - expr\unary_generic_expression.operand := substitute(op1, vars, vals); - END_IF; - IF 'BINARY_GENERIC_EXPRESSION' IN types - THEN - op1 := expr\binary_generic_expression.operands[1]; - expr\binary_generic_expression.operands[1] := substitute(op1, vars, vals); - op2 := expr\binary_generic_expression.operands[2]; - expr\binary_generic_expression.operands[2] := substitute(op2, vars, vals); - END_IF; - IF 'PARALLEL_COMPOSED_FUNCTION' IN types - THEN - srcdom := expr\parallel_composed_function.source_of_domain; - prpfun := expr\parallel_composed_function.prep_functions; - finfun := expr\parallel_composed_function.final_function; - srcdom := substitute(srcdom, vars, vals); - REPEAT i := 1 TO SIZEOF(prpfun); - prpfun[i] := substitute(prpfun[i], vars, vals); - END_REPEAT; - IF 'MATHS_FUNCTION' IN stripped_typeof(finfun) - THEN - finfun := substitute(finfun, vars, vals); - END_IF; - RETURN(make_parallel_composed_function(srcdom, prpfun, finfun)); - END_IF; - IF 'MULTIPLE_ARITY_GENERIC_EXPRESSION' IN types - THEN - opnds := expr\multiple_arity_generic_expression.operands; - REPEAT i := 1 TO SIZEOF(opnds); - expr\multiple_arity_generic_expression.operands[i] := substitute(opnds[i], vars, vals); - END_REPEAT; - END_IF; - RETURN(expr); -END_FUNCTION; - -FUNCTION surface_condition_correlation(pd : property_definition; - rep : representation) : LOGICAL; - CASE pd.name OF - 'visual appearance', 'tactile appearance', 'contact ratio', 'hardness', 'treatment result', 'surface texture' : RETURN(pd.name = - rep.name); - OTHERWISE: RETURN(unknown); - END_CASE; -END_FUNCTION; - -FUNCTION surface_weights_positive(b : rational_b_spline_surface) : BOOLEAN; -LOCAL - result : BOOLEAN := true; -END_LOCAL; - REPEAT i := 0 TO b.u_upper; - REPEAT j := 0 TO b.v_upper; - IF (b.weights[i][j] <= 0.0) - THEN - result := false; - RETURN(result); - END_IF; - END_REPEAT; - END_REPEAT; - RETURN(result); -END_FUNCTION; - -FUNCTION topology_reversed(an_item : reversible_topology) : reversible_topology; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE' IN TYPEOF(an_item)) - THEN - RETURN(edge_reversed(an_item)); - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PATH' IN TYPEOF(an_item)) - THEN - RETURN(path_reversed(an_item)); - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_BOUND' IN TYPEOF(an_item)) - THEN - RETURN(face_bound_reversed(an_item)); - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE' IN TYPEOF(an_item)) - THEN - RETURN(face_reversed(an_item)); - END_IF; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHELL' IN TYPEOF(an_item)) - THEN - RETURN(shell_reversed(an_item)); - END_IF; - IF ('SET' IN TYPEOF(an_item)) - THEN - RETURN(set_of_topology_reversed(an_item)); - END_IF; - IF ('LIST' IN TYPEOF(an_item)) - THEN - RETURN(list_of_topology_reversed(an_item)); - END_IF; - RETURN(?); -END_FUNCTION; - -FUNCTION type_check_function(the_type : GENERIC; - sub_names : SET OF STRING; - criterion : INTEGER) : LOGICAL; - IF ((NOT EXISTS(the_type)) OR (SIZEOF(sub_names) = 0)) - THEN - RETURN(unknown); - ELSE - CASE criterion OF - 0 : RETURN(SIZEOF(sub_names * TYPEOF(the_type)) > 0); - 1 : RETURN(SIZEOF(sub_names * TYPEOF(the_type)) = 0); - 2 : RETURN(SIZEOF(sub_names * TYPEOF(the_type)) = 1); - 3 : RETURN(SIZEOF(sub_names * TYPEOF(the_type)) <= 1); - OTHERWISE: RETURN(unknown); - END_CASE; - END_IF; -END_FUNCTION; - -FUNCTION unambiguously_specified_multi_level_reference_designator(links : LIST [1 : ?] OF next_assembly_usage_occurrence) : BOOLEAN; - REPEAT i := 1 TO SIZEOF(links) - 1; - CASE true OF - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION' IN - TYPEOF(links[i]\product_definition_relationship.relating_product_definition)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION' IN - TYPEOF(links[i]\product_definition_relationship.related_product_definition)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION' IN - TYPEOF(links[i + 1]\product_definition_relationship.relating_product_definition)) : BEGIN - IF NOT ((links[i]\product_definition_relationship.related_product_definition :=: - links[i + - 1]\product_definition_relationship.relating_product_definition) OR - ((SIZEOF(QUERY(pdr - <* USEDIN(links[i]\product_definition_relationship.related_product_definition, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION') - | pdr\product_definition_relationship.relating_product_definition :=: - links[i + - 1]\product_definition_relationship.relating_product_definition)) = - 1) AND - (links[i]\product_definition_relationship.related_product_definition\product_definition.formation\product_definition_formation.of_product :=: - links[i + - 1]\product_definition_relationship.relating_product_definition\product_definition.formation\product_definition_formation.of_product))) - THEN - RETURN(false); - END_IF; - END; - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_REFERENCE' IN - TYPEOF(links[i]\product_definition_relationship.related_product_definition)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_REFERENCE' IN - TYPEOF(links[i + 1]\product_definition_relationship.relating_product_definition)) : BEGIN - IF NOT ((links[i]\product_definition_relationship.related_product_definition :=: - links[i + - 1]\product_definition_relationship.relating_product_definition) OR - ((SIZEOF(QUERY(pdr - <* USEDIN(links[i]\product_definition_relationship.related_product_definition, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION') - | pdr\product_definition_relationship.relating_product_definition :=: - links[i + - 1]\product_definition_relationship.relating_product_definition)) = - 1) AND - (links[i]\product_definition_relationship.related_product_definition\product_definition_reference.product_id = - links[i + - 1]\product_definition_relationship.relating_product_definition\product_definition_reference.product_id) AND - (links[i]\product_definition_relationship.related_product_definition\product_definition_reference.id_owning_organization_name = - links[i + - 1]\product_definition_relationship.relating_product_definition\product_definition_reference.id_owning_organization_name) AND - (links[i]\product_definition_relationship.related_product_definition\product_definition_reference.product_definition_id <> - links[i + - 1]\product_definition_relationship.relating_product_definition\product_definition_reference.product_definition_id))) - THEN - RETURN(false); - END_IF; - END; - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_REFERENCE' IN - TYPEOF(links[i]\product_definition_relationship.relating_product_definition)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION' IN - TYPEOF(links[i]\product_definition_relationship.related_product_definition)) : RETURN(false); - OTHERWISE: RETURN(false); - END_CASE; - END_REPEAT; - RETURN(true); -END_FUNCTION; - -FUNCTION unique_in_product_definition(item : representative_shape_representation) : BOOLEAN; -LOCAL - local_p_d : SET OF product_definition := []; - local_s_r : SET OF shape_representation := []; - i : INTEGER; - j : INTEGER; -END_LOCAL; - local_p_d := using_product_definition_of_shape_representation(item); - IF (SIZEOF(local_p_d) <> 1) - THEN - RETURN(false); - ELSE - REPEAT i := 1 TO HIINDEX(local_p_d); - local_s_r := find_shape_representation_of_product_definition(local_p_d[i]); - REPEAT j := 1 TO HIINDEX(local_s_r); - IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATIVE_SHAPE_REPRESENTATION' IN - TYPEOF(local_s_r[j])) AND - (local_s_r[j] :<>: item)) - THEN - RETURN(false); - END_IF; - END_REPEAT; - END_REPEAT; - END_IF; - RETURN(true); -END_FUNCTION; - -FUNCTION unique_in_shape_aspect(item : representative_shape_representation) : BOOLEAN; -LOCAL - local_s_a : SET OF shape_aspect := []; - local_s_r : SET OF shape_representation := []; - i : INTEGER; - j : INTEGER; -END_LOCAL; - local_s_a := using_shape_aspect_of_shape_representation(item); - IF (SIZEOF(local_s_a) <> 1) - THEN - RETURN(false); - ELSE - REPEAT i := 1 TO HIINDEX(local_s_a); - local_s_r := find_shape_representation_of_shape_aspect(local_s_a[i]); - REPEAT j := 1 TO HIINDEX(local_s_r); - IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATIVE_SHAPE_REPRESENTATION' IN - TYPEOF(local_s_r[j])) AND - (local_s_r[j] :<>: item)) - THEN - RETURN(false); - END_IF; - END_REPEAT; - END_REPEAT; - END_IF; - RETURN(true); -END_FUNCTION; - -FUNCTION used_variables(arg : generic_expression) : SET OF generic_variable; -LOCAL - result : SET OF generic_variable := []; -END_LOCAL; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GENERIC_VARIABLE' IN TYPEOF(arg) - THEN - RETURN([arg]); - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.UNARY_GENERIC_EXPRESSION' IN TYPEOF(arg) - THEN - RETURN(used_variables(arg\unary_generic_expression.operand)); - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BINARY_GENERIC_EXPRESSION' IN TYPEOF(arg) - THEN - RETURN(used_variables(arg\binary_generic_expression.operands[1]) + - used_variables(arg\binary_generic_expression.operands[2])); - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MULTIPLE_ARITY_GENERIC_EXPRESSION' IN TYPEOF(arg) - THEN - REPEAT i := 1 TO SIZEOF(arg\multiple_arity_generic_expression.operands); - result := result + used_variables(arg\multiple_arity_generic_expression.operands[i]); - END_REPEAT; - RETURN(result); - END_IF; - RETURN([]); -END_FUNCTION; - -FUNCTION using_items(item : founded_item_select; - checked_items : SET OF founded_item_select) : SET OF founded_item_select; -LOCAL - new_check_items : SET OF founded_item_select; - result_items : SET OF founded_item_select; - next_items : SET OF founded_item_select; -END_LOCAL; - result_items := []; - new_check_items := checked_items + item; - next_items := QUERY(z - <* bag_to_set(USEDIN(item, '')) - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_ITEM' IN TYPEOF(z)) OR - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FOUNDED_ITEM' IN TYPEOF(z))); - IF SIZEOF(next_items) > 0 - THEN - REPEAT i := 1 TO HIINDEX(next_items); - IF NOT (next_items[i] IN new_check_items) - THEN - result_items := result_items + next_items[i] + using_items(next_items[i], new_check_items); - END_IF; - END_REPEAT; - END_IF; - RETURN(result_items); -END_FUNCTION; - -FUNCTION using_product_definition_of_shape_aspect(item : shape_aspect) : product_definition; - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF(item.of_shape.definition)) - THEN - RETURN(item.of_shape.definition); - ELSE - RETURN(?); - END_IF; -END_FUNCTION; - -FUNCTION using_product_definition_of_shape_representation(item : shape_representation) : SET OF product_definition; -LOCAL - local_s_d_r : SET OF shape_definition_representation := []; - local_p_d : SET OF product_definition := []; - i : INTEGER; -END_LOCAL; - local_s_d_r := QUERY(i1 - <* bag_to_set(USEDIN(item, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION')) - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINITION_REPRESENTATION' IN - TYPEOF(i1)); - REPEAT i := 1 TO HIINDEX(local_s_d_r); - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION' IN - TYPEOF(local_s_d_r[i]\property_definition_representation.definition)) - THEN - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION' IN - TYPEOF(local_s_d_r[i]\property_definition_representation.definition\property_definition.definition)) - THEN - local_p_d := local_p_d + - local_s_d_r[i]\property_definition_representation.definition\property_definition.definition; - END_IF; - END_IF; - END_REPEAT; - RETURN(local_p_d); -END_FUNCTION; - -FUNCTION using_representation_with_mapping(item : representation_item) : SET OF representation; -LOCAL - results : SET OF representation := []; - local_results : SET OF representation := []; - local_representation_map : SET OF representation_map := []; - intermediate_items : SET OF representation_item := []; - i : INTEGER; - j : INTEGER; -END_LOCAL; - local_results := QUERY(z - <* using_representations(item) - | SIZEOF(USEDIN(z, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_MAP.MAPPED_REPRESENTATION')) > - 0); - IF (SIZEOF(local_results) = 0) - THEN - RETURN([]); - ELSE - REPEAT i := 1 TO HIINDEX(local_results); - local_representation_map := local_representation_map + - bag_to_set(USEDIN(local_results[i], - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_MAP.MAPPED_REPRESENTATION')); - END_REPEAT; - REPEAT i := 1 TO HIINDEX(local_representation_map); - intermediate_items := intermediate_items + - bag_to_set(USEDIN(local_representation_map[i], - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM.MAPPING_SOURCE')); - END_REPEAT; - REPEAT j := 1 TO HIINDEX(intermediate_items); - results := results + bag_to_set(using_representation_with_mapping(intermediate_items[j])); - END_REPEAT; - END_IF; - RETURN(results); -END_FUNCTION; - -FUNCTION using_representations(item : founded_item_select) : SET OF representation; -LOCAL - results : SET OF representation; - result_bag : BAG OF representation; - intermediate_items : SET OF founded_item_select; -END_LOCAL; - results := []; - result_bag := USEDIN(item, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION.ITEMS'); - IF SIZEOF(result_bag) > 0 - THEN - REPEAT i := 1 TO HIINDEX(result_bag); - results := results + result_bag[i]; - END_REPEAT; - END_IF; - intermediate_items := using_items(item, []); - IF SIZEOF(intermediate_items) > 0 - THEN - REPEAT i := 1 TO HIINDEX(intermediate_items); - result_bag := USEDIN(intermediate_items[i], - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION.ITEMS'); - IF SIZEOF(result_bag) > 0 - THEN - REPEAT j := 1 TO HIINDEX(result_bag); - results := results + result_bag[j]; - END_REPEAT; - END_IF; - END_REPEAT; - END_IF; - RETURN(results); -END_FUNCTION; - -FUNCTION using_shape_aspect_of_shape_representation(item : shape_representation) : SET OF shape_aspect; -LOCAL - local_s_d_r : SET OF shape_definition_representation := []; - local_s_d_r2 : BAG OF shape_definition_representation := []; - local_s_a : SET OF shape_aspect := []; - i : INTEGER; -END_LOCAL; - local_s_d_r2 := local_s_d_r2 + - QUERY(pdr - <* USEDIN(item, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINITION_REPRESENTATION' IN - TYPEOF(pdr)); - local_s_d_r := bag_to_set(local_s_d_r2); - REPEAT i := 1 TO HIINDEX(local_s_d_r); - IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT' IN - TYPEOF(local_s_d_r[i]\property_definition_representation.definition\property_definition.definition)) - THEN - local_s_a := local_s_a + - local_s_d_r[i]\property_definition_representation.definition\property_definition.definition; - END_IF; - END_REPEAT; - RETURN(local_s_a); -END_FUNCTION; - -FUNCTION valid_basis_curve_in_2d_wireframe(crv : curve) : BOOLEAN; --- check for valid basic curve types - IF SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYLINE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ELLIPSE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCLE'] * - TYPEOF(crv)) = - 1 - THEN - RETURN(true); - ELSE - IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TRIMMED_CURVE') IN TYPEOF(crv)) - THEN - IF SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PARABOLA', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.HYPERBOLA'] * - TYPEOF(crv\trimmed_curve.basis_curve)) = - 1 - THEN - RETURN(true); - ELSE - RETURN(valid_basis_curve_in_2d_wireframe(crv\trimmed_curve.basis_curve)); - END_IF; - ELSE - IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OFFSET_CURVE_2D') IN TYPEOF(crv)) - THEN - RETURN(valid_basis_curve_in_2d_wireframe(crv\offset_curve_2d.basis_curve)); - ELSE - IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_REPLICA') IN TYPEOF(crv)) - THEN - RETURN(valid_basis_curve_in_2d_wireframe(crv\curve_replica.parent_curve)); - ELSE - IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_CURVE') IN TYPEOF(crv)) - THEN - RETURN(SIZEOF(QUERY(ccs - <* crv\composite_curve.segments - | NOT (valid_basis_curve_in_2d_wireframe(ccs.parent_curve)))) = - 0); - END_IF; - END_IF; - END_IF; - END_IF; - END_IF; - RETURN(false); -END_FUNCTION; - -FUNCTION valid_calendar_date(date : calendar_date) : LOGICAL; - CASE date.month_component OF - 1 : RETURN({1 <= date.day_component <= 31}); - 2 : BEGIN - IF (leap_year(date.year_component)) - THEN - RETURN({1 <= date.day_component <= 29}); - ELSE - RETURN({1 <= date.day_component <= 28}); - END_IF; - END; - 3 : RETURN({1 <= date.day_component <= 31}); - 4 : RETURN({1 <= date.day_component <= 30}); - 5 : RETURN({1 <= date.day_component <= 31}); - 6 : RETURN({1 <= date.day_component <= 30}); - 7 : RETURN({1 <= date.day_component <= 31}); - 8 : RETURN({1 <= date.day_component <= 31}); - 9 : RETURN({1 <= date.day_component <= 30}); - 10 : RETURN({1 <= date.day_component <= 31}); - 11 : RETURN({1 <= date.day_component <= 30}); - 12 : RETURN({1 <= date.day_component <= 31}); - END_CASE; - RETURN(false); -END_FUNCTION; - -FUNCTION valid_csg_2d_primitives(input : csg_solid_2d) : BOOLEAN; - CASE true OF - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRIMITIVE_2D' IN - TYPEOF(input\csg_solid_2d.tree_root_expression)) : BEGIN - IF (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_AREA', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPLEX_AREA', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ELLIPTIC_AREA', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.HALF_SPACE_2D', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYGONAL_AREA', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRIMITIVE_2D_WITH_INNER_BOUNDARY', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_AREA'] * - TYPEOF(input\csg_solid_2d.tree_root_expression)) > - 0) - THEN - RETURN(true); - ELSE - RETURN(false); - END_IF; - END; - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_RESULT_2D' IN - TYPEOF(input\csg_solid_2d.tree_root_expression)) : RETURN(valid_csg_2d_primitives(input\csg_solid_2d.tree_root_expression\boolean_result_2d.first_operand) AND - valid_csg_2d_primitives(input\csg_solid_2d.tree_root_expression\boolean_result_2d.second_operand)); - OTHERWISE: RETURN(false); - END_CASE; -END_FUNCTION; - -FUNCTION valid_datum_target_parameters(pdf : placed_datum_target_feature) : BOOLEAN; -LOCAL - rep_set : SET OF representation := []; - parameter_representations : SET OF representation; -END_LOCAL; - REPEAT i := 1 TO HIINDEX(pdf.representation_associations); - rep_set := rep_set + pdf.representation_associations[i].used_representation; - END_REPEAT; - parameter_representations := QUERY(rep - <* rep_set - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(rep))); - IF (SIZEOF(QUERY(srwp - <* parameter_representations - | (SIZEOF(QUERY(i - <* srwp.items - | (i.name = 'orientation') AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' IN TYPEOF(i)))) = - 1))) <> - 1) - THEN - RETURN(false); - END_IF; - CASE pdf\shape_aspect.description OF - 'point' : RETURN(SIZEOF(QUERY(srwp <* parameter_representations | (SIZEOF(srwp.items) = 1))) = 1); - 'circle', 'circular curve' : RETURN((SIZEOF(QUERY(srwp <* parameter_representations | (SIZEOF(srwp.items) = 2))) = - 1) AND - (SIZEOF(QUERY(srwp - <* parameter_representations - | (SIZEOF(QUERY(i - <* srwp.items - | (i.name = 'target diameter') AND - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(i)) = - 2))) = - 1))) = - 1)); - 'line' : RETURN(SIZEOF(QUERY(srwp - <* parameter_representations - | (SIZEOF(QUERY(i - <* srwp.items - | (i.name = 'target length') AND - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(i)) = - 2))) = - 1))) = - 1); - 'rectangle' : RETURN((SIZEOF(QUERY(srwp <* parameter_representations | (SIZEOF(srwp.items) = 3))) = 1) AND - (SIZEOF(QUERY(srwp - <* parameter_representations - | (SIZEOF(QUERY(i - <* srwp.items - | (i.name = 'target length') AND - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(i)) = - 2))) = - 1))) = - 1) AND - (SIZEOF(QUERY(srwp - <* parameter_representations - | (SIZEOF(QUERY(i - <* srwp.items - | (i.name = 'target width') AND - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(i)) = - 2))) = - 1))) = - 1)); - OTHERWISE: RETURN(false); - END_CASE; -END_FUNCTION; - -FUNCTION valid_geometrically_bounded_wf_curve(crv : curve) : BOOLEAN; - IF SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYLINE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ELLIPSE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCLE'] * - TYPEOF(crv)) = - 1 - THEN - RETURN(true); - ELSE - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TRIMMED_CURVE' IN TYPEOF(crv) - THEN - IF SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PARABOLA', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.HYPERBOLA'] * - TYPEOF(crv\trimmed_curve.basis_curve)) = - 1 - THEN - RETURN(true); - ELSE - RETURN(valid_geometrically_bounded_wf_curve(crv\trimmed_curve.basis_curve)); - END_IF; - ELSE - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OFFSET_CURVE_3D' IN TYPEOF(crv) - THEN - RETURN(valid_geometrically_bounded_wf_curve(crv\offset_curve_3d.basis_curve)); - ELSE - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_REPLICA' IN TYPEOF(crv) - THEN - RETURN(valid_geometrically_bounded_wf_curve(crv\curve_replica.parent_curve)); - ELSE - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_CURVE' IN TYPEOF(crv) - THEN - RETURN(SIZEOF(QUERY(ccs - <* crv\composite_curve.segments - | NOT valid_geometrically_bounded_wf_curve(ccs.parent_curve))) = - 0); - END_IF; - END_IF; - END_IF; - END_IF; - END_IF; - RETURN(false); -END_FUNCTION; - -FUNCTION valid_geometrically_bounded_wf_point(pnt : point) : BOOLEAN; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CARTESIAN_POINT' IN TYPEOF(pnt) - THEN - RETURN(true); - ELSE - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_CURVE' IN TYPEOF(pnt) - THEN - RETURN(valid_geometrically_bounded_wf_curve(pnt\point_on_curve.basis_curve)); - ELSE - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_REPLICA' IN TYPEOF(pnt) - THEN - RETURN(valid_geometrically_bounded_wf_point(pnt\point_replica.parent_pt)); - END_IF; - END_IF; - END_IF; - RETURN(false); -END_FUNCTION; - -FUNCTION valid_measure_value(m : measure_value) : BOOLEAN; - IF ('REAL' IN TYPEOF(m)) - THEN - RETURN(m > 0.0); - ELSE - IF ('INTEGER' IN TYPEOF(m)) - THEN - RETURN(m > 0); - ELSE - RETURN(true); - END_IF; - END_IF; -END_FUNCTION; - -FUNCTION valid_selected_instance_representation(pd : product_definition_or_assembly_relationship) : LOGICAL; -LOCAL - properties : SET OF property_definition := bag_to_set(QUERY(prd - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (prd.name = - 'occurrence selection'))); - property_definition_representations : SET OF property_definition_representation := bag_to_set(QUERY(pdr - <* USEDIN(properties[1], - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (pdr.used_representation.name = - 'selection criteria'))); - selected_representation : representation; -END_LOCAL; - IF (SIZEOF(properties) <> 1) - THEN - RETURN(false); - END_IF; - IF (SIZEOF(property_definition_representations) <> 1) - THEN - RETURN(false); - END_IF; - selected_representation := property_definition_representations[1]\property_definition_representation.used_representation; - IF (SIZEOF(selected_representation\representation.items) < 1) OR - (SIZEOF(selected_representation\representation.items) > 2) - THEN - RETURN(false); - END_IF; - IF (SIZEOF(QUERY(i - <* selected_representation\representation.items - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VALUE_RANGE'] * - TYPEOF(i)) = - 1) AND - (i.name = 'selection quantity'))) <> - 1) - THEN - RETURN(false); - END_IF; - IF (SIZEOF(QUERY(i - <* selected_representation\representation.items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN - TYPEOF(i)) AND - (i.name = 'selection control'))) > - 1) - THEN - RETURN(false); - END_IF; - IF (SIZEOF(QUERY(i - <* selected_representation\representation.items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN - TYPEOF(i)) AND - (i.name = 'selection control'))) = - 0) AND - (SIZEOF(QUERY(i - <* selected_representation\representation.items - | (i.name = 'selection quantity') AND - (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.QUALIFIED_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VALUE_RANGE'] * - TYPEOF(i)) = - 0))) > - 0) - THEN - RETURN(false); - END_IF; - RETURN(true); -END_FUNCTION; - -FUNCTION valid_time(time : local_time) : BOOLEAN; - IF EXISTS(time.second_component) - THEN - RETURN(EXISTS(time.minute_component)); - ELSE - RETURN(true); - END_IF; -END_FUNCTION; - -FUNCTION valid_units(m : measure_with_unit) : BOOLEAN; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN TYPEOF(m.value_component) - THEN - IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) - THEN - RETURN(false); - END_IF; - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MASS_MEASURE' IN TYPEOF(m.value_component) - THEN - IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0) - THEN - RETURN(false); - END_IF; - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TIME_MEASURE' IN TYPEOF(m.value_component) - THEN - IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0) - THEN - RETURN(false); - END_IF; - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ELECTRIC_CURRENT_MEASURE' IN TYPEOF(m.value_component) - THEN - IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0) - THEN - RETURN(false); - END_IF; - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.THERMODYNAMIC_TEMPERATURE_MEASURE' IN TYPEOF(m.value_component) - THEN - IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0) - THEN - RETURN(false); - END_IF; - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CELSIUS_TEMPERATURE_MEASURE' IN TYPEOF(m.value_component) - THEN - IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0) - THEN - RETURN(false); - END_IF; - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AMOUNT_OF_SUBSTANCE_MEASURE' IN TYPEOF(m.value_component) - THEN - IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0) - THEN - RETURN(false); - END_IF; - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LUMINOUS_INTENSITY_MEASURE' IN TYPEOF(m.value_component) - THEN - IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0) - THEN - RETURN(false); - END_IF; - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' IN TYPEOF(m.value_component) - THEN - IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) - THEN - RETURN(false); - END_IF; - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SOLID_ANGLE_MEASURE' IN TYPEOF(m.value_component) - THEN - IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) - THEN - RETURN(false); - END_IF; - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_MEASURE' IN TYPEOF(m.value_component) - THEN - IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) - THEN - RETURN(false); - END_IF; - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VOLUME_MEASURE' IN TYPEOF(m.value_component) - THEN - IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) - THEN - RETURN(false); - END_IF; - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RATIO_MEASURE' IN TYPEOF(m.value_component) - THEN - IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) - THEN - RETURN(false); - END_IF; - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF(m.value_component) - THEN - IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) - THEN - RETURN(false); - END_IF; - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITIVE_PLANE_ANGLE_MEASURE' IN TYPEOF(m.value_component) - THEN - IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) - THEN - RETURN(false); - END_IF; - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ACCELERATION_MEASURE' IN TYPEOF(m.value_component) - THEN - IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(1.0, 0.0, -2.0, 0.0, 0.0, 0.0, 0.0) - THEN - RETURN(false); - END_IF; - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CAPACITANCE_MEASURE' IN TYPEOF(m.value_component) - THEN - IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(-2.0, -1.0, 4.0, 2.0, 0.0, 0.0, 0.0) - THEN - RETURN(false); - END_IF; - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ELECTRIC_CHARGE_MEASURE' IN TYPEOF(m.value_component) - THEN - IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0) - THEN - RETURN(false); - END_IF; - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONDUCTANCE_MEASURE' IN TYPEOF(m.value_component) - THEN - IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(-2.0, -1.0, 3.0, 2.0, 0.0, 0.0, 0.0) - THEN - RETURN(false); - END_IF; - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ELECTRIC_POTENTIAL_MEASURE' IN TYPEOF(m.value_component) - THEN - IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(2.0, 1.0, -3.0, -1.0, 0.0, 0.0, 0.0) - THEN - RETURN(false); - END_IF; - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ENERGY_MEASURE' IN TYPEOF(m.value_component) - THEN - IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(2.0, 1.0, -2.0, 0.0, 0.0, 0.0, 0.0) - THEN - RETURN(false); - END_IF; - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FORCE_MEASURE' IN TYPEOF(m.value_component) - THEN - IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(1.0, 1.0, -2.0, 0.0, 0.0, 0.0, 0.0) - THEN - RETURN(false); - END_IF; - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FREQUENCY_MEASURE' IN TYPEOF(m.value_component) - THEN - IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(0.0, 0.0, -1.0, 0.0, 0.0, 0.0, 0.0) - THEN - RETURN(false); - END_IF; - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ILLUMINANCE_MEASURE' IN TYPEOF(m.value_component) - THEN - IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(-2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0) - THEN - RETURN(false); - END_IF; - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.INDUCTANCE_MEASURE' IN TYPEOF(m.value_component) - THEN - IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(2.0, 1.0, -2.0, -2.0, 0.0, 0.0, 0.0) - THEN - RETURN(false); - END_IF; - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LUMINOUS_FLUX_MEASURE' IN TYPEOF(m.value_component) - THEN - IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0) - THEN - RETURN(false); - END_IF; - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAGNETIC_FLUX_MEASURE' IN TYPEOF(m.value_component) - THEN - IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(2.0, 1.0, -2.0, -1.0, 0.0, 0.0, 0.0) - THEN - RETURN(false); - END_IF; - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAGNETIC_FLUX_DENSITY_MEASURE' IN TYPEOF(m.value_component) - THEN - IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(0.0, 1.0, -2.0, -1.0, 0.0, 0.0, 0.0) - THEN - RETURN(false); - END_IF; - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POWER_MEASURE' IN TYPEOF(m.value_component) - THEN - IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(2.0, 1.0, -3.0, 0.0, 0.0, 0.0, 0.0) - THEN - RETURN(false); - END_IF; - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESSURE_MEASURE' IN TYPEOF(m.value_component) - THEN - IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(-1.0, 1.0, -2.0, 0.0, 0.0, 0.0, 0.0) - THEN - RETURN(false); - END_IF; - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RESISTANCE_MEASURE' IN TYPEOF(m.value_component) - THEN - IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(2.0, 1.0, -3.0, -2.0, 0.0, 0.0, 0.0) - THEN - RETURN(false); - END_IF; - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VELOCITY_MEASURE' IN TYPEOF(m.value_component) - THEN - IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(1.0, 0.0, -1.0, 0.0, 0.0, 0.0, 0.0) - THEN - RETURN(false); - END_IF; - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RADIOACTIVITY_MEASURE' IN TYPEOF(m.value_component) - THEN - IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(0.0, 0.0, -1.0, 0.0, 0.0, 0.0, 0.0) - THEN - RETURN(false); - END_IF; - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ABSORBED_DOSE_MEASURE' IN TYPEOF(m.value_component) - THEN - IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(2.0, 0.0, -2.0, 0.0, 0.0, 0.0, 0.0) - THEN - RETURN(false); - END_IF; - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DOSE_EQUIVALENT_MEASURE' IN TYPEOF(m.value_component) - THEN - IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(2.0, 0.0, -2.0, 0.0, 0.0, 0.0, 0.0) - THEN - RETURN(false); - END_IF; - END_IF; - RETURN(true); -END_FUNCTION; - -FUNCTION valid_wireframe_edge_curve(crv : curve) : BOOLEAN; - IF SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONIC', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYLINE'] * - TYPEOF(crv)) = - 1 - THEN - RETURN(true); - ELSE - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_REPLICA' IN TYPEOF(crv) - THEN - RETURN(valid_wireframe_edge_curve(crv\curve_replica.parent_curve)); - ELSE - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OFFSET_CURVE_3D' IN TYPEOF(crv) - THEN - RETURN(valid_wireframe_edge_curve(crv\offset_curve_3d.basis_curve)); - END_IF; - END_IF; - END_IF; - RETURN(false); -END_FUNCTION; - -FUNCTION valid_wireframe_vertex_point(pnt : point) : BOOLEAN; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CARTESIAN_POINT' IN TYPEOF(pnt) - THEN - RETURN(true); - ELSE - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_REPLICA' IN TYPEOF(pnt) - THEN - RETURN(valid_wireframe_vertex_point(pnt\point_replica.parent_pt)); - END_IF; - END_IF; - RETURN(false); -END_FUNCTION; - -FUNCTION validate_accuracy_types(ei : shape_data_quality_criterion; - type_list : BAG OF STRING) : LOGICAL; -LOCAL - sdqca : BAG OF shape_data_quality_criterion_and_accuracy_association := []; - sma : BAG OF shape_measurement_accuracy := []; - sdqir : SET OF shape_data_quality_inspection_result := []; - scraa : BAG OF shape_inspection_result_accuracy_association := []; - t_logic : BOOLEAN; -END_LOCAL; - sdqca := USEDIN(ei, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_CRITERION_AND_ACCURACY_ASSOCIATION.SHAPE_DATA_QUALITY_CRITERION'); - IF (SIZEOF(sdqca) <> 0) - THEN - REPEAT i := 1 TO SIZEOF(sdqca); - sma := sma + sdqca[i].required_specific_accuracy; - END_REPEAT; - IF (SIZEOF(type_list) < SIZEOF(sma)) - THEN - RETURN(false); - END_IF; - REPEAT i := 1 TO SIZEOF(sma); - t_logic := false; - REPEAT j := 1 TO SIZEOF(type_list); - IF (type_list[j] IN value_limit_type(sma[i].range)) - THEN - t_logic := true; - ESCAPE; - END_IF; - END_REPEAT; - IF (NOT (t_logic)) - THEN - RETURN(false); - END_IF; - END_REPEAT; - END_IF; - sdqir := QUERY(q - <* bag_to_set(USEDIN(ei, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_QUALITY_INSPECTION_RESULT.CRITERION_INSPECTED')) - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_INSPECTION_RESULT' IN TYPEOF(q)); - IF (SIZEOF(sdqir) = 0) - THEN - RETURN(true); - END_IF; - REPEAT i := 1 TO SIZEOF(sdqir); - scraa := USEDIN(sdqir[i], - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_INSPECTION_RESULT_ACCURACY_ASSOCIATION.SHAPE_DATA_QUALITY_RESULT'); - IF (SIZEOF(scraa) <> 0) - THEN - sma := []; - REPEAT j := 1 TO SIZEOF(scraa); - sma := sma + scraa[j].applied_specific_accuracy; - END_REPEAT; - IF (SIZEOF(type_list) < SIZEOF(sma)) - THEN - RETURN(false); - END_IF; - REPEAT j := 1 TO SIZEOF(sma); - t_logic := false; - REPEAT k := 1 TO SIZEOF(type_list); - IF (type_list[k] IN value_limit_type(sma[j].range)) - THEN - t_logic := true; - ESCAPE; - END_IF; - END_REPEAT; - IF (NOT (t_logic)) - THEN - RETURN(false); - END_IF; - END_REPEAT; - END_IF; - END_REPEAT; - RETURN(true); -END_FUNCTION; - -FUNCTION validate_attribute_id(attid : attribute_identifier) : BOOLEAN; - -CONSTANT - letters : SET [52 : 52] OF STRING := - ['a', - 'b', - 'c', - 'd', - 'e', - 'f', - 'g', - 'h', - 'i', - 'j', - 'k', - 'l', - 'm', - 'n', - 'o', - 'p', - 'q', - 'r', - 's', - 't', - 'u', - 'v', - 'w', - 'x', - 'y', - 'z', - 'A', - 'B', - 'C', - 'D', - 'E', - 'F', - 'G', - 'H', - 'I', - 'J', - 'K', - 'L', - 'M', - 'N', - 'O', - 'P', - 'Q', - 'R', - 'S', - 'T', - 'U', - 'V', - 'W', - 'X', - 'Y', - 'Z']; - numbers_etc : SET [15 : 15] OF STRING := ['0','1','2','3','4','5','6','7','8','9','_','[',']','.','\']; - valid_chars : SET [67 : 67] OF STRING := letters + numbers_etc; -END_CONSTANT; -LOCAL - id_length : INTEGER := LENGTH(attid); - id_valid : BOOLEAN := true; - i : INTEGER; -END_LOCAL; - IF NOT (attid[1] IN letters) - THEN - id_valid := false; - END_IF; - REPEAT i := 2 TO id_length - WHILE id_valid = true; - IF NOT (attid[i] IN valid_chars) - THEN - id_valid := false; - END_IF; - END_REPEAT; - RETURN(id_valid); -END_FUNCTION; - -FUNCTION validate_countersink_radii(cskhole : solid_with_stepped_round_hole_and_conical_transitions) : BOOLEAN; -LOCAL - i : INTEGER; - j : INTEGER; - n : INTEGER := 1 + cskhole\solid_with_stepped_round_hole.segments; - smaller : positive_length_measure; - larger : positive_length_measure; -END_LOCAL; - REPEAT i := 1 TO SIZEOF(cskhole.conical_transitions); - IF (((cskhole.conical_transitions[i].transition_number = 1) AND - (cskhole.conical_transitions[i].cone_apex_angle < 0)) XOR - ((cskhole.conical_transitions[i].transition_number = n) AND - (cskhole.conical_transitions[i].cone_apex_angle > 0))) - THEN - RETURN(false); - ELSE - IF ((cskhole.conical_transitions[i].transition_number <> 1) AND - (cskhole.conical_transitions[i].transition_number <> n)) - THEN - BEGIN - j := cskhole.conical_transitions[i].transition_number; - IF cskhole\solid_with_stepped_round_hole.segment_radii[j] > - cskhole\solid_with_stepped_round_hole.segment_radii[j - 1] - THEN - BEGIN - IF (cskhole.conical_transitions[i].cone_apex_angle > 0) - THEN - RETURN(false); - END_IF; - larger := cskhole\solid_with_stepped_round_hole.segment_radii[j]; - smaller := cskhole\solid_with_stepped_round_hole.segment_radii[j - 1]; - END; - ELSE - BEGIN - IF (cskhole.conical_transitions[i].cone_apex_angle < 0) - THEN - RETURN(false); - END_IF; - larger := cskhole\solid_with_stepped_round_hole.segment_radii[j - 1]; - smaller := cskhole\solid_with_stepped_round_hole.segment_radii[j]; - END; - END_IF; - IF ((cskhole.conical_transitions[i].cone_base_radius > larger) OR - (cskhole.conical_transitions[i].cone_base_radius < smaller)) - THEN - RETURN(false); - END_IF; - END; - END_IF; - END_IF; - END_REPEAT; - RETURN(true); -END_FUNCTION; - -FUNCTION validate_ecdq_inspected_elements_type(ei : externally_conditioned_data_quality_criterion; - type_list : BAG OF STRING) : LOGICAL; -LOCAL - sdqir : SET OF externally_conditioned_data_quality_inspection_result := []; - dir : SET OF data_quality_inspection_instance_report := []; - sdiri : SET OF externally_conditioned_data_quality_inspection_instance_report_item := []; - t_type_list : BAG OF STRING := []; -END_LOCAL; - sdqir := QUERY(q - <* bag_to_set(USEDIN(ei, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_QUALITY_INSPECTION_RESULT.CRITERION_INSPECTED')) - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXTERNALLY_CONDITIONED_DATA_QUALITY_INSPECTION_RESULT' IN - TYPEOF(q)); - IF (SIZEOF(sdqir) = 0) - THEN - RETURN(true); - END_IF; - REPEAT i := 1 TO SIZEOF(sdqir); - dir := dir + - QUERY(q - <* bag_to_set(USEDIN(sdqir[i], - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_QUALITY_INSPECTION_REPORT.INSPECTION_RESULT')) - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_QUALITY_INSPECTION_INSTANCE_REPORT' IN - TYPEOF(q)); - END_REPEAT; - IF (SIZEOF(dir) = 0) - THEN - RETURN(true); - END_IF; - REPEAT i := 1 TO SIZEOF(dir); - sdiri := sdiri + - QUERY(q - <* dir[i].inspected_instances - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXTERNALLY_CONDITIONED_DATA_QUALITY_INSPECTION_INSTANCE_REPORT_ITEM' IN - TYPEOF(q)); - END_REPEAT; - IF (SIZEOF(sdiri) = 0) - THEN - RETURN(true); - END_IF; - REPEAT i := 1 TO SIZEOF(sdiri); - IF (SIZEOF(sdiri[i].inspected_elements) <> SIZEOF(type_list)) - THEN - RETURN(false); - END_IF; - t_type_list := type_list; - REPEAT j := 1 TO SIZEOF(sdiri[i].inspected_elements); - REPEAT k := 1 TO SIZEOF(t_type_list); - IF (t_type_list[k] IN TYPEOF(sdiri[i].inspected_elements[j])) - THEN - t_type_list := t_type_list - t_type_list[k]; - ESCAPE; - END_IF; - END_REPEAT; - END_REPEAT; - IF (SIZEOF(t_type_list) > 0) - THEN - RETURN(false); - END_IF; - END_REPEAT; - RETURN(true); -END_FUNCTION; - -FUNCTION validate_inspected_elements_type(ei : shape_data_quality_criterion; - type_list : BAG OF STRING) : LOGICAL; -LOCAL - sdqir : SET OF shape_data_quality_inspection_result := []; - sdir : SET OF shape_data_quality_inspection_instance_report := []; - sdiri : SET OF shape_data_quality_inspection_instance_report_item := []; - t_type_list : BAG OF STRING := []; -END_LOCAL; - sdqir := QUERY(q - <* bag_to_set(USEDIN(ei, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_QUALITY_INSPECTION_RESULT.CRITERION_INSPECTED')) - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_INSPECTION_RESULT' IN TYPEOF(q)); - IF (SIZEOF(sdqir) = 0) - THEN - RETURN(true); - END_IF; - REPEAT i := 1 TO SIZEOF(sdqir); - sdir := sdir + - QUERY(q - <* bag_to_set(USEDIN(sdqir[i], - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_QUALITY_INSPECTION_REPORT.INSPECTION_RESULT')) - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT' IN - TYPEOF(q)); - END_REPEAT; - IF (SIZEOF(sdir) = 0) - THEN - RETURN(true); - END_IF; - REPEAT i := 1 TO SIZEOF(sdir); - sdiri := sdiri + - QUERY(q - <* sdir[i].inspected_instances - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT_ITEM' IN - TYPEOF(q)); - END_REPEAT; - IF (SIZEOF(sdiri) = 0) - THEN - RETURN(true); - END_IF; - REPEAT i := 1 TO SIZEOF(sdiri); - IF (SIZEOF(sdiri[i].inspected_elements) <> SIZEOF(type_list)) - THEN - RETURN(false); - END_IF; - t_type_list := type_list; - REPEAT j := 1 TO SIZEOF(sdiri[i].inspected_elements); - REPEAT k := 1 TO SIZEOF(t_type_list); - IF (t_type_list[k] IN TYPEOF(sdiri[i].inspected_elements[j])) - THEN - t_type_list := t_type_list - t_type_list[k]; - ESCAPE; - END_IF; - END_REPEAT; - END_REPEAT; - IF (SIZEOF(t_type_list) > 0) - THEN - RETURN(false); - END_IF; - END_REPEAT; - RETURN(true); -END_FUNCTION; - -FUNCTION validate_locations_of_extreme_value_type(ei : shape_data_quality_criterion; - type_list : BAG OF STRING) : LOGICAL; -LOCAL - sdqir : SET OF shape_data_quality_inspection_result := []; - sdir : SET OF shape_data_quality_inspection_instance_report := []; - sdei : SET OF instance_report_item_with_extreme_instances := []; - t_type_list : BAG OF STRING := []; -END_LOCAL; - sdqir := QUERY(q - <* bag_to_set(USEDIN(ei, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_QUALITY_INSPECTION_RESULT.CRITERION_INSPECTED')) - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_INSPECTION_RESULT' IN TYPEOF(q)); - IF (SIZEOF(sdqir) = 0) - THEN - RETURN(true); - END_IF; - REPEAT i := 1 TO SIZEOF(sdqir); - sdir := sdir + - QUERY(q - <* bag_to_set(USEDIN(sdqir[i], - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_QUALITY_INSPECTION_REPORT.INSPECTION_RESULT')) - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT' IN - TYPEOF(q)); - END_REPEAT; - REPEAT i := 1 TO SIZEOF(sdir); - sdei := sdei + - QUERY(q - <* sdir[i].inspected_instances - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.INSTANCE_REPORT_ITEM_WITH_EXTREME_INSTANCES' IN - TYPEOF(q)); - END_REPEAT; - IF (SIZEOF(sdei) = 0) - THEN - RETURN(true); - END_IF; - IF ((SIZEOF(type_list) = 0) AND (SIZEOF(sdei) <> 0)) - THEN - RETURN(false); - END_IF; - REPEAT i := 1 TO SIZEOF(sdei); - REPEAT j := 1 TO SIZEOF(sdei[i].extreme_instances); - IF (SIZEOF(sdei[i].extreme_instances[j].locations_of_extreme_value) <> SIZEOF(type_list)) - THEN - RETURN(false); - END_IF; - t_type_list := type_list; - REPEAT k := 1 TO SIZEOF(sdei[i].extreme_instances[j].locations_of_extreme_value); - REPEAT l := 1 TO SIZEOF(t_type_list); - IF (t_type_list[l] IN TYPEOF(sdei[i].extreme_instances[j].locations_of_extreme_value[k])) - THEN - t_type_list := t_type_list - t_type_list[l]; - ESCAPE; - END_IF; - END_REPEAT; - END_REPEAT; - IF (SIZEOF(t_type_list) > 0) - THEN - RETURN(false); - END_IF; - END_REPEAT; - END_REPEAT; - RETURN(true); -END_FUNCTION; - -FUNCTION validate_measured_data_type(ei : shape_data_quality_criterion; - type_string : STRING) : LOGICAL; -LOCAL - sdqir : SET OF shape_data_quality_inspection_result := []; - sdcr : SET OF shape_data_quality_inspection_criterion_report := []; - sdir : SET OF shape_data_quality_inspection_instance_report := []; - sdii : SET OF shape_data_quality_inspection_instance_report_item := []; - sdei : BAG OF instance_report_item_with_extreme_instances := []; -END_LOCAL; - sdqir := QUERY(q - <* bag_to_set(USEDIN(ei, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_QUALITY_INSPECTION_RESULT.CRITERION_INSPECTED')) - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_INSPECTION_RESULT' IN TYPEOF(q)); - IF (SIZEOF(sdqir) = 0) - THEN - RETURN(true); - END_IF; - REPEAT i := 1 TO SIZEOF(sdqir); - sdcr := sdcr + - QUERY(q - <* bag_to_set(USEDIN(sdqir[i], - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_QUALITY_INSPECTION_REPORT.INSPECTION_RESULT')) - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_INSPECTION_CRITERION_REPORT' IN - TYPEOF(q)); - END_REPEAT; - REPEAT i := 1 TO SIZEOF(sdqir); - sdir := sdir + - QUERY(q - <* bag_to_set(USEDIN(sdqir[i], - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_QUALITY_INSPECTION_REPORT.INSPECTION_RESULT')) - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT' IN - TYPEOF(q)); - END_REPEAT; - IF ((SIZEOF(sdcr) = 0) AND (SIZEOF(sdir) = 0)) - THEN - RETURN(true); - END_IF; - REPEAT i := 1 TO SIZEOF(sdir); - sdii := sdii + - QUERY(q - <* sdir[i].inspected_instances - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT_ITEM' IN - TYPEOF(q)); - END_REPEAT; - REPEAT i := 1 TO SIZEOF(sdir); - sdei := sdei + - QUERY(q - <* sdir[i].inspected_instances - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.INSTANCE_REPORT_ITEM_WITH_EXTREME_INSTANCES' IN - TYPEOF(q)); - END_REPEAT; - REPEAT i := 1 TO SIZEOF(sdcr); - IF (NOT (type_string IN TYPEOF(sdcr[i].representative_measured_value))) - THEN - RETURN(false); - END_IF; - END_REPEAT; - REPEAT i := 1 TO SIZEOF(sdii); - IF (NOT (type_string IN TYPEOF(sdii[i].measured_value))) - THEN - RETURN(false); - END_IF; - END_REPEAT; - REPEAT i := 1 TO SIZEOF(sdei); - REPEAT j := 1 TO SIZEOF(sdei[i].extreme_instances); - IF (NOT (type_string IN TYPEOF(sdei[i].extreme_instances[j].measured_value))) - THEN - RETURN(false); - END_IF; - END_REPEAT; - END_REPEAT; - RETURN(true); -END_FUNCTION; - -FUNCTION value_limit_type(iv : shape_data_quality_value_limit_type_select) : SET OF STRING; -LOCAL - retval : SET OF STRING := []; -END_LOCAL; - IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_VALUE_RANGE') IN TYPEOF(iv)) - THEN - retval := TYPEOF(iv\compound_representation_item.item_element[1].value_component); - END_IF; - IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_VALUE_LIMIT') IN TYPEOF(iv)) - THEN - IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_WITH_UNIT') IN TYPEOF(iv)) - THEN - retval := TYPEOF(iv\measure_with_unit.value_component); - END_IF; - END_IF; - RETURN(retval); -END_FUNCTION; - -FUNCTION value_range_aggregate_rep_item(agg : AGGREGATE OF representation_item) : BOOLEAN; - BEGIN - IF (SIZEOF(QUERY(i1 - <* agg - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN - TYPEOF(i1)))) = - 6) - THEN - RETURN(true); - ELSE - RETURN(false); - END_IF; - END; -END_FUNCTION; - -FUNCTION value_range_wr1(agg : compound_item_definition) : BOOLEAN; - BEGIN - IF (SIZEOF(agg) = 2) AND - ((SIZEOF(QUERY(i1 - <* agg - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN - TYPEOF(i1)))) = - 2) OR - (SIZEOF(QUERY(i2 - <* agg - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VALUE_REPRESENTATION_ITEM' IN - TYPEOF(i2)))) = - 2)) - THEN - RETURN(true); - ELSE - RETURN(false); - END_IF; - END; -END_FUNCTION; - -FUNCTION value_range_wr2(agg : compound_item_definition) : BOOLEAN; - BEGIN - IF ((SIZEOF(QUERY(i <* agg | (i\representation_item.name = 'upper limit'))) = 1) AND - (SIZEOF(QUERY(i <* agg | (i\representation_item.name = 'lower limit'))) = 1)) - THEN - RETURN(true); - ELSE - RETURN(false); - END_IF; - END; -END_FUNCTION; - -FUNCTION value_range_wr3(agg : compound_item_definition) : BOOLEAN; - BEGIN - IF (SIZEOF(QUERY(i1 - <* agg - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN - TYPEOF(i1)) AND - (SIZEOF(QUERY(i2 - <* agg - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN - TYPEOF(i2)) AND - (i1 :<>: i2) AND - (i1\measure_with_unit.unit_component :=: - i2\measure_with_unit.unit_component))) = - 1))) = - 2) - THEN - RETURN(true); - ELSE - RETURN(false); - END_IF; - END; -END_FUNCTION; - -FUNCTION values_space_of(expr : generic_expression) : maths_space; -LOCAL - e_prefix : STRING := 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.'; - typenames : SET OF STRING := TYPEOF(expr); -END_LOCAL; - IF (schema_prefix + 'MATHS_VARIABLE') IN typenames - THEN - RETURN(expr\maths_variable.values_space); - END_IF; - IF (e_prefix + 'EXPRESSION') IN typenames - THEN - IF (e_prefix + 'NUMERIC_EXPRESSION') IN typenames - THEN - IF expr\numeric_expression.is_int - THEN - IF (e_prefix + 'INT_LITERAL') IN typenames - THEN - RETURN(make_finite_space([expr\int_literal.the_value])); - ELSE - RETURN(the_integers); - END_IF; - ELSE - IF (e_prefix + 'REAL_LITERAL') IN typenames - THEN - RETURN(make_finite_space([expr\real_literal.the_value])); - ELSE - RETURN(the_reals); - END_IF; - END_IF; - END_IF; - IF (e_prefix + 'BOOLEAN_EXPRESSION') IN typenames - THEN - IF (e_prefix + 'BOOLEAN_LITERAL') IN typenames - THEN - RETURN(make_finite_space([expr\boolean_literal.the_value])); - ELSE - RETURN(the_booleans); - END_IF; - END_IF; - IF (e_prefix + 'STRING_EXPRESSION') IN typenames - THEN - IF (e_prefix + 'STRING_LITERAL') IN typenames - THEN - RETURN(make_finite_space([expr\string_literal.the_value])); - ELSE - RETURN(the_strings); - END_IF; - END_IF; - RETURN(?); - END_IF; - IF (schema_prefix + 'MATHS_FUNCTION') IN typenames - THEN - IF expression_is_constant(expr) - THEN - RETURN(make_finite_space([expr])); - ELSE - RETURN(make_function_space(sc_equal, expr\maths_function.domain, sc_equal, expr\maths_function.range)); - END_IF; - END_IF; - IF (schema_prefix + 'FUNCTION_APPLICATION') IN typenames - THEN - RETURN(expr\function_application.func.range); - END_IF; - IF (schema_prefix + 'MATHS_SPACE') IN typenames - THEN - IF expression_is_constant(expr) - THEN - RETURN(make_finite_space([expr])); - ELSE - RETURN(make_elementary_space(es_maths_spaces)); - END_IF; - END_IF; - IF (schema_prefix + 'DEPENDENT_VARIABLE_DEFINITION') IN typenames - THEN - RETURN(values_space_of(expr\unary_generic_expression.operand)); - END_IF; - IF (schema_prefix + 'COMPLEX_NUMBER_LITERAL') IN typenames - THEN - RETURN(make_finite_space([expr])); - END_IF; - IF (schema_prefix + 'LOGICAL_LITERAL') IN typenames - THEN - RETURN(make_finite_space([expr\logical_literal.lit_value])); - END_IF; - IF (schema_prefix + 'BINARY_LITERAL') IN typenames - THEN - RETURN(make_finite_space([expr\binary_literal.lit_value])); - END_IF; - IF (schema_prefix + 'MATHS_ENUM_LITERAL') IN typenames - THEN - RETURN(make_finite_space([expr\maths_enum_literal.lit_value])); - END_IF; - IF (schema_prefix + 'REAL_TUPLE_LITERAL') IN typenames - THEN - RETURN(make_finite_space([expr\real_tuple_literal.lit_value])); - END_IF; - IF (schema_prefix + 'INTEGER_TUPLE_LITERAL') IN typenames - THEN - RETURN(make_finite_space([expr\integer_tuple_literal.lit_value])); - END_IF; - IF (schema_prefix + 'ATOM_BASED_LITERAL') IN typenames - THEN - RETURN(make_finite_space([expr\atom_based_literal.lit_value])); - END_IF; - IF (schema_prefix + 'MATHS_TUPLE_LITERAL') IN typenames - THEN - RETURN(make_finite_space([expr\maths_tuple_literal.lit_value])); - END_IF; - IF (schema_prefix + 'PARTIAL_DERIVATIVE_EXPRESSION') IN typenames - THEN - RETURN(drop_numeric_constraints(values_space_of(expr\partial_derivative_expression.derivand))); - END_IF; - IF (schema_prefix + 'DEFINITE_INTEGRAL_EXPRESSION') IN typenames - THEN - RETURN(drop_numeric_constraints(values_space_of(expr\definite_integral_expression.integrand))); - END_IF; - RETURN(?); -END_FUNCTION; - -FUNCTION vector_difference(arg1 : vector_or_direction; - arg2 : vector_or_direction) : vector; -LOCAL - result : vector; - res : direction; - vec1 : direction; - vec2 : direction; - mag : REAL; - mag1 : REAL; - mag2 : REAL; - ndim : INTEGER; -END_LOCAL; - IF ((NOT EXISTS(arg1)) OR (NOT EXISTS(arg2))) OR (arg1.dim <> arg2.dim) - THEN - RETURN(?); - ELSE - BEGIN - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VECTOR' IN TYPEOF(arg1) - THEN - mag1 := arg1\vector.magnitude; - vec1 := arg1\vector.orientation; - ELSE - mag1 := 1.0; - vec1 := arg1; - END_IF; - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VECTOR' IN TYPEOF(arg2) - THEN - mag2 := arg2\vector.magnitude; - vec2 := arg2\vector.orientation; - ELSE - mag2 := 1.0; - vec2 := arg2; - END_IF; - vec1 := normalise(vec1); - vec2 := normalise(vec2); - ndim := SIZEOF(vec1.direction_ratios); - mag := 0.0; - res := dummy_gri || direction(vec1.direction_ratios); - REPEAT i := 1 TO ndim; - res.direction_ratios[i] := mag1 * vec1.direction_ratios[i] - mag2 * vec2.direction_ratios[i]; - mag := mag + (res.direction_ratios[i] * res.direction_ratios[i]); - END_REPEAT; - IF (mag > 0.0) - THEN - result := dummy_gri || vector(res, SQRT(mag)); - ELSE - result := dummy_gri || vector(vec1, 0.0); - END_IF; - END; - END_IF; - RETURN(result); -END_FUNCTION; - -FUNCTION volume_weights_positive(b : rational_b_spline_volume) : BOOLEAN; -LOCAL - result : BOOLEAN := true; -END_LOCAL; - REPEAT i := 0 TO b.u_upper; - REPEAT j := 0 TO b.v_upper; - REPEAT k := 0 TO b.w_upper; - IF (b.weights[i][j][k] <= 0.0) - THEN - result := false; - RETURN(result); - END_IF; - END_REPEAT; - END_REPEAT; - END_REPEAT; - RETURN(result); -END_FUNCTION; - -FUNCTION weights_positive(weights : LIST OF REAL) : BOOLEAN; -LOCAL - result : BOOLEAN := true; -END_LOCAL; - REPEAT i := 1 TO SIZEOF(weights); - IF weights[i] <= 0.0 - THEN - result := false; - RETURN(result); - END_IF; - END_REPEAT; - RETURN(result); -END_FUNCTION; - -FUNCTION ypr_index(ypr : ypr_enumeration) : INTEGER; - CASE ypr OF - yaw : RETURN(1); - pitch : RETURN(2); - roll : RETURN(3); - END_CASE; - RETURN(?); -END_FUNCTION; - -RULE alternative_solution_requires_solution_definition FOR (product_definition_formation); -LOCAL - solution_versions : SET OF product_definition_formation := []; -END_LOCAL; - solution_versions := QUERY(pdf - <* product_definition_formation - | SIZEOF(QUERY(prpc - <* USEDIN(pdf.of_product, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') - | prpc.name = 'alternative solution')) = - 1); -WHERE - WR1: SIZEOF(QUERY(pdf - <* solution_versions - | SIZEOF(QUERY(pd - <* USEDIN(pdf, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION.FORMATION') - | pd.frame_of_reference.name = 'alternative definition')) <> - 1)) = - 0; -END_RULE; - -RULE ap242_application_protocol_definition_required FOR (application_context); -WHERE - WR1: SIZEOF(QUERY(ac - <* application_context - | (SIZEOF(QUERY(apd - <* USEDIN(ac, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.APPLICATION_PROTOCOL_DEFINITION.APPLICATION') - | apd.application_interpreted_model_schema_name = - 'ap242_managed_model_based_3d_engineering_mim_lf')) > - 0))) > - 0; -END_RULE; - -RULE breakdown_element_requires_product_definition FOR (product_definition_formation); -WHERE - WR1: SIZEOF(QUERY(pdf - <* product_definition_formation - | (SIZEOF(QUERY(prpc - <* USEDIN(pdf.of_product, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') - | prpc.name = 'functionality')) = - 1) AND - (SIZEOF(QUERY(pd - <* USEDIN(pdf, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION.FORMATION') - | pd.frame_of_reference.name = 'functional definition')) < - 1))) = - 0; - WR2: SIZEOF(QUERY(pdf - <* product_definition_formation - | (SIZEOF(QUERY(prpc - <* USEDIN(pdf.of_product, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') - | prpc.name = 'conceptual design')) = - 1) AND - (SIZEOF(QUERY(pd - <* USEDIN(pdf, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION.FORMATION') - | pd.frame_of_reference.name = 'conceptual definition')) < - 1))) = - 0; -END_RULE; - -RULE chamfer_offset_requires_faces FOR (chamfer_offset, property_definition_representation); -WHERE - WR1: (SIZEOF(QUERY(co - <* chamfer_offset - | NOT (1 = - SIZEOF(QUERY(pdr - <* property_definition_representation - | ((pdr\property_definition_representation.definition\property_definition.definition = - co) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION' IN - TYPEOF(pdr.used_representation)) AND - (((pdr\property_definition_representation.definition\property_definition.definition.description = - 'first offset') AND - (pdr.used_representation.name = 'first face shape')) OR - ((pdr\property_definition_representation.definition\property_definition.definition.description = - 'second offset') AND - (pdr.used_representation.name = 'second face shape'))))))))) = - 0); -END_RULE; - -RULE chamfer_requires_faces FOR (chamfer, property_definition_representation); -WHERE - WR1: (SIZEOF(QUERY(cf - <* chamfer - | NOT (1 = - SIZEOF(QUERY(pdr - <* property_definition_representation - | ((pdr\property_definition_representation.definition\property_definition.definition = - cf) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION' IN - TYPEOF(pdr.used_representation)) AND - (pdr.used_representation.name = 'chamfer face'))))))) = - 0); -END_RULE; - -RULE compatible_dimension FOR (cartesian_point, direction, geometric_representation_context); -WHERE - WR1: check_geometric_dimension(cartesian_point, direction, geometric_representation_context); -END_RULE; - -RULE component_class_for_assembly_select FOR (composite_assembly_sequence_definition, - next_assembly_usage_occurrence, - product_related_product_category); -LOCAL - i : INTEGER := 0; - j : INTEGER := 0; - k : INTEGER := 0; - dkuhr : LOGICAL := true; - nnauo : INTEGER := 0; - nprpc : INTEGER := 0; - rp : product; -END_LOCAL; - REPEAT i := LOINDEX(composite_assembly_sequence_definition) TO HIINDEX(composite_assembly_sequence_definition); - nnauo := 0; - REPEAT j := LOINDEX(next_assembly_usage_occurrence) TO HIINDEX(next_assembly_usage_occurrence); - IF (composite_assembly_sequence_definition[i] = next_assembly_usage_occurrence[j].relating_product_definition) - THEN - rp := next_assembly_usage_occurrence[j].related_product_definition.formation.of_product; - nprpc := 0; - REPEAT k := LOINDEX(product_related_product_category) TO HIINDEX(product_related_product_category); - IF ((rp IN product_related_product_category[k].products) AND - (product_related_product_category[k].name IN - ['ply','ply laminate','filament laminate','processed core','composite assembly'])) - THEN - nprpc := nprpc + 1; - END_IF; - END_REPEAT; - IF (nprpc = 1) - THEN - nnauo := nnauo + 1; - ELSE - dkuhr := false; - ESCAPE; - END_IF; - END_IF; - END_REPEAT; - IF (dkuhr = false) - THEN - ESCAPE; - END_IF; - IF (nnauo = 0) - THEN - dkuhr := false; - ESCAPE; - END_IF; - END_REPEAT; -WHERE - WR1: dkuhr; -END_RULE; - -RULE consistent_uncertainty FOR (global_uncertainty_assigned_context, - qualified_representation_item, - uncertainty_assigned_representation); -WHERE - WR1: SIZEOF(QUERY(guac - <* global_uncertainty_assigned_context - | SIZEOF(QUERY(u1 - <* guac.uncertainty - | SIZEOF(QUERY(u2 <* guac.uncertainty | u2.name = u1.name)) > 1)) > - 0)) = - 0; - WR2: SIZEOF(QUERY(uar - <* uncertainty_assigned_representation - | SIZEOF(QUERY(u1 - <* uar.uncertainty - | SIZEOF(QUERY(u2 <* uar.uncertainty | u2.name = u1.name)) > 1)) > - 0)) = - 0; - WR3: SIZEOF(QUERY(qri - <* qualified_representation_item - | SIZEOF(QUERY(u1 - <* qri.qualifiers - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.UNCERTAINTY_QUALIFIER' IN - TYPEOF(u1)) AND - (SIZEOF(QUERY(u2 - <* qri.qualifiers - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.UNCERTAINTY_QUALIFIER' IN - TYPEOF(u2)) AND - (u2\uncertainty_qualifier.measure_name = - u1\uncertainty_qualifier.measure_name))) > - 1))) > - 0)) = - 0; -END_RULE; - -RULE constraint_definition_requires_constraint_category FOR (product_definition); -LOCAL - constraint_definitions : SET OF product_definition := []; -END_LOCAL; - constraint_definitions := QUERY(pd - <* product_definition - | (pd.frame_of_reference.name = 'design constraint definition')); -WHERE - WR1: SIZEOF(QUERY(pd - <* constraint_definitions - | (SIZEOF(QUERY(prpc - <* USEDIN(pd.formation.of_product, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') - | prpc.name = 'requirement')) = - 0))) = - 0; -END_RULE; - -RULE design_constraint_requires_product_definition FOR (product_definition_formation); -WHERE - WR1: SIZEOF(QUERY(pdf - <* product_definition_formation - | (SIZEOF(QUERY(prpc - <* USEDIN(pdf.of_product, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') - | prpc.name = 'requirement')) > - 0) AND - (SIZEOF(QUERY(pd - <* USEDIN(pdf, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION.FORMATION') - | pd.frame_of_reference.name = 'design constraint definition')) < - 1))) = - 0; -END_RULE; - -RULE dimensioning_data_requires_document FOR (applied_document_reference, - product_definition_context_association, - role_association); -LOCAL - adr : SET OF applied_document_reference := (QUERY(adr - <* applied_document_reference - | (adr\document_reference.assigned_document\document.kind\document_type.product_data_type = - 'Standards Document') AND - ((adr\document_reference.assigned_document\document.id = - 'ASME Y14.41-2003') OR - (adr\document_reference.assigned_document\document.id = - 'ASME Y14.5M-1994') OR - (adr\document_reference.assigned_document\document.id = - 'ISO 1101: 2004')))); - pdca : SET OF product_definition_context_association := (QUERY(pdca - <* product_definition_context_association - | (pdca\product_definition_context_association.role\product_definition_context_role.name = - 'additional context') AND - (pdca\product_definition_context_association.frame_of_reference\application_context_element.name = - 'Geometric Dimensioning and Tolerancing Product Specification'))); - ra : SET OF role_association := (QUERY(ra - <* role_association - | ra\role_association.role\object_role.name = - 'dimensioning standard')); - ra1 : SET OF role_association := []; - pdpdca : SET OF product_definition := []; - pdadr : SET OF product_definition := []; - pass : BOOLEAN := true; -END_LOCAL; - REPEAT i := 1 TO HIINDEX(pdca); - pdpdca := pdpdca + pdca[i]\product_definition_context_association.definition; - END_REPEAT; - REPEAT i := 1 TO HIINDEX(adr); - ra1 := bag_to_set(USEDIN(adr[i], - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROLE_ASSOCIATION.ITEM_WITH_ROLE')); - IF (ra1 * ra) <> ra1 - THEN - pass := false; - END_IF; - REPEAT j := 1 TO HIINDEX(adr[i]\applied_document_reference.items); - IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION' IN - TYPEOF(adr[i]\applied_document_reference.items[j]) - THEN - pdadr := pdadr + adr[i]\applied_document_reference.items[j]; - END_IF; - END_REPEAT; - END_REPEAT; -WHERE - WR1: pass; - WR2: pdpdca = pdadr; -END_RULE; - -RULE edge_round_requires_faces FOR (edge_round, property_definition_representation); -WHERE - WR1: (0 = - SIZEOF(QUERY(er - <* edge_round - | NOT (1 = - SIZEOF(QUERY(pdr - <* property_definition_representation - | ((pdr\property_definition_representation.definition\property_definition.definition = - er) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION' IN - TYPEOF(pdr.used_representation)) AND - (pdr.used_representation.name = 'edge round face')))))))); - WR2: (SIZEOF(QUERY(er - <* edge_round - | NOT (1 = - SIZEOF(QUERY(pdr - <* property_definition_representation - | ((pdr\property_definition_representation.definition\property_definition.definition = - er) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION' IN - TYPEOF(pdr.used_representation)) AND - (pdr.used_representation.name = 'first face shape'))))))) = - 0); - WR3: (SIZEOF(QUERY(er - <* edge_round - | NOT (1 = - SIZEOF(QUERY(pdr - <* property_definition_representation - | ((pdr\property_definition_representation.definition\property_definition.definition = - er) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION' IN - TYPEOF(pdr.used_representation)) AND - (pdr.used_representation.name = 'second face shape'))))))) = - 0); -END_RULE; - -RULE external_version_assignments_are_valid FOR (applied_external_identification_assignment); -WHERE - WR1: SIZEOF(QUERY(aia - <* applied_external_identification_assignment - | NOT external_version_assignment_is_valid(aia))) = - 0; -END_RULE; - -RULE material_for_coating_layer FOR (shape_aspect); -LOCAL - coating_layers : SET OF shape_aspect := []; -END_LOCAL; - coating_layers := QUERY(r <* shape_aspect | (r.name = 'coating layer')); -WHERE - WR1: SIZEOF(QUERY(r - <* coating_layers - | SIZEOF(USEDIN(r, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MATERIAL_DESIGNATION.DEFINITIONS')) <> - 1)) = - 0; -END_RULE; - -RULE non_uniform_zone_definition_constraint FOR (tolerance_zone_definition, tolerance_zone, tolerance_zone_form); -LOCAL - tzf_set : SET OF tolerance_zone_form := QUERY(tzf - <* tolerance_zone_form - | tzf\tolerance_zone_form.name = 'non uniform'); - nuzd_set : SET OF tolerance_zone_definition := QUERY(tzd - <* tolerance_zone_definition - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NON_UNIFORM_ZONE_DEFINITION' IN - TYPEOF(tzd)); -END_LOCAL; -WHERE - WR1: QUERY(tzd <* nuzd_set | (tzd\tolerance_zone_definition.zone\tolerance_zone.form IN tzf_set)) = nuzd_set; -END_RULE; - -RULE plib_property_reference_requires_name_scope FOR (externally_defined_general_property); -LOCAL - known_sourced_properties : SET OF externally_defined_general_property; -END_LOCAL; - known_sourced_properties := QUERY(edc - <* externally_defined_general_property - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.KNOWN_SOURCE' IN - TYPEOF(edc.source)); -WHERE - WR1: SIZEOF(QUERY(edgp - <* known_sourced_properties - | (SIZEOF(QUERY(edir - <* USEDIN(edgp, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXTERNALLY_DEFINED_ITEM_RELATIONSHIP.RELATING_ITEM') - | (edir.name = 'name scope') AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXTERNALLY_DEFINED_CLASS' IN - TYPEOF(edir.related_item)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.KNOWN_SOURCE' IN - TYPEOF(edir.related_item.source)))) <> - 1))) = - 0; -END_RULE; - -RULE plib_property_reference_requires_version FOR (externally_defined_general_property); -LOCAL - plib_properties : SET OF externally_defined_general_property := []; -END_LOCAL; - plib_properties := QUERY(edgp - <* externally_defined_general_property - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.KNOWN_SOURCE' IN - TYPEOF(edgp.source)) AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.KNOWN_SOURCE.NAME' = - 'ISO 13584 library')); -WHERE - WR1: SIZEOF(QUERY(edgp - <* plib_properties - | (SIZEOF(QUERY(edir - <* USEDIN(edgp, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.APPLIED_EXTERNAL_IDENTIFICATION_ASSIGNMENT.ITEMS') - | (edir.role.name = 'version'))) <> - 1))) = - 0; -END_RULE; - -RULE ply_reference FOR (ply_laminate_sequence_definition, - next_assembly_usage_occurrence, - product_related_product_category); -LOCAL - i : INTEGER; - j : INTEGER; - k : INTEGER; - dkuhr : LOGICAL := true; - nnauo : INTEGER; - nprpc : INTEGER := 0; - rp : product; -END_LOCAL; - REPEAT i := LOINDEX(ply_laminate_sequence_definition) TO HIINDEX(ply_laminate_sequence_definition); - nnauo := 0; - REPEAT j := LOINDEX(next_assembly_usage_occurrence) TO HIINDEX(next_assembly_usage_occurrence); - IF (ply_laminate_sequence_definition[i] = next_assembly_usage_occurrence[j].relating_product_definition) - THEN - rp := next_assembly_usage_occurrence[j].related_product_definition.formation.of_product; - nprpc := 0; - REPEAT k := LOINDEX(product_related_product_category) TO HIINDEX(product_related_product_category); - IF ((product_related_product_category[k].name = 'ply') AND - (rp IN product_related_product_category[k].products)) - THEN - nprpc := nprpc + 1; - END_IF; - END_REPEAT; - IF (nprpc = 1) - THEN - nnauo := nnauo + 1; - ELSE - dkuhr := false; - ESCAPE; - END_IF; - END_IF; - END_REPEAT; - IF (dkuhr = false) - THEN - ESCAPE; - END_IF; - IF (nnauo = 0) - THEN - dkuhr := false; - ESCAPE; - END_IF; - END_REPEAT; -WHERE - WR1: dkuhr; -END_RULE; - -RULE ply_stock_material_select FOR (product_related_product_category, make_from_usage_option); -LOCAL - i : INTEGER; - j : INTEGER; - k : INTEGER; - kp : INTEGER; - dkuhr : LOGICAL; - nmfuo : INTEGER; - nprpc : INTEGER := 0; - rp : product; -END_LOCAL; - dkuhr := true; - REPEAT kp := LOINDEX(product_related_product_category) TO HIINDEX(product_related_product_category); - IF (product_related_product_category[kp].name = 'ply') - THEN - REPEAT i := LOINDEX(product_related_product_category[kp].products) TO HIINDEX(product_related_product_category[kp].products); - nmfuo := 0; - REPEAT j := LOINDEX(make_from_usage_option) TO HIINDEX(make_from_usage_option); - rp := make_from_usage_option[j].related_product_definition.formation.of_product; - IF (product_related_product_category[kp].products[i] = rp) - THEN - REPEAT k := LOINDEX(product_related_product_category) TO HIINDEX(product_related_product_category); - IF ((rp IN product_related_product_category[k].products) AND - (product_related_product_category[k].name IN - ['isotropic material','filament assembly','discontinuous fiber assembly'])) - THEN - nprpc := nprpc + 1; - END_IF; - END_REPEAT; - IF (nprpc = 1) - THEN - nmfuo := nmfuo + 1; - ELSE - dkuhr := false; - ESCAPE; - END_IF; - END_IF; - END_REPEAT; - IF (dkuhr = false) - THEN - ESCAPE; - END_IF; - IF (nmfuo <> 1) - THEN - dkuhr := false; - ESCAPE; - END_IF; - END_REPEAT; - END_IF; - END_REPEAT; -WHERE - WR1: dkuhr; -END_RULE; - -RULE product_concept_feature_requires_category FOR (product_concept_feature); -WHERE - WR1: SIZEOF(QUERY(pcf - <* product_concept_feature - | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.INCLUSION_PRODUCT_CONCEPT_FEATURE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONDITIONAL_CONCEPT_FEATURE'] * - TYPEOF(pcf)) = - 0) AND - (SIZEOF(QUERY(aga - <* USEDIN(pcf, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.APPLIED_GROUP_ASSIGNMENT.ITEMS') - | (aga\group_assignment.role\object_role.name = - 'specification category member') AND - ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_CONCEPT_FEATURE_CATEGORY' IN - TYPEOF(aga.assigned_group)))) <> - 1))) = - 0; -END_RULE; - -RULE product_definition_replacement_requires_effectivity_assignment FOR (product_definition_relationship); -WHERE - WR1: SIZEOF(QUERY(pdr - <* product_definition_relationship - | (pdr.name = 'definition replacement') AND - (SIZEOF(USEDIN(pdr, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.APPLIED_EFFECTIVITY_ASSIGNMENT.ITEMS')) = - 0))) = - 0; -END_RULE; - -RULE restrict_alternative_definition FOR (product_definition); -LOCAL - solution_definitions : SET OF product_definition := []; -END_LOCAL; - solution_definitions := QUERY(pd <* product_definition | (pd.frame_of_reference.name = 'alternative definition')); -WHERE - WR1: SIZEOF(QUERY(pd - <* solution_definitions - | (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION') - | pdr.name = 'solution alternative definition')) <> - 1))) = - 0; - WR2: SIZEOF(QUERY(pd <* solution_definitions | NOT (pd.name IN ['technical','supplier','technical supplier','']))) = - 0; - WR3: SIZEOF(QUERY(pd - <* solution_definitions - | (pd.name IN ['supplier','technical supplier']) AND - (SIZEOF(QUERY(aoa - <* USEDIN(pd.formation, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.APPLIED_ORGANIZATION_ASSIGNMENT.ITEMS') - | aoa.role.name = 'supplier')) <> - 1))) = - 0; -END_RULE; - -RULE restrict_assembly_category FOR (product_definition); -LOCAL - assembly_definitions : SET OF product_definition := []; -END_LOCAL; - assembly_definitions := QUERY(pd - <* product_definition - | SIZEOF(QUERY(pdca - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_CONTEXT_ASSOCIATION.DEFINITION') - | pdca.frame_of_reference.name = 'assembly definition')) > - 0); -WHERE - WR1: SIZEOF(QUERY(pd <* assembly_definitions | NOT ('assembly' IN categories_of_product(pd.formation.of_product)))) = - 0; -END_RULE; - -RULE restrict_centre_of_mass_representation FOR (representation); -WHERE - WR1: SIZEOF(QUERY(r - <* representation - | (r.name = 'centre of mass') AND - ((SIZEOF(r.items) <> 1) OR - (SIZEOF(QUERY(i - <* r.items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT' IN TYPEOF(i)) AND - (i.name = 'centre point'))) <> - 1)))) = - 0; -END_RULE; - -RULE restrict_classification_assignments FOR (applied_classification_assignment); -WHERE - WR1: SIZEOF(QUERY(aia <* applied_classification_assignment | NOT class_assignment_is_valid(aia))) = 0; -END_RULE; - -RULE restrict_collection_category FOR (product_definition); -LOCAL - collection_definitions : SET OF product_definition := []; -END_LOCAL; - collection_definitions := QUERY(pd - <* product_definition - | SIZEOF(QUERY(pdca - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_CONTEXT_ASSOCIATION.DEFINITION') - | pdca.frame_of_reference.name = 'collection definition')) > - 0); -WHERE - WR1: SIZEOF(QUERY(pd - <* collection_definitions - | NOT ('collection' IN categories_of_product(pd.formation.of_product)))) = - 0; -END_RULE; - -RULE restrict_concept_feature_operator FOR (concept_feature_operator); -WHERE - WR1: SIZEOF(QUERY(cfo <* concept_feature_operator | NOT (cfo.name IN ['and','or','oneof','not','implication']))) = 0; - WR2: SIZEOF(QUERY(cfo - <* concept_feature_operator - | (cfo.name = 'implication') AND - (SIZEOF(QUERY(cfrwc - <* USEDIN(cfo, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION.CONDITIONAL_OPERATOR') - | SIZEOF(QUERY(ccf - <* USEDIN(cfrwc, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONDITIONAL_CONCEPT_FEATURE.CONDITION') - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.INCLUSION_PRODUCT_CONCEPT_FEATURE' IN - TYPEOF(ccf)))) > - 0)) > - 0))) = - 0; - WR3: SIZEOF(QUERY(cfo - <* concept_feature_operator - | (cfo.name = 'not') AND - (SIZEOF(QUERY(cfrwc - <* USEDIN(cfo, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION.CONDITIONAL_OPERATOR') - | cfrwc.related_product_concept_feature :<>: - cfrwc.relating_product_concept_feature)) > - 0))) = - 0; -END_RULE; - -RULE restrict_configuration_design_for_class_breakdown_association FOR (configuration_design); -WHERE - WR1: SIZEOF(QUERY(cd - <* configuration_design - | (cd.name = 'functionality') AND - (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION' IN - TYPEOF(cd.design)) OR - (cd.design\product_definition.frame_of_reference.name <> 'functional definition')))) = - 0; - WR2: SIZEOF(QUERY(cd - <* configuration_design - | (cd.name = 'realization') AND - (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION' IN - TYPEOF(cd.design)) OR - (cd.design\product_definition.frame_of_reference.name <> 'conceptual definition')))) = - 0; - WR3: SIZEOF(QUERY(cd - <* configuration_design - | (cd.name IN ['functionality','realization']) AND - (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_CLASS' IN - TYPEOF(cd.configuration.item_concept))))) = - 0; -END_RULE; - -RULE restrict_configuration_design_for_design_constraint FOR (configuration_design); -WHERE - WR1: SIZEOF(QUERY(cd - <* configuration_design - | (cd.name = 'design constraint usage') AND - (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION' IN - TYPEOF(cd.design)) OR - (cd.design\product_definition.frame_of_reference.name <> - 'design constraint definition')))) = - 0; -END_RULE; - -RULE restrict_group_relationship_for_classification_hierarchy FOR (group_relationship); -WHERE - WR1: SIZEOF(QUERY(gr - <* group_relationship - | (gr\group_relationship.name = 'class hierarchy') AND - (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLASS' IN - TYPEOF(gr\group_relationship.related_group)) OR - NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLASS' IN - TYPEOF(gr\group_relationship.relating_group))))) = - 0; -END_RULE; - -RULE restrict_group_relationship_for_specification_category FOR (group_relationship); -WHERE - WR1: SIZEOF(QUERY(gr - <* group_relationship - | (gr.name = 'specification category hierarchy') AND - (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_CONCEPT_FEATURE_CATEGORY' IN - TYPEOF(gr.related_group)) OR - NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_CONCEPT_FEATURE_CATEGORY' IN - TYPEOF(gr.relating_group))))) = - 0; -END_RULE; - -RULE restrict_language_assignment_per_attribute FOR (attribute_language_assignment); -WHERE - WR1: SIZEOF(QUERY(ala1 - <* attribute_language_assignment - | SIZEOF(QUERY(it - <* ala1.items - | SIZEOF(QUERY(ala2 - <* USEDIN(it, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') - | (ala1\attribute_classification_assignment.attribute_name = - ala2\attribute_classification_assignment.attribute_name) AND - (ala1\attribute_classification_assignment.assigned_class :=: - ala2\attribute_classification_assignment.assigned_class))) > - 1)) > - 0)) = - 0; -END_RULE; - -RULE restrict_part_occurrence FOR (product_definition); -LOCAL - part_occurrences : SET OF product_definition := QUERY(pd - <* product_definition - | (pd.frame_of_reference.name = 'part occurrence')); -END_LOCAL; -WHERE - WR1: SIZEOF(QUERY(pd - <* part_occurrences - | (NOT (pd.name IN - ['single instance','selected instance','quantified instance','specified instance'])))) = - 0; - WR2: SIZEOF(QUERY(pd - <* part_occurrences - | (SIZEOF(QUERY(pdr - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION') - | pdr.name = 'definition usage')) <> - 1) AND - (SIZEOF(QUERY(cd - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONFIGURATION_DESIGN.DESIGN') - | (cd.name = 'occurrence usage definition') AND - (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_IDENTIFICATION' IN - TYPEOF(cd.configuration))))) <> - 1))) = - 0; - WR3: SIZEOF(QUERY(pd - <* part_occurrences - | (SIZEOF(QUERY(cd - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION') - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_USAGE' IN - TYPEOF(cd)))) = - 0) AND - (SIZEOF(USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_OCCURRENCE_RELATIONSHIP.OCCURRENCE')) = - 0))) = - 0; - WR4: SIZEOF(QUERY(pd - <* part_occurrences - | (pd.name = 'selected instance') AND NOT valid_selected_instance_representation(pd))) = - 0; - WR5: SIZEOF(QUERY(pd - <* part_occurrences - | (pd.name = 'quantified instance') AND - (SIZEOF(QUERY(ppd - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (ppd.name = 'occurrence quantity') AND - (SIZEOF(QUERY(pdr - <* USEDIN(ppd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') - | (pdr.used_representation.name = 'quantity') AND - (SIZEOF(pdr.used_representation.items) = 1) AND - (SIZEOF(QUERY(i - <* pdr.used_representation.items - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN - TYPEOF(i)) AND - (i.name = 'quantity measure'))) = - 1))) = - 1))) = - 0))) = - 0; - WR6: SIZEOF(QUERY(pd - <* part_occurrences - | (pd.name = 'specified instance') AND - (SIZEOF(QUERY(pdor - <* USEDIN(pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_OCCURRENCE_RELATIONSHIP.OCCURRENCE') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SPECIFIED_HIGHER_USAGE_OCCURRENCE' IN - TYPEOF(pdor.occurrence_usage))) = - 0))) = - 0; -END_RULE; - -RULE restrict_part_occurrence_category FOR (product_definition); -LOCAL - part_occurrences : SET OF product_definition := QUERY(pd - <* product_definition - | (pd.frame_of_reference.name = 'part occurrence')); -END_LOCAL; -WHERE - WR1: SIZEOF(QUERY(pd - <* part_occurrences - | (SIZEOF(QUERY(prpc - <* USEDIN(pd.formation.of_product, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') - | prpc.name IN ['part','raw material','tool'])) = - 0))) = - 0; -END_RULE; - -RULE restrict_product_definitions_for_base_element FOR (product_definition_relationship); -WHERE - WR1: SIZEOF(QUERY(pdr - <* product_definition_relationship - | (pdr.name = 'solution alternative definition') AND - (NOT (pdr.relating_product_definition.frame_of_reference.name IN - ['alternative definition','functional definition','conceptual definition']) OR - (pdr.related_product_definition.frame_of_reference.name <> 'alternative definition')))) = - 0; -END_RULE; - -RULE restrict_product_definitions_for_collection FOR (product_definition_relationship); -WHERE - WR1: SIZEOF(QUERY(pdr - <* product_definition_relationship - | (pdr.name = 'collection membership') AND - ((pdr.relating_product_definition.frame_of_reference.name <> 'part definition') OR - (pdr.related_product_definition.frame_of_reference.name <> 'part occurrence') OR - (SIZEOF(QUERY(pdca - <* USEDIN(pdr.relating_product_definition, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_CONTEXT_ASSOCIATION.DEFINITION') - | (pdca.role.name = 'part definition type') AND - (pdca.frame_of_reference.name = 'collection definition'))) = - 0)))) = - 0; -END_RULE; - -RULE restrict_product_definitions_for_definition_usage FOR (product_definition_relationship); -WHERE - WR1: SIZEOF(QUERY(pdr - <* product_definition_relationship - | (pdr.name = 'definition usage') AND - ((pdr.relating_product_definition.frame_of_reference.name <> 'part definition') OR - (pdr.related_product_definition.frame_of_reference.name <> 'part occurrence')))) = - 0; -END_RULE; - -RULE restrict_product_definitions_for_design_constraint_association FOR (product_definition_relationship); -WHERE - WR1: SIZEOF(QUERY(pdr - <* product_definition_relationship - | (pdr.name = 'design constraint association') AND - ((pdr.relating_product_definition.frame_of_reference.name <> 'design constraint definition') OR - NOT (pdr.related_product_definition.frame_of_reference.name IN - ['alternative definition','functional definition','conceptual definition'])))) = - 0; -END_RULE; - -RULE restrict_product_definitions_for_part_definition_relationship FOR (product_definition_relationship); -WHERE - WR1: SIZEOF(QUERY(pdr - <* product_definition_relationship - | (pdr.name IN ['geometrical relationship','definition replacement']) AND - ((pdr.relating_product_definition.frame_of_reference.name <> 'part definition') OR - (pdr.related_product_definition.frame_of_reference.name <> 'part definition')))) = - 0; -END_RULE; - -RULE restrict_representation_for_surface_condition FOR (property_definition_representation); -WHERE - WR1: SIZEOF(QUERY(pdr - <* property_definition_representation - | NOT surface_condition_correlation(pdr.definition, pdr.used_representation))) = - 0; -END_RULE; - -RULE restrict_support_structure_category FOR (product_definition); -LOCAL - support_structures : SET OF product_definition := []; -END_LOCAL; - support_structures := QUERY(pd - <* product_definition - | (SIZEOF(QUERY(prpc - <* USEDIN(pd.formation.of_product, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') - | prpc.name = 'additive manufacturing support structure')) <> - 0)); -WHERE - WR1: SIZEOF(QUERY(pd - <* support_structures - | (SIZEOF(QUERY(prpc - <* USEDIN(pd.formation.of_product, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') - | prpc.name = 'part')) <> - 0))) = - 0; -END_RULE; - -RULE restrict_treatment_result FOR (representation); -LOCAL - treatment_results : SET OF representation := []; -END_LOCAL; - treatment_results := QUERY(r <* representation | (r.name = 'treatment result')); -WHERE - WR1: (SIZEOF(QUERY(r <* treatment_results | (SIZEOF(r.items) > 2))) = 0) AND - (SIZEOF(QUERY(r - <* treatment_results - | (SIZEOF(QUERY(i - <* r.items - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN - TYPEOF(i)))) > - 0))) = - 0); - WR2: SIZEOF(QUERY(r <* treatment_results | (SIZEOF(QUERY(i <* r.items | i.name = 'result')) = 0))) = 0; - WR3: SIZEOF(QUERY(r <* treatment_results | (SIZEOF(QUERY(i <* r.items | i.name = 'purpose')) > 1))) = 0; -END_RULE; - -RULE selected_instance_usage_requires_representation FOR (assembly_component_usage); -LOCAL - selected_instance_usages : SET OF assembly_component_usage := QUERY(acr - <* assembly_component_usage - | (acr.name = 'selected instance usage')); -END_LOCAL; -WHERE - WR1: SIZEOF(QUERY(acr <* selected_instance_usages | NOT valid_selected_instance_representation(acr))) = 0; -END_RULE; - -RULE solution_definition_requires_solution_category FOR (product_definition); -LOCAL - solution_definitions : SET OF product_definition := []; -END_LOCAL; - solution_definitions := QUERY(pd <* product_definition | (pd.frame_of_reference.name = 'alternative definition')); -WHERE - WR1: SIZEOF(QUERY(pd - <* solution_definitions - | (SIZEOF(QUERY(prpc - <* USEDIN(pd.formation.of_product, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') - | prpc.name = 'alternative solution')) = - 0))) = - 0; -END_RULE; - -RULE styled_curve FOR (styled_item); -WHERE - WR1: SIZEOF(QUERY(si - <* styled_item - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE' IN TYPEOF(si.item)) AND - (SIZEOF(QUERY(psa - <* si.styles - | (SIZEOF(QUERY(cs - <* psa.styles - | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE' IN - TYPEOF(cs)))) > - 0))) <> - 1))) = - 0; -END_RULE; - -RULE subtype_exclusiveness_geometric_tolerance FOR (geometric_tolerance); -WHERE - WR1: SIZEOF(QUERY(gt - <* geometric_tolerance - | NOT (type_check_function(gt, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANGULARITY_TOLERANCE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_RUNOUT_TOLERANCE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COAXIALITY_TOLERANCE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONCENTRICITY_TOLERANCE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CYLINDRICITY_TOLERANCE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FLATNESS_TOLERANCE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE_PROFILE_TOLERANCE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PARALLELISM_TOLERANCE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PERPENDICULARITY_TOLERANCE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITION_TOLERANCE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROUNDNESS_TOLERANCE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STRAIGHTNESS_TOLERANCE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_PROFILE_TOLERANCE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SYMMETRY_TOLERANCE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TOTAL_RUNOUT_TOLERANCE'], - 2)))) = - 0; -END_RULE; - -RULE subtype_exclusiveness_representation_item FOR (representation_item); -WHERE - WR1: SIZEOF(QUERY(cri - <* representation_item - | NOT (type_check_function(cri, - ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VALUE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOUND_REPRESENTATION_ITEM'], - 3)))) = - 0; -END_RULE; - -RULE subtype_mandatory_shape_representation FOR (shape_representation); -WHERE - WR1: SIZEOF(QUERY(sr - <* shape_representation - | NOT ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_BREP_SHAPE_REPRESENTATION', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACETED_BREP_SHAPE_REPRESENTATION', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SURFACE_SHAPE_REPRESENTATION', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SUBSURFACE_SHAPE_REPRESENTATION', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_BASED_WIREFRAME_SHAPE_REPRESENTATION', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHELL_BASED_WIREFRAME_SHAPE_REPRESENTATION', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRICALLY_BOUNDED_SURFACE_SHAPE_REPRESENTATION', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRICALLY_BOUNDED_WIREFRAME_SHAPE_REPRESENTATION', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BEVELED_SHEET_REPRESENTATION', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_SHEET_REPRESENTATION', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOUND_SHAPE_REPRESENTATION', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CSG_2D_SHAPE_REPRESENTATION', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CSG_SHAPE_REPRESENTATION', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_SWEPT_SOLID_SHAPE_REPRESENTATION', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIRECTION_SHAPE_REPRESENTATION', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ELEMENTARY_BREP_SHAPE_REPRESENTATION', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRICALLY_BOUNDED_2D_WIREFRAME_REPRESENTATION', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LOCATION_SHAPE_REPRESENTATION', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NEUTRAL_SKETCH_REPRESENTATION', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NON_MANIFOLD_SURFACE_SHAPE_REPRESENTATION', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PATH_SHAPE_REPRESENTATION', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_SHAPE_REPRESENTATION', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_REPRESENTATION', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROCEDURAL_SHAPE_REPRESENTATION', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATIVE_SHAPE_REPRESENTATION', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DIMENSION_REPRESENTATION', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_SHAPE_REPRESENTATION'] * - TYPEOF(sr)) = - 1) OR - (SIZEOF(QUERY(it - <* sr\representation.items - | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D' IN - TYPEOF(it)))) = - 0) OR - (SIZEOF(QUERY(sdr - <* QUERY(pdr - <* USEDIN(sr, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION') - | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINITION_REPRESENTATION' IN - TYPEOF(pdr)) - | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP'] * - TYPEOF(sdr.definition)) = - 1))) = - 0)))) = - 0; -END_RULE; - -RULE text_font_usage FOR (externally_defined_text_font, pre_defined_text_font); -WHERE - WR1: SIZEOF(QUERY(pdtf - <* pre_defined_text_font - | SIZEOF(USEDIN(pdtf, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TEXT_LITERAL.FONT')) = 0)) = - 0; - WR2: SIZEOF(QUERY(edtf - <* externally_defined_text_font - | SIZEOF(USEDIN(edtf, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TEXT_LITERAL.FONT')) = 0)) = - 0; -END_RULE; - -RULE tolerance_zone_form_name_constraint FOR (tolerance_zone_form); -LOCAL - names : SET OF STRING := ['within a circle', - 'within a cylinder', - 'within a cone', - 'within a single complex surface', - 'within a sphere', - 'between two coaxial cylinders', - 'between two concentric circles', - 'between two equidistant curves', - 'between two equidistant complex lines or two parallel straight lines', - 'between two equidistant complex surfaces or two parallel planes', - 'between two equidistant surfaces', - 'between two non-equidistant complex lines or two non-parallel straight lines', - 'between two non-equidistant complex surfaces or two non-parallel planes', - 'between two parallel circles on a conical surface', - 'between two parallel circles of the same diameter', - 'non uniform', - 'cylindrical or circular', - 'spherical', - 'unknown']; - pass : BOOLEAN := true; -END_LOCAL; - REPEAT i := 1 TO SIZEOF(tolerance_zone_form) - WHILE pass; - pass := (tolerance_zone_form[i].name IN names); - END_REPEAT; -WHERE - WR1: pass; -END_RULE; - -RULE transition_feature_on_part_boundary FOR (transition_feature); -WHERE - WR1: SIZEOF(QUERY(tf <* transition_feature | NOT (tf.product_definitional))) = 0; -END_RULE; - -RULE unique_datum_system FOR (datum_system); -LOCAL - pass : BOOLEAN := true; -END_LOCAL; - REPEAT i := 1 TO SIZEOF(datum_system); - REPEAT j := 1 TO SIZEOF(datum_system); - IF (i <> j) - THEN - IF datum_system[i]\datum_system.constituents = datum_system[j]\datum_system.constituents - THEN - pass := false; - END_IF; - END_IF; - END_REPEAT; - END_REPEAT; -WHERE - WR1: pass; -END_RULE; - -RULE unique_gdt_element_id_constraint FOR (product_definition_shape, - dimensional_location, - dimensional_size, - shape_aspect, - shape_aspect_relationship); -LOCAL - bss : BAG OF STRING := []; - ds : SET OF dimensional_size := QUERY(ds <* dimensional_size | EXISTS(ds\dimensional_size.id)); - sa : SET OF shape_aspect := QUERY(sa <* shape_aspect | EXISTS(sa\shape_aspect.id)); - sar : SET OF shape_aspect_relationship := QUERY(sar - <* shape_aspect_relationship - | EXISTS(sar\shape_aspect_relationship.id)); - ssa : SET OF shape_aspect := []; - pass : BOOLEAN := true; -END_LOCAL; - REPEAT ii := 1 TO SIZEOF(product_definition_shape) - WHILE pass; - bss := []; - ssa := bag_to_set(USEDIN(product_definition_shape[ii], - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE')); - REPEAT i := 1 TO SIZEOF(ds); - IF (ds[i]\dimensional_size.applies_to IN ssa) - THEN - bss := bss + ds[i]\dimensional_size.id; - END_IF; - END_REPEAT; - REPEAT i := 1 TO SIZEOF(sa); - IF (sa[i] IN ssa) - THEN - bss := bss + sa[i]\shape_aspect.id; - END_IF; - END_REPEAT; - REPEAT i := 1 TO SIZEOF(sar); - IF (sar[i]\shape_aspect_relationship.relating_shape_aspect IN ssa) - THEN - bss := bss + sar[i]\shape_aspect_relationship.id; - END_IF; - END_REPEAT; - IF (SIZEOF(bag_to_set(bss)) <> SIZEOF(bss)) - THEN - pass := false; - END_IF; - END_REPEAT; -WHERE - WR1: pass; -END_RULE; - -RULE valid_product_and_manufacturing_information_view_contexts FOR (product_definition_context); -LOCAL - design_view_contexts : SET OF product_definition_context := QUERY(pdc - <* product_definition_context - | pdc.life_cycle_stage = - 'design'); - gdt_representation_view_contexts : SET OF product_definition_context := QUERY(pdc - <* product_definition_context - | pdc.frame_of_reference.application = - 'geometrical dimensioning and tolerancing representation'); - machining_feature_view_contexts : SET OF product_definition_context := QUERY(pdc - <* product_definition_context - | pdc.frame_of_reference.application = - 'machining feature'); - material_specification_view_contexts : SET OF product_definition_context := QUERY(pdc - <* product_definition_context - | pdc.frame_of_reference.application = - 'material specification'); - model_based_3d_annotation_presentation_view_contexts : SET OF product_definition_context := QUERY(pdc - <* product_definition_context - | pdc.frame_of_reference.application = - 'model based 3D annotation presentation'); - model_based_view_contexts : SET OF product_definition_context := QUERY(pdc - <* product_definition_context - | pdc.frame_of_reference.application = - 'model based product geometry'); - process_state_view_contexts : SET OF product_definition_context := QUERY(pdc - <* product_definition_context - | pdc.frame_of_reference.application = - 'process state'); - surface_finish_view_contexts : SET OF product_definition_context := QUERY(pdc - <* product_definition_context - | pdc.frame_of_reference.application = - 'surface finish'); - additional_view_contexts : SET OF product_definition_context := gdt_representation_view_contexts + - machining_feature_view_contexts + - material_specification_view_contexts + - model_based_3d_annotation_presentation_view_contexts + - process_state_view_contexts + - surface_finish_view_contexts; - need_initial_model_based_view_contexts : SET OF product_definition_context := gdt_representation_view_contexts + - model_based_3d_annotation_presentation_view_contexts; -END_LOCAL; -WHERE - WR1: SIZEOF(gdt_representation_view_contexts * design_view_contexts) = SIZEOF(gdt_representation_view_contexts); - WR2: SIZEOF(machining_feature_view_contexts * design_view_contexts) = SIZEOF(machining_feature_view_contexts); - WR3: SIZEOF(material_specification_view_contexts * design_view_contexts) = - SIZEOF(material_specification_view_contexts); - WR4: SIZEOF(model_based_3d_annotation_presentation_view_contexts * design_view_contexts) = - SIZEOF(model_based_3d_annotation_presentation_view_contexts); - WR5: SIZEOF(model_based_view_contexts * design_view_contexts) = SIZEOF(model_based_view_contexts); - WR6: SIZEOF(process_state_view_contexts * design_view_contexts) = SIZEOF(process_state_view_contexts); - WR7: SIZEOF(surface_finish_view_contexts * design_view_contexts) = SIZEOF(surface_finish_view_contexts); - WR8: SIZEOF(QUERY(mbvc - <* model_based_view_contexts - | (SIZEOF(USEDIN(mbvc, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_CONTEXT_ASSOCIATION.FRAME_OF_REFERENCE')) = - 0))) = - SIZEOF(model_based_view_contexts); - WR9: SIZEOF(QUERY(avc - <* additional_view_contexts - | (SIZEOF(USEDIN(avc, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION.FRAME_OF_REFERENCE')) = - 0))) = - SIZEOF(additional_view_contexts); - WR10: SIZEOF(QUERY(nimbvc - <* need_initial_model_based_view_contexts - | NOT (SIZEOF(QUERY(pdca - <* USEDIN(nimbvc, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_CONTEXT_ASSOCIATION.FRAME_OF_REFERENCE') - | (pdca\product_definition_context_association.definition\product_definition.frame_of_reference IN - model_based_view_contexts))) = - SIZEOF(need_initial_model_based_view_contexts)))) = - 0; - WR11: SIZEOF(QUERY(gdt_pdc - <* gdt_representation_view_contexts - | SIZEOF(['ISO 1101','ASME Y14.5'] * get_associated_mandatory_document_ids(gdt_pdc)) = 0)) = - 0; - WR12: SIZEOF(QUERY(mb3d_pdc - <* model_based_3d_annotation_presentation_view_contexts - | SIZEOF(['ISO 1101','ISO 16792','ASME Y14.41','ASME Y14.5'] * - get_associated_mandatory_document_ids(mb3d_pdc)) = - 0)) = - 0; -END_RULE; - -RULE validate_dependently_instantiable_entity_data_types FOR (aggregate_id_attribute, - attribute_value_role, - camera_model_d2, - classification_assignment_relationship, - concept_feature_relationship, - concept_feature_relationship_with_condition, - data_equivalence_assessment_specification, - data_equivalence_criteria_representation, - data_equivalence_criterion, - data_equivalence_inspection_instance_report_item, - data_equivalence_inspection_requirement, - data_equivalence_inspection_result_representation, - document_usage_constraint, - edge_blended_solid, - effectivity_context_role, - event_occurrence_role, - explicit_procedural_representation_item_relationship, - founded_item, - indirectly_selected_elements, - location_representation_role, - location_role, - modified_solid_with_placed_configuration, - one_direction_repeat_factor, - organization_type_role, - procedural_representation, - procedural_representation_sequence, - product_definition_effectivity, - product_definition_relationship_relationship, - runout_zone_orientation, - solid_with_depression, - solid_with_hole, - solid_with_pocket, - solid_with_protrusion, - solid_with_shape_element_pattern, - solid_with_slot, - swept_area_solid, - symbol_target, - two_direction_repeat_factor, - user_selected_elements); -LOCAL - number_of_input_instances : INTEGER; - previous_in_chain : LIST OF GENERIC := []; - set_of_input_types : SET OF STRING := []; - all_instances : SET OF GENERIC := []; -END_LOCAL; - all_instances := all_instances + aggregate_id_attribute; - all_instances := all_instances + attribute_value_role; - all_instances := all_instances + camera_model_d2; - all_instances := all_instances + classification_assignment_relationship; - all_instances := all_instances + concept_feature_relationship; - all_instances := all_instances + concept_feature_relationship_with_condition; - all_instances := all_instances + data_equivalence_assessment_specification; - all_instances := all_instances + data_equivalence_criteria_representation; - all_instances := all_instances + data_equivalence_criterion; - all_instances := all_instances + data_equivalence_inspection_instance_report_item; - all_instances := all_instances + data_equivalence_inspection_requirement; - all_instances := all_instances + data_equivalence_inspection_result_representation; - all_instances := all_instances + document_usage_constraint; - all_instances := all_instances + edge_blended_solid; - all_instances := all_instances + effectivity_context_role; - all_instances := all_instances + event_occurrence_role; - all_instances := all_instances + explicit_procedural_representation_item_relationship; - all_instances := all_instances + founded_item; - all_instances := all_instances + indirectly_selected_elements; - all_instances := all_instances + location_representation_role; - all_instances := all_instances + location_role; - all_instances := all_instances + modified_solid_with_placed_configuration; - all_instances := all_instances + one_direction_repeat_factor; - all_instances := all_instances + organization_type_role; - all_instances := all_instances + procedural_representation; - all_instances := all_instances + procedural_representation_sequence; - all_instances := all_instances + product_definition_effectivity; - all_instances := all_instances + product_definition_relationship_relationship; - all_instances := all_instances + runout_zone_orientation; - all_instances := all_instances + solid_with_depression; - all_instances := all_instances + solid_with_hole; - all_instances := all_instances + solid_with_pocket; - all_instances := all_instances + solid_with_protrusion; - all_instances := all_instances + solid_with_shape_element_pattern; - all_instances := all_instances + solid_with_slot; - all_instances := all_instances + swept_area_solid; - all_instances := all_instances + symbol_target; - all_instances := all_instances + two_direction_repeat_factor; - all_instances := all_instances + user_selected_elements; - ; - number_of_input_instances := SIZEOF(all_instances); - REPEAT i := 1 TO number_of_input_instances; - set_of_input_types := set_of_input_types + TYPEOF(all_instances[i]); - END_REPEAT; -WHERE - WR1: dependently_instantiated(all_instances, set_of_input_types, previous_in_chain); -END_RULE; -END_SCHEMA; diff --git a/src/ExpToCasExe/expformat.l b/src/ExpToCasExe/expformat.l deleted file mode 100644 index 797eeff093..0000000000 --- a/src/ExpToCasExe/expformat.l +++ /dev/null @@ -1,56 +0,0 @@ -%{ - -/* This LEX scanner is intended for formatting EXPRESS definitions */ -/* in order to allow comparison with other: */ -/* - remove comments */ -/* - remove all spaces */ -/* - insert a CR (\n) after each ';' */ -/* - insert a space after each word (identifier or number) */ - -/************************************/ -/* Section 1 */ -/* definitions */ -%} - - -%x COMM - -KEYWORD [A-Z_]+ -NAME [a-z_][a-z0-9_]* -NUMBER [0-9]+ -SPACE [ \t\n] -SPC {SPACE}+ -SP {SPACE}* - -%{ - -static int fun_level=0; - -/************************************/ -/* Section 2 */ -/* parsing rules */ -%} - -%% - -"--".* ; /* Eat line comments */ -"(*" BEGIN(COMM); -.|\n ; /* Eat multiline comments */ -"*)" BEGIN(0); - -; printf ( ";\n" ); -[A-Za-z_0-9+-]+ printf ( "%s ", yytext ); -[ \t\n]+ ; /* condense spaces */ - -%% - -/************************************/ -/* Section 3 */ -/* calling and auxiliary procedures */ - -int main ( void ) -{ - yylex(); -} - -int yywrap(void) { return 1; } diff --git a/src/ExpToCasExe/explist.l b/src/ExpToCasExe/explist.l deleted file mode 100644 index 62a1120b17..0000000000 --- a/src/ExpToCasExe/explist.l +++ /dev/null @@ -1,76 +0,0 @@ -%{ - -/* This LEX scanner produces list of items included in the EXPRESS schema */ -/* (TYPE, ENTITY, FUNCTION, RULE) */ - -/************************************/ -/* Section 1 */ -/* definitions */ -%} - - -%x CONST, TYP, TYP1, ENT, ENT1, LIST, COMM, SKP, FUN, FUN1, RUL - -KEYWORD [A-Z_]+ -NAME [a-z_][a-z0-9_]* -NUMBER [0-9]+ -SPACE [ \t\n] -SPC {SPACE}+ -SP {SPACE}* - -%{ - -static int fun_level=0; - -/************************************/ -/* Section 2 */ -/* parsing rules */ -%} - -%% - -"--".* ; /* Eat line comments */ -"(*" { printf ( "Starting multiline comment\n" ); BEGIN(COMM); } -.|\n ; /* Eat multiline comments */ -"*)" { printf ( "End of multiline comment\n" ); BEGIN(0); } - -SCHEMA" "{NAME}; printf ( "Starting %s\n", yytext ); -END_SCHEMA; printf ( "Schema finished\n" ); - -TYPE { BEGIN(TYP); } -{NAME} { printf ( "TYPE %s\n", yytext ); BEGIN(TYP1); } -.|\n ; /* eat any unrecognized data */ -END_TYPE { printf ( "\n" ); BEGIN(0); } - -ENTITY { BEGIN(ENT); } -{NAME} { printf ( "ENTITY %s\n", yytext ); BEGIN(ENT1); } -.|\n ; /* eat any unrecognized data */ -END_ENTITY BEGIN(0); - -DERIVE | -WHERE BEGIN(SKP); -.|\n ; /* eat contents of WHERE and DERIVE subclauses */ - -^{SP}FUNCTION { BEGIN(FUN); fun_level++; } -{NAME} { printf ( "FUNCTION %s\n", yytext ); BEGIN(FUN1); } -.|\n ; /* eat contents of WHERE and DERIVE subclauses */ -END_FUNCTION { fun_level--; if ( ! fun_level ) BEGIN(0); } - -RULE { BEGIN(RUL); } -{NAME} { printf ( "RULE %s\n", yytext ); BEGIN(SKP); } -END_RULE BEGIN(0); - -.|\n ; /* eat any unrecognized data */ - -%% - -/************************************/ -/* Section 3 */ -/* calling and auxiliary procedures */ - -int main ( void ) -{ - yylex(); -} - -int yywrap(void) { return 1; } diff --git a/src/ExpToCasExe/expparse.cxx b/src/ExpToCasExe/expparse.cxx deleted file mode 100644 index 2b289643e7..0000000000 --- a/src/ExpToCasExe/expparse.cxx +++ /dev/null @@ -1,1339 +0,0 @@ - -# line 2 "Express.y" - -// Created: Thu Oct 28 12:21:16 1999 -// Author: Andrey BETENEV -// Copyright (c) 1999-2020 OPEN CASCADE SAS -// -// This file is part of Open CASCADE Technology software library. -// -// This library is free software; you can redistribute it and/or modify it under -// the terms of the GNU Lesser General Public License version 2.1 as published -// by the Free Software Foundation, with special exception defined in the file -// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT -// distribution for complete text of the license and disclaimer of any warranty. -// -// Alternatively, this file may be used under the terms of Open CASCADE -// commercial license or contractual agreement. - -/*****************************************************************************\ - -This YACC parser implements parsing algorithm for EXPRESS -> CASCADE/XSTEP -classes generator - -Input in the form of tokens is obtained from lexical analyser. Then, data -structure representing schema is created on the basis of grammar analysis. - -NOTE: The grammar currently implemented is not full. -FUNCTION, RULE and CONSTANT items, WHERE, INVERSE and DERIVE clauses -of TYPE and ENTITY items are not considered (ignored on the level of lexical -scanner). -SUPERTYPE and UNIQUE clauses of ENTITY item are recognized but ignored. -Also, complex constructs such as using call to function in dimensions of -complex time or redefinition of inherited field are ignored. - -\*****************************************************************************/ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#ifdef _MSC_VER -#pragma warning(push) -#pragma warning(disable:4244) -#pragma warning(disable:4274) -#pragma warning(disable:4800) -#endif -#if defined(__clang__) -#pragma GCC diagnostic ignored "-Wmissing-braces" -#endif -#if __cplusplus > 199711L -#define register// Deprecated in C++11. -#endif - -/************************************************/ -/* ERROR MESSAGE FUNCTION */ - -/* external functions (from Express.l) */ -int ec_error ( char const *s, char const *text ); -int ec_curline ( void ); - -#define yyerror ec_error -void ec_error ( char const *s ) -{ - printf ( "\nParse error at line %d: %s\n", ec_curline(), s ); -} - -/************************************************/ -/* FUNCTIONS FOR CREATING SCHEMA REPRESENTATION */ - -static Express_Schema *mkschema ( char *name, Express_HSequenceOfItem *ilist ); -static Express_HSequenceOfItem *mkilist ( Express_Item *item, Express_HSequenceOfItem *seq ); -static Express_Item *mkenum ( char *name, TColStd_HSequenceOfHAsciiString *tlist ); -static Express_Item *mkselect ( char *name, TColStd_HSequenceOfHAsciiString *tlist ); -static Express_Item *mkalias ( char *name, Express_Type *type ); -static Express_Item *mkentity ( char *name, TColStd_HSequenceOfHAsciiString *inherit, - Express_HSequenceOfField *field, int isabstract ); -static Express_Reference *mkrefs ( char *name, TColStd_HSequenceOfHAsciiString *items); -static TColStd_HSequenceOfHAsciiString *mktlist ( char *name, TColStd_HSequenceOfHAsciiString *tlist ); -static TColStd_HSequenceOfHAsciiString *mktlists ( TColStd_HSequenceOfHAsciiString *tlist1, TColStd_HSequenceOfHAsciiString *tlist2 ); -static Express_Type *mktstd ( int keyword ); -static Express_Type *mktname ( char *name ); -static Express_Type *mktset ( int keyword, int ilow, int ihigh, Express_Type *of ); -static Express_Field *mkfield ( char *name, Express_Type *type, int optional ); -static Express_HSequenceOfField *mkflist ( Express_Field *field, Express_HSequenceOfField *seq ); - - -# line 91 "Express.y" -typedef union -#ifdef __cplusplus - YYSTYPE -#endif - { - int num; - char *str; - TColStd_HSequenceOfHAsciiString *tlist; - Express_HSequenceOfField *flist; - Express_HSequenceOfItem *ilist; - Express_Field *field; - Express_Item *item; - Express_Type *type; - Express_Schema *schema; - Express_Reference *ref; -} YYSTYPE; -# define KSCHEM 257 -# define KENDS 258 -# define KTYP 259 -# define KENDT 260 -# define KENT 261 -# define KENDE 262 -# define KREF 263 -# define KFROM 264 -# define KSEL 265 -# define KENUM 266 -# define KLIST 267 -# define KARR 268 -# define KBAG 269 -# define KSET 270 -# define KOF 271 -# define KNUM 272 -# define KINT 273 -# define KDBL 274 -# define KSTR 275 -# define KLOG 276 -# define KBOOL 277 -# define KOPT 278 -# define KUNIQ 279 -# define KSELF 280 -# define KABSTR 281 -# define KSUBT 282 -# define KSPRT 283 -# define KANDOR 284 -# define K1OF 285 -# define KAND 286 -# define NUMBER 287 -# define NAME 288 - -#ifdef __STDC__ -#include -#include -#else -#include -#include -#endif - -#ifdef __cplusplus - -#ifndef yyerror - void yyerror(const char *); -#endif - -#ifndef yylex -#ifdef __EXTERN_C__ - extern "C" { int yylex(void); } -#else - int yylex(void); -#endif -#endif - int yyparse(void); - -#endif -#define yyclearin yychar = -1 -#define yyerrok yyerrflag = 0 -extern int yychar; -extern int yyerrflag; -YYSTYPE yylval; -YYSTYPE yyval; -typedef int yytabelem; -#ifndef YYMAXDEPTH -#define YYMAXDEPTH 150 -#endif -#if YYMAXDEPTH > 0 -int yy_yys[YYMAXDEPTH], *yys = yy_yys; -YYSTYPE yy_yyv[YYMAXDEPTH], *yyv = yy_yyv; -#else /* user does initial allocation */ -int *yys; -YYSTYPE *yyv; -#endif -static int yymaxdepth = YYMAXDEPTH; -# define YYERRCODE 256 - -# line 266 "Express.y" - - -/************************************************/ -/* FUNCTIONS FOR CREATING SCHEMA REPRESENTATION */ - -static Express_Schema *mkschema ( char *name, Express_HSequenceOfItem *ilist ) -{ - Express_Schema *sch = new Express_Schema ( name, ilist ); - Express::Schema() = sch; - return sch; -} - -static Express_HSequenceOfItem *mkilist ( Express_Item *item, Express_HSequenceOfItem *seq ) -{ - if ( ! seq ) { - seq = new Express_HSequenceOfItem; - seq->Append ( item ); - } - else seq->Prepend ( item ); - return seq; -} - -static Express_Item *mkenum ( char *name, TColStd_HSequenceOfHAsciiString *tlist ) -{ - return new Express_Enum ( name, tlist ); -} - -static Express_Item *mkselect ( char *name, TColStd_HSequenceOfHAsciiString *tlist ) -{ - return new Express_Select ( name, tlist ); -} - -static Express_Item *mkalias ( char *name, Express_Type *type ) -{ - return new Express_Alias ( name, type ); -} - -static Express_Item *mkentity ( char *name, TColStd_HSequenceOfHAsciiString *inherit, - Express_HSequenceOfField *field, int isabstract ) -{ - Express_Entity *ent = new Express_Entity ( name, inherit, field ); - if ( isabstract ) ent->SetAbstractFlag ( Standard_True ); - return ent; -} - -static Express_Reference *mkrefs ( char *name, TColStd_HSequenceOfHAsciiString *items) -{ - return new Express_Reference ( name, items ); -} - -static TColStd_HSequenceOfHAsciiString *mktlist ( char *name, TColStd_HSequenceOfHAsciiString *tlist ) -{ - Handle(TCollection_HAsciiString) str = new TCollection_HAsciiString ( name ); - if ( tlist ) tlist->Prepend ( str ); - else { - tlist = new TColStd_HSequenceOfHAsciiString; - tlist->Append ( str ); - } - return tlist; -} - -static TColStd_HSequenceOfHAsciiString *mktlists ( TColStd_HSequenceOfHAsciiString *tlist1, - TColStd_HSequenceOfHAsciiString *tlist2 ) -{ - if ( ! tlist1 ) return tlist2; - if ( ! tlist2 ) return tlist1; - for ( int i=1; i <= tlist2->Length(); i++ ) - tlist1->Append ( tlist2->Value(i) ); - return tlist1; -} - -static Express_Type *mktstd ( int keyword ) -{ - switch ( keyword ) { - case KINT : return new Express_Integer; - case KNUM : return new Express_Number; - case KDBL : return new Express_Real; - case KSTR : return new Express_String; - case KBOOL: return new Express_Boolean; - case KLOG : return new Express_Logical; - default : ec_error ( "Predefined type not treated!", "" ); - return NULL; - } -} - -static Express_Type *mktname ( char *name ) -{ - return new Express_NamedType ( name ); -} - -static Express_Type *mktset ( int keyword, int ilow, int ihigh, Express_Type *of ) -{ - switch ( keyword ) { - case KLIST: return new Express_List ( ilow, ihigh, of ); - case KARR : return new Express_Array ( ilow, ihigh, of ); - case KBAG : return new Express_Bag ( ilow, ihigh, of ); - case KSET : return new Express_Set ( ilow, ihigh, of ); - default : ec_error ( "Complex type not treated!", "" ); - return NULL; - } -} - -static Express_Field *mkfield ( char *name, Express_Type *type, int optional ) -{ - return new Express_Field ( name, type, optional ); -} - -static Express_HSequenceOfField *mkflist ( Express_Field *field, Express_HSequenceOfField *seq ) -{ - if ( seq ) seq->Prepend ( field ); - else { - seq = new Express_HSequenceOfField; - seq->Append ( field ); - } - return seq; -} - -/*******************************************************************/ -/* External interface to result of parsing */ - -Handle(Express_Schema) ec_parse ( FILE *fin ) -{ - extern FILE *yyin; - yyin = fin; - yyparse(); - return Express::Schema(); -} - -/*******************************************************************/ -/* MAIN & co */ - -/* -void tlistfree ( struct tlist *list ) -{ - if ( ! list ) return; - tlistfree ( list->next ); - list->next = 0; - free ( list->str ); - list->str = 0; -} -* / - -int printtlist ( struct ec_tlist *tl ) -{ - int num=0; - while ( tl ) { - num++; - printf ( "%s\n", tl->name ); - tl = tl->next; - } - return num; -} - -int main ( void ) -{ - int num = 0; - yyparse(); - - printf ( "\nFinished\n" ); - if ( schema ) { - struct ec_item *it; - it = schema->items; - printf ( "\nSchema %s", schema->name ); - printf ( "\nItems:" ); - while ( it ) { - num++; - printf ( "\n%s", it->name ); - it = it->next; - } -// num = printtlist ( res ); - printf ( "\nTotal %d", num ); - } - -// tlistfree ( yylval.tlist ); - return num; -} -*/ -static const yytabelem yyexca[] ={ --1, 1, - 0, -1, - -2, 0, - }; -# define YYNPROD 67 -# define YYLAST 279 -static const yytabelem yyact[]={ - - 23, 22, 35, 36, 38, 37, 65, 29, 28, 30, - 31, 32, 33, 56, 117, 113, 106, 61, 16, 35, - 36, 38, 37, 34, 29, 28, 30, 31, 32, 33, - 139, 139, 15, 75, 3, 101, 145, 21, 162, 138, - 34, 74, 78, 20, 93, 21, 40, 115, 135, 134, - 133, 132, 52, 43, 42, 131, 110, 11, 158, 12, - 102, 83, 62, 13, 2, 24, 144, 116, 104, 111, - 92, 63, 124, 123, 122, 120, 152, 97, 50, 49, - 48, 47, 70, 71, 18, 54, 153, 150, 149, 143, - 140, 125, 119, 103, 86, 82, 77, 59, 51, 46, - 17, 4, 129, 127, 96, 91, 90, 89, 87, 130, - 163, 160, 151, 85, 60, 79, 39, 121, 84, 88, - 67, 68, 69, 44, 45, 19, 5, -1, 1, 72, - 6, 10, 9, 14, 8, 7, 27, 26, 25, 112, - 73, 114, 80, 81, 0, 0, 41, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 94, 95, 53, 105, - 98, 107, 108, 109, 99, 100, 0, 58, 0, 118, - 0, 0, 0, 0, 0, 0, 76, 0, 0, 0, - 128, 0, 126, 0, 0, 0, 137, 0, 0, 0, - 0, 0, 0, 0, 0, 141, 136, 0, 142, 0, - 146, 147, 148, 0, 0, 0, 0, 0, 0, 0, - 154, 0, 155, 156, 157, 0, 0, 0, 0, 161, - 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 64, 66, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 57, 0, - 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 78 }; -static const yytabelem yypact[]={ - - -193,-10000000, -254, 42, -202, -195, -202,-10000000,-10000000,-10000000, --10000000, -256, -270, 41,-10000000, 23, -238,-10000000, -265, -236, - -246, -217, -218, 84, 40,-10000000,-10000000,-10000000,-10000000,-10000000, --10000000,-10000000,-10000000,-10000000,-10000000, -10, -11, -12, -13, 39, - -219, -236, -27, 84, 38, -271, -198, -57, -57, -57, - -57, -247, 84, 37, -242, 71, -27, -27, 36, -199, - 77, 69, 35, 50,-10000000,-10000000, 79, 49, 48, 47, - -235,-10000000, -247, -247, 46, -15,-10000000, -247, -27, -27, - -6,-10000000, -200, 34,-10000000, -271,-10000000, -57, -272, -57, - -57, -57, -206, -273,-10000000,-10000000, -231, -274, -235,-10000000, --10000000,-10000000, 33,-10000000,-10000000, -18, 76, -19, -20, -21, - 32,-10000000, -273, 45, -248,-10000000, 44, 63, -207,-10000000, - -220,-10000000, -221, -222, -223,-10000000,-10000000, -249, 31, -248, - -274, 30, -243, -243, -243, -243, 29, 28, 68, -16, --10000000, 27,-10000000,-10000000, -248,-10000000, -248, -248, -248,-10000000, --10000000, -249, -274,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000, 67, - -250,-10000000, 66, -250 }; -static const yytabelem yypgo[]={ - - 0, 71, 141, 66, 125, 85, 140, 58, 68, 123, - 139, 69, 70, 116, 67, 65, 138, 137, 136, 135, - 134, 132, 131, 130, 126, 129, 83, 82, 128, 127 }; -static const yytabelem yyr1[]={ - - 0, 28, 24, 24, 23, 23, 23, 23, 19, 20, - 21, 22, 22, 29, 8, 8, 9, 15, 15, 15, - 16, 16, 16, 16, 16, 16, 17, 18, 18, 18, - 18, 1, 1, 1, 3, 3, 13, 13, 4, 4, - 4, 5, 5, 5, 5, 5, 26, 26, 26, 26, - 27, 27, 25, 6, 14, 14, 2, 2, 10, 10, - 11, 11, 12, 12, 7, 7, 7 }; -static const yytabelem yyr2[]={ - - 0, 13, 3, 5, 2, 2, 2, 3, 19, 17, - 15, 19, 21, 11, 3, 7, 7, 2, 2, 3, - 3, 3, 3, 3, 3, 3, 3, 19, 19, 19, - 19, 3, 3, 9, 1, 3, 1, 7, 1, 3, - 7, 3, 7, 7, 5, 7, 3, 5, 3, 5, - 1, 3, 11, 13, 3, 7, 1, 3, 9, 9, - 3, 5, 1, 5, 7, 11, 7 }; -static const yytabelem yychk[]={ - --10000000, -28, 257, 288, 59, -24, -23, -19, -20, -21, - -22, 259, 261, 258, -24, 288, 288, 59, 61, -4, - 281, 283, 266, 265, -15, -16, -17, -18, 273, 272, - 274, 275, 276, 277, 288, 267, 268, 270, 269, -13, - 282, -4, 271, 271, -9, 40, 59, 91, 91, 91, - 91, 59, 271, -13, -5, 288, 40, 285, -9, 59, - -8, 288, 260, -1, 287, 63, 288, -1, -1, -1, - -27, -26, -25, -6, 288, 280, -9, 59, 284, 44, - -5, -5, 59, 260, 41, 44, 59, 58, 40, 58, - 58, 58, -12, 279, -26, -26, 58, 92, -27, -5, - -5, 41, 260, 59, -8, -1, 288, -1, -1, -1, - 262, -11, -10, 288, -2, 278, -14, 288, -12, 59, - 93, 41, 93, 93, 93, 59, -11, 58, -15, 58, - 46, 262, 271, 271, 271, 271, -8, -7, 288, 280, - 59, -15, -14, 59, -3, 279, -3, -3, -3, 59, - 59, 44, 92, 59, -15, -15, -15, -15, -7, -14, - 44, -7, 288, 44 }; -static const yytabelem yydef[]={ - - 0, -2, 0, 0, 0, 0, 2, 4, 5, 6, - 7, 0, 0, 0, 3, 0, 38, 1, 0, 36, - 38, 39, 0, 0, 0, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 0, 0, 0, 0, 0, - 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 50, 0, 0, 40, 41, 0, 0, 0, 0, - 0, 14, 0, 0, 31, 32, 0, 0, 0, 0, - 62, 51, 46, 48, 0, 0, 37, 50, 0, 0, - 0, 44, 0, 0, 16, 0, 10, 0, 0, 0, - 0, 0, 0, 0, 47, 49, 56, 0, 62, 45, - 43, 42, 0, 9, 15, 0, 0, 0, 0, 0, - 0, 63, 60, 0, 0, 57, 0, 54, 0, 8, - 0, 33, 0, 0, 0, 11, 61, 0, 0, 0, - 0, 0, 34, 34, 34, 34, 0, 0, 14, 0, - 52, 0, 55, 12, 0, 35, 0, 0, 0, 58, - 59, 0, 0, 53, 27, 28, 29, 30, 66, 64, - 0, 65, 0, 0 }; -typedef struct -#ifdef __cplusplus - yytoktype -#endif -{ char *t_name; int t_val; } yytoktype; -#ifndef YYDEBUG -# define YYDEBUG 0 /* don't allow debugging */ -#endif - -#if YYDEBUG - -yytoktype yytoks[] = -{ - "KSCHEM", 257, - "KENDS", 258, - "KTYP", 259, - "KENDT", 260, - "KENT", 261, - "KENDE", 262, - "KREF", 263, - "KFROM", 264, - "KSEL", 265, - "KENUM", 266, - "KLIST", 267, - "KARR", 268, - "KBAG", 269, - "KSET", 270, - "KOF", 271, - "KNUM", 272, - "KINT", 273, - "KDBL", 274, - "KSTR", 275, - "KLOG", 276, - "KBOOL", 277, - "KOPT", 278, - "KUNIQ", 279, - "KSELF", 280, - "KABSTR", 281, - "KSUBT", 282, - "KSPRT", 283, - "KANDOR", 284, - "K1OF", 285, - "KAND", 286, - "NUMBER", 287, - "NAME", 288, - ",", 44, - "-unknown-", -1 /* ends search */ -}; - -char * yyreds[] = -{ - "-no such reduction-", - "SCHEMA : KSCHEM NAME ';' ILIST KENDS ';'", - "ILIST : ITEM", - "ILIST : ITEM ILIST", - "ITEM : ENUM", - "ITEM : SELECT", - "ITEM : ALIAS", - "ITEM : ENTITY", - "ENUM : KTYP NAME '=' KENUM KOF TLIST1 ';' KENDT ';'", - "SELECT : KTYP NAME '=' KSEL TLIST1 ';' KENDT ';'", - "ALIAS : KTYP NAME '=' TYPE ';' KENDT ';'", - "ENTITY : KENT NAME SUPERT SUBT ';' FLIST1 UNIQUE KENDE ';'", - "ENTITY : KENT NAME KABSTR SUPERT SUBT ';' FLIST1 UNIQUE KENDE ';'", - "REFERENCE : KREF KFROM NAME TLIST1 ';'", - "TLIST : NAME", - "TLIST : NAME ',' TLIST", - "TLIST1 : '(' TLIST ')'", - "TYPE : TSTD", - "TYPE : TNAME", - "TYPE : TSET", - "TSTD : KINT", - "TSTD : KNUM", - "TSTD : KDBL", - "TSTD : KSTR", - "TSTD : KLOG", - "TSTD : KBOOL", - "TNAME : NAME", - "TSET : KLIST '[' INDEX ':' INDEX ']' KOF OPTUNI TYPE", - "TSET : KARR '[' INDEX ':' INDEX ']' KOF OPTUNI TYPE", - "TSET : KSET '[' INDEX ':' INDEX ']' KOF OPTUNI TYPE", - "TSET : KBAG '[' INDEX ':' INDEX ']' KOF OPTUNI TYPE", - "INDEX : NUMBER", - "INDEX : '?'", - "INDEX : NAME '(' NAME ')'", - "OPTUNI : /* empty */", - "OPTUNI : KUNIQ", - "SUBT : /* empty */", - "SUBT : KSUBT KOF TLIST1", - "SUPERT : /* empty */", - "SUPERT : KSPRT", - "SUPERT : KSPRT KOF SUPLST", - "SUPLST : NAME", - "SUPLST : '(' SUPLST ')'", - "SUPLST : NAME ',' SUPLST", - "SUPLST : K1OF SUPLST", - "SUPLST : SUPLST KANDOR SUPLST", - "FLIST : FIELD", - "FLIST : FIELD FLIST", - "FLIST : REDEF", - "FLIST : REDEF FLIST", - "FLIST1 : /* empty */", - "FLIST1 : FLIST", - "FIELD : NAME ':' OPTNL TYPE ';'", - "REDEF : KSELF '\\' SPECIF ':' TYPE ';'", - "SPECIF : NAME", - "SPECIF : NAME '.' SPECIF", - "OPTNL : /* empty */", - "OPTNL : KOPT", - "UNIQIT : NAME ':' TLIST ';'", - "UNIQIT : NAME ':' SPCLST ';'", - "UNIQLS : UNIQIT", - "UNIQLS : UNIQIT UNIQLS", - "UNIQUE : /* empty */", - "UNIQUE : KUNIQ UNIQLS", - "SPCLST : KSELF '\\' SPECIF", - "SPCLST : KSELF '\\' SPECIF ',' SPCLST", - "SPCLST : NAME ',' SPCLST", -}; -#endif /* YYDEBUG */ -# line 1 "/usr/ccs/bin/yaccpar" -/* - * Copyright (c) 1993 by Sun Microsystems, Inc. - */ - -/* -** Skeleton parser driver for yacc output -*/ - -/* -** yacc user known macros and defines -*/ -#define YYERROR goto yyerrlab -#define YYACCEPT return(0) -#define YYABORT return(1) -#define YYBACKUP( newtoken, newvalue )\ -{\ - if ( yychar >= 0 || ( yyr2[ yytmp ] >> 1 ) != 1 )\ - {\ - yyerror( "syntax error - cannot backup" );\ - goto yyerrlab;\ - }\ - yychar = newtoken;\ - yystate = *yyps;\ - yylval = newvalue;\ - goto yynewstate;\ -} -#define YYRECOVERING() (!!yyerrflag) -#define YYNEW(type) malloc(sizeof(type) * yynewmax) -#define YYCOPY(to, from, type) \ - (type *) memcpy(to, (char *) from, yymaxdepth * sizeof (type)) -#define YYENLARGE( from, type) \ - (type *) realloc((char *) from, yynewmax * sizeof(type)) -#ifndef YYDEBUG -# define YYDEBUG 1 /* make debugging available */ -#endif - -/* -** user known globals -*/ -int yydebug; /* set to 1 to get debugging */ - -/* -** driver internal defines -*/ -#define YYFLAG (-10000000) - -/* -** global variables used by the parser -*/ -YYSTYPE *yypv; /* top of value stack */ -int *yyps; /* top of state stack */ - -int yystate; /* current state */ -int yytmp; /* extra var (lasts between blocks) */ - -int yynerrs; /* number of errors */ -int yyerrflag; /* error recovery flag */ -int yychar; /* current input token number */ - - - -#ifdef YYNMBCHARS -#define YYLEX() yycvtok(yylex()) -/* -** yycvtok - return a token if i is a wchar_t value that exceeds 255. -** If i<255, i itself is the token. If i>255 but the neither -** of the 30th or 31st bit is on, i is already a token. -*/ -#if defined(__STDC__) || defined(__cplusplus) -int yycvtok(int i) -#else -int yycvtok(i) int i; -#endif -{ - int first = 0; - int last = YYNMBCHARS - 1; - int mid; - wchar_t j; - - if(i&0x60000000){/*Must convert to a token. */ - if( yymbchars[last].character < i ){ - return i;/*Giving up*/ - } - while ((last>=first)&&(first>=0)) {/*Binary search loop*/ - mid = (first+last)/2; - j = yymbchars[mid].character; - if( j==i ){/*Found*/ - return yymbchars[mid].tvalue; - }else if( j= 0; - yy_i++ ) - { - if ( yytoks[yy_i].t_val == yychar ) - break; - } - printf( "%s\n", yytoks[yy_i].t_name ); - } - } -#endif /* YYDEBUG */ - if ( ++yy_ps >= &yys[ yymaxdepth ] ) /* room on stack? */ - { - /* - ** reallocate and recover. Note that pointers - ** have to be reset, or bad things will happen - */ - int yyps_index = (yy_ps - yys); - int yypv_index = (yy_pv - yyv); - int yypvt_index = (yypvt - yyv); - int yynewmax; -#ifdef YYEXPAND - yynewmax = YYEXPAND(yymaxdepth); -#else - yynewmax = 2 * yymaxdepth; /* double table size */ - if (yymaxdepth == YYMAXDEPTH) /* first time growth */ - { - char *newyys = (char *)YYNEW(int); - char *newyyv = (char *)YYNEW(YYSTYPE); - if (newyys != 0 && newyyv != 0) - { - yys = YYCOPY(newyys, yys, int); - yyv = YYCOPY(newyyv, yyv, YYSTYPE); - } - else - yynewmax = 0; /* failed */ - } - else /* not first time */ - { - yys = YYENLARGE(yys, int); - yyv = YYENLARGE(yyv, YYSTYPE); - if (yys == 0 || yyv == 0) - yynewmax = 0; /* failed */ - } -#endif - if (yynewmax <= yymaxdepth) /* tables not expanded */ - { - yyerror( "yacc stack overflow" ); - YYABORT; - } - yymaxdepth = yynewmax; - - yy_ps = yys + yyps_index; - yy_pv = yyv + yypv_index; - yypvt = yyv + yypvt_index; - } - *yy_ps = yy_state; - *++yy_pv = yyval; - - /* - ** we have a new state - find out what to do - */ - yy_newstate: - if ( ( yy_n = yypact[ yy_state ] ) <= YYFLAG ) - goto yydefault; /* simple state */ -#if YYDEBUG - /* - ** if debugging, need to mark whether new token grabbed - */ - yytmp = yychar < 0; -#endif - if ( ( yychar < 0 ) && ( ( yychar = YYLEX() ) < 0 ) ) - yychar = 0; /* reached EOF */ -#if YYDEBUG - if ( yydebug && yytmp ) - { - register int yy_i; - - printf( "Received token " ); - if ( yychar == 0 ) - printf( "end-of-file\n" ); - else if ( yychar < 0 ) - printf( "-none-\n" ); - else - { - for ( yy_i = 0; yytoks[yy_i].t_val >= 0; - yy_i++ ) - { - if ( yytoks[yy_i].t_val == yychar ) - break; - } - printf( "%s\n", yytoks[yy_i].t_name ); - } - } -#endif /* YYDEBUG */ - if ( ( ( yy_n += yychar ) < 0 ) || ( yy_n >= YYLAST ) ) - goto yydefault; - if ( yychk[ yy_n = yyact[ yy_n ] ] == yychar ) /*valid shift*/ - { - yychar = -1; - yyval = yylval; - yy_state = yy_n; - if ( yyerrflag > 0 ) - yyerrflag--; - goto yy_stack; - } - - yydefault: - if ( ( yy_n = yydef[ yy_state ] ) == -2 ) - { -#if YYDEBUG - yytmp = yychar < 0; -#endif - if ( ( yychar < 0 ) && ( ( yychar = YYLEX() ) < 0 ) ) - yychar = 0; /* reached EOF */ -#if YYDEBUG - if ( yydebug && yytmp ) - { - register int yy_i; - - printf( "Received token " ); - if ( yychar == 0 ) - printf( "end-of-file\n" ); - else if ( yychar < 0 ) - printf( "-none-\n" ); - else - { - for ( yy_i = 0; - yytoks[yy_i].t_val >= 0; - yy_i++ ) - { - if ( yytoks[yy_i].t_val - == yychar ) - { - break; - } - } - printf( "%s\n", yytoks[yy_i].t_name ); - } - } -#endif /* YYDEBUG */ - /* - ** look through exception table - */ - { - register const int *yyxi = yyexca; - - while ( ( *yyxi != -1 ) || - ( yyxi[1] != yy_state ) ) - { - yyxi += 2; - } - while ( ( *(yyxi += 2) >= 0 ) && - ( *yyxi != yychar ) ) - ; - if ( ( yy_n = yyxi[1] ) < 0 ) - YYACCEPT; - } - } - - /* - ** check for syntax error - */ - if ( yy_n == 0 ) /* have an error */ - { - /* no worry about speed here! */ - switch ( yyerrflag ) - { - case 0: /* new error */ - yyerror( "syntax error" ); - goto skip_init; - yyerrlab: - /* - ** get globals into registers. - ** we have a user generated syntax type error - */ - yy_pv = yypv; - yy_ps = yyps; - yy_state = yystate; - skip_init: - yynerrs++; - /* FALLTHRU */ - case 1: - case 2: /* incompletely recovered error */ - /* try again... */ - yyerrflag = 3; - /* - ** find state where "error" is a legal - ** shift action - */ - while ( yy_ps >= yys ) - { - yy_n = yypact[ *yy_ps ] + YYERRCODE; - if ( yy_n >= 0 && yy_n < YYLAST && - yychk[yyact[yy_n]] == YYERRCODE) { - /* - ** simulate shift of "error" - */ - yy_state = yyact[ yy_n ]; - goto yy_stack; - } - /* - ** current state has no shift on - ** "error", pop stack - */ -#if YYDEBUG -# define _POP_ "Error recovery pops state %d, uncovers state %d\n" - if ( yydebug ) - printf( _POP_, *yy_ps, - yy_ps[-1] ); -# undef _POP_ -#endif - yy_ps--; - yy_pv--; - } - /* - ** there is no state on stack with "error" as - ** a valid shift. give up. - */ - YYABORT; - case 3: /* no shift yet; eat a token */ -#if YYDEBUG - /* - ** if debugging, look up token in list of - ** pairs. 0 and negative shouldn't occur, - ** but since timing doesn't matter when - ** debugging, it doesn't hurt to leave the - ** tests here. - */ - if ( yydebug ) - { - register int yy_i; - - printf( "Error recovery discards " ); - if ( yychar == 0 ) - printf( "token end-of-file\n" ); - else if ( yychar < 0 ) - printf( "token -none-\n" ); - else - { - for ( yy_i = 0; - yytoks[yy_i].t_val >= 0; - yy_i++ ) - { - if ( yytoks[yy_i].t_val - == yychar ) - { - break; - } - } - printf( "token %s\n", - yytoks[yy_i].t_name ); - } - } -#endif /* YYDEBUG */ - if ( yychar == 0 ) /* reached EOF. quit */ - YYABORT; - yychar = -1; - goto yy_newstate; - } - }/* end if ( yy_n == 0 ) */ - /* - ** reduction by production yy_n - ** put stack tops, etc. so things right after switch - */ -#if YYDEBUG - /* - ** if debugging, print the string that is the user's - ** specification of the reduction which is just about - ** to be done. - */ - if ( yydebug ) - printf( "Reduce by (%d) \"%s\"\n", - yy_n, yyreds[ yy_n ] ); -#endif - yytmp = yy_n; /* value to switch over */ - yypvt = yy_pv; /* $vars top of value stack */ - /* - ** Look in goto table for next state - ** Sorry about using yy_state here as temporary - ** register variable, but why not, if it works... - ** If yyr2[ yy_n ] doesn't have the low order bit - ** set, then there is no action to be done for - ** this reduction. So, no saving & unsaving of - ** registers done. The only difference between the - ** code just after the if and the body of the if is - ** the goto yy_stack in the body. This way the test - ** can be made before the choice of what to do is needed. - */ - { - /* length of production doubled with extra bit */ - register int yy_len = yyr2[ yy_n ]; - - if ( !( yy_len & 01 ) ) - { - yy_len >>= 1; - yyval = ( yy_pv -= yy_len )[1]; /* $$ = $1 */ - yy_state = yypgo[ yy_n = yyr1[ yy_n ] ] + - *( yy_ps -= yy_len ) + 1; - if ( yy_state >= YYLAST || - yychk[ yy_state = - yyact[ yy_state ] ] != -yy_n ) - { - yy_state = yyact[ yypgo[ yy_n ] ]; - } - goto yy_stack; - } - yy_len >>= 1; - yyval = ( yy_pv -= yy_len )[1]; /* $$ = $1 */ - yy_state = yypgo[ yy_n = yyr1[ yy_n ] ] + - *( yy_ps -= yy_len ) + 1; - if ( yy_state >= YYLAST || - yychk[ yy_state = yyact[ yy_state ] ] != -yy_n ) - { - yy_state = yyact[ yypgo[ yy_n ] ]; - } - } - /* save until reenter driver code */ - yystate = yy_state; - yyps = yy_ps; - yypv = yy_pv; - } - /* - ** code supplied by user is placed in this switch - */ - switch( yytmp ) - { - -case 1: -# line 164 "Express.y" -{ yyval.schema = mkschema ( yypvt[-4].str, yypvt[-2].ilist ); /* Root: EXPRESS schema */ } break; -case 2: -# line 166 "Express.y" -{ yyval.ilist = mkilist ( yypvt[-0].item, 0 ); /* list of items for schema */ } break; -case 3: -# line 167 "Express.y" -{ yyval.ilist = mkilist ( yypvt[-1].item, yypvt[-0].ilist ); } break; -case 7: -# line 173 "Express.y" -{ yyval.item = yypvt[-0].item; /* item of schema (type definition) */ } break; -case 8: -# line 174 "Express.y" -{ yyval.item = mkenum ( yypvt[-7].str, yypvt[-3].tlist ); /* TYPE ENUMERATION definition */ } break; -case 9: -# line 176 "Express.y" -{ yyval.item = mkselect ( yypvt[-6].str, yypvt[-3].tlist ); /* TYPE SELECT definition */ } break; -case 10: -# line 178 "Express.y" -{ yyval.item = mkalias ( yypvt[-5].str, yypvt[-3].type ); /* TYPE '=' definition (alias) */ } break; -case 11: -# line 180 "Express.y" -{ yyval.item = mkentity ( yypvt[-7].str, yypvt[-5].tlist, yypvt[-3].flist, 0 ); /* ENTITY definition */ } break; -case 12: -# line 181 "Express.y" -{ yyval.item = mkentity ( yypvt[-8].str, yypvt[-5].tlist, yypvt[-3].flist, 1 ); /* ENTITY definition */ } break; -case 13: -# line 184 "Express.y" -{ yyval.ref = mkrefs ( yypvt[-2].str, yypvt[-1].tlist ); /* REFERENCE FROM definition */ } break; -case 14: -# line 186 "Express.y" -{ yyval.tlist = mktlist ( yypvt[-0].str, 0 ); /* list of (type) names */ } break; -case 15: -# line 187 "Express.y" -{ yyval.tlist = mktlist ( yypvt[-2].str, yypvt[-0].tlist ); } break; -case 16: -# line 189 "Express.y" -{ yyval.tlist = yypvt[-1].tlist; /* TLIST in brackets */ } break; -case 19: -# line 194 "Express.y" -{ yyval.type = yypvt[-0].type; /* type, simple or complex */ } break; -case 20: -# line 196 "Express.y" -{ yyval.type = mktstd ( yypvt[-0].num ); /* predefined type: INTEGER */ } break; -case 21: -# line 197 "Express.y" -{ yyval.type = mktstd ( yypvt[-0].num ); /* predefined type: NUMBER */ } break; -case 22: -# line 198 "Express.y" -{ yyval.type = mktstd ( yypvt[-0].num ); /* predefined type: REAL */ } break; -case 23: -# line 199 "Express.y" -{ yyval.type = mktstd ( yypvt[-0].num ); /* predefined type: STRING */ } break; -case 24: -# line 200 "Express.y" -{ yyval.type = mktstd ( yypvt[-0].num ); /* predefined type: LOGICAL */ } break; -case 25: -# line 201 "Express.y" -{ yyval.type = mktstd ( yypvt[-0].num ); /* predefined type: BOOLEAN */ } break; -case 26: -# line 203 "Express.y" -{ yyval.type = mktname ( yypvt[-0].str ); /* named type */ } break; -case 27: -# line 205 "Express.y" -{ yyval.type = mktset ( yypvt[-8].num, yypvt[-6].num, yypvt[-4].num, yypvt[-0].type ); /* complex type: LIST */ } break; -case 28: -# line 206 "Express.y" -{ yyval.type = mktset ( yypvt[-8].num, yypvt[-6].num, yypvt[-4].num, yypvt[-0].type ); /* complex type: ARRAY */ } break; -case 29: -# line 207 "Express.y" -{ yyval.type = mktset ( yypvt[-8].num, yypvt[-6].num, yypvt[-4].num, yypvt[-0].type ); /* complex type: SET */ } break; -case 30: -# line 208 "Express.y" -{ yyval.type = mktset ( yypvt[-8].num, yypvt[-6].num, yypvt[-4].num, yypvt[-0].type ); /* complex type: BAG */ } break; -case 31: -# line 210 "Express.y" -{ yyval.num = yypvt[-0].num; /* index for array, set, bag, list range */ } break; -case 32: -# line 211 "Express.y" -{ yyval.num = -1; /* undefined */ } break; -case 33: -# line 212 "Express.y" -{yyval.num = -1; printf ( "Warning at line %d: index function %s(%s) ignored\n", ec_curline(), yypvt[-3].str, yypvt[-1].str ); /* some function.. */ } break; -case 34: -# line 214 "Express.y" -{ yyval.num = 0; /* UNIQUE keyword for complex type definition */ } break; -case 35: -# line 215 "Express.y" -{ yyval.num = 1; } break; -case 36: -# line 218 "Express.y" -{ yyval.tlist = NULL; /* no subtype clause */ } break; -case 37: -# line 219 "Express.y" -{ yyval.tlist = yypvt[-0].tlist; /* subtype clause */ } break; -case 38: -# line 221 "Express.y" -{ yyval.num = 0; /* no supertype clause */ } break; -case 39: -# line 222 "Express.y" -{ yyval.num = 0; /* supertype clause (ignored) */ } break; -case 40: -# line 223 "Express.y" -{ yyval.num = 0; /* supertype clause (ignored) */ } break; -case 41: -# line 225 "Express.y" -{ yyval.num = 0; /* simple list of supertypes */ } break; -case 42: -# line 226 "Express.y" -{ yyval.num = 0; /* allow bracketing */ } break; -case 43: -# line 227 "Express.y" -{ yyval.num = 0; /* ... */ } break; -case 44: -# line 228 "Express.y" -{ yyval.num = 0; /* ONEOF construct */ } break; -case 45: -# line 229 "Express.y" -{ yyval.num = 0; /* ANDOR construct */ } break; -case 46: -# line 232 "Express.y" -{ yyval.flist = mkflist ( yypvt[-0].field, 0 ); /* list of fields of ENTITY item */ } break; -case 47: -# line 233 "Express.y" -{ yyval.flist = mkflist ( yypvt[-1].field, yypvt[-0].flist ); } break; -case 48: -# line 234 "Express.y" -{ yyval.flist = 0; /* redefinition of inherited field, just skip */ } break; -case 49: -# line 235 "Express.y" -{ yyval.flist = yypvt[-0].flist; /* ignore redefinition of inherited field, take trailing list */ } break; -case 50: -# line 237 "Express.y" -{ yyval.flist = NULL; /* empty list of fields */ } break; -case 51: -# line 238 "Express.y" -{ yyval.flist = yypvt[-0].flist; /* or not empty.. just to fix reduce/reduce conflict */ } break; -case 52: -# line 240 "Express.y" -{ yyval.field = mkfield ( yypvt[-4].str, yypvt[-1].type, yypvt[-2].num ); } break; -case 53: -# line 242 "Express.y" -{ yyval.num = 0; printf ( "Warning at line %d: field redefinition ignored\n", ec_curline() ); /* redefinition of inherited field */ } break; -case 54: -# line 244 "Express.y" -{ yyval.tlist = mktlist ( yypvt[-0].str, 0 ); /* inherited field specification */ } break; -case 55: -# line 245 "Express.y" -{ yyval.tlist = mktlist ( yypvt[-2].str, yypvt[-0].tlist ); } break; -case 56: -# line 248 "Express.y" -{ yyval.num = 0; } break; -case 57: -# line 249 "Express.y" -{ yyval.num = 1; } break; -case 58: -# line 252 "Express.y" -{ yyval.tlist = yypvt[-1].tlist; /* UNIQUE statement */ } break; -case 59: -# line 253 "Express.y" -{ yyval.tlist = NULL; /* UNIQUE statement */ } break; -case 60: -# line 255 "Express.y" -{ yyval.tlist = NULL; /* list of 1 UNIQUE statements */ } break; -case 61: -# line 256 "Express.y" -{ yyval.tlist = mktlists ( yypvt[-1].tlist, yypvt[-0].tlist );/* list of UNIQUE statements */ } break; -case 62: -# line 258 "Express.y" -{ yyval.tlist = NULL; /* no UNIQUE clause in ENTITY */ } break; -case 63: -# line 259 "Express.y" -{ yyval.tlist = yypvt[-0].tlist; /* UNIQUE clause in ENTITY */ } break; -case 64: -# line 261 "Express.y" -{ yyval.num = 0; /* list of specifications */ } break; -case 65: -# line 262 "Express.y" -{ yyval.num = 0; } break; -case 66: -# line 263 "Express.y" -{ yyval.num = 0; } break; -# line 531 "/usr/ccs/bin/yaccpar" - } - goto yystack; /* reset registers in driver code */ -} - -#ifdef _MSC_VER -#pragma warning(pop) -#endif diff --git a/src/ExpToCasExe/expparse.h b/src/ExpToCasExe/expparse.h deleted file mode 100644 index d506fce811..0000000000 --- a/src/ExpToCasExe/expparse.h +++ /dev/null @@ -1,64 +0,0 @@ -// Created: Mon Nov 1 12:50:27 1999 -// Author: Andrey BETENEV -// Copyright (c) 1999-2020 OPEN CASCADE SAS -// -// This file is part of Open CASCADE Technology software library. -// -// This library is free software; you can redistribute it and/or modify it under -// the terms of the GNU Lesser General Public License version 2.1 as published -// by the Free Software Foundation, with special exception defined in the file -// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT -// distribution for complete text of the license and disclaimer of any warranty. -// -// Alternatively, this file may be used under the terms of Open CASCADE -// commercial license or contractual agreement. - -typedef union -#ifdef __cplusplus - YYSTYPE -#endif - { - int num; - char *str; - TColStd_HSequenceOfHAsciiString *tlist; - Express_HSequenceOfField *flist; - Express_HSequenceOfItem *ilist; - Express_Field *field; - Express_Item *item; - Express_Type *type; - Express_Schema *schema; - Express_Reference *ref; -} YYSTYPE; -extern YYSTYPE yylval; -# define KSCHEM 257 -# define KENDS 258 -# define KTYP 259 -# define KENDT 260 -# define KENT 261 -# define KENDE 262 -# define KREF 263 -# define KFROM 264 -# define KSEL 265 -# define KENUM 266 -# define KLIST 267 -# define KARR 268 -# define KBAG 269 -# define KSET 270 -# define KOF 271 -# define KNUM 272 -# define KINT 273 -# define KDBL 274 -# define KSTR 275 -# define KLOG 276 -# define KBOOL 277 -# define KOPT 278 -# define KUNIQ 279 -# define KSELF 280 -# define KABSTR 281 -# define KSUBT 282 -# define KSPRT 283 -# define KANDOR 284 -# define K1OF 285 -# define KAND 286 -# define NUMBER 287 -# define NAME 288 diff --git a/src/ExpToCasExe/expscan.cxx b/src/ExpToCasExe/expscan.cxx deleted file mode 100644 index 14b934bf26..0000000000 --- a/src/ExpToCasExe/expscan.cxx +++ /dev/null @@ -1,2950 +0,0 @@ -// Created: Mon Nov 1 12:50:27 1999 -// Author: Andrey BETENEV -// Copyright (c) 1999-2020 OPEN CASCADE SAS -// -// This file is part of Open CASCADE Technology software library. -// -// This library is free software; you can redistribute it and/or modify it under -// the terms of the GNU Lesser General Public License version 2.1 as published -// by the Free Software Foundation, with special exception defined in the file -// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT -// distribution for complete text of the license and disclaimer of any warranty. -// -// Alternatively, this file may be used under the terms of Open CASCADE -// commercial license or contractual agreement. - -#include -#include -#include - -#if defined(__clang__) -#pragma GCC diagnostic ignored "-Wmissing-braces" -#endif -#if __cplusplus > 199711L -#define register// Deprecated in C++11. -#endif - -# define U(x) x -# define NLSTATE yyprevious=YYNEWLINE -# define BEGIN yybgin = yysvec + 1 + -# define INITIAL 0 -# define YYLERR yysvec -# define YYSTATE (yyestate-yysvec-1) -# define YYOPTIM 1 -# ifndef YYLMAX -# define YYLMAX BUFSIZ -# endif -#ifndef __cplusplus -# define output(c) (void)putc(c,yyout) -#else -# define lex_output(c) (void)putc(c,yyout) -#endif - -#if defined(__cplusplus) || defined(__STDC__) - -#if defined(__cplusplus) && defined(__EXTERN_C__) -extern "C" { -#endif - int yyback(int *, int); - int yyinput(void); - int yylook(void); - void yyoutput(int); - int yyracc(int); - int yyreject(void); - void yyunput(int); - int yylex(void); -#ifdef YYLEX_E - void yywoutput(wchar_t); - wchar_t yywinput(void); -#endif -#ifndef yyless - int yyless(int); -#endif -#ifndef yywrap - int yywrap(void); -#endif -#ifdef LEXDEBUG - void allprint(char); - void sprint(char *); -#endif -#if defined(__cplusplus) && defined(__EXTERN_C__) -} -#endif - -#ifdef __cplusplus -extern "C" { -#endif -// void exit(int); -#ifdef __cplusplus -} -#endif - -#endif -# define unput(c) {yytchar= (c);if(yytchar=='\n')yylineno--;*yysptr++=yytchar;} -# define yymore() (yymorfg=1) -#ifndef __cplusplus -# define input() (((yytchar=yysptr>yysbuf?U(*--yysptr):getc(yyin))==10?(yylineno++,yytchar):yytchar)==EOF?0:yytchar) -#else -# define lex_input() (((yytchar=yysptr>yysbuf?U(*--yysptr):getc(yyin))==10?(yylineno++,yytchar):yytchar)==EOF?0:yytchar) -#endif -#define ECHO fprintf(yyout, "%s",yytext) -# define REJECT { nstr = yyreject(); goto yyfussy;} -int yyleng; -#define YYISARRAY -char yytext[YYLMAX]; -int yymorfg; -extern char *yysptr, yysbuf[]; -int yytchar; -FILE *yyin = {stdin}, *yyout = {stdout}; -extern int yylineno; -struct yysvf { - struct yywork *yystoff; - struct yysvf *yyother; - int *yystops;}; -struct yysvf *yyestate; -extern struct yysvf yysvec[], *yybgin; - -#ifdef _MSC_VER -#pragma warning(push) -#pragma warning (disable:4244) -#pragma warning (disable:4274) -#pragma warning (disable:4706) -#pragma warning (disable:4701) -#endif - -#ifdef __GNUC__ -#pragma GCC diagnostic ignored "-Wwrite-strings" -#pragma GCC diagnostic ignored "-Wunused-variable" -#endif - -# line 4 "exptocas.l" -/* File: exptocas.l */ - -# line 5 "exptocas.l" -/* Created: Thu Oct 28 12:21:16 1999 */ - -# line 6 "exptocas.l" -/* Author: Andrey BETENEV */ - -# line 7 "exptocas.l" -/* */ - -# line 8 "exptocas.l" -/* Copyright: Matra Datavision 1999 */ - - -# line 10 "exptocas.l" -/*****************************************************************************\ - -This LEX scanner is performs lexical analysis of EXPRESS schema file -for EXPRESS -> CASCADE/XSTEP classes generator - -On the stage of lexical scanner comments (single- and multi-line), -definitions of CONSTANT, FUNCTION, RULE items and clauses WHERE, INVERSE -and DERIVE of TYPE amd ENTITY items are dismissed (ignored) - -Then, keywords such as ENTITY, SUPERTYPE, SET etc., names of items -and special symbols are identified and returned to parser (yacc) as tokens - -Also, error processing and current line number tracking functions are defined - -\*****************************************************************************/ - - -# line 26 "exptocas.l" -/************************************/ - -# line 27 "exptocas.l" -/* Section 1 */ - -# line 28 "exptocas.l" -/* definitions */ - -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -#include "expparse.h" /* define tokens */ - - -# line 44 "exptocas.l" -/* Auxiliary functions */ - -static int fun_level=0; -static int ec_linenum=1; -static int ec_state = 0; - -int yywrap(void) { return 1; } - -int ec_curline ( void ) -{ - return ec_linenum; -} - -int ec_error ( char const *s, char const *text ) -{ - printf ( "\nError at line %d: %s \"%s\"\n", ec_curline(), s, text ); - return 0; -} - -# define TYP 2 -# define ENT 4 -# define COMM 6 -# define SKP 8 -# define RULE 10 -# define FUN 12 - - -# line 73 "exptocas.l" -/************************************/ - -# line 74 "exptocas.l" -/* Section 2 */ - -# line 75 "exptocas.l" -/* parsing rules */ -# define YYNEWLINE 10 -int yylex(){ -int nstr = 0; extern int yyprevious; -#ifdef __cplusplus -/* to avoid CC and lint complaining yyfussy not being used ...*/ -static int __lex_hack = 0; -if (__lex_hack) goto yyfussy; -#endif -while((nstr = yylook()) >= 0) -yyfussy: switch(nstr){ -case 0: -if(yywrap()) return(0); break; -case 1: - -# line 79 "exptocas.l" - { /* Eat line comments */ } -break; -case 2: - -# line 80 "exptocas.l" - { ec_state = YYSTATE; BEGIN(COMM); } -break; -case 3: - -# line 81 "exptocas.l" - { /* Eat multiline comments */ } -break; -case 4: - -# line 82 "exptocas.l" - { BEGIN(ec_state); } -break; -case 5: - -# line 84 "exptocas.l" - { return yylval.num = KSCHEM; } -break; -case 6: - -# line 85 "exptocas.l" - { return yylval.num = KENDS; } -break; -case 7: - -# line 87 "exptocas.l" - { BEGIN(TYP); return yylval.num = KTYP; } -break; -case 8: - -# line 88 "exptocas.l" - { BEGIN(0); return yylval.num = KENDT; } -break; -case 9: - -# line 90 "exptocas.l" - { BEGIN(ENT); return yylval.num = KENT; } -break; -case 10: - -# line 91 "exptocas.l" -{ BEGIN(0); return yylval.num = KENDE; } -break; -case 11: - -# line 93 "exptocas.l" - case 12: - -# line 94 "exptocas.l" - case 13: - -# line 95 "exptocas.l" - { BEGIN(SKP); } -break; -case 14: - -# line 96 "exptocas.l" - { /* eat contents of WHERE and DERIVE subclauses of ENTITY and TYPE */ } -break; -case 15: - -# line 98 "exptocas.l" - { return yylval.num = KSEL; } -break; -case 16: - -# line 99 "exptocas.l" - { return yylval.num = KENUM; } -break; -case 17: - -# line 100 "exptocas.l" - { return yylval.num = KLIST; } -break; -case 18: - -# line 101 "exptocas.l" - { return yylval.num = KARR; } -break; -case 19: - -# line 102 "exptocas.l" - { return yylval.num = KSET; } -break; -case 20: - -# line 103 "exptocas.l" - { return yylval.num = KBAG; } -break; -case 21: - -# line 104 "exptocas.l" - { return yylval.num = KOF; } -break; -case 22: - -# line 106 "exptocas.l" - { return yylval.num = KNUM; } -break; -case 23: - -# line 107 "exptocas.l" - { return yylval.num = KINT; } -break; -case 24: - -# line 108 "exptocas.l" - { return yylval.num = KDBL; } -break; -case 25: - -# line 109 "exptocas.l" - { return yylval.num = KSTR; } -break; -case 26: - -# line 110 "exptocas.l" - { return yylval.num = KLOG; } -break; -case 27: - -# line 111 "exptocas.l" - { return yylval.num = KBOOL; } -break; -case 28: - -# line 113 "exptocas.l" - { return yylval.num = KOPT; } -break; -case 29: - -# line 114 "exptocas.l" - { return yylval.num = KUNIQ; } -break; -case 30: - -# line 115 "exptocas.l" - { return yylval.num = KSELF; } -break; -case 31: - -# line 117 "exptocas.l" - { return yylval.num = KABSTR; } -break; -case 32: - -# line 118 "exptocas.l" - { return yylval.num = KSUBT; } -break; -case 33: - -# line 119 "exptocas.l" - { return yylval.num = KSPRT; } -break; -case 34: - -# line 120 "exptocas.l" - { return yylval.num = KANDOR; } -break; -case 35: - -# line 121 "exptocas.l" - { return yylval.num = K1OF; } -break; -case 36: - -# line 122 "exptocas.l" - { return yylval.num = KAND; } -break; -case 37: - -# line 124 "exptocas.l" - { yylval.str = strdup ( yytext ); return NAME; } -break; -case 38: - -# line 126 "exptocas.l" - { yylval.str = strdup ( yytext ); return NAME; } -break; -case 39: - -# line 128 "exptocas.l" - { yylval.num = atoi ( yytext ); return NUMBER; } -break; -case 40: - -# line 129 "exptocas.l" -{ return yylval.num = yytext[0]; } -break; -case 41: - -# line 131 "exptocas.l" - { BEGIN(FUN); fun_level++; } -break; -case 42: - -# line 132 "exptocas.l" - { ec_state = YYSTATE; BEGIN(COMM); /* eat comments in functions */ } -break; -case 43: - -# line 133 "exptocas.l" - { /* Eat line comments in functions */ } -break; -case 44: - -# line 134 "exptocas.l" - { /* eat FUNCTIONs - skip IDs explicitly */ } -break; -case 45: - -# line 135 "exptocas.l" - { /* eat FUNCTIONs - skip strings explicitly */ } -break; -case 46: - -# line 136 "exptocas.l" - { /* eat FUNCTIONs - skip all other symbols in functions */ } -break; -case 47: - -# line 137 "exptocas.l" -{ fun_level--; if ( ! fun_level ) BEGIN(0); } -break; -case 48: - -# line 139 "exptocas.l" - { BEGIN(RULE); /* eat RULEs */ } -break; -case 49: - -# line 140 "exptocas.l" - { /* eat RULEs */ } -break; -case 50: - -# line 141 "exptocas.l" - { BEGIN(0); } -break; -case 51: - -# line 143 "exptocas.l" -{ /* eat CONSTANTs */ - char *s = yytext; /* but don't forget to count lines.. */ - while ( *s ) if ( *(s++) == '\n' ) ec_linenum++; - } -break; -case 52: - -# line 148 "exptocas.l" - { /* eat spaces */ } -break; -case 53: - -# line 149 "exptocas.l" - { ec_error ( "unknown keyword ", yytext ); /* put unrecognized keywords to cerr */ } -break; -case 54: - -# line 150 "exptocas.l" - { ec_error ( "unknown symbol ", yytext ); /* put unrecognized data to cerr */ } -break; -case 55: - -# line 152 "exptocas.l" - { ec_linenum++; /* count lines */ } -break; -case -1: -break; -default: -(void)fprintf(yyout,"bad switch yylook %d",nstr); -} return(0); } -/* end of yylex */ - -# line 155 "exptocas.l" - -/************************************/ -/* Section 3 */ -/* auxiliary procedures */ - -/* -int main ( void ) -{ - yylex(); -} -*/ -int yyvstop[] = { -0, - -44, -0, - -44, -0, - -44, -0, - -44, -0, - -44, -0, - -44, -0, - -54, -0, - -52, -54, -0, - -55, -0, - -40, -54, -0, - -40, -54, -0, - -54, -0, - -39, -53, -54, -0, - -53, -54, -0, - -53, -54, -0, - -53, -54, -0, - -53, -54, -0, - -53, -54, -0, - -53, -54, -0, - -53, -54, -0, - -53, -54, -0, - -53, -54, -0, - -53, -54, -0, - -53, -54, -0, - -53, -54, -0, - -53, -54, -0, - -53, -54, -0, - -38, -53, -54, -0, - -53, -54, -0, - -53, -54, -0, - -53, -54, -0, - -53, -54, -0, - -53, -54, -0, - -3, -0, - -3, -0, - -14, -0, - -14, -0, - -49, -0, - -49, -0, - -46, -0, - -46, -0, - -46, -0, - -46, -0, - -44, -46, -0, - -44, -46, -0, - -44, -46, -0, - -52, -0, - -2, -0, - -1, -0, - -39, -53, -0, - -53, -0, - -53, -0, - -53, -0, - -53, -0, - -53, -0, - -53, -0, - -53, -0, - -53, -0, - -53, -0, - -53, -0, - -53, -0, - -53, -0, - -53, -0, - -21, -53, -0, - -53, -0, - -53, -0, - -53, -0, - -53, -0, - -53, -0, - -53, -0, - -53, -0, - -53, -0, - -53, -0, - -53, -0, - -53, -0, - -38, -53, -0, - -53, -0, - -53, -0, - -53, -0, - -53, -0, - -53, -0, - -4, -0, - -45, -0, - -42, -0, - -43, -0, - -44, -0, - -44, -0, - -44, -0, - -53, -0, - -36, -53, -0, - -53, -0, - -20, -53, -0, - -53, -0, - -53, -0, - -53, -0, - -53, -0, - -53, -0, - -53, -0, - -53, -0, - -53, -0, - -53, -0, - -53, -0, - -53, -0, - -53, -0, - -53, -0, - -53, -0, - -53, -0, - -53, -0, - -19, -53, -0, - -53, -0, - -53, -0, - -53, -0, - -53, -0, - -53, -0, - -37, -53, -0, - -53, -0, - -53, -0, - -53, -0, - -53, -0, - -53, -0, - -44, -0, - -44, -0, - -53, -0, - -53, -0, - -53, -0, - -53, -0, - -53, -0, - -53, -0, - -53, -0, - -53, -0, - -53, -0, - -53, -0, - -17, -53, -0, - -53, -0, - -53, -0, - -53, -0, - -53, -0, - -24, -53, -0, - -48, -53, -0, - -53, -0, - -53, -0, - -30, -53, -0, - -53, -0, - -53, -0, - -53, -0, - -7, -53, -0, - -53, -0, - -53, -0, - -53, -0, - -53, -0, - -53, -0, - -53, -0, - -44, -0, - -44, -0, - -53, -0, - -34, -53, -0, - -18, -53, -0, - -53, -0, - -53, -0, - -53, -0, - -53, -0, - -53, -0, - -53, -0, - -53, -0, - -53, -0, - -53, -0, - -35, -53, -0, - -53, -0, - -53, -0, - -53, -0, - -53, -0, - -53, -0, - -53, -0, - -53, -0, - -53, -0, - -13, -53, -0, - -53, -0, - -53, -0, - -53, -0, - -44, -0, - -44, -0, - -53, -0, - -53, -0, - -53, -0, - -53, -0, - -9, -53, -0, - -53, -0, - -53, -0, - -53, -0, - -53, -0, - -22, -53, -0, - -53, -0, - -5, -53, -0, - -15, -53, -0, - -25, -53, -0, - -53, -0, - -53, -0, - -29, -53, -0, - -53, -0, - -12, -53, -0, - -53, -0, - -53, -0, - -44, -0, - -44, -0, - -53, -0, - -27, -53, -0, - -53, -0, - -53, -0, - -53, -0, - -53, -0, - -23, -53, -0, - -26, -53, -0, - -53, -0, - -32, -53, -0, - -53, -0, - -53, -0, - -53, -0, - -11, -53, -0, - -44, -0, - -44, -0, - -31, -53, -0, - -53, -0, - -53, -0, - -53, -0, - -41, -53, -0, - -28, -53, -0, - -53, -0, - -8, -53, -0, - -53, -0, - -8, -0, - -44, -0, - -41, -44, -0, - -53, -0, - -53, -0, - -53, -0, - -33, -53, -0, - -53, -0, - -50, -0, - -44, -0, - -53, -0, - -6, -53, -0, - -53, -0, - -10, -53, -0, - -10, -0, - -44, -0, - -53, -0, - -16, -53, -0, - -44, -0, - -53, -0, - -44, -0, - -53, -0, - -47, -0, - -53, -0, - -53, -0, - -53, -0, - -53, -0, - -53, -0, - -53, -0, - -53, -0, - -53, -0, - -51, -0, -0}; -# define YYTYPE int -struct yywork { YYTYPE verify, advance; } yycrank[] = { -0,0, 0,0, 1,15, 0,0, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 1,16, 1,17, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 0,0, 0,0, -16,55, 0,0, 0,0, 0,0, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 0,0, 0,0, -1,15, 1,18, 1,19, 0,0, -0,0, 1,19, 1,20, 16,55, -0,0, 1,21, 0,0, 0,0, -0,0, 0,0, 0,0, 0,0, -43,90, 8,43, 18,56, 1,19, -1,19, 20,57, 1,19, 50,95, -51,96, 0,0, 1,22, 1,23, -1,24, 1,25, 1,26, 1,27, -1,25, 1,25, 1,28, 1,25, -1,25, 1,29, 1,25, 1,30, -1,31, 1,25, 1,25, 1,32, -1,33, 1,34, 1,35, 1,25, -1,25, 1,25, 1,25, 1,25, -1,19, 10,45, 1,19, 45,91, -1,36, 47,92, 53,98, 91,132, -54,99, 2,19, 25,59, 25,59, -25,59, 25,59, 25,59, 25,59, -25,59, 25,59, 25,59, 25,59, -92,133, 98,134, 99,135, 132,166, -133,167, 134,168, 2,19, 2,19, -135,169, 2,19, 167,197, 168,198, -169,199, 1,15, 2,23, 2,24, -2,25, 2,26, 2,27, 2,25, -2,25, 2,28, 2,25, 2,25, -2,29, 2,25, 2,30, 2,31, -2,25, 2,25, 2,32, 2,33, -2,34, 2,35, 2,25, 2,25, -2,25, 2,25, 2,25, 2,19, -195,221, 2,19, 196,222, 197,223, -166,195, 198,224, 199,225, 221,240, -3,19, 39,59, 39,59, 39,59, -39,59, 39,59, 39,59, 39,59, -39,59, 39,59, 39,59, 166,196, -222,241, 223,242, 224,243, 225,244, -240,254, 3,19, 3,19, 241,255, -3,19, 242,256, 39,87, 243,257, -2,15, 3,23, 3,24, 3,25, -3,37, 3,25, 3,25, 3,25, -3,28, 3,25, 3,25, 3,29, -3,25, 3,30, 3,31, 3,25, -3,25, 3,32, 3,33, 3,34, -3,35, 3,25, 3,38, 3,25, -3,25, 3,25, 3,19, 244,258, -3,19, 254,265, 256,266, 257,267, -265,273, 267,274, 268,275, 4,19, -59,59, 59,59, 59,59, 59,59, -59,59, 59,59, 59,59, 59,59, -59,59, 59,59, 274,278, 275,279, -278,281, 279,282, 281,284, 282,285, -4,19, 4,19, 285,287, 4,19, -287,289, 289,291, 291,293, 3,15, -4,23, 4,24, 4,25, 4,37, -4,25, 4,25, 4,25, 4,28, -4,25, 4,25, 4,29, 4,25, -4,30, 4,31, 4,25, 4,25, -4,32, 4,33, 4,34, 4,35, -4,25, 4,38, 4,25, 4,25, -4,25, 4,19, 293,295, 4,19, -295,297, 297,299, 299,301, 0,0, -0,0, 0,0, 5,19, 61,59, -61,59, 61,59, 61,59, 61,59, -61,59, 61,59, 61,59, 61,59, -61,59, 0,0, 0,0, 0,0, -0,0, 0,0, 0,0, 5,19, -5,19, 0,0, 5,19, 61,101, -0,0, 0,0, 4,15, 5,23, -5,24, 5,39, 5,40, 5,25, -5,25, 5,25, 5,41, 5,25, -5,25, 5,29, 5,25, 5,30, -5,31, 5,25, 5,25, 5,32, -5,33, 5,34, 5,35, 5,25, -5,38, 5,25, 5,25, 5,25, -5,19, 0,0, 5,19, 14,48, -0,0, 0,0, 0,0, 0,0, -0,0, 6,19, 72,59, 72,59, -72,59, 72,59, 72,59, 72,59, -72,59, 72,59, 72,59, 72,59, -14,48, 14,48, 0,0, 14,48, -0,0, 0,0, 6,19, 6,19, -0,0, 6,19, 0,0, 14,53, -14,54, 5,15, 6,23, 6,24, -6,39, 6,40, 6,25, 6,25, -6,25, 6,41, 6,25, 6,25, -6,29, 6,25, 6,30, 6,31, -6,25, 6,25, 6,32, 6,33, -6,34, 6,35, 6,25, 6,38, -6,25, 6,25, 6,25, 6,19, -7,42, 6,19, 0,0, 0,0, -0,0, 0,0, 0,0, 9,44, -7,42, 7,17, 0,0, 0,0, -0,0, 0,0, 11,46, 9,44, -9,17, 0,0, 0,0, 0,0, -0,0, 0,0, 11,46, 0,0, -0,0, 0,0, 14,48, 0,0, -0,0, 12,46, 0,0, 0,0, -6,15, 0,0, 0,0, 0,0, -0,0, 12,46, 7,42, 7,42, -0,0, 7,43, 0,0, 7,42, -7,42, 9,44, 9,44, 7,42, -0,0, 0,0, 9,44, 9,44, -11,46, 11,46, 9,44, 0,0, -0,0, 11,46, 11,46, 0,0, -0,0, 11,46, 0,0, 0,0, -7,42, 0,0, 0,0, 12,46, -12,46, 0,0, 0,0, 9,44, -12,46, 12,46, 0,0, 9,45, -12,46, 13,48, 11,46, 0,0, -0,0, 0,0, 11,47, 0,0, -0,0, 13,48, 13,17, 0,0, -0,0, 0,0, 0,0, 0,0, -0,0, 12,46, 7,42, 0,0, -0,0, 12,47, 0,0, 0,0, -0,0, 9,44, 0,0, 0,0, -49,93, 0,0, 0,0, 0,0, -11,46, 0,0, 0,0, 0,0, -49,93, 49,93, 0,0, 13,49, -13,50, 13,48, 0,0, 0,0, -13,48, 13,51, 0,0, 12,46, -13,52, 0,0, 0,0, 0,0, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 13,48, 13,48, -0,0, 13,48, 0,0, 0,0, -0,0, 13,52, 49,94, 49,93, -0,0, 13,53, 13,54, 49,93, -49,93, 0,0, 0,0, 49,93, -0,0, 0,0, 0,0, 21,58, -21,58, 21,58, 21,58, 21,58, -21,58, 21,58, 21,58, 21,58, -21,58, 0,0, 0,0, 0,0, -49,93, 0,0, 0,0, 13,52, -21,59, 21,59, 21,59, 21,59, -21,59, 21,59, 21,59, 21,59, -21,59, 21,59, 21,59, 21,59, -21,59, 21,59, 21,59, 21,59, -21,59, 21,59, 21,59, 21,59, -21,59, 21,59, 21,59, 21,59, -21,59, 21,59, 49,93, 0,0, -13,48, 0,0, 21,59, 0,0, -21,59, 21,59, 21,59, 21,59, -21,59, 21,59, 21,59, 21,59, -21,59, 21,59, 21,59, 21,59, -21,59, 21,59, 21,59, 21,59, -21,59, 21,59, 21,59, 21,59, -21,59, 21,59, 21,59, 21,59, -21,59, 21,59, 22,59, 22,59, -22,59, 22,59, 22,59, 22,59, -22,59, 22,59, 22,59, 22,59, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 0,0, 0,0, -22,60, 23,59, 23,59, 23,59, -23,59, 23,59, 23,59, 23,59, -23,59, 23,59, 23,59, 0,0, -22,61, 0,0, 0,0, 0,0, -22,62, 0,0, 23,63, 24,59, -24,59, 24,59, 24,59, 24,59, -24,59, 24,59, 24,59, 24,59, -24,59, 0,0, 0,0, 0,0, -23,64, 26,59, 26,59, 26,59, -26,59, 26,59, 26,59, 26,59, -26,59, 26,59, 26,59, 0,0, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 24,65, 27,59, -27,59, 27,59, 27,59, 27,59, -27,59, 27,59, 27,59, 27,59, -27,59, 0,0, 0,0, 26,66, -28,59, 28,59, 28,59, 28,59, -28,59, 28,59, 28,59, 28,59, -28,59, 28,59, 29,59, 29,59, -29,59, 29,59, 29,59, 29,59, -29,59, 29,59, 29,59, 29,59, -0,0, 0,0, 0,0, 0,0, -27,67, 0,0, 0,0, 0,0, -0,0, 0,0, 28,68, 0,0, -0,0, 0,0, 0,0, 29,69, -0,0, 0,0, 0,0, 0,0, -0,0, 29,70, 30,59, 30,59, -30,59, 30,59, 30,59, 30,59, -30,59, 30,59, 30,59, 30,59, -31,59, 31,59, 31,59, 31,59, -31,59, 31,59, 31,59, 31,59, -31,59, 31,59, 32,59, 32,59, -32,59, 32,59, 32,59, 32,59, -32,59, 32,59, 32,59, 32,59, -0,0, 0,0, 31,72, 0,0, -0,0, 0,0, 0,0, 30,71, -0,0, 0,0, 31,73, 32,75, -31,74, 33,59, 33,59, 33,59, -33,59, 33,59, 33,59, 33,59, -33,59, 33,59, 33,59, 0,0, -0,0, 0,0, 0,0, 32,76, -0,0, 0,0, 0,0, 0,0, -33,77, 0,0, 33,78, 34,59, -34,59, 34,59, 34,59, 34,59, -34,59, 34,59, 34,59, 34,59, -34,59, 0,0, 0,0, 0,0, -0,0, 33,79, 33,80, 35,59, -35,59, 35,59, 35,59, 35,59, -35,59, 35,59, 35,59, 35,59, -35,59, 36,84, 36,84, 36,84, -36,84, 36,84, 36,84, 36,84, -36,84, 36,84, 36,84, 0,0, -0,0, 0,0, 0,0, 0,0, -34,81, 0,0, 0,0, 0,0, -0,0, 35,82, 0,0, 0,0, -0,0, 35,83, 63,59, 63,59, -63,59, 63,59, 63,59, 63,59, -63,59, 63,59, 63,59, 63,59, -83,126, 83,126, 83,126, 83,126, -83,126, 83,126, 83,126, 83,126, -83,126, 83,126, 0,0, 0,0, -36,84, 63,103, 36,84, 36,84, -36,84, 36,84, 36,84, 36,84, -36,84, 36,84, 36,84, 36,84, -36,84, 36,84, 36,84, 36,84, -36,84, 36,84, 36,84, 36,84, -36,84, 36,84, 36,84, 36,84, -36,84, 36,84, 36,84, 36,84, -37,59, 37,59, 37,59, 37,59, -37,59, 37,59, 37,59, 37,59, -37,59, 37,59, 38,59, 38,59, -38,59, 38,59, 38,59, 38,59, -38,59, 38,59, 38,59, 38,59, -40,59, 40,59, 40,59, 40,59, -40,59, 40,59, 40,59, 40,59, -40,59, 40,59, 37,85, 0,0, -0,0, 0,0, 38,86, 41,59, -41,59, 41,59, 41,59, 41,59, -41,59, 41,59, 41,59, 41,59, -41,59, 0,0, 0,0, 0,0, -0,0, 0,0, 40,88, 52,97, -52,97, 52,97, 52,97, 52,97, -52,97, 52,97, 52,97, 52,97, -52,97, 0,0, 0,0, 0,0, -0,0, 41,89, 0,0, 0,0, -52,97, 52,97, 52,97, 52,97, -52,97, 52,97, 52,97, 52,97, -52,97, 52,97, 52,97, 52,97, -52,97, 52,97, 52,97, 52,97, -52,97, 52,97, 52,97, 52,97, -52,97, 52,97, 52,97, 52,97, -52,97, 52,97, 0,0, 0,0, -0,0, 0,0, 52,97, 0,0, -52,97, 52,97, 52,97, 52,97, -52,97, 52,97, 52,97, 52,97, -52,97, 52,97, 52,97, 52,97, -52,97, 52,97, 52,97, 52,97, -52,97, 52,97, 52,97, 52,97, -52,97, 52,97, 52,97, 52,97, -52,97, 52,97, 57,57, 0,0, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 57,57, 57,0, -60,59, 60,59, 60,59, 60,59, -60,59, 60,59, 60,59, 60,59, -60,59, 60,59, 62,59, 62,59, -62,59, 62,59, 62,59, 62,59, -62,59, 62,59, 62,59, 62,59, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 0,0, 0,0, -57,57, 57,57, 0,0, 0,0, -0,0, 57,57, 57,57, 60,100, -0,0, 57,57, 0,0, 0,0, -0,0, 0,0, 0,0, 0,0, -62,102, 0,0, 0,0, 0,0, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 57,57, 64,59, -64,59, 64,59, 64,59, 64,59, -64,59, 64,59, 64,59, 64,59, -64,59, 65,59, 65,59, 65,59, -65,59, 65,59, 65,59, 65,59, -65,59, 65,59, 65,59, 0,0, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 0,0, 0,0, -57,57, 0,0, 64,104, 0,0, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 0,0, 65,105, -66,59, 66,59, 66,59, 66,59, -66,59, 66,59, 66,59, 66,59, -66,59, 66,59, 67,59, 67,59, -67,59, 67,59, 67,59, 67,59, -67,59, 67,59, 67,59, 67,59, -66,106, 68,59, 68,59, 68,59, -68,59, 68,59, 68,59, 68,59, -68,59, 68,59, 68,59, 0,0, -0,0, 0,0, 0,0, 0,0, -66,107, 66,108, 0,0, 0,0, -67,109, 69,59, 69,59, 69,59, -69,59, 69,59, 69,59, 69,59, -69,59, 69,59, 69,59, 0,0, -0,0, 0,0, 0,0, 0,0, -0,0, 68,110, 70,59, 70,59, -70,59, 70,59, 70,59, 70,59, -70,59, 70,59, 70,59, 70,59, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 0,0, 0,0, -69,111, 0,0, 0,0, 0,0, -0,0, 70,112, 71,59, 71,59, -71,59, 71,59, 71,59, 71,59, -71,59, 71,59, 71,59, 71,59, -73,59, 73,59, 73,59, 73,59, -73,59, 73,59, 73,59, 73,59, -73,59, 73,59, 0,0, 0,0, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 0,0, 71,113, -0,0, 73,114, 74,59, 74,59, -74,59, 74,59, 74,59, 74,59, -74,59, 74,59, 74,59, 74,59, -75,59, 75,59, 75,59, 75,59, -75,59, 75,59, 75,59, 75,59, -75,59, 75,59, 0,0, 0,0, -0,0, 0,0, 0,0, 0,0, -0,0, 75,116, 0,0, 0,0, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 74,115, 76,59, -76,59, 76,59, 76,59, 76,59, -76,59, 76,59, 76,59, 76,59, -76,59, 77,59, 77,59, 77,59, -77,59, 77,59, 77,59, 77,59, -77,59, 77,59, 77,59, 0,0, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 0,0, 76,117, -0,0, 0,0, 0,0, 0,0, -0,0, 77,118, 78,59, 78,59, -78,59, 78,59, 78,59, 78,59, -78,59, 78,59, 78,59, 78,59, -79,59, 79,59, 79,59, 79,59, -79,59, 79,59, 79,59, 79,59, -79,59, 79,59, 0,0, 0,0, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 78,119, 0,0, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 78,120, 0,0, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 79,121, 80,59, -80,59, 80,59, 80,59, 80,59, -80,59, 80,59, 80,59, 80,59, -80,59, 0,0, 0,0, 0,0, -0,0, 0,0, 0,0, 0,0, -0,0, 80,122, 81,59, 81,59, -81,59, 81,59, 81,59, 81,59, -81,59, 81,59, 81,59, 81,59, -0,0, 0,0, 0,0, 80,123, -82,59, 82,59, 82,59, 82,59, -82,59, 82,59, 82,59, 82,59, -82,59, 82,59, 0,0, 0,0, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 81,124, 0,0, -0,0, 0,0, 0,0, 0,0, -0,0, 82,125, 84,84, 84,84, -84,84, 84,84, 84,84, 84,84, -84,84, 84,84, 84,84, 84,84, -86,59, 86,59, 86,59, 86,59, -86,59, 86,59, 86,59, 86,59, -86,59, 86,59, 102,59, 102,59, -102,59, 102,59, 102,59, 102,59, -102,59, 102,59, 102,59, 102,59, -0,0, 86,128, 0,0, 0,0, -0,0, 0,0, 0,0, 102,138, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 0,0, 0,0, -0,0, 84,84, 0,0, 84,84, -84,84, 84,84, 84,84, 84,84, -84,84, 84,84, 84,84, 84,84, -84,84, 84,84, 84,84, 84,84, -84,84, 84,84, 84,84, 84,84, -84,84, 84,84, 84,84, 84,84, -84,84, 84,84, 84,84, 84,84, -84,84, 85,59, 85,59, 85,59, -85,59, 85,59, 85,59, 85,59, -85,59, 85,59, 85,59, 87,59, -87,59, 87,59, 87,59, 87,59, -87,59, 87,59, 87,59, 87,59, -87,59, 85,127, 88,59, 88,59, -88,59, 88,59, 88,59, 88,59, -88,59, 88,59, 88,59, 88,59, -96,96, 0,0, 0,0, 0,0, -0,0, 85,107, 85,108, 0,0, -96,96, 96,0, 88,130, 0,0, -0,0, 87,129, 89,59, 89,59, -89,59, 89,59, 89,59, 89,59, -89,59, 89,59, 89,59, 89,59, -0,0, 0,0, 88,107, 88,108, -103,59, 103,59, 103,59, 103,59, -103,59, 103,59, 103,59, 103,59, -103,59, 103,59, 96,96, 96,96, -0,0, 0,0, 0,0, 96,96, -96,96, 0,0, 0,0, 96,96, -0,0, 0,0, 89,110, 0,0, -89,131, 100,59, 100,59, 100,59, -100,59, 100,59, 100,59, 100,59, -100,59, 100,59, 100,59, 0,0, -96,96, 101,59, 101,59, 101,59, -101,59, 101,59, 101,59, 101,59, -101,59, 101,59, 101,59, 104,59, -104,59, 104,59, 104,59, 104,59, -104,59, 104,59, 104,59, 104,59, -104,59, 0,0, 0,0, 0,0, -0,0, 100,136, 0,0, 0,0, -0,0, 0,0, 96,96, 0,0, -101,137, 0,0, 0,0, 0,0, -0,0, 0,0, 0,0, 104,139, -105,59, 105,59, 105,59, 105,59, -105,59, 105,59, 105,59, 105,59, -105,59, 105,59, 106,59, 106,59, -106,59, 106,59, 106,59, 106,59, -106,59, 106,59, 106,59, 106,59, -107,59, 107,59, 107,59, 107,59, -107,59, 107,59, 107,59, 107,59, -107,59, 107,59, 0,0, 0,0, -0,0, 0,0, 0,0, 105,140, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 0,0, 0,0, -0,0, 107,142, 108,59, 108,59, -108,59, 108,59, 108,59, 108,59, -108,59, 108,59, 108,59, 108,59, -0,0, 106,141, 109,59, 109,59, -109,59, 109,59, 109,59, 109,59, -109,59, 109,59, 109,59, 109,59, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 0,0, 108,143, -0,0, 109,144, 110,59, 110,59, -110,59, 110,59, 110,59, 110,59, -110,59, 110,59, 110,59, 110,59, -111,59, 111,59, 111,59, 111,59, -111,59, 111,59, 111,59, 111,59, -111,59, 111,59, 0,0, 110,145, -112,59, 112,59, 112,59, 112,59, -112,59, 112,59, 112,59, 112,59, -112,59, 112,59, 113,59, 113,59, -113,59, 113,59, 113,59, 113,59, -113,59, 113,59, 113,59, 113,59, -0,0, 0,0, 0,0, 0,0, -111,146, 112,147, 0,0, 0,0, -113,148, 114,59, 114,59, 114,59, -114,59, 114,59, 114,59, 114,59, -114,59, 114,59, 114,59, 115,59, -115,59, 115,59, 115,59, 115,59, -115,59, 115,59, 115,59, 115,59, -115,59, 116,59, 116,59, 116,59, -116,59, 116,59, 116,59, 116,59, -116,59, 116,59, 116,59, 0,0, -114,149, 0,0, 0,0, 0,0, -115,150, 117,59, 117,59, 117,59, -117,59, 117,59, 117,59, 117,59, -117,59, 117,59, 117,59, 0,0, -0,0, 116,151, 0,0, 0,0, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 117,152, 118,59, -118,59, 118,59, 118,59, 118,59, -118,59, 118,59, 118,59, 118,59, -118,59, 119,59, 119,59, 119,59, -119,59, 119,59, 119,59, 119,59, -119,59, 119,59, 119,59, 0,0, -118,153, 0,0, 0,0, 0,0, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 119,154, 119,155, -120,59, 120,59, 120,59, 120,59, -120,59, 120,59, 120,59, 120,59, -120,59, 120,59, 121,59, 121,59, -121,59, 121,59, 121,59, 121,59, -121,59, 121,59, 121,59, 121,59, -122,59, 122,59, 122,59, 122,59, -122,59, 122,59, 122,59, 122,59, -122,59, 122,59, 0,0, 0,0, -0,0, 0,0, 0,0, 121,156, -123,59, 123,59, 123,59, 123,59, -123,59, 123,59, 123,59, 123,59, -123,59, 123,59, 124,59, 124,59, -124,59, 124,59, 124,59, 124,59, -124,59, 124,59, 124,59, 124,59, -122,157, 123,158, 0,0, 0,0, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 0,0, 124,159, -125,59, 125,59, 125,59, 125,59, -125,59, 125,59, 125,59, 125,59, -125,59, 125,59, 126,126, 126,126, -126,126, 126,126, 126,126, 126,126, -126,126, 126,126, 126,126, 126,126, -127,59, 127,59, 127,59, 127,59, -127,59, 127,59, 127,59, 127,59, -127,59, 127,59, 0,0, 0,0, -0,0, 125,160, 128,59, 128,59, -128,59, 128,59, 128,59, 128,59, -128,59, 128,59, 128,59, 128,59, -129,59, 129,59, 129,59, 129,59, -129,59, 129,59, 129,59, 129,59, -129,59, 129,59, 130,59, 130,59, -130,59, 130,59, 130,59, 130,59, -130,59, 130,59, 130,59, 130,59, -0,0, 0,0, 0,0, 127,161, -128,162, 129,163, 131,59, 131,59, -131,59, 131,59, 131,59, 131,59, -131,59, 131,59, 131,59, 131,59, -136,59, 136,59, 136,59, 136,59, -136,59, 136,59, 136,59, 136,59, -136,59, 136,59, 0,0, 131,165, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 0,0, 0,0, -0,0, 130,164, 137,59, 137,59, -137,59, 137,59, 137,59, 137,59, -137,59, 137,59, 137,59, 137,59, -0,0, 0,0, 136,170, 138,59, -138,59, 138,59, 138,59, 138,59, -138,59, 138,59, 138,59, 138,59, -138,59, 139,59, 139,59, 139,59, -139,59, 139,59, 139,59, 139,59, -139,59, 139,59, 139,59, 0,0, -137,171, 0,0, 0,0, 0,0, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 139,173, 0,0, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 0,0, 0,0, -138,172, 140,59, 140,59, 140,59, -140,59, 140,59, 140,59, 140,59, -140,59, 140,59, 140,59, 141,59, -141,59, 141,59, 141,59, 141,59, -141,59, 141,59, 141,59, 141,59, -141,59, 142,59, 142,59, 142,59, -142,59, 142,59, 142,59, 142,59, -142,59, 142,59, 142,59, 0,0, -0,0, 0,0, 0,0, 0,0, -0,0, 140,174, 0,0, 0,0, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 141,175, 143,59, -143,59, 143,59, 143,59, 143,59, -143,59, 143,59, 143,59, 143,59, -143,59, 142,176, 144,59, 144,59, -144,59, 144,59, 144,59, 144,59, -144,59, 144,59, 144,59, 144,59, -143,177, 145,59, 145,59, 145,59, -145,59, 145,59, 145,59, 145,59, -145,59, 145,59, 145,59, 146,59, -146,59, 146,59, 146,59, 146,59, -146,59, 146,59, 146,59, 146,59, -146,59, 0,0, 0,0, 0,0, -145,179, 0,0, 144,178, 147,59, -147,59, 147,59, 147,59, 147,59, -147,59, 147,59, 147,59, 147,59, -147,59, 0,0, 0,0, 0,0, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 147,180, 148,59, -148,59, 148,59, 148,59, 148,59, -148,59, 148,59, 148,59, 148,59, -148,59, 149,59, 149,59, 149,59, -149,59, 149,59, 149,59, 149,59, -149,59, 149,59, 149,59, 0,0, -148,181, 150,59, 150,59, 150,59, -150,59, 150,59, 150,59, 150,59, -150,59, 150,59, 150,59, 149,182, -151,59, 151,59, 151,59, 151,59, -151,59, 151,59, 151,59, 151,59, -151,59, 151,59, 152,59, 152,59, -152,59, 152,59, 152,59, 152,59, -152,59, 152,59, 152,59, 152,59, -150,183, 153,59, 153,59, 153,59, -153,59, 153,59, 153,59, 153,59, -153,59, 153,59, 153,59, 0,0, -154,59, 154,59, 154,59, 154,59, -154,59, 154,59, 154,59, 154,59, -154,59, 154,59, 0,0, 0,0, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 153,184, 154,185, -155,59, 155,59, 155,59, 155,59, -155,59, 155,59, 155,59, 155,59, -155,59, 155,59, 156,59, 156,59, -156,59, 156,59, 156,59, 156,59, -156,59, 156,59, 156,59, 156,59, -157,59, 157,59, 157,59, 157,59, -157,59, 157,59, 157,59, 157,59, -157,59, 157,59, 158,59, 158,59, -158,59, 158,59, 158,59, 158,59, -158,59, 158,59, 158,59, 158,59, -156,186, 159,59, 159,59, 159,59, -159,59, 159,59, 159,59, 159,59, -159,59, 159,59, 159,59, 160,59, -160,59, 160,59, 160,59, 160,59, -160,59, 160,59, 160,59, 160,59, -160,59, 157,187, 0,0, 0,0, -158,188, 161,59, 161,59, 161,59, -161,59, 161,59, 161,59, 161,59, -161,59, 161,59, 161,59, 162,59, -162,59, 162,59, 162,59, 162,59, -162,59, 162,59, 162,59, 162,59, -162,59, 0,0, 0,0, 0,0, -160,189, 0,0, 0,0, 0,0, -0,0, 0,0, 0,0, 0,0, -162,191, 0,0, 0,0, 0,0, -161,175, 161,190, 163,59, 163,59, -163,59, 163,59, 163,59, 163,59, -163,59, 163,59, 163,59, 163,59, -164,59, 164,59, 164,59, 164,59, -164,59, 164,59, 164,59, 164,59, -164,59, 164,59, 165,59, 165,59, -165,59, 165,59, 165,59, 165,59, -165,59, 165,59, 165,59, 165,59, -0,0, 164,193, 0,0, 0,0, -0,0, 0,0, 0,0, 0,0, -163,192, 0,0, 0,0, 0,0, -0,0, 0,0, 0,0, 164,175, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 0,0, 0,0, -165,194, 170,59, 170,59, 170,59, -170,59, 170,59, 170,59, 170,59, -170,59, 170,59, 170,59, 0,0, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 170,200, 171,59, -171,59, 171,59, 171,59, 171,59, -171,59, 171,59, 171,59, 171,59, -171,59, 172,59, 172,59, 172,59, -172,59, 172,59, 172,59, 172,59, -172,59, 172,59, 172,59, 173,59, -173,59, 173,59, 173,59, 173,59, -173,59, 173,59, 173,59, 173,59, -173,59, 0,0, 0,0, 0,0, -0,0, 0,0, 0,0, 0,0, -173,201, 174,59, 174,59, 174,59, -174,59, 174,59, 174,59, 174,59, -174,59, 174,59, 174,59, 0,0, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 174,202, 175,59, -175,59, 175,59, 175,59, 175,59, -175,59, 175,59, 175,59, 175,59, -175,59, 0,0, 0,0, 0,0, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 175,203, 176,59, -176,59, 176,59, 176,59, 176,59, -176,59, 176,59, 176,59, 176,59, -176,59, 177,59, 177,59, 177,59, -177,59, 177,59, 177,59, 177,59, -177,59, 177,59, 177,59, 178,59, -178,59, 178,59, 178,59, 178,59, -178,59, 178,59, 178,59, 178,59, -178,59, 179,59, 179,59, 179,59, -179,59, 179,59, 179,59, 179,59, -179,59, 179,59, 179,59, 0,0, -176,204, 0,0, 0,0, 177,205, -178,206, 0,0, 0,0, 0,0, -0,0, 0,0, 179,207, 180,59, -180,59, 180,59, 180,59, 180,59, -180,59, 180,59, 180,59, 180,59, -180,59, 0,0, 0,0, 0,0, -0,0, 0,0, 0,0, 0,0, -180,208, 181,59, 181,59, 181,59, -181,59, 181,59, 181,59, 181,59, -181,59, 181,59, 181,59, 182,59, -182,59, 182,59, 182,59, 182,59, -182,59, 182,59, 182,59, 182,59, -182,59, 183,59, 183,59, 183,59, -183,59, 183,59, 183,59, 183,59, -183,59, 183,59, 183,59, 0,0, -0,0, 0,0, 0,0, 181,209, -184,59, 184,59, 184,59, 184,59, -184,59, 184,59, 184,59, 184,59, -184,59, 184,59, 0,0, 0,0, -0,0, 0,0, 0,0, 183,210, -0,0, 184,211, 185,59, 185,59, -185,59, 185,59, 185,59, 185,59, -185,59, 185,59, 185,59, 185,59, -186,59, 186,59, 186,59, 186,59, -186,59, 186,59, 186,59, 186,59, -186,59, 186,59, 187,59, 187,59, -187,59, 187,59, 187,59, 187,59, -187,59, 187,59, 187,59, 187,59, -0,0, 0,0, 0,0, 186,213, -0,0, 0,0, 185,212, 188,59, -188,59, 188,59, 188,59, 188,59, -188,59, 188,59, 188,59, 188,59, -188,59, 0,0, 0,0, 0,0, -0,0, 0,0, 187,214, 189,59, -189,59, 189,59, 189,59, 189,59, -189,59, 189,59, 189,59, 189,59, -189,59, 190,59, 190,59, 190,59, -190,59, 190,59, 190,59, 190,59, -190,59, 190,59, 190,59, 188,215, -189,216, 191,59, 191,59, 191,59, -191,59, 191,59, 191,59, 191,59, -191,59, 191,59, 191,59, 192,59, -192,59, 192,59, 192,59, 192,59, -192,59, 192,59, 192,59, 192,59, -192,59, 0,0, 0,0, 0,0, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 190,217, 0,0, -192,218, 193,59, 193,59, 193,59, -193,59, 193,59, 193,59, 193,59, -193,59, 193,59, 193,59, 194,59, -194,59, 194,59, 194,59, 194,59, -194,59, 194,59, 194,59, 194,59, -194,59, 200,59, 200,59, 200,59, -200,59, 200,59, 200,59, 200,59, -200,59, 200,59, 200,59, 193,219, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 0,0, 0,0, -200,226, 0,0, 0,0, 0,0, -0,0, 0,0, 194,220, 201,59, -201,59, 201,59, 201,59, 201,59, -201,59, 201,59, 201,59, 201,59, -201,59, 202,59, 202,59, 202,59, -202,59, 202,59, 202,59, 202,59, -202,59, 202,59, 202,59, 203,59, -203,59, 203,59, 203,59, 203,59, -203,59, 203,59, 203,59, 203,59, -203,59, 201,227, 0,0, 0,0, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 0,0, 202,228, -0,0, 0,0, 0,0, 203,229, -204,59, 204,59, 204,59, 204,59, -204,59, 204,59, 204,59, 204,59, -204,59, 204,59, 205,59, 205,59, -205,59, 205,59, 205,59, 205,59, -205,59, 205,59, 205,59, 205,59, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 0,0, 205,230, -206,59, 206,59, 206,59, 206,59, -206,59, 206,59, 206,59, 206,59, -206,59, 206,59, 207,59, 207,59, -207,59, 207,59, 207,59, 207,59, -207,59, 207,59, 207,59, 207,59, -208,59, 208,59, 208,59, 208,59, -208,59, 208,59, 208,59, 208,59, -208,59, 208,59, 0,0, 206,231, -209,59, 209,59, 209,59, 209,59, -209,59, 209,59, 209,59, 209,59, -209,59, 209,59, 0,0, 0,0, -207,232, 0,0, 0,0, 0,0, -208,233, 210,59, 210,59, 210,59, -210,59, 210,59, 210,59, 210,59, -210,59, 210,59, 210,59, 0,0, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 210,234, 211,59, -211,59, 211,59, 211,59, 211,59, -211,59, 211,59, 211,59, 211,59, -211,59, 212,59, 212,59, 212,59, -212,59, 212,59, 212,59, 212,59, -212,59, 212,59, 212,59, 213,59, -213,59, 213,59, 213,59, 213,59, -213,59, 213,59, 213,59, 213,59, -213,59, 214,59, 214,59, 214,59, -214,59, 214,59, 214,59, 214,59, -214,59, 214,59, 214,59, 215,59, -215,59, 215,59, 215,59, 215,59, -215,59, 215,59, 215,59, 215,59, -215,59, 0,0, 214,235, 216,59, -216,59, 216,59, 216,59, 216,59, -216,59, 216,59, 216,59, 216,59, -216,59, 217,59, 217,59, 217,59, -217,59, 217,59, 217,59, 217,59, -217,59, 217,59, 217,59, 0,0, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 0,0, 0,0, -215,236, 218,59, 218,59, 218,59, -218,59, 218,59, 218,59, 218,59, -218,59, 218,59, 218,59, 0,0, -0,0, 217,237, 219,59, 219,59, -219,59, 219,59, 219,59, 219,59, -219,59, 219,59, 219,59, 219,59, -220,59, 220,59, 220,59, 220,59, -220,59, 220,59, 220,59, 220,59, -220,59, 220,59, 226,59, 226,59, -226,59, 226,59, 226,59, 226,59, -226,59, 226,59, 226,59, 226,59, -0,0, 220,239, 0,0, 0,0, -0,0, 0,0, 219,238, 227,59, -227,59, 227,59, 227,59, 227,59, -227,59, 227,59, 227,59, 227,59, -227,59, 0,0, 0,0, 0,0, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 226,245, 228,59, -228,59, 228,59, 228,59, 228,59, -228,59, 228,59, 228,59, 228,59, -228,59, 229,59, 229,59, 229,59, -229,59, 229,59, 229,59, 229,59, -229,59, 229,59, 229,59, 230,59, -230,59, 230,59, 230,59, 230,59, -230,59, 230,59, 230,59, 230,59, -230,59, 0,0, 229,247, 0,0, -0,0, 0,0, 0,0, 228,246, -231,59, 231,59, 231,59, 231,59, -231,59, 231,59, 231,59, 231,59, -231,59, 231,59, 0,0, 0,0, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 0,0, 230,248, -232,59, 232,59, 232,59, 232,59, -232,59, 232,59, 232,59, 232,59, -232,59, 232,59, 231,249, 233,59, -233,59, 233,59, 233,59, 233,59, -233,59, 233,59, 233,59, 233,59, -233,59, 234,59, 234,59, 234,59, -234,59, 234,59, 234,59, 234,59, -234,59, 234,59, 234,59, 235,59, -235,59, 235,59, 235,59, 235,59, -235,59, 235,59, 235,59, 235,59, -235,59, 0,0, 0,0, 0,0, -0,0, 0,0, 0,0, 0,0, -0,0, 234,250, 236,59, 236,59, -236,59, 236,59, 236,59, 236,59, -236,59, 236,59, 236,59, 236,59, -237,59, 237,59, 237,59, 237,59, -237,59, 237,59, 237,59, 237,59, -237,59, 237,59, 238,59, 238,59, -238,59, 238,59, 238,59, 238,59, -238,59, 238,59, 238,59, 238,59, -0,0, 237,252, 236,251, 239,59, -239,59, 239,59, 239,59, 239,59, -239,59, 239,59, 239,59, 239,59, -239,59, 246,259, 246,259, 238,253, -245,59, 245,59, 245,59, 245,59, -245,59, 245,59, 245,59, 245,59, -245,59, 245,59, 248,59, 248,59, -248,59, 248,59, 248,59, 248,59, -248,59, 248,59, 248,59, 248,59, -246,259, 0,0, 0,0, 0,0, -0,0, 0,0, 0,0, 246,259, -246,259, 246,259, 0,0, 0,0, -0,0, 246,259, 0,0, 248,262, -246,260, 246,260, 246,260, 246,260, -246,260, 246,260, 246,260, 246,260, -246,260, 246,260, 246,259, 246,259, -0,0, 246,259, 247,59, 247,59, -247,59, 247,59, 247,59, 247,59, -247,59, 247,59, 247,59, 247,59, -249,59, 249,59, 249,59, 249,59, -249,59, 249,59, 249,59, 249,59, -249,59, 249,59, 0,0, 0,0, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 0,0, 247,261, -0,0, 0,0, 0,0, 246,260, -0,0, 246,260, 246,260, 246,260, -246,260, 246,260, 246,260, 246,260, -246,260, 246,260, 246,260, 246,260, -246,260, 246,260, 246,260, 246,260, -246,260, 246,260, 246,260, 246,260, -246,260, 246,260, 246,260, 246,260, -246,260, 246,260, 246,260, 0,0, -246,259, 250,59, 250,59, 250,59, -250,59, 250,59, 250,59, 250,59, -250,59, 250,59, 250,59, 251,59, -251,59, 251,59, 251,59, 251,59, -251,59, 251,59, 251,59, 251,59, -251,59, 252,59, 252,59, 252,59, -252,59, 252,59, 252,59, 252,59, -252,59, 252,59, 252,59, 0,0, -251,263, 253,59, 253,59, 253,59, -253,59, 253,59, 253,59, 253,59, -253,59, 253,59, 253,59, 259,259, -259,259, 261,59, 261,59, 261,59, -261,59, 261,59, 261,59, 261,59, -261,59, 261,59, 261,59, 0,0, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 261,270, 0,0, -0,0, 0,0, 259,259, 0,0, -0,0, 253,264, 0,0, 0,0, -0,0, 259,259, 259,259, 259,259, -0,0, 0,0, 0,0, 259,259, -0,0, 0,0, 259,259, 259,259, -259,259, 259,259, 259,259, 259,259, -259,259, 259,259, 259,259, 259,259, -259,259, 259,259, 0,0, 259,259, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 0,0, 259,268, -263,59, 263,59, 263,59, 263,59, -263,59, 263,59, 263,59, 263,59, -263,59, 263,59, 0,0, 0,0, -264,59, 264,59, 264,59, 264,59, -264,59, 264,59, 264,59, 264,59, -264,59, 264,59, 0,0, 0,0, -0,0, 259,259, 0,0, 259,259, -259,259, 259,259, 259,259, 259,259, -259,259, 259,259, 259,259, 259,259, -259,259, 259,259, 259,259, 259,259, -259,259, 259,259, 259,259, 259,259, -259,259, 259,259, 259,259, 259,259, -259,259, 259,259, 259,259, 259,259, -259,259, 264,272, 259,259, 260,259, -260,259, 262,59, 262,59, 262,59, -262,59, 262,59, 262,59, 262,59, -262,59, 262,59, 262,59, 270,59, -270,59, 270,59, 270,59, 270,59, -270,59, 270,59, 270,59, 270,59, -270,59, 0,0, 260,259, 0,0, -0,0, 0,0, 0,0, 0,0, -0,0, 260,259, 260,259, 260,259, -262,271, 0,0, 0,0, 260,259, -0,0, 0,0, 260,260, 260,260, -260,260, 260,260, 260,260, 260,260, -260,260, 260,260, 260,260, 260,260, -260,259, 260,259, 0,0, 260,259, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 0,0, 260,269, -272,59, 272,59, 272,59, 272,59, -272,59, 272,59, 272,59, 272,59, -272,59, 272,59, 277,59, 277,59, -277,59, 277,59, 277,59, 277,59, -277,59, 277,59, 277,59, 277,59, -0,0, 0,0, 0,0, 0,0, -0,0, 260,260, 0,0, 260,260, -260,260, 260,260, 260,260, 260,260, -260,260, 260,260, 260,260, 260,260, -260,260, 260,260, 260,260, 260,260, -260,260, 260,260, 260,260, 260,260, -260,260, 260,260, 260,260, 260,260, -260,260, 260,260, 260,260, 260,260, -260,260, 0,0, 260,259, 269,59, -269,59, 269,59, 269,59, 269,59, -269,59, 269,59, 269,59, 269,59, -269,59, 271,59, 271,59, 271,59, -271,59, 271,59, 271,59, 271,59, -271,59, 271,59, 271,59, 280,59, -280,59, 280,59, 280,59, 280,59, -280,59, 280,59, 280,59, 280,59, -280,59, 269,276, 0,0, 0,0, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 0,0, 271,277, -276,59, 276,59, 276,59, 276,59, -276,59, 276,59, 276,59, 276,59, -276,59, 276,59, 283,59, 283,59, -283,59, 283,59, 283,59, 283,59, -283,59, 283,59, 283,59, 283,59, -276,280, 0,0, 0,0, 0,0, -0,0, 0,0, 280,283, 0,0, -0,0, 283,286, 286,59, 286,59, -286,59, 286,59, 286,59, 286,59, -286,59, 286,59, 286,59, 286,59, -288,59, 288,59, 288,59, 288,59, -288,59, 288,59, 288,59, 288,59, -288,59, 288,59, 290,59, 290,59, -290,59, 290,59, 290,59, 290,59, -290,59, 290,59, 290,59, 290,59, -0,0, 286,288, 0,0, 0,0, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 288,290, 292,59, -292,59, 292,59, 292,59, 292,59, -292,59, 292,59, 292,59, 292,59, -292,59, 0,0, 0,0, 0,0, -0,0, 290,292, 294,59, 294,59, -294,59, 294,59, 294,59, 294,59, -294,59, 294,59, 294,59, 294,59, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 0,0, 294,296, -0,0, 0,0, 0,0, 292,294, -296,59, 296,59, 296,59, 296,59, -296,59, 296,59, 296,59, 296,59, -296,59, 296,59, 298,59, 298,59, -298,59, 298,59, 298,59, 298,59, -298,59, 298,59, 298,59, 298,59, -300,59, 300,59, 300,59, 300,59, -300,59, 300,59, 300,59, 300,59, -300,59, 300,59, 296,298, 300,301, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 298,300, 0,0, -0,0}; -struct yysvf yysvec[] = { -0, 0, 0, -yycrank+-1, 0, yyvstop+1, -yycrank+-60, yysvec+1, yyvstop+3, -yycrank+-119, yysvec+1, yyvstop+5, -yycrank+-178, yysvec+1, yyvstop+7, -yycrank+-237, yysvec+1, yyvstop+9, -yycrank+-296, yysvec+1, yyvstop+11, -yycrank+-387, 0, 0, -yycrank+-15, yysvec+7, 0, -yycrank+-394, 0, 0, -yycrank+-24, yysvec+9, 0, -yycrank+-401, yysvec+9, 0, -yycrank+-416, yysvec+9, 0, -yycrank+-464, 0, 0, -yycrank+-290, yysvec+13, 0, -yycrank+0, 0, yyvstop+13, -yycrank+15, 0, yyvstop+15, -yycrank+0, 0, yyvstop+18, -yycrank+16, 0, yyvstop+20, -yycrank+0, 0, yyvstop+23, -yycrank+16, 0, yyvstop+26, -yycrank+495, 0, yyvstop+28, -yycrank+570, yysvec+21, yyvstop+32, -yycrank+589, yysvec+21, yyvstop+35, -yycrank+607, yysvec+21, yyvstop+38, -yycrank+54, yysvec+21, yyvstop+41, -yycrank+621, yysvec+21, yyvstop+44, -yycrank+639, yysvec+21, yyvstop+47, -yycrank+652, yysvec+21, yyvstop+50, -yycrank+662, yysvec+21, yyvstop+53, -yycrank+694, yysvec+21, yyvstop+56, -yycrank+704, yysvec+21, yyvstop+59, -yycrank+714, yysvec+21, yyvstop+62, -yycrank+737, yysvec+21, yyvstop+65, -yycrank+759, yysvec+21, yyvstop+68, -yycrank+775, yysvec+21, yyvstop+71, -yycrank+785, yysvec+21, yyvstop+74, -yycrank+860, yysvec+21, yyvstop+78, -yycrank+870, yysvec+21, yyvstop+81, -yycrank+113, yysvec+21, yyvstop+84, -yycrank+880, yysvec+21, yyvstop+87, -yycrank+895, yysvec+21, yyvstop+90, -yycrank+0, 0, yyvstop+93, -yycrank+15, 0, yyvstop+95, -yycrank+0, 0, yyvstop+97, -yycrank+17, 0, yyvstop+99, -yycrank+0, 0, yyvstop+101, -yycrank+19, 0, yyvstop+103, -yycrank+0, 0, yyvstop+105, -yycrank+-491, 0, yyvstop+107, -yycrank+21, 0, yyvstop+109, -yycrank+19, 0, yyvstop+111, -yycrank+911, 0, yyvstop+113, -yycrank+20, yysvec+52, yyvstop+116, -yycrank+15, yysvec+52, yyvstop+119, -yycrank+0, yysvec+16, yyvstop+122, -yycrank+0, 0, yyvstop+124, -yycrank+-1033, 0, yyvstop+126, -yycrank+0, yysvec+21, yyvstop+128, -yycrank+172, yysvec+21, yyvstop+131, -yycrank+996, yysvec+21, yyvstop+133, -yycrank+231, yysvec+21, yyvstop+135, -yycrank+1006, yysvec+21, yyvstop+137, -yycrank+810, yysvec+21, yyvstop+139, -yycrank+1051, yysvec+21, yyvstop+141, -yycrank+1061, yysvec+21, yyvstop+143, -yycrank+1092, yysvec+21, yyvstop+145, -yycrank+1102, yysvec+21, yyvstop+147, -yycrank+1113, yysvec+21, yyvstop+149, -yycrank+1133, yysvec+21, yyvstop+151, -yycrank+1150, yysvec+21, yyvstop+153, -yycrank+1174, yysvec+21, yyvstop+155, -yycrank+290, yysvec+21, yyvstop+157, -yycrank+1184, yysvec+21, yyvstop+160, -yycrank+1206, yysvec+21, yyvstop+162, -yycrank+1216, yysvec+21, yyvstop+164, -yycrank+1243, yysvec+21, yyvstop+166, -yycrank+1253, yysvec+21, yyvstop+168, -yycrank+1278, yysvec+21, yyvstop+170, -yycrank+1288, yysvec+21, yyvstop+172, -yycrank+1323, yysvec+21, yyvstop+174, -yycrank+1342, yysvec+21, yyvstop+176, -yycrank+1356, yysvec+21, yyvstop+178, -yycrank+820, yysvec+21, yyvstop+180, -yycrank+1382, yysvec+21, yyvstop+182, -yycrank+1457, yysvec+21, yyvstop+185, -yycrank+1392, yysvec+21, yyvstop+187, -yycrank+1467, yysvec+21, yyvstop+189, -yycrank+1478, yysvec+21, yyvstop+191, -yycrank+1502, yysvec+21, yyvstop+193, -yycrank+0, 0, yyvstop+195, -yycrank+31, 0, 0, -yycrank+44, 0, 0, -yycrank+0, yysvec+49, 0, -yycrank+0, 0, yyvstop+197, -yycrank+0, 0, yyvstop+199, -yycrank+-1535, 0, yyvstop+201, -yycrank+0, yysvec+52, yyvstop+203, -yycrank+45, yysvec+52, yyvstop+205, -yycrank+36, yysvec+52, yyvstop+207, -yycrank+1541, yysvec+21, yyvstop+209, -yycrank+1553, yysvec+21, yyvstop+211, -yycrank+1402, yysvec+21, yyvstop+214, -yycrank+1516, yysvec+21, yyvstop+216, -yycrank+1563, yysvec+21, yyvstop+219, -yycrank+1592, yysvec+21, yyvstop+221, -yycrank+1602, yysvec+21, yyvstop+223, -yycrank+1612, yysvec+21, yyvstop+225, -yycrank+1638, yysvec+21, yyvstop+227, -yycrank+1650, yysvec+21, yyvstop+229, -yycrank+1670, yysvec+21, yyvstop+231, -yycrank+1680, yysvec+21, yyvstop+233, -yycrank+1692, yysvec+21, yyvstop+235, -yycrank+1702, yysvec+21, yyvstop+237, -yycrank+1721, yysvec+21, yyvstop+239, -yycrank+1731, yysvec+21, yyvstop+241, -yycrank+1741, yysvec+21, yyvstop+243, -yycrank+1757, yysvec+21, yyvstop+245, -yycrank+1779, yysvec+21, yyvstop+247, -yycrank+1789, yysvec+21, yyvstop+249, -yycrank+1812, yysvec+21, yyvstop+251, -yycrank+1822, yysvec+21, yyvstop+254, -yycrank+1832, yysvec+21, yyvstop+256, -yycrank+1848, yysvec+21, yyvstop+258, -yycrank+1858, yysvec+21, yyvstop+260, -yycrank+1880, yysvec+21, yyvstop+262, -yycrank+1890, yysvec+21, yyvstop+264, -yycrank+1900, yysvec+21, yyvstop+267, -yycrank+1914, yysvec+21, yyvstop+269, -yycrank+1924, yysvec+21, yyvstop+271, -yycrank+1934, yysvec+21, yyvstop+273, -yycrank+1950, yysvec+21, yyvstop+275, -yycrank+20, 0, 0, -yycrank+21, 0, 0, -yycrank+22, yysvec+52, yyvstop+277, -yycrank+53, yysvec+52, yyvstop+279, -yycrank+1960, yysvec+21, yyvstop+281, -yycrank+1982, yysvec+21, yyvstop+283, -yycrank+1995, yysvec+21, yyvstop+285, -yycrank+2005, yysvec+21, yyvstop+287, -yycrank+2037, yysvec+21, yyvstop+289, -yycrank+2047, yysvec+21, yyvstop+291, -yycrank+2057, yysvec+21, yyvstop+293, -yycrank+2083, yysvec+21, yyvstop+295, -yycrank+2094, yysvec+21, yyvstop+297, -yycrank+2105, yysvec+21, yyvstop+299, -yycrank+2115, yysvec+21, yyvstop+301, -yycrank+2131, yysvec+21, yyvstop+304, -yycrank+2151, yysvec+21, yyvstop+306, -yycrank+2161, yysvec+21, yyvstop+308, -yycrank+2173, yysvec+21, yyvstop+310, -yycrank+2184, yysvec+21, yyvstop+312, -yycrank+2194, yysvec+21, yyvstop+315, -yycrank+2205, yysvec+21, yyvstop+318, -yycrank+2216, yysvec+21, yyvstop+320, -yycrank+2236, yysvec+21, yyvstop+322, -yycrank+2246, yysvec+21, yyvstop+325, -yycrank+2256, yysvec+21, yyvstop+327, -yycrank+2266, yysvec+21, yyvstop+329, -yycrank+2277, yysvec+21, yyvstop+331, -yycrank+2287, yysvec+21, yyvstop+334, -yycrank+2301, yysvec+21, yyvstop+336, -yycrank+2311, yysvec+21, yyvstop+338, -yycrank+2338, yysvec+21, yyvstop+340, -yycrank+2348, yysvec+21, yyvstop+342, -yycrank+2358, yysvec+21, yyvstop+344, -yycrank+87, 0, 0, -yycrank+40, 0, 0, -yycrank+53, yysvec+52, yyvstop+346, -yycrank+40, yysvec+52, yyvstop+348, -yycrank+2393, yysvec+21, yyvstop+350, -yycrank+2411, yysvec+21, yyvstop+352, -yycrank+2421, yysvec+21, yyvstop+355, -yycrank+2431, yysvec+21, yyvstop+358, -yycrank+2449, yysvec+21, yyvstop+360, -yycrank+2467, yysvec+21, yyvstop+362, -yycrank+2487, yysvec+21, yyvstop+364, -yycrank+2497, yysvec+21, yyvstop+366, -yycrank+2507, yysvec+21, yyvstop+368, -yycrank+2517, yysvec+21, yyvstop+370, -yycrank+2539, yysvec+21, yyvstop+372, -yycrank+2557, yysvec+21, yyvstop+374, -yycrank+2567, yysvec+21, yyvstop+376, -yycrank+2577, yysvec+21, yyvstop+379, -yycrank+2592, yysvec+21, yyvstop+381, -yycrank+2610, yysvec+21, yyvstop+383, -yycrank+2620, yysvec+21, yyvstop+385, -yycrank+2630, yysvec+21, yyvstop+387, -yycrank+2647, yysvec+21, yyvstop+389, -yycrank+2663, yysvec+21, yyvstop+391, -yycrank+2673, yysvec+21, yyvstop+393, -yycrank+2685, yysvec+21, yyvstop+395, -yycrank+2695, yysvec+21, yyvstop+398, -yycrank+2717, yysvec+21, yyvstop+400, -yycrank+2727, yysvec+21, yyvstop+402, -yycrank+74, 0, 0, -yycrank+65, 0, 0, -yycrank+70, 0, 0, -yycrank+72, yysvec+52, yyvstop+404, -yycrank+85, yysvec+52, yyvstop+406, -yycrank+2737, yysvec+21, yyvstop+408, -yycrank+2763, yysvec+21, yyvstop+410, -yycrank+2773, yysvec+21, yyvstop+412, -yycrank+2783, yysvec+21, yyvstop+414, -yycrank+2808, yysvec+21, yyvstop+416, -yycrank+2818, yysvec+21, yyvstop+419, -yycrank+2836, yysvec+21, yyvstop+421, -yycrank+2846, yysvec+21, yyvstop+423, -yycrank+2856, yysvec+21, yyvstop+425, -yycrank+2868, yysvec+21, yyvstop+427, -yycrank+2885, yysvec+21, yyvstop+430, -yycrank+2903, yysvec+21, yyvstop+432, -yycrank+2913, yysvec+21, yyvstop+435, -yycrank+2923, yysvec+21, yyvstop+438, -yycrank+2933, yysvec+21, yyvstop+441, -yycrank+2943, yysvec+21, yyvstop+443, -yycrank+2955, yysvec+21, yyvstop+445, -yycrank+2965, yysvec+21, yyvstop+448, -yycrank+2985, yysvec+21, yyvstop+450, -yycrank+2998, yysvec+21, yyvstop+453, -yycrank+3008, yysvec+21, yyvstop+455, -yycrank+75, 0, 0, -yycrank+92, 0, 0, -yycrank+97, 0, 0, -yycrank+96, yysvec+52, yyvstop+457, -yycrank+96, yysvec+52, yyvstop+459, -yycrank+3018, yysvec+21, yyvstop+461, -yycrank+3035, yysvec+21, yyvstop+463, -yycrank+3055, yysvec+21, yyvstop+466, -yycrank+3065, yysvec+21, yyvstop+468, -yycrank+3075, yysvec+21, yyvstop+470, -yycrank+3092, yysvec+21, yyvstop+472, -yycrank+3112, yysvec+21, yyvstop+474, -yycrank+3123, yysvec+21, yyvstop+477, -yycrank+3133, yysvec+21, yyvstop+480, -yycrank+3143, yysvec+21, yyvstop+482, -yycrank+3162, yysvec+21, yyvstop+485, -yycrank+3172, yysvec+21, yyvstop+487, -yycrank+3182, yysvec+21, yyvstop+489, -yycrank+3195, yysvec+21, yyvstop+491, -yycrank+103, 0, 0, -yycrank+110, 0, 0, -yycrank+112, 0, 0, -yycrank+116, yysvec+52, yyvstop+494, -yycrank+133, yysvec+52, yyvstop+496, -yycrank+3208, yysvec+21, yyvstop+498, -yycrank+3244, yysvec+21, yyvstop+501, -yycrank+3258, yysvec+21, yyvstop+503, -yycrank+3218, yysvec+21, yyvstop+505, -yycrank+3268, yysvec+21, yyvstop+507, -yycrank+3321, yysvec+21, yyvstop+510, -yycrank+3331, yysvec+21, yyvstop+513, -yycrank+3341, yysvec+21, yyvstop+515, -yycrank+3353, yysvec+21, yyvstop+518, -yycrank+129, 0, 0, -yycrank+0, 0, yyvstop+520, -yycrank+155, 0, 0, -yycrank+131, yysvec+52, yyvstop+522, -yycrank+0, yysvec+52, yyvstop+524, -yycrank+3402, 0, 0, -yycrank+3518, yysvec+21, yyvstop+527, -yycrank+3365, yysvec+21, yyvstop+529, -yycrank+3481, yysvec+21, yyvstop+531, -yycrank+3424, yysvec+21, yyvstop+533, -yycrank+3436, yysvec+21, yyvstop+536, -yycrank+127, 0, 0, -yycrank+0, 0, yyvstop+538, -yycrank+144, yysvec+52, yyvstop+540, -yycrank+140, 0, 0, -yycrank+3595, yysvec+21, yyvstop+542, -yycrank+3491, yysvec+21, yyvstop+544, -yycrank+3605, yysvec+21, yyvstop+547, -yycrank+3540, yysvec+21, yyvstop+549, -yycrank+0, 0, yyvstop+552, -yycrank+151, yysvec+52, yyvstop+554, -yycrank+163, 0, 0, -yycrank+3636, yysvec+21, yyvstop+556, -yycrank+3550, yysvec+21, yyvstop+558, -yycrank+154, yysvec+52, yyvstop+561, -yycrank+138, 0, 0, -yycrank+3615, yysvec+21, yyvstop+563, -yycrank+175, yysvec+52, yyvstop+565, -yycrank+168, 0, 0, -yycrank+3646, yysvec+21, yyvstop+567, -yycrank+0, 0, yyvstop+569, -yycrank+159, 0, 0, -yycrank+3666, yysvec+21, yyvstop+571, -yycrank+162, 0, 0, -yycrank+3676, yysvec+21, yyvstop+573, -yycrank+158, 0, 0, -yycrank+3686, yysvec+21, yyvstop+575, -yycrank+158, 0, 0, -yycrank+3707, yysvec+21, yyvstop+577, -yycrank+205, 0, 0, -yycrank+3722, yysvec+21, yyvstop+579, -yycrank+194, 0, 0, -yycrank+3744, yysvec+21, yyvstop+581, -yycrank+189, 0, 0, -yycrank+3754, yysvec+21, yyvstop+583, -yycrank+215, 0, 0, -yycrank+3764, yysvec+21, yyvstop+585, -yycrank+0, 0, yyvstop+587, -0, 0, 0}; -struct yywork *yytop = yycrank+3838; -struct yysvf *yybgin = yysvec+1; -char yymatch[] = { - 0, 1, 1, 1, 1, 1, 1, 1, - 1, 9, 10, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 9, 1, 1, 1, 1, 1, 1, 39, - 40, 40, 1, 1, 44, 45, 44, 1, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 40, 40, 1, 40, 1, 44, - 1, 65, 65, 65, 65, 65, 65, 65, - 65, 65, 65, 65, 65, 65, 65, 65, - 65, 65, 65, 65, 65, 65, 65, 65, - 65, 65, 65, 1, 44, 1, 1, 95, - 1, 95, 95, 95, 95, 95, 95, 95, - 95, 95, 95, 95, 95, 95, 95, 95, - 95, 95, 95, 95, 95, 95, 95, 95, - 95, 95, 95, 1, 45, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, -0}; -char yyextra[] = { -0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0, -0}; -/* Copyright (c) 1989 AT&T */ -/* All Rights Reserved */ - -/* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T */ -/* The copyright notice above does not evidence any */ -/* actual or intended publication of such source code. */ - -int yylineno =1; -# define YYU(x) x -# define NLSTATE yyprevious=YYNEWLINE -struct yysvf *yylstate [YYLMAX], **yylsp, **yyolsp; -char yysbuf[YYLMAX]; -char *yysptr = yysbuf; -int *yyfnd; -extern struct yysvf *yyestate; -int yyprevious = YYNEWLINE; -#if defined(__cplusplus) || defined(__STDC__) -int yylook(void) -#else -yylook() -#endif -{ - register struct yysvf *yystate, **lsp; - register struct yywork *yyt; - struct yysvf *yyz; - int yych, yyfirst; - struct yywork *yyr; -# ifdef LEXDEBUG - int debug; -# endif - char *yylastch; - /* start off machines */ -# ifdef LEXDEBUG - debug = 0; -# endif - yyfirst=1; - if (!yymorfg) - yylastch = yytext; - else { - yymorfg=0; - yylastch = yytext+yyleng; - } - for(;;){ - lsp = yylstate; - yyestate = yystate = yybgin; - if (yyprevious==YYNEWLINE) yystate++; - for (;;){ -# ifdef LEXDEBUG - if(debug)fprintf(yyout,"state %d\n",yystate-yysvec-1); -# endif - yyt = yystate->yystoff; - if(yyt == yycrank && !yyfirst){ /* may not be any transitions */ - yyz = yystate->yyother; - if(yyz == 0)break; - if(yyz->yystoff == yycrank)break; - } -#ifndef __cplusplus - *yylastch++ = yych = input(); -#else - *yylastch++ = yych = lex_input(); -#endif -#ifdef YYISARRAY - if(yylastch > &yytext[YYLMAX]) { - fprintf(yyout,"Input string too long, limit %d\n",YYLMAX); - exit(1); - } -#else - if (yylastch >= &yytext[ yytextsz ]) { - int x = yylastch - yytext; - - yytextsz += YYTEXTSZINC; - if (yytext == yy_tbuf) { - yytext = (char *) malloc(yytextsz); - memcpy(yytext, yy_tbuf, sizeof (yy_tbuf)); - } - else - yytext = (char *) realloc(yytext, yytextsz); - if (!yytext) { - fprintf(yyout, - "Cannot realloc yytext\n"); - exit(1); - } - yylastch = yytext + x; - } -#endif - yyfirst=0; - tryagain: -# ifdef LEXDEBUG - if(debug){ - fprintf(yyout,"char "); - allprint(yych); - putchar('\n'); - } -# endif - yyr = yyt; - if ( (intptr_t)yyt > (intptr_t)yycrank){ - yyt = yyr + yych; - if (yyt <= yytop && yyt->verify+yysvec == yystate){ - if(yyt->advance+yysvec == YYLERR) /* error transitions */ - {unput(*--yylastch);break;} - *lsp++ = yystate = yyt->advance+yysvec; - if(lsp > &yylstate[YYLMAX]) { - fprintf(yyout,"Input string too long, limit %d\n",YYLMAX); - exit(1); - } - goto contin; - } - } -# ifdef YYOPTIM - else if((intptr_t)yyt < (intptr_t)yycrank) { /* r < yycrank */ - yyt = yyr = yycrank+(yycrank-yyt); -# ifdef LEXDEBUG - if(debug)fprintf(yyout,"compressed state\n"); -# endif - yyt = yyt + yych; - if(yyt <= yytop && yyt->verify+yysvec == yystate){ - if(yyt->advance+yysvec == YYLERR) /* error transitions */ - {unput(*--yylastch);break;} - *lsp++ = yystate = yyt->advance+yysvec; - if(lsp > &yylstate[YYLMAX]) { - fprintf(yyout,"Input string too long, limit %d\n",YYLMAX); - exit(1); - } - goto contin; - } - yyt = yyr + YYU(yymatch[yych]); -# ifdef LEXDEBUG - if(debug){ - fprintf(yyout,"try fall back character "); - allprint(YYU(yymatch[yych])); - putchar('\n'); - } -# endif - if(yyt <= yytop && yyt->verify+yysvec == yystate){ - if(yyt->advance+yysvec == YYLERR) /* error transition */ - {unput(*--yylastch);break;} - *lsp++ = yystate = yyt->advance+yysvec; - if(lsp > &yylstate[YYLMAX]) { - fprintf(yyout,"Input string too long, limit %d\n",YYLMAX); - exit(1); - } - goto contin; - } - } - if ((yystate = yystate->yyother) && (yyt= yystate->yystoff) != yycrank){ -# ifdef LEXDEBUG - if(debug)fprintf(yyout,"fall back to state %d\n",yystate-yysvec-1); -# endif - goto tryagain; - } -# endif - else - {unput(*--yylastch);break;} - contin: -# ifdef LEXDEBUG - if(debug){ - fprintf(yyout,"state %d char ",yystate-yysvec-1); - allprint(yych); - putchar('\n'); - } -# endif - ; - } -# ifdef LEXDEBUG - if(debug){ - fprintf(yyout,"stopped at %d with ",*(lsp-1)-yysvec-1); - allprint(yych); - putchar('\n'); - } -# endif - while (lsp-- > yylstate){ - *yylastch-- = 0; - if (*lsp != 0 && (yyfnd= (*lsp)->yystops) && *yyfnd > 0){ - yyolsp = lsp; - if(yyextra[*yyfnd]){ /* must backup */ - while(yyback((*lsp)->yystops,-*yyfnd) != 1 && lsp > yylstate){ - lsp--; - unput(*yylastch--); - } - } - yyprevious = YYU(*yylastch); - yylsp = lsp; - yyleng = yylastch-yytext+1; - yytext[yyleng] = 0; -# ifdef LEXDEBUG - if(debug){ - fprintf(yyout,"\nmatch "); - sprint(yytext); - fprintf(yyout," action %d\n",*yyfnd); - } -# endif - return(*yyfnd++); - } - unput(*yylastch); - } - if (yytext[0] == 0 /* && feof(yyin) */) - { - yysptr=yysbuf; - return(0); - } -#ifndef __cplusplus - yyprevious = yytext[0] = input(); - if (yyprevious>0) - output(yyprevious); -#else - yyprevious = yytext[0] = lex_input(); - if (yyprevious>0) - lex_output(yyprevious); -#endif - yylastch=yytext; -# ifdef LEXDEBUG - if(debug)putchar('\n'); -# endif - } - } -#if defined(__cplusplus) || defined(__STDC__) -int yyback(int *p, int m) -#else -yyback(p, m) - int *p; -#endif -{ - if (p==0) return(0); - while (*p) { - if (*p++ == m) - return(1); - } - return(0); -} - /* the following are only used in the lex library */ -#if defined(__cplusplus) || defined(__STDC__) -int yyinput(void) -#else -yyinput() -#endif -{ -#ifndef __cplusplus - return(input()); -#else - return(lex_input()); -#endif - } -#if defined(__cplusplus) || defined(__STDC__) -void yyoutput(int c) -#else -yyoutput(c) - int c; -#endif -{ -#ifndef __cplusplus - output(c); -#else - lex_output(c); -#endif - } -#if defined(__cplusplus) || defined(__STDC__) -void yyunput(int c) -#else -yyunput(c) - int c; -#endif -{ - unput(c); - } - -#ifdef _MSC_VER -#pragma warning(pop) -#endif diff --git a/src/ExpToCasExe/exptocas.h b/src/ExpToCasExe/exptocas.h deleted file mode 100644 index 26d783fb8d..0000000000 --- a/src/ExpToCasExe/exptocas.h +++ /dev/null @@ -1,117 +0,0 @@ -// Created: Mon Nov 1 12:50:27 1999 -// Author: Andrey BETENEV -// Copyright (c) 1999-2020 OPEN CASCADE SAS -// -// This file is part of Open CASCADE Technology software library. -// -// This library is free software; you can redistribute it and/or modify it under -// the terms of the GNU Lesser General Public License version 2.1 as published -// by the Free Software Foundation, with special exception defined in the file -// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT -// distribution for complete text of the license and disclaimer of any warranty. -// -// Alternatively, this file may be used under the terms of Open CASCADE -// commercial license or contractual agreement. - -#ifndef EXPCAS_H -#define EXPCAS_H - -#include - -#define EC_VERSION "2.0" - -struct ec_schema { /* definition of schema */ - char *name; /* name */ - struct ec_item *items; /* list of items */ - int num; /* total amount of items */ - struct ec_item **array;/* array of items (indexed view of list) */ -}; - -enum ecitem { /* kind of schema item */ - ECIT_ENUM, /* TYPE ENUMERATION */ - ECIT_SEL, /* TYPE SELECT */ - ECIT_ALIAS, /* TYPE as alias */ - ECIT_ENT /* ENTITY */ -}; - -struct ec_item { /* definition of schema item */ - char *name; /* item (class) name */ - char *package; /* package name */ - enum ecitem kind; /* kind of item */ - struct ec_type *alias; /* aliased type for ALIAS */ - struct ec_tlist *types;/* supertypes for ENTITY and list for SELECT and ENUMERATION */ - struct ec_field *field;/* fields for ENTITY */ - struct ec_item *next; /* pointer to next item */ -}; - -struct ec_tlist { /* list of (type) names, for TYPE SELECT & ENUMERATION */ - char *name; - struct ec_tlist *next; -}; - -enum ectype { /* Types: */ - ECTYP_INT, /* predefined type INTEGER */ - ECTYP_NUM, /* predefined type NUMBER */ - ECTYP_DBL, /* predefined type REAL */ - ECTYP_STR, /* predefined type STRING */ - ECTYP_LOG, /* predefined type LOGICAL */ - ECTYP_BOOL, /* predefined type BOOLEAN */ - ECTYP_NAME, /* named type (name of item in schema) */ - ECTYP_LIST, /* LIST [] complex type */ - ECTYP_ARR, /* ARRAY [] complex type */ - ECTYP_SET, /* SET [] complex type */ - ECTYP_BAG /* BAG [] complex type */ -}; - -struct ec_type { /* identification of type, either simple or complex */ - enum ectype kind; /* kind of the type */ - char *name; /* name for named type */ - int index[2]; /* start and end indices (or -1 if not defined) for complex types */ - struct ec_type *elem; /* type of complex type elements */ -}; - -struct ec_field { /* field of ENTITY item */ - char *name; /* field name */ - struct ec_type *type; /* field type */ - int optional; /* flag */ - struct ec_field *next; /* pointer to next field */ -}; - -/*int yylex ( void );*/ - -#ifdef __cplusplus -extern "C" { -#endif - -extern FILE *yyin; - -int yyparse ( void ); -int yyerror ( char *str ); - -/* Functions for creating schema representation structures */ -struct ec_schema *mkschema ( char *name, struct ec_item *ilist ); -struct ec_item *mkenum ( char *name, struct ec_tlist *tlist ); -struct ec_item *mkselect ( char *name, struct ec_tlist *tlist ); -struct ec_item *mkalias ( char *name, struct ec_type *to ); -struct ec_item *mkentity ( char *name, struct ec_tlist *inherit, struct ec_field *fields ); -struct ec_tlist *mktlist ( char *name ); -struct ec_type *mktstd ( int keyword ); -struct ec_type *mktname ( char *name ); -struct ec_type *mktset ( int keyword, int ilow, int ihigh, struct ec_type *of ); -struct ec_field *mkfield ( char *name, struct ec_type *type, int optional ); - -/* Error reporting functions */ -int ec_error ( char const *s, char const *text ); -int ec_curline ( void ); - -/* Access to result of parsing */ -char *ec_schemaname ( void ); /* returns name of schema */ -int ec_nbitems ( void ); /* returns number of items in schema */ -struct ec_item *ec_getitem ( int num ); /* returns item by index */ -void ec_free ( void ); /* frees all structures */ - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/src/ExpToCasExe/exptocas.l b/src/ExpToCasExe/exptocas.l deleted file mode 100644 index 06daf7cbda..0000000000 --- a/src/ExpToCasExe/exptocas.l +++ /dev/null @@ -1,174 +0,0 @@ -%{ - -/* Created: Thu Oct 28 12:21:16 1999 -/* Author: Andrey BETENEV -/* Copyright (c) 1999-2020 OPEN CASCADE SAS -/* -/* This file is part of Open CASCADE Technology software library. -/* -/* This library is free software; you can redistribute it and/or modify it under -/* the terms of the GNU Lesser General Public License version 2.1 as published -/* by the Free Software Foundation, with special exception defined in the file -/* OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT -/* distribution for complete text of the license and disclaimer of any warranty. -/* -/* Alternatively, this file may be used under the terms of Open CASCADE -/* commercial license or contractual agreement. - -/*****************************************************************************\ - -This LEX scanner is performs lexical analysis of EXPRESS schema file -for EXPRESS -> CASCADE/XSTEP classes generator - -On the stage of lexical scanner comments (single- and multi-line), -definitions of CONSTANT, FUNCTION, RULE items and clauses WHERE, INVERSE -and DERIVE of TYPE amd ENTITY items are dismissed (ignored) - -Then, keywords such as ENTITY, SUPERTYPE, SET etc., names of items -and special symbols are identified and returned to parser (yacc) as tokens - -Also, error processing and current line number tracking functions are defined - -\*****************************************************************************/ - -/************************************/ -/* Section 1 */ -/* definitions */ - -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -#include "expparse.h" /* define tokens */ - -/* Auxiliary functions */ - -static int fun_level=0; -static int ec_linenum=1; -static int ec_state = 0; - -int yywrap(void) { return 1; } - -int ec_curline ( void ) -{ - return ec_linenum; -} - -int ec_error ( char const *s, char const *text ) -{ - printf ( "\nError at line %d: %s \"%s\"\n", ec_curline(), s, text ); - return 0; -} - -%} - -%s TYP ENT -%x COMM SKP RULE FUN - -%a 4000 -%o 6000 - -%{ - -/************************************/ -/* Section 2 */ -/* parsing rules */ -%} - -%% - -"--".* { /* Eat line comments */ } -"(*" { ec_state = YYSTATE; BEGIN(COMM); } -. { /* Eat multiline comments */ } -"*)" { BEGIN(ec_state); } - -"SCHEMA" { return yylval.num = KSCHEM; } -"END_SCHEMA" { return yylval.num = KENDS; } - -"TYPE" { BEGIN(TYP); return yylval.num = KTYP; } -"END_TYPE" { BEGIN(0); return yylval.num = KENDT; } - -"ENTITY" { BEGIN(ENT); return yylval.num = KENT; } -"END_ENTITY" { BEGIN(0); return yylval.num = KENDE; } - -"INVERSE" | -"DERIVE" | -"WHERE" { BEGIN(SKP); } -. { /* eat contents of WHERE and DERIVE subclauses of ENTITY and TYPE */ } - -"SELECT" { return yylval.num = KSEL; } -"ENUMERATION" { return yylval.num = KENUM; } -"LIST" { return yylval.num = KLIST; } -"ARRAY" { return yylval.num = KARR; } -"SET" { return yylval.num = KSET; } -"BAG" { return yylval.num = KBAG; } -"OF" { return yylval.num = KOF; } - -"NUMBER" { return yylval.num = KNUM; } -"INTEGER" { return yylval.num = KINT; } -"REAL" { return yylval.num = KDBL; } -"STRING" { return yylval.num = KSTR; } -"LOGICAL" { return yylval.num = KLOG; } -"BOOLEAN" { return yylval.num = KBOOL; } - -"OPTIONAL" { return yylval.num = KOPT; } -"UNIQUE" { return yylval.num = KUNIQ; } -"SELF" { return yylval.num = KSELF; } - -"ABSTRACT" { return yylval.num = KABSTR; } -"SUBTYPE" { return yylval.num = KSUBT; } -"SUPERTYPE" { return yylval.num = KSPRT; } -"ANDOR" { return yylval.num = KANDOR; } -"ONEOF" { return yylval.num = K1OF; } -"AND" { return yylval.num = KAND; } - -"UR"[0-9]+ { yylval.str = strdup ( yytext ); return NAME; } - -[a-z_][a-z_0-9]* { yylval.str = strdup ( yytext ); return NAME; } - -[0-9]+ { yylval.num = atoi ( yytext ); return NUMBER; } -[,=();?:.\\]|"["|"]" { return yylval.num = yytext[0]; } - -"FUNCTION" { BEGIN(FUN); fun_level++; } -"(*" { ec_state = YYSTATE; BEGIN(COMM); /* eat comments in functions */ } -"--".* { /* Eat line comments in functions */ } -[A-Za-z_0-9]* { /* eat FUNCTIONs - skip IDs explicitly */ } -\'[^\']*\' { /* eat FUNCTIONs - skip strings explicitly */ } -. { /* eat FUNCTIONs - skip all other symbols in functions */ } -"END_FUNCTION;" { fun_level--; if ( ! fun_level ) BEGIN(0); } - -"RULE" { BEGIN(RULE); /* eat RULEs */ } -. { /* eat RULEs */ } -"END_RULE;" { BEGIN(0); } - -"CONSTANT"[ \t\na-z_0-9:=;'()|-]+"END_CONSTANT;" { /* eat CONSTANTs */ - char *s = yytext; /* but don't forget to count lines.. */ - while ( *s ) if ( *(s++) == '\n' ) ec_linenum++; - } - -[ \t]+ { /* eat spaces */ } -[A-Za-z0-9_]+ { ec_error ( "unknown keyword ", yytext ); /* put unrecognized keywords to cerr */ } -. { ec_error ( "unknown symbol ", yytext ); /* put unrecognized data to cerr */ } - -\n { ec_linenum++; /* count lines */ } - -%% - -/************************************/ -/* Section 3 */ -/* auxiliary procedures */ - -/* -int main ( void ) -{ - yylex(); -} -*/ diff --git a/src/ExpToCasExe/exptocas.lex b/src/ExpToCasExe/exptocas.lex new file mode 100644 index 0000000000..711286d4db --- /dev/null +++ b/src/ExpToCasExe/exptocas.lex @@ -0,0 +1,196 @@ +%{ + +/* Created: Thu Oct 28 12:21:16 1999 +/* Author: Andrey BETENEV +/* Copyright (c) 1999-2020 OPEN CASCADE SAS +/* +/* This file is part of Open CASCADE Technology software library. +/* +/* This library is free software; you can redistribute it and/or modify it under +/* the terms of the GNU Lesser General Public License version 2.1 as published +/* by the Free Software Foundation, with special exception defined in the file +/* OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +/* distribution for complete text of the license and disclaimer of any warranty. +/* +/* Alternatively, this file may be used under the terms of Open CASCADE +/* commercial license or contractual agreement. + +/*****************************************************************************\ + +This LEX scanner is performs lexical analysis of EXPRESS schema file +for EXPRESS -> CASCADE/XSTEP classes generator + +On the stage of lexical scanner comments (single- and multi-line), +definitions of CONSTANT, FUNCTION, RULE items and clauses WHERE, INVERSE +and DERIVE of TYPE amd ENTITY items are dismissed (ignored) + +Then, keywords such as ENTITY, SUPERTYPE, SET etc., names of items +and special symbols are identified and returned to parser (yacc) as tokens + +Also, error processing and current line number tracking functions are defined + +\*****************************************************************************/ + +/************************************/ +/* Section 1 */ +/* definitions */ + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "exptocas.tab.hxx" /* define tokens */ + +/* Auxiliary functions */ + +static int fun_level=0; +static int ec_linenum=1; +static int ec_state = 0; + +int yywrap(void) { return 1; } + +int ec_curline ( void ) +{ + return ec_linenum; +} + +int ec_error ( char *s, char *text ) +{ + printf ( "\nError at line %d: %s \"%s\"\n", ec_curline(), s, text ); + return 0; +} + +%} + +/* + c++ generate C++ parser class +*/ +%option c++ +%option noyywrap +%option yyclass="exptocas::scanner" +%option debug + +%s TYP ENT +%x COMM SKP RULE FUN + +%a 4000 +%o 6000 + +%{ + +// Tell flex which function to define +#ifdef YY_DECL +# undef YY_DECL +#endif +#define YY_DECL int exptocas::scanner::lex (exptocas::parser::semantic_type* yylval) + +typedef exptocas::parser::token token; + +/************************************/ +/* Section 2 */ +/* parsing rules */ +%} + +%% + +"--".* { /* Eat line comments */ } +"(*" { ec_state = YYSTATE; BEGIN(COMM); } +. { /* Eat multiline comments */ } +"*)" { BEGIN(ec_state); } + +"SCHEMA" { return yylval->num = token::KSCHEM; } +"END_SCHEMA" { return yylval->num = token::KENDS; } + +"TYPE" { BEGIN(TYP); return yylval->num = token::KTYP; } +"END_TYPE" { BEGIN(0); return yylval->num = token::KENDT; } + +"ENTITY" { BEGIN(ENT); return yylval->num = token::KENT; } +"END_ENTITY" { BEGIN(0); return yylval->num = token::KENDE; } + +"INVERSE" | +"DERIVE" | +"WHERE" { BEGIN(SKP); } +. { /* eat contents of WHERE and DERIVE subclauses of ENTITY and TYPE */ } + +"SELECT" { return yylval->num = token::KSEL; } +"ENUMERATION" { return yylval->num = token::KENUM; } +"LIST" { return yylval->num = token::KLIST; } +"ARRAY" { return yylval->num = token::KARR; } +"SET" { return yylval->num = token::KSET; } +"BAG" { return yylval->num = token::KBAG; } +"OF" { return yylval->num = token::KOF; } + +"NUMBER" { return yylval->num = token::KNUM; } +"INTEGER" { return yylval->num = token::KINT; } +"REAL" { return yylval->num = token::KDBL; } +"STRING" { return yylval->num = token::KSTR; } +"LOGICAL" { return yylval->num = token::KLOG; } +"BOOLEAN" { return yylval->num = token::KBOOL; } + +"OPTIONAL" { return yylval->num = token::KOPT; } +"UNIQUE" { return yylval->num = token::KUNIQ; } +"SELF" { return yylval->num = token::KSELF; } + +"ABSTRACT" { return yylval->num = token::KABSTR; } +"SUBTYPE" { return yylval->num = token::KSUBT; } +"SUPERTYPE" { return yylval->num = token::KSPRT; } +"ANDOR" { return yylval->num = token::KANDOR; } +"ONEOF" { return yylval->num = token::K1OF; } +"AND" { return yylval->num = token::KAND; } + +"UR"[0-9]+ { yylval->str = strdup ( yytext ); return token::NAME; } + +[a-z_][a-z_0-9]* { yylval->str = strdup ( yytext ); return token::NAME; } + +[0-9]+ { yylval->num = atoi ( yytext ); return token::NUMBER; } +[,=();?:.\\]|"["|"]" { return yylval->num = yytext[0]; } + +"FUNCTION" { BEGIN(FUN); fun_level++; } +"(*" { ec_state = YYSTATE; BEGIN(COMM); /* eat comments in functions */ } +"--".* { /* Eat line comments in functions */ } +[A-Za-z_0-9]* { /* eat FUNCTIONs - skip IDs explicitly */ } +\'[^\']*\' { /* eat FUNCTIONs - skip strings explicitly */ } +. { /* eat FUNCTIONs - skip all other symbols in functions */ } +"END_FUNCTION;" { fun_level--; if ( ! fun_level ) BEGIN(0); } + +"RULE" { BEGIN(RULE); /* eat RULEs */ } +. { /* eat RULEs */ } +"END_RULE;" { BEGIN(0); } + +"CONSTANT"[ \t\na-z_0-9:=;'()|-]+"END_CONSTANT;" { /* eat CONSTANTs */ + char *s = yytext; /* but don't forget to count lines.. */ + while ( *s ) if ( *(s++) == '\n' ) ec_linenum++; + } + +[ \t]+ { /* eat spaces */ } +[A-Za-z0-9_]+ { ec_error ( "unknown keyword ", yytext ); /* put unrecognized keywords to cerr */ } +. { ec_error ( "unknown symbol ", yytext ); /* put unrecognized data to cerr */ } + +\n { ec_linenum++; /* count lines */ } + +%% + +/************************************/ +/* Section 3 */ +/* auxiliary procedures */ + +exptocas::scanner::scanner(std::istream* in, std::ostream* out) + : exptocasFlexLexer(in, out) +{ +} + +/* +int main ( void ) +{ + yylex(); +} +*/ + diff --git a/src/ExpToCasExe/exptocas.tab.cxx b/src/ExpToCasExe/exptocas.tab.cxx new file mode 100644 index 0000000000..8238f35a24 --- /dev/null +++ b/src/ExpToCasExe/exptocas.tab.cxx @@ -0,0 +1,1573 @@ +// A Bison parser, made by GNU Bison 3.7.1. + +// Skeleton implementation for Bison LALR(1) parsers in C++ + +// Copyright (C) 2002-2015, 2018-2020 Free Software Foundation, Inc. + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +// As a special exception, you may create a larger work that contains +// part or all of the Bison parser skeleton and distribute that work +// under terms of your choice, so long as that work isn't itself a +// parser generator using the skeleton or a modified version thereof +// as a parser skeleton. Alternatively, if you modify or redistribute +// the parser skeleton itself, you may (at your option) remove this +// special exception, which will cause the skeleton and the resulting +// Bison output files to be licensed under the GNU General Public +// License without this special exception. + +// This special exception was added by the Free Software Foundation in +// version 2.2 of Bison. + +// DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual, +// especially those whose name start with YY_ or yy_. They are +// private implementation details that can be changed or removed. + + +// Take the name prefix into account. +#define yylex exptocaslex + +// First part of user prologue. + + +/* Created: Thu Oct 28 12:21:16 1999 +/* Author: Andrey BETENEV +/* Copyright (c) 1999-2020 OPEN CASCADE SAS +/* +/* This file is part of Open CASCADE Technology software library. +/* +/* This library is free software; you can redistribute it and/or modify it under +/* the terms of the GNU Lesser General Public License version 2.1 as published +/* by the Free Software Foundation, with special exception defined in the file +/* OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +/* distribution for complete text of the license and disclaimer of any warranty. +/* +/* Alternatively, this file may be used under the terms of Open CASCADE +/* commercial license or contractual agreement. + +/*****************************************************************************\ + +This YACC parser implements parsing algorithm for EXPRESS -> CASCADE/XSTEP +classes generator + +Input in the form of tokens is obtained from lexical analyser. Then, data +structure representing schema is created on the basis of grammar analysis. + +NOTE: The grammar currently implemented is not full. +FUNCTION, RULE and CONSTANT items, WHERE, INVERSE and DERIVE clauses +of TYPE and ENTITY items are not considered (ignored on the level of lexical +scanner). +SUPERTYPE and UNIQUE clauses of ENTITY item are recognized but ignored. +Also, complex constructs such as using call to function in dimensions of +complex time or redefinition of inherited field are ignored. + +\*****************************************************************************/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/************************************************/ +/* ERROR MESSAGE FUNCTION */ + +/* external functions (from exptocas.l) */ +int ec_error ( char *s, char *text ); +int ec_curline ( void ); + +//int yyerror ( char *s ) +//{ +// printf ( "\nParse error at line %d: %s\n", ec_curline(), s ); +// return 0; +//} + +/************************************************/ +/* FUNCTIONS FOR CREATING SCHEMA REPRESENTATION */ + +static Express_Schema *mkschema ( char *name, Express_HSequenceOfItem *ilist ); +static Express_HSequenceOfItem *mkilist ( Express_Item *item, Express_HSequenceOfItem *seq ); +static Express_Item *mkenum ( char *name, TColStd_HSequenceOfHAsciiString *tlist ); +static Express_Item *mkselect ( char *name, TColStd_HSequenceOfHAsciiString *tlist ); +static Express_Item *mkalias ( char *name, Express_Type *type ); +static Express_Item *mkentity ( char *name, TColStd_HSequenceOfHAsciiString *inherit, + Express_HSequenceOfField *field, int isabstract ); +static Express_Reference *mkrefs ( char *name, TColStd_HSequenceOfHAsciiString *items); +static TColStd_HSequenceOfHAsciiString *mktlist ( char *name, TColStd_HSequenceOfHAsciiString *tlist ); +static TColStd_HSequenceOfHAsciiString *mktlists ( TColStd_HSequenceOfHAsciiString *tlist1, TColStd_HSequenceOfHAsciiString *tlist2 ); +static Express_Type *mktstd ( int keyword ); +static Express_Type *mktname ( char *name ); +static Express_Type *mktset ( int keyword, int ilow, int ihigh, Express_Type *of ); +static Express_Field *mkfield ( char *name, Express_Type *type, int optional ); +static Express_HSequenceOfField *mkflist ( Express_Field *field, Express_HSequenceOfField *seq ); + + + + +#include "exptocas.tab.hxx" + + +// Unqualified %code blocks. + +#undef yylex +#define yylex scanner->lex + + + +#ifndef YY_ +# if defined YYENABLE_NLS && YYENABLE_NLS +# if ENABLE_NLS +# include // FIXME: INFRINGES ON USER NAME SPACE. +# define YY_(msgid) dgettext ("bison-runtime", msgid) +# endif +# endif +# ifndef YY_ +# define YY_(msgid) msgid +# endif +#endif + + +// Whether we are compiled with exception support. +#ifndef YY_EXCEPTIONS +# if defined __GNUC__ && !defined __EXCEPTIONS +# define YY_EXCEPTIONS 0 +# else +# define YY_EXCEPTIONS 1 +# endif +#endif + + + +// Enable debugging if requested. +#if YYDEBUG + +// A pseudo ostream that takes yydebug_ into account. +# define YYCDEBUG if (yydebug_) (*yycdebug_) + +# define YY_SYMBOL_PRINT(Title, Symbol) \ + do { \ + if (yydebug_) \ + { \ + *yycdebug_ << Title << ' '; \ + yy_print_ (*yycdebug_, Symbol); \ + *yycdebug_ << '\n'; \ + } \ + } while (false) + +# define YY_REDUCE_PRINT(Rule) \ + do { \ + if (yydebug_) \ + yy_reduce_print_ (Rule); \ + } while (false) + +# define YY_STACK_PRINT() \ + do { \ + if (yydebug_) \ + yy_stack_print_ (); \ + } while (false) + +#else // !YYDEBUG + +# define YYCDEBUG if (false) std::cerr +# define YY_SYMBOL_PRINT(Title, Symbol) YYUSE (Symbol) +# define YY_REDUCE_PRINT(Rule) static_cast (0) +# define YY_STACK_PRINT() static_cast (0) + +#endif // !YYDEBUG + +#define yyerrok (yyerrstatus_ = 0) +#define yyclearin (yyla.clear ()) + +#define YYACCEPT goto yyacceptlab +#define YYABORT goto yyabortlab +#define YYERROR goto yyerrorlab +#define YYRECOVERING() (!!yyerrstatus_) + +namespace exptocas { + + /// Build a parser object. + parser::parser (exptocas::scanner* scanner_yyarg) +#if YYDEBUG + : yydebug_ (false), + yycdebug_ (&std::cerr), +#else + : +#endif + scanner (scanner_yyarg) + {} + + parser::~parser () + {} + + parser::syntax_error::~syntax_error () YY_NOEXCEPT YY_NOTHROW + {} + + /*---------------. + | symbol kinds. | + `---------------*/ + + // basic_symbol. + template + parser::basic_symbol::basic_symbol (const basic_symbol& that) + : Base (that) + , value (that.value) + {} + + + /// Constructor for valueless symbols. + template + parser::basic_symbol::basic_symbol (typename Base::kind_type t) + : Base (t) + , value () + {} + + template + parser::basic_symbol::basic_symbol (typename Base::kind_type t, YY_RVREF (semantic_type) v) + : Base (t) + , value (YY_MOVE (v)) + {} + + template + parser::symbol_kind_type + parser::basic_symbol::type_get () const YY_NOEXCEPT + { + return this->kind (); + } + + template + bool + parser::basic_symbol::empty () const YY_NOEXCEPT + { + return this->kind () == symbol_kind::S_YYEMPTY; + } + + template + void + parser::basic_symbol::move (basic_symbol& s) + { + super_type::move (s); + value = YY_MOVE (s.value); + } + + // by_kind. + parser::by_kind::by_kind () + : kind_ (symbol_kind::S_YYEMPTY) + {} + +#if 201103L <= YY_CPLUSPLUS + parser::by_kind::by_kind (by_kind&& that) + : kind_ (that.kind_) + { + that.clear (); + } +#endif + + parser::by_kind::by_kind (const by_kind& that) + : kind_ (that.kind_) + {} + + parser::by_kind::by_kind (token_kind_type t) + : kind_ (yytranslate_ (t)) + {} + + void + parser::by_kind::clear () + { + kind_ = symbol_kind::S_YYEMPTY; + } + + void + parser::by_kind::move (by_kind& that) + { + kind_ = that.kind_; + that.clear (); + } + + parser::symbol_kind_type + parser::by_kind::kind () const YY_NOEXCEPT + { + return kind_; + } + + parser::symbol_kind_type + parser::by_kind::type_get () const YY_NOEXCEPT + { + return this->kind (); + } + + + // by_state. + parser::by_state::by_state () YY_NOEXCEPT + : state (empty_state) + {} + + parser::by_state::by_state (const by_state& that) YY_NOEXCEPT + : state (that.state) + {} + + void + parser::by_state::clear () YY_NOEXCEPT + { + state = empty_state; + } + + void + parser::by_state::move (by_state& that) + { + state = that.state; + that.clear (); + } + + parser::by_state::by_state (state_type s) YY_NOEXCEPT + : state (s) + {} + + parser::symbol_kind_type + parser::by_state::kind () const YY_NOEXCEPT + { + if (state == empty_state) + return symbol_kind::S_YYEMPTY; + else + return YY_CAST (symbol_kind_type, yystos_[+state]); + } + + parser::stack_symbol_type::stack_symbol_type () + {} + + parser::stack_symbol_type::stack_symbol_type (YY_RVREF (stack_symbol_type) that) + : super_type (YY_MOVE (that.state), YY_MOVE (that.value)) + { +#if 201103L <= YY_CPLUSPLUS + // that is emptied. + that.state = empty_state; +#endif + } + + parser::stack_symbol_type::stack_symbol_type (state_type s, YY_MOVE_REF (symbol_type) that) + : super_type (s, YY_MOVE (that.value)) + { + // that is emptied. + that.kind_ = symbol_kind::S_YYEMPTY; + } + +#if YY_CPLUSPLUS < 201103L + parser::stack_symbol_type& + parser::stack_symbol_type::operator= (const stack_symbol_type& that) + { + state = that.state; + value = that.value; + return *this; + } + + parser::stack_symbol_type& + parser::stack_symbol_type::operator= (stack_symbol_type& that) + { + state = that.state; + value = that.value; + // that is emptied. + that.state = empty_state; + return *this; + } +#endif + + template + void + parser::yy_destroy_ (const char* yymsg, basic_symbol& yysym) const + { + if (yymsg) + YY_SYMBOL_PRINT (yymsg, yysym); + + // User destructor. + YYUSE (yysym.kind ()); + } + +#if YYDEBUG + template + void + parser::yy_print_ (std::ostream& yyo, const basic_symbol& yysym) const + { + std::ostream& yyoutput = yyo; + YYUSE (yyoutput); + if (yysym.empty ()) + yyo << "empty symbol"; + else + { + symbol_kind_type yykind = yysym.kind (); + yyo << (yykind < YYNTOKENS ? "token" : "nterm") + << ' ' << yysym.name () << " ("; + YYUSE (yykind); + yyo << ')'; + } + } +#endif + + void + parser::yypush_ (const char* m, YY_MOVE_REF (stack_symbol_type) sym) + { + if (m) + YY_SYMBOL_PRINT (m, sym); + yystack_.push (YY_MOVE (sym)); + } + + void + parser::yypush_ (const char* m, state_type s, YY_MOVE_REF (symbol_type) sym) + { +#if 201103L <= YY_CPLUSPLUS + yypush_ (m, stack_symbol_type (s, std::move (sym))); +#else + stack_symbol_type ss (s, sym); + yypush_ (m, ss); +#endif + } + + void + parser::yypop_ (int n) + { + yystack_.pop (n); + } + +#if YYDEBUG + std::ostream& + parser::debug_stream () const + { + return *yycdebug_; + } + + void + parser::set_debug_stream (std::ostream& o) + { + yycdebug_ = &o; + } + + + parser::debug_level_type + parser::debug_level () const + { + return yydebug_; + } + + void + parser::set_debug_level (debug_level_type l) + { + yydebug_ = l; + } +#endif // YYDEBUG + + parser::state_type + parser::yy_lr_goto_state_ (state_type yystate, int yysym) + { + int yyr = yypgoto_[yysym - YYNTOKENS] + yystate; + if (0 <= yyr && yyr <= yylast_ && yycheck_[yyr] == yystate) + return yytable_[yyr]; + else + return yydefgoto_[yysym - YYNTOKENS]; + } + + bool + parser::yy_pact_value_is_default_ (int yyvalue) + { + return yyvalue == yypact_ninf_; + } + + bool + parser::yy_table_value_is_error_ (int yyvalue) + { + return yyvalue == yytable_ninf_; + } + + int + parser::operator() () + { + return parse (); + } + + int + parser::parse () + { + int yyn; + /// Length of the RHS of the rule being reduced. + int yylen = 0; + + // Error handling. + int yynerrs_ = 0; + int yyerrstatus_ = 0; + + /// The lookahead symbol. + symbol_type yyla; + + /// The return value of parse (). + int yyresult; + +#if YY_EXCEPTIONS + try +#endif // YY_EXCEPTIONS + { + YYCDEBUG << "Starting parse\n"; + + + /* Initialize the stack. The initial state will be set in + yynewstate, since the latter expects the semantical and the + location values to have been already stored, initialize these + stacks with a primary value. */ + yystack_.clear (); + yypush_ (YY_NULLPTR, 0, YY_MOVE (yyla)); + + /*-----------------------------------------------. + | yynewstate -- push a new symbol on the stack. | + `-----------------------------------------------*/ + yynewstate: + YYCDEBUG << "Entering state " << int (yystack_[0].state) << '\n'; + YY_STACK_PRINT (); + + // Accept? + if (yystack_[0].state == yyfinal_) + YYACCEPT; + + goto yybackup; + + + /*-----------. + | yybackup. | + `-----------*/ + yybackup: + // Try to take a decision without lookahead. + yyn = yypact_[+yystack_[0].state]; + if (yy_pact_value_is_default_ (yyn)) + goto yydefault; + + // Read a lookahead token. + if (yyla.empty ()) + { + YYCDEBUG << "Reading a token\n"; +#if YY_EXCEPTIONS + try +#endif // YY_EXCEPTIONS + { + yyla.kind_ = yytranslate_ (yylex (&yyla.value)); + } +#if YY_EXCEPTIONS + catch (const syntax_error& yyexc) + { + YYCDEBUG << "Caught exception: " << yyexc.what() << '\n'; + error (yyexc); + goto yyerrlab1; + } +#endif // YY_EXCEPTIONS + } + YY_SYMBOL_PRINT ("Next token is", yyla); + + if (yyla.kind () == symbol_kind::S_YYerror) + { + // The scanner already issued an error message, process directly + // to error recovery. But do not keep the error token as + // lookahead, it is too special and may lead us to an endless + // loop in error recovery. */ + yyla.kind_ = symbol_kind::S_YYUNDEF; + goto yyerrlab1; + } + + /* If the proper action on seeing token YYLA.TYPE is to reduce or + to detect an error, take that action. */ + yyn += yyla.kind (); + if (yyn < 0 || yylast_ < yyn || yycheck_[yyn] != yyla.kind ()) + { + goto yydefault; + } + + // Reduce or error. + yyn = yytable_[yyn]; + if (yyn <= 0) + { + if (yy_table_value_is_error_ (yyn)) + goto yyerrlab; + yyn = -yyn; + goto yyreduce; + } + + // Count tokens shifted since error; after three, turn off error status. + if (yyerrstatus_) + --yyerrstatus_; + + // Shift the lookahead token. + yypush_ ("Shifting", state_type (yyn), YY_MOVE (yyla)); + goto yynewstate; + + + /*-----------------------------------------------------------. + | yydefault -- do the default action for the current state. | + `-----------------------------------------------------------*/ + yydefault: + yyn = yydefact_[+yystack_[0].state]; + if (yyn == 0) + goto yyerrlab; + goto yyreduce; + + + /*-----------------------------. + | yyreduce -- do a reduction. | + `-----------------------------*/ + yyreduce: + yylen = yyr2_[yyn]; + { + stack_symbol_type yylhs; + yylhs.state = yy_lr_goto_state_ (yystack_[yylen].state, yyr1_[yyn]); + /* If YYLEN is nonzero, implement the default value of the + action: '$$ = $1'. Otherwise, use the top of the stack. + + Otherwise, the following line sets YYLHS.VALUE to garbage. + This behavior is undocumented and Bison users should not rely + upon it. */ + if (yylen) + yylhs.value = yystack_[yylen - 1].value; + else + yylhs.value = yystack_[0].value; + + + // Perform the reduction. + YY_REDUCE_PRINT (yyn); +#if YY_EXCEPTIONS + try +#endif // YY_EXCEPTIONS + { + switch (yyn) + { + case 2: // SCHEMA: KSCHEM NAME ';' ILIST KENDS ';' + { (yylhs.value.schema) = mkschema ( (yystack_[4].value.str), (yystack_[2].value.ilist) ); /* Root: EXPRESS schema */ } + break; + + case 3: // ILIST: ITEM + { (yylhs.value.ilist) = mkilist ( (yystack_[0].value.item), 0 ); /* list of items for schema */ } + break; + + case 4: // ILIST: ITEM ILIST + { (yylhs.value.ilist) = mkilist ( (yystack_[1].value.item), (yystack_[0].value.ilist) ); } + break; + + case 5: // ITEM: ENUM + { (yylhs.value.item) = (yystack_[0].value.item); } + break; + + case 6: // ITEM: SELECT + { (yylhs.value.item) = (yystack_[0].value.item); } + break; + + case 7: // ITEM: ALIAS + { (yylhs.value.item) = (yystack_[0].value.item); } + break; + + case 8: // ITEM: ENTITY + { (yylhs.value.item) = (yystack_[0].value.item); /* item of schema (type definition) */ } + break; + + case 9: // ENUM: KTYP NAME '=' KENUM KOF TLIST1 ';' KENDT ';' + { (yylhs.value.item) = mkenum ( (yystack_[7].value.str), (yystack_[3].value.tlist) ); /* TYPE ENUMERATION definition */ } + break; + + case 10: // SELECT: KTYP NAME '=' KSEL TLIST1 ';' KENDT ';' + { (yylhs.value.item) = mkselect ( (yystack_[6].value.str), (yystack_[3].value.tlist) ); /* TYPE SELECT definition */ } + break; + + case 11: // ALIAS: KTYP NAME '=' TYPE ';' KENDT ';' + { (yylhs.value.item) = mkalias ( (yystack_[5].value.str), (yystack_[3].value.type) ); /* TYPE '=' definition (alias) */ } + break; + + case 12: // ENTITY: KENT NAME SUPERT SUBT ';' FLIST1 UNIQUE KENDE ';' + { (yylhs.value.item) = mkentity ( (yystack_[7].value.str), (yystack_[5].value.tlist), (yystack_[3].value.flist), 0 ); /* ENTITY definition */ } + break; + + case 13: // ENTITY: KENT NAME KABSTR SUPERT SUBT ';' FLIST1 UNIQUE KENDE ';' + { (yylhs.value.item) = mkentity ( (yystack_[8].value.str), (yystack_[5].value.tlist), (yystack_[3].value.flist), 1 ); /* ENTITY definition */ } + break; + + case 14: // TLIST: NAME + { (yylhs.value.tlist) = mktlist ( (yystack_[0].value.str), 0 ); /* list of (type) names */ } + break; + + case 15: // TLIST: NAME ',' TLIST + { (yylhs.value.tlist) = mktlist ( (yystack_[2].value.str), (yystack_[0].value.tlist) ); } + break; + + case 16: // TLIST1: '(' TLIST ')' + { (yylhs.value.tlist) = (yystack_[1].value.tlist); /* TLIST in brackets */ } + break; + + case 17: // TYPE: TSTD + { (yylhs.value.type) = (yystack_[0].value.type); } + break; + + case 18: // TYPE: TNAME + { (yylhs.value.type) = (yystack_[0].value.type); } + break; + + case 19: // TYPE: TSET + { (yylhs.value.type) = (yystack_[0].value.type); /* type, simple or complex */ } + break; + + case 20: // TSTD: KINT + { (yylhs.value.type) = mktstd ( (yystack_[0].value.num) ); /* predefined type: INTEGER */ } + break; + + case 21: // TSTD: KNUM + { (yylhs.value.type) = mktstd ( (yystack_[0].value.num) ); /* predefined type: NUMBER */ } + break; + + case 22: // TSTD: KDBL + { (yylhs.value.type) = mktstd ( (yystack_[0].value.num) ); /* predefined type: REAL */ } + break; + + case 23: // TSTD: KSTR + { (yylhs.value.type) = mktstd ( (yystack_[0].value.num) ); /* predefined type: STRING */ } + break; + + case 24: // TSTD: KLOG + { (yylhs.value.type) = mktstd ( (yystack_[0].value.num) ); /* predefined type: LOGICAL */ } + break; + + case 25: // TSTD: KBOOL + { (yylhs.value.type) = mktstd ( (yystack_[0].value.num) ); /* predefined type: BOOLEAN */ } + break; + + case 26: // TNAME: NAME + { (yylhs.value.type) = mktname ( (yystack_[0].value.str) ); /* named type */ } + break; + + case 27: // TSET: KLIST '[' INDEX ':' INDEX ']' KOF OPTUNI TYPE + { (yylhs.value.type) = mktset ( (yystack_[8].value.num), (yystack_[6].value.num), (yystack_[4].value.num), (yystack_[0].value.type) ); /* complex type: LIST */ } + break; + + case 28: // TSET: KARR '[' INDEX ':' INDEX ']' KOF OPTUNI TYPE + { (yylhs.value.type) = mktset ( (yystack_[8].value.num), (yystack_[6].value.num), (yystack_[4].value.num), (yystack_[0].value.type) ); /* complex type: ARRAY */ } + break; + + case 29: // TSET: KSET '[' INDEX ':' INDEX ']' KOF OPTUNI TYPE + { (yylhs.value.type) = mktset ( (yystack_[8].value.num), (yystack_[6].value.num), (yystack_[4].value.num), (yystack_[0].value.type) ); /* complex type: SET */ } + break; + + case 30: // TSET: KBAG '[' INDEX ':' INDEX ']' KOF OPTUNI TYPE + { (yylhs.value.type) = mktset ( (yystack_[8].value.num), (yystack_[6].value.num), (yystack_[4].value.num), (yystack_[0].value.type) ); /* complex type: BAG */ } + break; + + case 31: // INDEX: NUMBER + { (yylhs.value.num) = (yystack_[0].value.num); /* index for array, set, bag, list range */ } + break; + + case 32: // INDEX: '?' + { (yylhs.value.num) = -1; /* undefined */ } + break; + + case 33: // INDEX: NAME '(' NAME ')' + {(yylhs.value.num) = -1; printf ( "Warning at line %d: index function %s(%s) ignored\n", ec_curline(), (yystack_[3].value.str), (yystack_[1].value.str) ); /* some function.. */ } + break; + + case 34: // OPTUNI: %empty + { (yylhs.value.num) = 0; /* UNIQUE keyword for complex type definition */ } + break; + + case 35: // OPTUNI: KUNIQ + { (yylhs.value.num) = 1; } + break; + + case 36: // SUBT: %empty + { (yylhs.value.tlist) = NULL; /* no subtype clause */ } + break; + + case 37: // SUBT: KSUBT KOF TLIST1 + { (yylhs.value.tlist) = (yystack_[0].value.tlist); /* subtype clause */ } + break; + + case 38: // SUPERT: %empty + { (yylhs.value.num) = 0; /* no supertype clause */ } + break; + + case 39: // SUPERT: KSPRT + { (yylhs.value.num) = 0; /* supertype clause (ignored) */ } + break; + + case 40: // SUPERT: KSPRT KOF SUPLST + { (yylhs.value.num) = 0; /* supertype clause (ignored) */ } + break; + + case 41: // SUPLST: NAME + { (yylhs.value.num) = 0; /* simple list of supertypes */ } + break; + + case 42: // SUPLST: '(' SUPLST ')' + { (yylhs.value.num) = 0; /* allow bracketing */ } + break; + + case 43: // SUPLST: NAME ',' SUPLST + { (yylhs.value.num) = 0; /* ... */ } + break; + + case 44: // SUPLST: K1OF SUPLST + { (yylhs.value.num) = 0; /* ONEOF construct */ } + break; + + case 45: // SUPLST: SUPLST KANDOR SUPLST + { (yylhs.value.num) = 0; /* ANDOR construct */ } + break; + + case 46: // FLIST: FIELD + { (yylhs.value.flist) = mkflist ( (yystack_[0].value.field), 0 ); /* list of fields of ENTITY item */ } + break; + + case 47: // FLIST: FIELD FLIST + { (yylhs.value.flist) = mkflist ( (yystack_[1].value.field), (yystack_[0].value.flist) ); } + break; + + case 48: // FLIST: REDEF + { (yylhs.value.flist) = 0; /* redefinition of inherited field, just skip */ } + break; + + case 49: // FLIST: REDEF FLIST + { (yylhs.value.flist) = (yystack_[0].value.flist); /* ignore redefinition of inherited field, take trailing list */ } + break; + + case 50: // FLIST1: %empty + { (yylhs.value.flist) = NULL; /* empty list of fields */ } + break; + + case 51: // FLIST1: FLIST + { (yylhs.value.flist) = (yystack_[0].value.flist); /* or not empty.. just to fix reduce/reduce conflict */ } + break; + + case 52: // FIELD: NAME ':' OPTNL TYPE ';' + { (yylhs.value.field) = mkfield ( (yystack_[4].value.str), (yystack_[1].value.type), (yystack_[2].value.num) ); } + break; + + case 53: // REDEF: KSELF '\\' SPECIF ':' TYPE ';' + { (yylhs.value.num) = NULL; printf ( "Warning at line %d: field redefinition ignored\n", ec_curline() ); /* redefinition of inherited field */ } + break; + + case 54: // SPECIF: NAME + { (yylhs.value.tlist) = mktlist ( (yystack_[0].value.str), 0 ); /* inherited field specification */ } + break; + + case 55: // SPECIF: NAME '.' SPECIF + { (yylhs.value.tlist) = mktlist ( (yystack_[2].value.str), (yystack_[0].value.tlist) ); } + break; + + case 56: // OPTNL: %empty + { (yylhs.value.num) = 0; } + break; + + case 57: // OPTNL: KOPT + { (yylhs.value.num) = 1; } + break; + + case 58: // UNIQIT: NAME ':' TLIST ';' + { (yylhs.value.tlist) = (yystack_[1].value.tlist); /* UNIQUE statement */ } + break; + + case 59: // UNIQIT: NAME ':' SPCLST ';' + { (yylhs.value.tlist) = NULL; /* UNIQUE statement */ } + break; + + case 60: // UNIQLS: UNIQIT + { (yylhs.value.tlist) = NULL; /* list of 1 UNIQUE statements */ } + break; + + case 61: // UNIQLS: UNIQIT UNIQLS + { (yylhs.value.tlist) = mktlists ( (yystack_[1].value.tlist), (yystack_[0].value.tlist) );/* list of UNIQUE statements */ } + break; + + case 62: // UNIQUE: %empty + { (yylhs.value.tlist) = NULL; /* no UNIQUE clause in ENTITY */ } + break; + + case 63: // UNIQUE: KUNIQ UNIQLS + { (yylhs.value.tlist) = (yystack_[0].value.tlist); /* UNIQUE clause in ENTITY */ } + break; + + case 64: // SPCLST: KSELF '\\' SPECIF + { (yylhs.value.num) = 0; /* list of specifications */ } + break; + + case 65: // SPCLST: KSELF '\\' SPECIF ',' SPCLST + { (yylhs.value.num) = 0; } + break; + + case 66: // SPCLST: NAME ',' SPCLST + { (yylhs.value.num) = 0; } + break; + + + + default: + break; + } + } +#if YY_EXCEPTIONS + catch (const syntax_error& yyexc) + { + YYCDEBUG << "Caught exception: " << yyexc.what() << '\n'; + error (yyexc); + YYERROR; + } +#endif // YY_EXCEPTIONS + YY_SYMBOL_PRINT ("-> $$ =", yylhs); + yypop_ (yylen); + yylen = 0; + + // Shift the result of the reduction. + yypush_ (YY_NULLPTR, YY_MOVE (yylhs)); + } + goto yynewstate; + + + /*--------------------------------------. + | yyerrlab -- here on detecting error. | + `--------------------------------------*/ + yyerrlab: + // If not already recovering from an error, report this error. + if (!yyerrstatus_) + { + ++yynerrs_; + std::string msg = YY_("syntax error"); + error (YY_MOVE (msg)); + } + + + if (yyerrstatus_ == 3) + { + /* If just tried and failed to reuse lookahead token after an + error, discard it. */ + + // Return failure if at end of input. + if (yyla.kind () == symbol_kind::S_YYEOF) + YYABORT; + else if (!yyla.empty ()) + { + yy_destroy_ ("Error: discarding", yyla); + yyla.clear (); + } + } + + // Else will try to reuse lookahead token after shifting the error token. + goto yyerrlab1; + + + /*---------------------------------------------------. + | yyerrorlab -- error raised explicitly by YYERROR. | + `---------------------------------------------------*/ + yyerrorlab: + /* Pacify compilers when the user code never invokes YYERROR and + the label yyerrorlab therefore never appears in user code. */ + if (false) + YYERROR; + + /* Do not reclaim the symbols of the rule whose action triggered + this YYERROR. */ + yypop_ (yylen); + yylen = 0; + YY_STACK_PRINT (); + goto yyerrlab1; + + + /*-------------------------------------------------------------. + | yyerrlab1 -- common code for both syntax error and YYERROR. | + `-------------------------------------------------------------*/ + yyerrlab1: + yyerrstatus_ = 3; // Each real token shifted decrements this. + // Pop stack until we find a state that shifts the error token. + for (;;) + { + yyn = yypact_[+yystack_[0].state]; + if (!yy_pact_value_is_default_ (yyn)) + { + yyn += symbol_kind::S_YYerror; + if (0 <= yyn && yyn <= yylast_ + && yycheck_[yyn] == symbol_kind::S_YYerror) + { + yyn = yytable_[yyn]; + if (0 < yyn) + break; + } + } + + // Pop the current state because it cannot handle the error token. + if (yystack_.size () == 1) + YYABORT; + + yy_destroy_ ("Error: popping", yystack_[0]); + yypop_ (); + YY_STACK_PRINT (); + } + { + stack_symbol_type error_token; + + + // Shift the error token. + error_token.state = state_type (yyn); + yypush_ ("Shifting", YY_MOVE (error_token)); + } + goto yynewstate; + + + /*-------------------------------------. + | yyacceptlab -- YYACCEPT comes here. | + `-------------------------------------*/ + yyacceptlab: + yyresult = 0; + goto yyreturn; + + + /*-----------------------------------. + | yyabortlab -- YYABORT comes here. | + `-----------------------------------*/ + yyabortlab: + yyresult = 1; + goto yyreturn; + + + /*-----------------------------------------------------. + | yyreturn -- parsing is finished, return the result. | + `-----------------------------------------------------*/ + yyreturn: + if (!yyla.empty ()) + yy_destroy_ ("Cleanup: discarding lookahead", yyla); + + /* Do not reclaim the symbols of the rule whose action triggered + this YYABORT or YYACCEPT. */ + yypop_ (yylen); + YY_STACK_PRINT (); + while (1 < yystack_.size ()) + { + yy_destroy_ ("Cleanup: popping", yystack_[0]); + yypop_ (); + } + + return yyresult; + } +#if YY_EXCEPTIONS + catch (...) + { + YYCDEBUG << "Exception caught: cleaning lookahead and stack\n"; + // Do not try to display the values of the reclaimed symbols, + // as their printers might throw an exception. + if (!yyla.empty ()) + yy_destroy_ (YY_NULLPTR, yyla); + + while (1 < yystack_.size ()) + { + yy_destroy_ (YY_NULLPTR, yystack_[0]); + yypop_ (); + } + throw; + } +#endif // YY_EXCEPTIONS + } + + void + parser::error (const syntax_error& yyexc) + { + error (yyexc.what ()); + } + +#if YYDEBUG || 0 + const char * + parser::symbol_name (symbol_kind_type yysymbol) + { + return yytname_[yysymbol]; + } +#endif // #if YYDEBUG || 0 + + + + + + const signed char parser::yypact_ninf_ = -123; + + const signed char parser::yytable_ninf_ = -1; + + const signed char + parser::yypact_[] = + { + 28, -2, 49, 23, -123, 21, 37, 38, 58, 21, + -123, -123, -123, -123, 41, 36, 43, -123, 0, 51, + 64, 54, -123, 45, 67, 47, 48, 50, 52, -123, + -123, -123, -123, -123, -123, -123, 53, -123, -123, -123, + 54, 39, 68, 55, 59, 60, 45, 24, 24, 24, + 24, 88, 61, 39, 63, 39, 65, 45, 30, 66, + 69, 93, 70, -123, 62, -123, 71, 72, 73, 74, + 75, 30, -123, 39, -6, 39, -123, 76, 77, -123, + 78, 30, 30, 59, -123, 80, 96, 83, 24, 24, + 24, 24, -123, 78, -123, -123, -123, 85, 81, 87, + 99, -123, -123, -123, -123, 86, 84, 82, 89, 90, + 91, 101, 92, 94, -123, 32, 95, 87, -123, 98, + -123, -123, 108, 109, 110, 111, 102, 85, 32, 103, + 34, -123, -123, 79, 79, 79, 79, -123, -123, 104, + -123, 97, 107, 112, 113, -123, 32, 32, 32, 32, + -123, 85, 34, -123, -123, -123, -123, -123, -123, 115, + -123, 35, 116, -123, 35 + }; + + const signed char + parser::yydefact_[] = + { + 0, 0, 0, 0, 1, 0, 0, 0, 0, 3, + 5, 6, 7, 8, 0, 38, 0, 4, 0, 38, + 39, 36, 2, 0, 0, 0, 0, 0, 0, 21, + 20, 22, 23, 24, 25, 26, 0, 17, 18, 19, + 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 41, 0, 40, 0, 50, 14, + 0, 0, 0, 31, 0, 32, 0, 0, 0, 0, + 0, 50, 44, 0, 0, 0, 37, 0, 0, 51, + 62, 46, 48, 0, 16, 0, 0, 0, 0, 0, + 0, 0, 11, 62, 43, 42, 45, 0, 56, 0, + 0, 47, 49, 15, 10, 0, 0, 0, 0, 0, + 0, 0, 54, 0, 57, 0, 0, 60, 63, 0, + 9, 33, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 61, 12, 34, 34, 34, 34, 13, 55, 0, + 52, 0, 14, 0, 0, 35, 0, 0, 0, 0, + 53, 0, 0, 58, 59, 27, 28, 30, 29, 64, + 66, 0, 0, 65, 0 + }; + + const signed char + parser::yypgoto_[] = + { + -123, -123, 120, -123, -123, -123, -123, -123, -44, -17, + -111, -123, -123, -123, -47, -60, 105, 124, -48, -72, + 100, -123, -123, -121, -123, -123, -7, 106, -122 + }; + + const short + parser::yydefgoto_[] = + { + -1, 2, 8, 9, 10, 11, 12, 13, 103, 45, + 36, 37, 38, 39, 66, 146, 43, 21, 56, 79, + 80, 81, 82, 113, 115, 117, 118, 100, 160 + }; + + const unsigned char + parser::yytable_[] = + { + 60, 67, 68, 69, 129, 72, 138, 74, 144, 101, + 102, 23, 24, 25, 26, 27, 28, 139, 29, 30, + 31, 32, 33, 34, 75, 94, 6, 96, 7, 62, + 159, 1, 3, 95, 35, 155, 156, 157, 158, 163, + 76, 107, 108, 109, 110, 25, 26, 27, 28, 4, + 29, 30, 31, 32, 33, 34, 77, 63, 64, 5, + 141, 141, 16, 19, 78, 20, 35, 65, 142, 162, + 53, 14, 15, 54, 147, 148, 149, 55, 18, 22, + 20, 41, 42, 44, 46, 57, 143, 47, 48, 51, + 49, 58, 50, 59, 70, 75, 61, 71, 73, 85, + 87, 83, 105, 99, 145, 114, 86, 119, 84, 126, + 131, 92, 88, 89, 90, 91, 104, 106, 98, 112, + 97, 116, 120, 121, 122, 133, 134, 135, 136, 17, + 0, 123, 124, 125, 132, 128, 130, 127, 137, 140, + 150, 151, 152, 40, 0, 52, 0, 0, 153, 154, + 161, 164, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 93, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 111 + }; + + const short + parser::yycheck_[] = + { + 44, 48, 49, 50, 115, 53, 127, 55, 130, 81, + 82, 11, 12, 13, 14, 15, 16, 128, 18, 19, + 20, 21, 22, 23, 30, 73, 5, 75, 7, 46, + 151, 3, 34, 39, 34, 146, 147, 148, 149, 161, + 57, 88, 89, 90, 91, 13, 14, 15, 16, 0, + 18, 19, 20, 21, 22, 23, 26, 33, 34, 36, + 26, 26, 4, 27, 34, 29, 34, 43, 34, 34, + 31, 34, 34, 34, 134, 135, 136, 38, 37, 36, + 29, 17, 28, 38, 17, 17, 130, 40, 40, 36, + 40, 36, 40, 34, 6, 30, 36, 36, 35, 6, + 38, 35, 6, 25, 25, 24, 36, 8, 39, 8, + 117, 36, 41, 41, 41, 41, 36, 34, 41, 34, + 44, 34, 36, 39, 42, 17, 17, 17, 17, 9, + -1, 42, 42, 42, 36, 41, 41, 45, 36, 36, + 36, 44, 35, 19, -1, 40, -1, -1, 36, 36, + 35, 35, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 71, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 93 + }; + + const signed char + parser::yystos_[] = + { + 0, 3, 47, 34, 0, 36, 5, 7, 48, 49, + 50, 51, 52, 53, 34, 34, 4, 48, 37, 27, + 29, 63, 36, 11, 12, 13, 14, 15, 16, 18, + 19, 20, 21, 22, 23, 34, 56, 57, 58, 59, + 63, 17, 28, 62, 38, 55, 17, 40, 40, 40, + 40, 36, 62, 31, 34, 38, 64, 17, 36, 34, + 54, 36, 55, 33, 34, 43, 60, 60, 60, 60, + 6, 36, 64, 35, 64, 30, 55, 26, 34, 65, + 66, 67, 68, 35, 39, 6, 36, 38, 41, 41, + 41, 41, 36, 66, 64, 39, 64, 44, 41, 25, + 73, 65, 65, 54, 36, 6, 34, 60, 60, 60, + 60, 73, 34, 69, 24, 70, 34, 71, 72, 8, + 36, 39, 42, 42, 42, 42, 8, 45, 41, 56, + 41, 72, 36, 17, 17, 17, 17, 36, 69, 56, + 36, 26, 34, 54, 74, 25, 61, 61, 61, 61, + 36, 44, 35, 36, 36, 56, 56, 56, 56, 69, + 74, 35, 34, 74, 35 + }; + + const signed char + parser::yyr1_[] = + { + 0, 46, 47, 48, 48, 49, 49, 49, 49, 50, + 51, 52, 53, 53, 54, 54, 55, 56, 56, 56, + 57, 57, 57, 57, 57, 57, 58, 59, 59, 59, + 59, 60, 60, 60, 61, 61, 62, 62, 63, 63, + 63, 64, 64, 64, 64, 64, 65, 65, 65, 65, + 66, 66, 67, 68, 69, 69, 70, 70, 71, 71, + 72, 72, 73, 73, 74, 74, 74 + }; + + const signed char + parser::yyr2_[] = + { + 0, 2, 6, 1, 2, 1, 1, 1, 1, 9, + 8, 7, 9, 10, 1, 3, 3, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 9, 9, 9, + 9, 1, 1, 4, 0, 1, 0, 3, 0, 1, + 3, 1, 3, 3, 2, 3, 1, 2, 1, 2, + 0, 1, 5, 6, 1, 3, 0, 1, 4, 4, + 1, 2, 0, 2, 3, 5, 3 + }; + + +#if YYDEBUG + // YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. + // First, the terminals, then, starting at \a YYNTOKENS, nonterminals. + const char* + const parser::yytname_[] = + { + "\"end of file\"", "error", "\"invalid token\"", "KSCHEM", "KENDS", + "KTYP", "KENDT", "KENT", "KENDE", "KREF", "KFROM", "KSEL", "KENUM", + "KLIST", "KARR", "KBAG", "KSET", "KOF", "KNUM", "KINT", "KDBL", "KSTR", + "KLOG", "KBOOL", "KOPT", "KUNIQ", "KSELF", "KABSTR", "KSUBT", "KSPRT", + "KANDOR", "K1OF", "KAND", "NUMBER", "NAME", "','", "';'", "'='", "'('", + "')'", "'['", "':'", "']'", "'?'", "'\\\\'", "'.'", "$accept", "SCHEMA", + "ILIST", "ITEM", "ENUM", "SELECT", "ALIAS", "ENTITY", "TLIST", "TLIST1", + "TYPE", "TSTD", "TNAME", "TSET", "INDEX", "OPTUNI", "SUBT", "SUPERT", + "SUPLST", "FLIST", "FLIST1", "FIELD", "REDEF", "SPECIF", "OPTNL", + "UNIQIT", "UNIQLS", "UNIQUE", "SPCLST", YY_NULLPTR + }; +#endif + + +#if YYDEBUG + const short + parser::yyrline_[] = + { + 0, 212, 212, 214, 215, 218, 219, 220, 221, 222, + 224, 226, 228, 229, 234, 235, 237, 240, 241, 242, + 244, 245, 246, 247, 248, 249, 251, 253, 254, 255, + 256, 258, 259, 260, 262, 263, 266, 267, 269, 270, + 271, 273, 274, 275, 276, 277, 280, 281, 282, 283, + 285, 286, 288, 290, 292, 293, 296, 297, 300, 301, + 303, 304, 306, 307, 309, 310, 311 + }; + + void + parser::yy_stack_print_ () const + { + *yycdebug_ << "Stack now"; + for (stack_type::const_iterator + i = yystack_.begin (), + i_end = yystack_.end (); + i != i_end; ++i) + *yycdebug_ << ' ' << int (i->state); + *yycdebug_ << '\n'; + } + + void + parser::yy_reduce_print_ (int yyrule) const + { + int yylno = yyrline_[yyrule]; + int yynrhs = yyr2_[yyrule]; + // Print the symbols being reduced, and their result. + *yycdebug_ << "Reducing stack by rule " << yyrule - 1 + << " (line " << yylno << "):\n"; + // The symbols being reduced. + for (int yyi = 0; yyi < yynrhs; yyi++) + YY_SYMBOL_PRINT (" $" << yyi + 1 << " =", + yystack_[(yynrhs) - (yyi + 1)]); + } +#endif // YYDEBUG + + parser::symbol_kind_type + parser::yytranslate_ (int t) + { + // YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to + // TOKEN-NUM as returned by yylex. + static + const signed char + translate_table[] = + { + 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 38, 39, 2, 2, 35, 2, 45, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 41, 36, + 2, 37, 2, 43, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 40, 44, 42, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34 + }; + // Last valid token kind. + const int code_max = 289; + + if (t <= 0) + return symbol_kind::S_YYEOF; + else if (t <= code_max) + return YY_CAST (symbol_kind_type, translate_table[t]); + else + return symbol_kind::S_YYUNDEF; + } + +} // exptocas + + + +/************************************************/ +/* FUNCTIONS FOR CREATING SCHEMA REPRESENTATION */ + +static Express_Schema *mkschema ( char *name, Express_HSequenceOfItem *ilist ) +{ + Express_Schema *sch = new Express_Schema ( name, ilist ); + Express::Schema() = sch; + return sch; +} + +static Express_HSequenceOfItem *mkilist ( Express_Item *item, Express_HSequenceOfItem *seq ) +{ + if ( ! seq ) { + seq = new Express_HSequenceOfItem; + seq->Append ( item ); + } + else seq->Prepend ( item ); + return seq; +} + +static Express_Item *mkenum ( char *name, TColStd_HSequenceOfHAsciiString *tlist ) +{ + return new Express_Enum ( name, tlist ); +} + +static Express_Item *mkselect ( char *name, TColStd_HSequenceOfHAsciiString *tlist ) +{ + return new Express_Select ( name, tlist ); +} + +static Express_Item *mkalias ( char *name, Express_Type *type ) +{ + return new Express_Alias ( name, type ); +} + +static Express_Item *mkentity ( char *name, TColStd_HSequenceOfHAsciiString *inherit, + Express_HSequenceOfField *field, int isabstract ) +{ + Express_Entity *ent = new Express_Entity ( name, inherit, field ); + if ( isabstract ) ent->SetAbstractFlag ( Standard_True ); + return ent; +} + +static Express_Reference *mkrefs ( char *name, TColStd_HSequenceOfHAsciiString *items) +{ + return new Express_Reference ( name, items ); +} + +static TColStd_HSequenceOfHAsciiString *mktlist ( char *name, TColStd_HSequenceOfHAsciiString *tlist ) +{ + Handle(TCollection_HAsciiString) str = new TCollection_HAsciiString ( name ); + if ( tlist ) tlist->Prepend ( str ); + else { + tlist = new TColStd_HSequenceOfHAsciiString; + tlist->Append ( str ); + } + return tlist; +} + +static TColStd_HSequenceOfHAsciiString *mktlists ( TColStd_HSequenceOfHAsciiString *tlist1, + TColStd_HSequenceOfHAsciiString *tlist2 ) +{ + if ( ! tlist1 ) return tlist2; + if ( ! tlist2 ) return tlist1; + for ( int i=1; i <= tlist2->Length(); i++ ) + tlist1->Append ( tlist2->Value(i) ); + return tlist1; +} + +static Express_Type *mktstd ( int keyword ) +{ + switch ( keyword ) { + case exptocas::parser::token::KINT : return new Express_Integer; + case exptocas::parser::token::KNUM : return new Express_Number; + case exptocas::parser::token::KDBL : return new Express_Real; + case exptocas::parser::token::KSTR : return new Express_String; + case exptocas::parser::token::KBOOL: return new Express_Boolean; + case exptocas::parser::token::KLOG : return new Express_Logical; + default : ec_error ( "Predefined type not treated!", "" ); + return NULL; + } +} + +static Express_Type *mktname ( char *name ) +{ + return new Express_NamedType ( name ); +} + +static Express_Type *mktset ( int keyword, int ilow, int ihigh, Express_Type *of ) +{ + switch ( keyword ) { + case exptocas::parser::token::KLIST: return new Express_List ( ilow, ihigh, of ); + case exptocas::parser::token::KARR : return new Express_Array ( ilow, ihigh, of ); + case exptocas::parser::token::KBAG : return new Express_Bag ( ilow, ihigh, of ); + case exptocas::parser::token::KSET : return new Express_Set ( ilow, ihigh, of ); + default : ec_error ( "Complex type not treated!", "" ); + return NULL; + } +} + +static Express_Field *mkfield ( char *name, Express_Type *type, int optional ) +{ + return new Express_Field ( name, type, optional ); +} + +static Express_HSequenceOfField *mkflist ( Express_Field *field, Express_HSequenceOfField *seq ) +{ + if ( seq ) seq->Prepend ( field ); + else { + seq = new Express_HSequenceOfField; + seq->Append ( field ); + } + return seq; +} + +/*******************************************************************/ +/* External interface to result of parsing */ + +Handle(Express_Schema) ec_parse(const char* theFileName) +{ + std::ifstream aFileStream; + OSD_OpenStream(aFileStream, theFileName, std::ios_base::in | std::ios_base::binary); + exptocas::scanner aScanner(&aFileStream); + aScanner.yyrestart(aFileStream); + // uncomment next string for debug of parser + //aScanner.set_debug(1); + exptocas::parser aParser(&aScanner); + aParser.parse(); + return Express::Schema(); +} + +/*******************************************************************/ +/* MAIN & co */ + +/* +void tlistfree ( struct tlist *list ) +{ + if ( ! list ) return; + tlistfree ( list->next ); + list->next = 0; + free ( list->str ); + list->str = 0; +} +* / + +int printtlist ( struct ec_tlist *tl ) +{ + int num=0; + while ( tl ) { + num++; + printf ( "%s\n", tl->name ); + tl = tl->next; + } + return num; +} + +int main ( void ) +{ + int num = 0; + yyparse(); + + printf ( "\nFinished\n" ); + if ( schema ) { + struct ec_item *it; + it = schema->items; + printf ( "\nSchema %s", schema->name ); + printf ( "\nItems:" ); + while ( it ) { + num++; + printf ( "\n%s", it->name ); + it = it->next; + } +// num = printtlist ( res ); + printf ( "\nTotal %d", num ); + } + +/* tlistfree ( yylval.tlist ); * / + return num; +} +*/ + +void exptocas::parser::error(const std::string& s) +{ + printf("\nParse error at line %d: %s\n", scanner->lineno(), s.c_str()); +} + diff --git a/src/ExpToCasExe/exptocas.tab.hxx b/src/ExpToCasExe/exptocas.tab.hxx new file mode 100644 index 0000000000..be2edf33aa --- /dev/null +++ b/src/ExpToCasExe/exptocas.tab.hxx @@ -0,0 +1,876 @@ +// A Bison parser, made by GNU Bison 3.7.1. + +// Skeleton interface for Bison LALR(1) parsers in C++ + +// Copyright (C) 2002-2015, 2018-2020 Free Software Foundation, Inc. + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +// As a special exception, you may create a larger work that contains +// part or all of the Bison parser skeleton and distribute that work +// under terms of your choice, so long as that work isn't itself a +// parser generator using the skeleton or a modified version thereof +// as a parser skeleton. Alternatively, if you modify or redistribute +// the parser skeleton itself, you may (at your option) remove this +// special exception, which will cause the skeleton and the resulting +// Bison output files to be licensed under the GNU General Public +// License without this special exception. + +// This special exception was added by the Free Software Foundation in +// version 2.2 of Bison. + + +/** + ** \file ExpToCasExe/exptocas.tab.hxx + ** Define the exptocas::parser class. + */ + +// C++ LALR(1) parser skeleton written by Akim Demaille. + +// DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual, +// especially those whose name start with YY_ or yy_. They are +// private implementation details that can be changed or removed. + +#ifndef YY_EXPTOCAS_EXPTOCASEXE_EXPTOCAS_TAB_HXX_INCLUDED +# define YY_EXPTOCAS_EXPTOCASEXE_EXPTOCAS_TAB_HXX_INCLUDED +// "%code requires" blocks. + +namespace exptocas { + class scanner; +}; + + + +# include // std::abort +# include +# include +# include +# include + +#if defined __cplusplus +# define YY_CPLUSPLUS __cplusplus +#else +# define YY_CPLUSPLUS 199711L +#endif + +// Support move semantics when possible. +#if 201103L <= YY_CPLUSPLUS +# define YY_MOVE std::move +# define YY_MOVE_OR_COPY move +# define YY_MOVE_REF(Type) Type&& +# define YY_RVREF(Type) Type&& +# define YY_COPY(Type) Type +#else +# define YY_MOVE +# define YY_MOVE_OR_COPY copy +# define YY_MOVE_REF(Type) Type& +# define YY_RVREF(Type) const Type& +# define YY_COPY(Type) const Type& +#endif + +// Support noexcept when possible. +#if 201103L <= YY_CPLUSPLUS +# define YY_NOEXCEPT noexcept +# define YY_NOTHROW +#else +# define YY_NOEXCEPT +# define YY_NOTHROW throw () +#endif + +// Support constexpr when possible. +#if 201703 <= YY_CPLUSPLUS +# define YY_CONSTEXPR constexpr +#else +# define YY_CONSTEXPR +#endif + + + +#ifndef YY_ATTRIBUTE_PURE +# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__) +# define YY_ATTRIBUTE_PURE __attribute__ ((__pure__)) +# else +# define YY_ATTRIBUTE_PURE +# endif +#endif + +#ifndef YY_ATTRIBUTE_UNUSED +# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__) +# define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__)) +# else +# define YY_ATTRIBUTE_UNUSED +# endif +#endif + +/* Suppress unused-variable warnings by "using" E. */ +#if ! defined lint || defined __GNUC__ +# define YYUSE(E) ((void) (E)) +#else +# define YYUSE(E) /* empty */ +#endif + +#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ +/* Suppress an incorrect diagnostic about yylval being uninitialized. */ +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \ + _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") +# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ + _Pragma ("GCC diagnostic pop") +#else +# define YY_INITIAL_VALUE(Value) Value +#endif +#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN +# define YY_IGNORE_MAYBE_UNINITIALIZED_END +#endif +#ifndef YY_INITIAL_VALUE +# define YY_INITIAL_VALUE(Value) /* Nothing. */ +#endif + +#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__ +# define YY_IGNORE_USELESS_CAST_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"") +# define YY_IGNORE_USELESS_CAST_END \ + _Pragma ("GCC diagnostic pop") +#endif +#ifndef YY_IGNORE_USELESS_CAST_BEGIN +# define YY_IGNORE_USELESS_CAST_BEGIN +# define YY_IGNORE_USELESS_CAST_END +#endif + +# ifndef YY_CAST +# ifdef __cplusplus +# define YY_CAST(Type, Val) static_cast (Val) +# define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast (Val) +# else +# define YY_CAST(Type, Val) ((Type) (Val)) +# define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val)) +# endif +# endif +# ifndef YY_NULLPTR +# if defined __cplusplus +# if 201103L <= __cplusplus +# define YY_NULLPTR nullptr +# else +# define YY_NULLPTR 0 +# endif +# else +# define YY_NULLPTR ((void*)0) +# endif +# endif + +/* Debug traces. */ +#ifndef YYDEBUG +# define YYDEBUG 1 +#endif + +namespace exptocas { + + + + + /// A Bison parser. + class parser + { + public: +#ifndef YYSTYPE + /// Symbol semantic values. + union semantic_type + { + + int num; + char *str; + TColStd_HSequenceOfHAsciiString *tlist; + Express_HSequenceOfField *flist; + Express_HSequenceOfItem *ilist; + Express_Field *field; + Express_Item *item; + Express_Type *type; + Express_Schema *schema; + Express_Reference *ref; + + + }; +#else + typedef YYSTYPE semantic_type; +#endif + + /// Syntax errors thrown from user actions. + struct syntax_error : std::runtime_error + { + syntax_error (const std::string& m) + : std::runtime_error (m) + {} + + syntax_error (const syntax_error& s) + : std::runtime_error (s.what ()) + {} + + ~syntax_error () YY_NOEXCEPT YY_NOTHROW; + }; + + /// Token kinds. + struct token + { + enum token_kind_type + { + YYEMPTY = -2, + YYEOF = 0, // "end of file" + YYerror = 256, // error + YYUNDEF = 257, // "invalid token" + KSCHEM = 258, // KSCHEM + KENDS = 259, // KENDS + KTYP = 260, // KTYP + KENDT = 261, // KENDT + KENT = 262, // KENT + KENDE = 263, // KENDE + KREF = 264, // KREF + KFROM = 265, // KFROM + KSEL = 266, // KSEL + KENUM = 267, // KENUM + KLIST = 268, // KLIST + KARR = 269, // KARR + KBAG = 270, // KBAG + KSET = 271, // KSET + KOF = 272, // KOF + KNUM = 273, // KNUM + KINT = 274, // KINT + KDBL = 275, // KDBL + KSTR = 276, // KSTR + KLOG = 277, // KLOG + KBOOL = 278, // KBOOL + KOPT = 279, // KOPT + KUNIQ = 280, // KUNIQ + KSELF = 281, // KSELF + KABSTR = 282, // KABSTR + KSUBT = 283, // KSUBT + KSPRT = 284, // KSPRT + KANDOR = 285, // KANDOR + K1OF = 286, // K1OF + KAND = 287, // KAND + NUMBER = 288, // NUMBER + NAME = 289 // NAME + }; + /// Backward compatibility alias (Bison 3.6). + typedef token_kind_type yytokentype; + }; + + /// Token kind, as returned by yylex. + typedef token::yytokentype token_kind_type; + + /// Backward compatibility alias (Bison 3.6). + typedef token_kind_type token_type; + + /// Symbol kinds. + struct symbol_kind + { + enum symbol_kind_type + { + YYNTOKENS = 46, ///< Number of tokens. + S_YYEMPTY = -2, + S_YYEOF = 0, // "end of file" + S_YYerror = 1, // error + S_YYUNDEF = 2, // "invalid token" + S_KSCHEM = 3, // KSCHEM + S_KENDS = 4, // KENDS + S_KTYP = 5, // KTYP + S_KENDT = 6, // KENDT + S_KENT = 7, // KENT + S_KENDE = 8, // KENDE + S_KREF = 9, // KREF + S_KFROM = 10, // KFROM + S_KSEL = 11, // KSEL + S_KENUM = 12, // KENUM + S_KLIST = 13, // KLIST + S_KARR = 14, // KARR + S_KBAG = 15, // KBAG + S_KSET = 16, // KSET + S_KOF = 17, // KOF + S_KNUM = 18, // KNUM + S_KINT = 19, // KINT + S_KDBL = 20, // KDBL + S_KSTR = 21, // KSTR + S_KLOG = 22, // KLOG + S_KBOOL = 23, // KBOOL + S_KOPT = 24, // KOPT + S_KUNIQ = 25, // KUNIQ + S_KSELF = 26, // KSELF + S_KABSTR = 27, // KABSTR + S_KSUBT = 28, // KSUBT + S_KSPRT = 29, // KSPRT + S_KANDOR = 30, // KANDOR + S_K1OF = 31, // K1OF + S_KAND = 32, // KAND + S_NUMBER = 33, // NUMBER + S_NAME = 34, // NAME + S_35_ = 35, // ',' + S_36_ = 36, // ';' + S_37_ = 37, // '=' + S_38_ = 38, // '(' + S_39_ = 39, // ')' + S_40_ = 40, // '[' + S_41_ = 41, // ':' + S_42_ = 42, // ']' + S_43_ = 43, // '?' + S_44_ = 44, // '\\' + S_45_ = 45, // '.' + S_YYACCEPT = 46, // $accept + S_SCHEMA = 47, // SCHEMA + S_ILIST = 48, // ILIST + S_ITEM = 49, // ITEM + S_ENUM = 50, // ENUM + S_SELECT = 51, // SELECT + S_ALIAS = 52, // ALIAS + S_ENTITY = 53, // ENTITY + S_TLIST = 54, // TLIST + S_TLIST1 = 55, // TLIST1 + S_TYPE = 56, // TYPE + S_TSTD = 57, // TSTD + S_TNAME = 58, // TNAME + S_TSET = 59, // TSET + S_INDEX = 60, // INDEX + S_OPTUNI = 61, // OPTUNI + S_SUBT = 62, // SUBT + S_SUPERT = 63, // SUPERT + S_SUPLST = 64, // SUPLST + S_FLIST = 65, // FLIST + S_FLIST1 = 66, // FLIST1 + S_FIELD = 67, // FIELD + S_REDEF = 68, // REDEF + S_SPECIF = 69, // SPECIF + S_OPTNL = 70, // OPTNL + S_UNIQIT = 71, // UNIQIT + S_UNIQLS = 72, // UNIQLS + S_UNIQUE = 73, // UNIQUE + S_SPCLST = 74 // SPCLST + }; + }; + + /// (Internal) symbol kind. + typedef symbol_kind::symbol_kind_type symbol_kind_type; + + /// The number of tokens. + static const symbol_kind_type YYNTOKENS = symbol_kind::YYNTOKENS; + + /// A complete symbol. + /// + /// Expects its Base type to provide access to the symbol kind + /// via kind (). + /// + /// Provide access to semantic value. + template + struct basic_symbol : Base + { + /// Alias to Base. + typedef Base super_type; + + /// Default constructor. + basic_symbol () + : value () + {} + +#if 201103L <= YY_CPLUSPLUS + /// Move constructor. + basic_symbol (basic_symbol&& that) + : Base (std::move (that)) + , value (std::move (that.value)) + {} +#endif + + /// Copy constructor. + basic_symbol (const basic_symbol& that); + /// Constructor for valueless symbols. + basic_symbol (typename Base::kind_type t); + + /// Constructor for symbols with semantic value. + basic_symbol (typename Base::kind_type t, + YY_RVREF (semantic_type) v); + + /// Destroy the symbol. + ~basic_symbol () + { + clear (); + } + + /// Destroy contents, and record that is empty. + void clear () + { + Base::clear (); + } + +#if YYDEBUG || 0 + /// The user-facing name of this symbol. + const char *name () const YY_NOEXCEPT + { + return parser::symbol_name (this->kind ()); + } +#endif // #if YYDEBUG || 0 + + + /// Backward compatibility (Bison 3.6). + symbol_kind_type type_get () const YY_NOEXCEPT; + + /// Whether empty. + bool empty () const YY_NOEXCEPT; + + /// Destructive move, \a s is emptied into this. + void move (basic_symbol& s); + + /// The semantic value. + semantic_type value; + + private: +#if YY_CPLUSPLUS < 201103L + /// Assignment operator. + basic_symbol& operator= (const basic_symbol& that); +#endif + }; + + /// Type access provider for token (enum) based symbols. + struct by_kind + { + /// Default constructor. + by_kind (); + +#if 201103L <= YY_CPLUSPLUS + /// Move constructor. + by_kind (by_kind&& that); +#endif + + /// Copy constructor. + by_kind (const by_kind& that); + + /// The symbol kind as needed by the constructor. + typedef token_kind_type kind_type; + + /// Constructor from (external) token numbers. + by_kind (kind_type t); + + /// Record that this symbol is empty. + void clear (); + + /// Steal the symbol kind from \a that. + void move (by_kind& that); + + /// The (internal) type number (corresponding to \a type). + /// \a empty when empty. + symbol_kind_type kind () const YY_NOEXCEPT; + + /// Backward compatibility (Bison 3.6). + symbol_kind_type type_get () const YY_NOEXCEPT; + + /// The symbol kind. + /// \a S_YYEMPTY when empty. + symbol_kind_type kind_; + }; + + /// Backward compatibility for a private implementation detail (Bison 3.6). + typedef by_kind by_type; + + /// "External" symbols: returned by the scanner. + struct symbol_type : basic_symbol + {}; + + /// Build a parser object. + parser (exptocas::scanner* scanner_yyarg); + virtual ~parser (); + +#if 201103L <= YY_CPLUSPLUS + /// Non copyable. + parser (const parser&) = delete; + /// Non copyable. + parser& operator= (const parser&) = delete; +#endif + + /// Parse. An alias for parse (). + /// \returns 0 iff parsing succeeded. + int operator() (); + + /// Parse. + /// \returns 0 iff parsing succeeded. + virtual int parse (); + +#if YYDEBUG + /// The current debugging stream. + std::ostream& debug_stream () const YY_ATTRIBUTE_PURE; + /// Set the current debugging stream. + void set_debug_stream (std::ostream &); + + /// Type for debugging levels. + typedef int debug_level_type; + /// The current debugging level. + debug_level_type debug_level () const YY_ATTRIBUTE_PURE; + /// Set the current debugging level. + void set_debug_level (debug_level_type l); +#endif + + /// Report a syntax error. + /// \param msg a description of the syntax error. + virtual void error (const std::string& msg); + + /// Report a syntax error. + void error (const syntax_error& err); + +#if YYDEBUG || 0 + /// The user-facing name of the symbol whose (internal) number is + /// YYSYMBOL. No bounds checking. + static const char *symbol_name (symbol_kind_type yysymbol); +#endif // #if YYDEBUG || 0 + + + + + private: +#if YY_CPLUSPLUS < 201103L + /// Non copyable. + parser (const parser&); + /// Non copyable. + parser& operator= (const parser&); +#endif + + + /// Stored state numbers (used for stacks). + typedef unsigned char state_type; + + /// Compute post-reduction state. + /// \param yystate the current state + /// \param yysym the nonterminal to push on the stack + static state_type yy_lr_goto_state_ (state_type yystate, int yysym); + + /// Whether the given \c yypact_ value indicates a defaulted state. + /// \param yyvalue the value to check + static bool yy_pact_value_is_default_ (int yyvalue); + + /// Whether the given \c yytable_ value indicates a syntax error. + /// \param yyvalue the value to check + static bool yy_table_value_is_error_ (int yyvalue); + + static const signed char yypact_ninf_; + static const signed char yytable_ninf_; + + /// Convert a scanner token kind \a t to a symbol kind. + /// In theory \a t should be a token_kind_type, but character literals + /// are valid, yet not members of the token_type enum. + static symbol_kind_type yytranslate_ (int t); + +#if YYDEBUG || 0 + /// For a symbol, its name in clear. + static const char* const yytname_[]; +#endif // #if YYDEBUG || 0 + + + // Tables. + // YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing + // STATE-NUM. + static const signed char yypact_[]; + + // YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. + // Performed when YYTABLE does not specify something else to do. Zero + // means the default is an error. + static const signed char yydefact_[]; + + // YYPGOTO[NTERM-NUM]. + static const signed char yypgoto_[]; + + // YYDEFGOTO[NTERM-NUM]. + static const short yydefgoto_[]; + + // YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If + // positive, shift that token. If negative, reduce the rule whose + // number is the opposite. If YYTABLE_NINF, syntax error. + static const unsigned char yytable_[]; + + static const short yycheck_[]; + + // YYSTOS[STATE-NUM] -- The (internal number of the) accessing + // symbol of state STATE-NUM. + static const signed char yystos_[]; + + // YYR1[YYN] -- Symbol number of symbol that rule YYN derives. + static const signed char yyr1_[]; + + // YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. + static const signed char yyr2_[]; + + +#if YYDEBUG + // YYRLINE[YYN] -- Source line where rule number YYN was defined. + static const short yyrline_[]; + /// Report on the debug stream that the rule \a r is going to be reduced. + virtual void yy_reduce_print_ (int r) const; + /// Print the state stack on the debug stream. + virtual void yy_stack_print_ () const; + + /// Debugging level. + int yydebug_; + /// Debug stream. + std::ostream* yycdebug_; + + /// \brief Display a symbol kind, value and location. + /// \param yyo The output stream. + /// \param yysym The symbol. + template + void yy_print_ (std::ostream& yyo, const basic_symbol& yysym) const; +#endif + + /// \brief Reclaim the memory associated to a symbol. + /// \param yymsg Why this token is reclaimed. + /// If null, print nothing. + /// \param yysym The symbol. + template + void yy_destroy_ (const char* yymsg, basic_symbol& yysym) const; + + private: + /// Type access provider for state based symbols. + struct by_state + { + /// Default constructor. + by_state () YY_NOEXCEPT; + + /// The symbol kind as needed by the constructor. + typedef state_type kind_type; + + /// Constructor. + by_state (kind_type s) YY_NOEXCEPT; + + /// Copy constructor. + by_state (const by_state& that) YY_NOEXCEPT; + + /// Record that this symbol is empty. + void clear () YY_NOEXCEPT; + + /// Steal the symbol kind from \a that. + void move (by_state& that); + + /// The symbol kind (corresponding to \a state). + /// \a symbol_kind::S_YYEMPTY when empty. + symbol_kind_type kind () const YY_NOEXCEPT; + + /// The state number used to denote an empty symbol. + /// We use the initial state, as it does not have a value. + enum { empty_state = 0 }; + + /// The state. + /// \a empty when empty. + state_type state; + }; + + /// "Internal" symbol: element of the stack. + struct stack_symbol_type : basic_symbol + { + /// Superclass. + typedef basic_symbol super_type; + /// Construct an empty symbol. + stack_symbol_type (); + /// Move or copy construction. + stack_symbol_type (YY_RVREF (stack_symbol_type) that); + /// Steal the contents from \a sym to build this. + stack_symbol_type (state_type s, YY_MOVE_REF (symbol_type) sym); +#if YY_CPLUSPLUS < 201103L + /// Assignment, needed by push_back by some old implementations. + /// Moves the contents of that. + stack_symbol_type& operator= (stack_symbol_type& that); + + /// Assignment, needed by push_back by other implementations. + /// Needed by some other old implementations. + stack_symbol_type& operator= (const stack_symbol_type& that); +#endif + }; + + /// A stack with random access from its top. + template > + class stack + { + public: + // Hide our reversed order. + typedef typename S::iterator iterator; + typedef typename S::const_iterator const_iterator; + typedef typename S::size_type size_type; + typedef typename std::ptrdiff_t index_type; + + stack (size_type n = 200) + : seq_ (n) + {} + +#if 201103L <= YY_CPLUSPLUS + /// Non copyable. + stack (const stack&) = delete; + /// Non copyable. + stack& operator= (const stack&) = delete; +#endif + + /// Random access. + /// + /// Index 0 returns the topmost element. + const T& + operator[] (index_type i) const + { + return seq_[size_type (size () - 1 - i)]; + } + + /// Random access. + /// + /// Index 0 returns the topmost element. + T& + operator[] (index_type i) + { + return seq_[size_type (size () - 1 - i)]; + } + + /// Steal the contents of \a t. + /// + /// Close to move-semantics. + void + push (YY_MOVE_REF (T) t) + { + seq_.push_back (T ()); + operator[] (0).move (t); + } + + /// Pop elements from the stack. + void + pop (std::ptrdiff_t n = 1) YY_NOEXCEPT + { + for (; 0 < n; --n) + seq_.pop_back (); + } + + /// Pop all elements from the stack. + void + clear () YY_NOEXCEPT + { + seq_.clear (); + } + + /// Number of elements on the stack. + index_type + size () const YY_NOEXCEPT + { + return index_type (seq_.size ()); + } + + /// Iterator on top of the stack (going downwards). + const_iterator + begin () const YY_NOEXCEPT + { + return seq_.begin (); + } + + /// Bottom of the stack. + const_iterator + end () const YY_NOEXCEPT + { + return seq_.end (); + } + + /// Present a slice of the top of a stack. + class slice + { + public: + slice (const stack& stack, index_type range) + : stack_ (stack) + , range_ (range) + {} + + const T& + operator[] (index_type i) const + { + return stack_[range_ - i]; + } + + private: + const stack& stack_; + index_type range_; + }; + + private: +#if YY_CPLUSPLUS < 201103L + /// Non copyable. + stack (const stack&); + /// Non copyable. + stack& operator= (const stack&); +#endif + /// The wrapped container. + S seq_; + }; + + + /// Stack type. + typedef stack stack_type; + + /// The stack. + stack_type yystack_; + + /// Push a new state on the stack. + /// \param m a debug message to display + /// if null, no trace is output. + /// \param sym the symbol + /// \warning the contents of \a s.value is stolen. + void yypush_ (const char* m, YY_MOVE_REF (stack_symbol_type) sym); + + /// Push a new look ahead token on the state on the stack. + /// \param m a debug message to display + /// if null, no trace is output. + /// \param s the state + /// \param sym the symbol (for its value and location). + /// \warning the contents of \a sym.value is stolen. + void yypush_ (const char* m, state_type s, YY_MOVE_REF (symbol_type) sym); + + /// Pop \a n symbols from the stack. + void yypop_ (int n = 1); + + /// Constants. + enum + { + yylast_ = 199, ///< Last index in yytable_. + yynnts_ = 29, ///< Number of nonterminal symbols. + yyfinal_ = 4 ///< Termination state number. + }; + + + // User arguments. + exptocas::scanner* scanner; + + }; + + +} // exptocas + + +// "%code provides" blocks. + +#if !defined(yyFlexLexer) && !defined(FlexLexerOnce) +#define yyFlexLexer exptocasFlexLexer +#include "FlexLexer.h" +#endif +namespace exptocas { + // To feed data back to bison, the yylex method needs yylval and + // yylloc parameters. Since the exptocasFlexLexer class is defined in the + // system header the signature of its yylex() method + // can not be changed anymore. This makes it necessary to derive a + // scanner class that provides a method with the desired signature: + class scanner : public exptocasFlexLexer + { + public: + explicit scanner(std::istream* in = 0, std::ostream* out = 0); + + int lex(exptocas::parser::semantic_type* yylval); + }; +}; + + + +#endif // !YY_EXPTOCAS_EXPTOCASEXE_EXPTOCAS_TAB_HXX_INCLUDED diff --git a/src/ExpToCasExe/exptocas.y b/src/ExpToCasExe/exptocas.y deleted file mode 100644 index a342009234..0000000000 --- a/src/ExpToCasExe/exptocas.y +++ /dev/null @@ -1,450 +0,0 @@ -%{ - -/* Created: Thu Oct 28 12:21:16 1999 -/* Author: Andrey BETENEV -/* Copyright (c) 1999-2020 OPEN CASCADE SAS -/* -/* This file is part of Open CASCADE Technology software library. -/* -/* This library is free software; you can redistribute it and/or modify it under -/* the terms of the GNU Lesser General Public License version 2.1 as published -/* by the Free Software Foundation, with special exception defined in the file -/* OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT -/* distribution for complete text of the license and disclaimer of any warranty. -/* -/* Alternatively, this file may be used under the terms of Open CASCADE -/* commercial license or contractual agreement. - -/*****************************************************************************\ - -This YACC parser implements parsing algorithm for EXPRESS -> CASCADE/XSTEP -classes generator - -Input in the form of tokens is obtained from lexical analyser. Then, data -structure representing schema is created on the basis of grammar analysis. - -NOTE: The grammar currently implemented is not full. -FUNCTION, RULE and CONSTANT items, WHERE, INVERSE and DERIVE clauses -of TYPE and ENTITY items are not considered (ignored on the level of lexical -scanner). -SUPERTYPE and UNIQUE clauses of ENTITY item are recognized but ignored. -Also, complex constructs such as using call to function in dimensions of -complex time or redefinition of inherited field are ignored. - -\*****************************************************************************/ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/************************************************/ -/* ERROR MESSAGE FUNCTION */ - -/* external functions (from exptocas.l) */ -int ec_error ( char *s, char *text ); -int ec_curline ( void ); - -int yyerror ( char *s ) -{ - printf ( "\nParse error at line %d: %s\n", ec_curline(), s ); - return 0; -} - -/************************************************/ -/* FUNCTIONS FOR CREATING SCHEMA REPRESENTATION */ - -static Express_Schema *mkschema ( char *name, Express_HSequenceOfItem *ilist ); -static Express_HSequenceOfItem *mkilist ( Express_Item *item, Express_HSequenceOfItem *seq ); -static Express_Item *mkenum ( char *name, TColStd_HSequenceOfHAsciiString *tlist ); -static Express_Item *mkselect ( char *name, TColStd_HSequenceOfHAsciiString *tlist ); -static Express_Item *mkalias ( char *name, Express_Type *type ); -static Express_Item *mkentity ( char *name, TColStd_HSequenceOfHAsciiString *inherit, - Express_HSequenceOfField *field, int isabstract ); -static Express_Reference *mkrefs ( char *name, TColStd_HSequenceOfHAsciiString *items); -static TColStd_HSequenceOfHAsciiString *mktlist ( char *name, TColStd_HSequenceOfHAsciiString *tlist ); -static TColStd_HSequenceOfHAsciiString *mktlists ( TColStd_HSequenceOfHAsciiString *tlist1, TColStd_HSequenceOfHAsciiString *tlist2 ); -static Express_Type *mktstd ( int keyword ); -static Express_Type *mktname ( char *name ); -static Express_Type *mktset ( int keyword, int ilow, int ihigh, Express_Type *of ); -static Express_Field *mkfield ( char *name, Express_Type *type, int optional ); -static Express_HSequenceOfField *mkflist ( Express_Field *field, Express_HSequenceOfField *seq ); - -%} - - /* Definition of possible types of expressions */ -%union { - int num; - char *str; - TColStd_HSequenceOfHAsciiString *tlist; - Express_HSequenceOfField *flist; - Express_HSequenceOfItem *ilist; - Express_Field *field; - Express_Item *item; - Express_Type *type; - Express_Schema *schema; - Express_Reference *ref; -} - - /* Definition of keywords */ - -%token KSCHEM /* SCHEMA keyword */ -%token KENDS /* END_SCHEMA keyword */ -%token KTYP /* TYPE keyword */ -%token KENDT /* END_TYPE keyword */ -%token KENT /* ENTITY keyword */ -%token KENDE /* END_ENTITY keyword */ -%token KREF /* REFERENCE keyword */ -%token KFROM /* FROM keyword */ - -%token KSEL /* SELECT keyword */ -%token KENUM /* ENUMERATION keyword */ -%token KLIST /* LIST keyword */ -%token KARR /* ARRAY keyword */ -%token KBAG /* BAG keyword */ -%token KSET /* SET keyword */ -%token KOF /* OF keyword */ - -%token KNUM /* NUMBER keyword */ -%token KINT /* INTEGER keyword */ -%token KDBL /* REAL keyword */ -%token KSTR /* STRING keyword */ -%token KLOG /* LOGICAL keyword */ -%token KBOOL /* BOOLEAN keyword */ - -%token KOPT /* OPTIONAL keyword */ -%token KUNIQ /* UNIQUE keyword */ -%token KSELF /* SELF keyword */ - -%token KABSTR /* ABSTRACT keyword */ -%token KSUBT /* SUBTYPE keyword */ -%token KSPRT /* SUPERTYPE keyword */ -%left KANDOR /* ANDOR keyword (%left is for eliminating shift/reduce conflict on SUPLST) */ -%left K1OF /* ONEOF keyword */ -%token KAND /* AND keyword */ - -%token NUMBER /* integer value */ -%token NAME /* name of type or entity */ - -%left ',' /* to eliminate shift/reduce conflict in SUPERTYPE */ - - /* Definition of expressions and their types */ - -%type INDEX OPTNL OPTUNI SUPERT SUPLST REDEF SPCLST -%type TLIST TLIST1 UNIQIT UNIQLS UNIQUE SUBT SPECIF -%type TYPE TSTD TNAME TSET -%type ENUM SELECT ALIAS ENTITY ITEM -%type ILIST -%type FIELD -%type FLIST FLIST1 -%type SCHEMA -%type REFERENCE - -%% - - /************************************************/ - /* Definition of parsing rules (expressions) */ - /************************************************/ - -SCHEMA: KSCHEM NAME ';' ILIST KENDS ';' { $$ = mkschema ( $2, $4 ); /* Root: EXPRESS schema */ } - ; -ILIST : ITEM { $$ = mkilist ( $1, 0 ); /* list of items for schema */ } - | ITEM ILIST { $$ = mkilist ( $1, $2 ); } - ; - -ITEM : ENUM - | SELECT - | ALIAS - | ENTITY { $$ = $1; /* item of schema (type definition) */ } -ENUM : KTYP NAME '=' KENUM KOF TLIST1 ';' KENDT ';' { $$ = mkenum ( $2, $6 ); /* TYPE ENUMERATION definition */ } - ; -SELECT: KTYP NAME '=' KSEL TLIST1 ';' KENDT ';' { $$ = mkselect ( $2, $5 ); /* TYPE SELECT definition */ } - ; -ALIAS : KTYP NAME '=' TYPE ';' KENDT ';' { $$ = mkalias ( $2, $4 ); /* TYPE '=' definition (alias) */ } - ; -ENTITY: KENT NAME SUPERT SUBT ';' FLIST1 UNIQUE KENDE ';' { $$ = mkentity ( $2, $4, $6, 0 ); /* ENTITY definition */ } - | KENT NAME KABSTR SUPERT SUBT ';' FLIST1 UNIQUE KENDE ';' { $$ = mkentity ( $2, $5, $7, 1 ); /* ENTITY definition */ } - ; - -REFERENCE: KREF KFROM NAME TLIST1 ';' { $$ = mkrefs ( $3, $4 ); /* REFERENCE FROM definition */ } - -TLIST : NAME { $$ = mktlist ( $1, 0 ); /* list of (type) names */ } - | NAME ',' TLIST { $$ = mktlist ( $1, $3 ); } - ; -TLIST1: '(' TLIST ')' { $$ = $2; /* TLIST in brackets */ } - ; - -TYPE : TSTD - | TNAME - | TSET { $$ = $1; /* type, simple or complex */ } - ; -TSTD : KINT { $$ = mktstd ( $1 ); /* predefined type: INTEGER */ } - | KNUM { $$ = mktstd ( $1 ); /* predefined type: NUMBER */ } - | KDBL { $$ = mktstd ( $1 ); /* predefined type: REAL */ } - | KSTR { $$ = mktstd ( $1 ); /* predefined type: STRING */ } - | KLOG { $$ = mktstd ( $1 ); /* predefined type: LOGICAL */ } - | KBOOL { $$ = mktstd ( $1 ); /* predefined type: BOOLEAN */ } - ; -TNAME : NAME { $$ = mktname ( $1 ); /* named type */ } - ; -TSET : KLIST '[' INDEX ':' INDEX ']' KOF OPTUNI TYPE { $$ = mktset ( $1, $3, $5, $9 ); /* complex type: LIST */ } - | KARR '[' INDEX ':' INDEX ']' KOF OPTUNI TYPE { $$ = mktset ( $1, $3, $5, $9 ); /* complex type: ARRAY */ } - | KSET '[' INDEX ':' INDEX ']' KOF OPTUNI TYPE { $$ = mktset ( $1, $3, $5, $9 ); /* complex type: SET */ } - | KBAG '[' INDEX ':' INDEX ']' KOF OPTUNI TYPE { $$ = mktset ( $1, $3, $5, $9 ); /* complex type: BAG */ } - ; -INDEX : NUMBER { $$ = $1; /* index for array, set, bag, list range */ } - | '?' { $$ = -1; /* undefined */ } - | NAME '(' NAME ')' {$$ = -1; printf ( "Warning at line %d: index function %s(%s) ignored\n", ec_curline(), $1, $3 ); /* some function.. */ } - ; -OPTUNI: /* empty */ { $$ = 0; /* UNIQUE keyword for complex type definition */ } - | KUNIQ { $$ = 1; } - ; - -SUBT : /* empty */ { $$ = NULL; /* no subtype clause */ } - | KSUBT KOF TLIST1 { $$ = $3; /* subtype clause */ } - ; -SUPERT: /* empty */ { $$ = 0; /* no supertype clause */ } - | KSPRT { $$ = 0; /* supertype clause (ignored) */ } - | KSPRT KOF SUPLST { $$ = 0; /* supertype clause (ignored) */ } - ; -SUPLST: NAME { $$ = 0; /* simple list of supertypes */ } - | '(' SUPLST ')' { $$ = 0; /* allow bracketing */ } - | NAME ',' SUPLST { $$ = 0; /* ... */ } - | K1OF SUPLST { $$ = 0; /* ONEOF construct */ } - | SUPLST KANDOR SUPLST { $$ = 0; /* ANDOR construct */ } - ; - -FLIST : FIELD { $$ = mkflist ( $1, 0 ); /* list of fields of ENTITY item */ } - | FIELD FLIST { $$ = mkflist ( $1, $2 ); } - | REDEF { $$ = 0; /* redefinition of inherited field, just skip */ } - | REDEF FLIST { $$ = $2; /* ignore redefinition of inherited field, take trailing list */ } - ; -FLIST1: /* empty */ { $$ = NULL; /* empty list of fields */ } - | FLIST { $$ = $1; /* or not empty.. just to fix reduce/reduce conflict */ } - ; -FIELD : NAME ':' OPTNL TYPE ';' { $$ = mkfield ( $1, $4, $3 ); } - ; -REDEF : KSELF '\\' SPECIF ':' TYPE ';' { $$ = NULL; printf ( "Warning at line %d: field redefinition ignored\n", ec_curline() ); /* redefinition of inherited field */ } - ; -SPECIF: NAME { $$ = mktlist ( $1, 0 ); /* inherited field specification */ } - | NAME '.' SPECIF { $$ = mktlist ( $1, $3 ); } - ; - -OPTNL : /* empty */ { $$ = 0; } - | KOPT { $$ = 1; } - ; - -UNIQIT: NAME ':' TLIST ';' { $$ = $3; /* UNIQUE statement */ } - | NAME ':' SPCLST ';' { $$ = NULL; /* UNIQUE statement */ } - ; -UNIQLS: UNIQIT { $$ = NULL; /* list of 1 UNIQUE statements */ } - | UNIQIT UNIQLS { $$ = mktlists ( $1, $2 );/* list of UNIQUE statements */ } - ; -UNIQUE: /* empty */ { $$ = NULL; /* no UNIQUE clause in ENTITY */ } - | KUNIQ UNIQLS { $$ = $2; /* UNIQUE clause in ENTITY */ } - ; -SPCLST: KSELF '\\' SPECIF { $$ = 0; /* list of specifications */ } - | KSELF '\\' SPECIF ',' SPCLST { $$ = 0; } - | NAME ',' SPCLST { $$ = 0; } - ; - -%% - -/************************************************/ -/* FUNCTIONS FOR CREATING SCHEMA REPRESENTATION */ - -static Express_Schema *mkschema ( char *name, Express_HSequenceOfItem *ilist ) -{ - Express_Schema *sch = new Express_Schema ( name, ilist ); - Express::Schema() = sch; - return sch; -} - -static Express_HSequenceOfItem *mkilist ( Express_Item *item, Express_HSequenceOfItem *seq ) -{ - if ( ! seq ) { - seq = new Express_HSequenceOfItem; - seq->Append ( item ); - } - else seq->Prepend ( item ); - return seq; -} - -static Express_Item *mkenum ( char *name, TColStd_HSequenceOfHAsciiString *tlist ) -{ - return new Express_Enum ( name, tlist ); -} - -static Express_Item *mkselect ( char *name, TColStd_HSequenceOfHAsciiString *tlist ) -{ - return new Express_Select ( name, tlist ); -} - -static Express_Item *mkalias ( char *name, Express_Type *type ) -{ - return new Express_Alias ( name, type ); -} - -static Express_Item *mkentity ( char *name, TColStd_HSequenceOfHAsciiString *inherit, - Express_HSequenceOfField *field, int isabstract ) -{ - Express_Entity *ent = new Express_Entity ( name, inherit, field ); - if ( isabstract ) ent->SetAbstractFlag ( Standard_True ); - return ent; -} - -static Express_Reference *mkrefs ( char *name, TColStd_HSequenceOfHAsciiString *items) -{ - return new Express_Reference ( name, items ); -} - -static TColStd_HSequenceOfHAsciiString *mktlist ( char *name, TColStd_HSequenceOfHAsciiString *tlist ) -{ - Handle(TCollection_HAsciiString) str = new TCollection_HAsciiString ( name ); - if ( tlist ) tlist->Prepend ( str ); - else { - tlist = new TColStd_HSequenceOfHAsciiString; - tlist->Append ( str ); - } - return tlist; -} - -static TColStd_HSequenceOfHAsciiString *mktlists ( TColStd_HSequenceOfHAsciiString *tlist1, - TColStd_HSequenceOfHAsciiString *tlist2 ) -{ - if ( ! tlist1 ) return tlist2; - if ( ! tlist2 ) return tlist1; - for ( int i=1; i <= tlist2->Length(); i++ ) - tlist1->Append ( tlist2->Value(i) ); - return tlist1; -} - -static Express_Type *mktstd ( int keyword ) -{ - switch ( keyword ) { - case KINT : return new Express_Integer; - case KNUM : return new Express_Number; - case KDBL : return new Express_Real; - case KSTR : return new Express_String; - case KBOOL: return new Express_Boolean; - case KLOG : return new Express_Logical; - default : ec_error ( "Predefined type not treated!", "" ); - return NULL; - } -} - -static Express_Type *mktname ( char *name ) -{ - return new Express_NamedType ( name ); -} - -static Express_Type *mktset ( int keyword, int ilow, int ihigh, Express_Type *of ) -{ - switch ( keyword ) { - case KLIST: return new Express_List ( ilow, ihigh, of ); - case KARR : return new Express_Array ( ilow, ihigh, of ); - case KBAG : return new Express_Bag ( ilow, ihigh, of ); - case KSET : return new Express_Set ( ilow, ihigh, of ); - default : ec_error ( "Complex type not treated!", "" ); - return NULL; - } -} - -static Express_Field *mkfield ( char *name, Express_Type *type, int optional ) -{ - return new Express_Field ( name, type, optional ); -} - -static Express_HSequenceOfField *mkflist ( Express_Field *field, Express_HSequenceOfField *seq ) -{ - if ( seq ) seq->Prepend ( field ); - else { - seq = new Express_HSequenceOfField; - seq->Append ( field ); - } - return seq; -} - -/*******************************************************************/ -/* External interface to result of parsing */ - -Handle(Express_Schema) ec_parse ( FILE *fin ) -{ - extern FILE *yyin; - yyin = fin; - yyparse(); - return Express::Schema(); -} - -/*******************************************************************/ -/* MAIN & co */ - -/* -void tlistfree ( struct tlist *list ) -{ - if ( ! list ) return; - tlistfree ( list->next ); - list->next = 0; - free ( list->str ); - list->str = 0; -} -* / - -int printtlist ( struct ec_tlist *tl ) -{ - int num=0; - while ( tl ) { - num++; - printf ( "%s\n", tl->name ); - tl = tl->next; - } - return num; -} - -int main ( void ) -{ - int num = 0; - yyparse(); - - printf ( "\nFinished\n" ); - if ( schema ) { - struct ec_item *it; - it = schema->items; - printf ( "\nSchema %s", schema->name ); - printf ( "\nItems:" ); - while ( it ) { - num++; - printf ( "\n%s", it->name ); - it = it->next; - } -// num = printtlist ( res ); - printf ( "\nTotal %d", num ); - } - -/* tlistfree ( yylval.tlist ); * / - return num; -} -*/ diff --git a/src/ExpToCasExe/exptocas.yacc b/src/ExpToCasExe/exptocas.yacc new file mode 100644 index 0000000000..2d69ec3596 --- /dev/null +++ b/src/ExpToCasExe/exptocas.yacc @@ -0,0 +1,501 @@ +%{ + +/* Created: Thu Oct 28 12:21:16 1999 +/* Author: Andrey BETENEV +/* Copyright (c) 1999-2020 OPEN CASCADE SAS +/* +/* This file is part of Open CASCADE Technology software library. +/* +/* This library is free software; you can redistribute it and/or modify it under +/* the terms of the GNU Lesser General Public License version 2.1 as published +/* by the Free Software Foundation, with special exception defined in the file +/* OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +/* distribution for complete text of the license and disclaimer of any warranty. +/* +/* Alternatively, this file may be used under the terms of Open CASCADE +/* commercial license or contractual agreement. + +/*****************************************************************************\ + +This YACC parser implements parsing algorithm for EXPRESS -> CASCADE/XSTEP +classes generator + +Input in the form of tokens is obtained from lexical analyser. Then, data +structure representing schema is created on the basis of grammar analysis. + +NOTE: The grammar currently implemented is not full. +FUNCTION, RULE and CONSTANT items, WHERE, INVERSE and DERIVE clauses +of TYPE and ENTITY items are not considered (ignored on the level of lexical +scanner). +SUPERTYPE and UNIQUE clauses of ENTITY item are recognized but ignored. +Also, complex constructs such as using call to function in dimensions of +complex time or redefinition of inherited field are ignored. + +\*****************************************************************************/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/************************************************/ +/* ERROR MESSAGE FUNCTION */ + +/* external functions (from exptocas.l) */ +int ec_error ( char *s, char *text ); +int ec_curline ( void ); + +//int yyerror ( char *s ) +//{ +// printf ( "\nParse error at line %d: %s\n", ec_curline(), s ); +// return 0; +//} + +/************************************************/ +/* FUNCTIONS FOR CREATING SCHEMA REPRESENTATION */ + +static Express_Schema *mkschema ( char *name, Express_HSequenceOfItem *ilist ); +static Express_HSequenceOfItem *mkilist ( Express_Item *item, Express_HSequenceOfItem *seq ); +static Express_Item *mkenum ( char *name, TColStd_HSequenceOfHAsciiString *tlist ); +static Express_Item *mkselect ( char *name, TColStd_HSequenceOfHAsciiString *tlist ); +static Express_Item *mkalias ( char *name, Express_Type *type ); +static Express_Item *mkentity ( char *name, TColStd_HSequenceOfHAsciiString *inherit, + Express_HSequenceOfField *field, int isabstract ); +static Express_Reference *mkrefs ( char *name, TColStd_HSequenceOfHAsciiString *items); +static TColStd_HSequenceOfHAsciiString *mktlist ( char *name, TColStd_HSequenceOfHAsciiString *tlist ); +static TColStd_HSequenceOfHAsciiString *mktlists ( TColStd_HSequenceOfHAsciiString *tlist1, TColStd_HSequenceOfHAsciiString *tlist2 ); +static Express_Type *mktstd ( int keyword ); +static Express_Type *mktname ( char *name ); +static Express_Type *mktset ( int keyword, int ilow, int ihigh, Express_Type *of ); +static Express_Field *mkfield ( char *name, Express_Type *type, int optional ); +static Express_HSequenceOfField *mkflist ( Express_Field *field, Express_HSequenceOfField *seq ); + +%} + +%language "C++" + +%debug +%require "3.2" + +%parse-param {exptocas::scanner* scanner} + +%code requires { +namespace exptocas { + class scanner; +}; +} + +%code provides { +#if !defined(yyFlexLexer) && !defined(FlexLexerOnce) +#define yyFlexLexer exptocasFlexLexer +#include "FlexLexer.h" +#endif +namespace exptocas { + // To feed data back to bison, the yylex method needs yylval and + // yylloc parameters. Since the exptocasFlexLexer class is defined in the + // system header the signature of its yylex() method + // can not be changed anymore. This makes it necessary to derive a + // scanner class that provides a method with the desired signature: + class scanner : public exptocasFlexLexer + { + public: + explicit scanner(std::istream* in = 0, std::ostream* out = 0); + + int lex(exptocas::parser::semantic_type* yylval); + }; +}; +} + +%code { +#undef yylex +#define yylex scanner->lex +} + +/* Definition of possible types of expressions */ +%union { + int num; + char *str; + TColStd_HSequenceOfHAsciiString *tlist; + Express_HSequenceOfField *flist; + Express_HSequenceOfItem *ilist; + Express_Field *field; + Express_Item *item; + Express_Type *type; + Express_Schema *schema; + Express_Reference *ref; +} + +/* Definition of keywords */ + +%token KSCHEM /* SCHEMA keyword */ +%token KENDS /* END_SCHEMA keyword */ +%token KTYP /* TYPE keyword */ +%token KENDT /* END_TYPE keyword */ +%token KENT /* ENTITY keyword */ +%token KENDE /* END_ENTITY keyword */ +%token KREF /* REFERENCE keyword */ +%token KFROM /* FROM keyword */ + +%token KSEL /* SELECT keyword */ +%token KENUM /* ENUMERATION keyword */ +%token KLIST /* LIST keyword */ +%token KARR /* ARRAY keyword */ +%token KBAG /* BAG keyword */ +%token KSET /* SET keyword */ +%token KOF /* OF keyword */ + +%token KNUM /* NUMBER keyword */ +%token KINT /* INTEGER keyword */ +%token KDBL /* REAL keyword */ +%token KSTR /* STRING keyword */ +%token KLOG /* LOGICAL keyword */ +%token KBOOL /* BOOLEAN keyword */ + +%token KOPT /* OPTIONAL keyword */ +%token KUNIQ /* UNIQUE keyword */ +%token KSELF /* SELF keyword */ + +%token KABSTR /* ABSTRACT keyword */ +%token KSUBT /* SUBTYPE keyword */ +%token KSPRT /* SUPERTYPE keyword */ +%left KANDOR /* ANDOR keyword (%left is for eliminating shift/reduce conflict on SUPLST) */ +%left K1OF /* ONEOF keyword */ +%token KAND /* AND keyword */ + +%token NUMBER /* integer value */ +%token NAME /* name of type or entity */ + +%left ',' /* to eliminate shift/reduce conflict in SUPERTYPE */ + + /* Definition of expressions and their types */ + +%type INDEX OPTNL OPTUNI SUPERT SUPLST REDEF SPCLST +%type TLIST TLIST1 UNIQIT UNIQLS UNIQUE SUBT SPECIF +%type TYPE TSTD TNAME TSET +%type ENUM SELECT ALIAS ENTITY ITEM +%type ILIST +%type FIELD +%type FLIST FLIST1 +%type SCHEMA +%type REFERENCE + +%% + + /************************************************/ + /* Definition of parsing rules (expressions) */ + /************************************************/ + +SCHEMA: KSCHEM NAME ';' ILIST KENDS ';' { $$ = mkschema ( $2, $4 ); /* Root: EXPRESS schema */ } + ; +ILIST : ITEM { $$ = mkilist ( $1, 0 ); /* list of items for schema */ } + | ITEM ILIST { $$ = mkilist ( $1, $2 ); } + ; + +ITEM : ENUM + | SELECT + | ALIAS + | ENTITY { $$ = $1; /* item of schema (type definition) */ } +ENUM : KTYP NAME '=' KENUM KOF TLIST1 ';' KENDT ';' { $$ = mkenum ( $2, $6 ); /* TYPE ENUMERATION definition */ } + ; +SELECT: KTYP NAME '=' KSEL TLIST1 ';' KENDT ';' { $$ = mkselect ( $2, $5 ); /* TYPE SELECT definition */ } + ; +ALIAS : KTYP NAME '=' TYPE ';' KENDT ';' { $$ = mkalias ( $2, $4 ); /* TYPE '=' definition (alias) */ } + ; +ENTITY: KENT NAME SUPERT SUBT ';' FLIST1 UNIQUE KENDE ';' { $$ = mkentity ( $2, $4, $6, 0 ); /* ENTITY definition */ } + | KENT NAME KABSTR SUPERT SUBT ';' FLIST1 UNIQUE KENDE ';' { $$ = mkentity ( $2, $5, $7, 1 ); /* ENTITY definition */ } + ; + +REFERENCE: KREF KFROM NAME TLIST1 ';' { $$ = mkrefs ( $3, $4 ); /* REFERENCE FROM definition */ } + +TLIST : NAME { $$ = mktlist ( $1, 0 ); /* list of (type) names */ } + | NAME ',' TLIST { $$ = mktlist ( $1, $3 ); } + ; +TLIST1: '(' TLIST ')' { $$ = $2; /* TLIST in brackets */ } + ; + +TYPE : TSTD + | TNAME + | TSET { $$ = $1; /* type, simple or complex */ } + ; +TSTD : KINT { $$ = mktstd ( $1 ); /* predefined type: INTEGER */ } + | KNUM { $$ = mktstd ( $1 ); /* predefined type: NUMBER */ } + | KDBL { $$ = mktstd ( $1 ); /* predefined type: REAL */ } + | KSTR { $$ = mktstd ( $1 ); /* predefined type: STRING */ } + | KLOG { $$ = mktstd ( $1 ); /* predefined type: LOGICAL */ } + | KBOOL { $$ = mktstd ( $1 ); /* predefined type: BOOLEAN */ } + ; +TNAME : NAME { $$ = mktname ( $1 ); /* named type */ } + ; +TSET : KLIST '[' INDEX ':' INDEX ']' KOF OPTUNI TYPE { $$ = mktset ( $1, $3, $5, $9 ); /* complex type: LIST */ } + | KARR '[' INDEX ':' INDEX ']' KOF OPTUNI TYPE { $$ = mktset ( $1, $3, $5, $9 ); /* complex type: ARRAY */ } + | KSET '[' INDEX ':' INDEX ']' KOF OPTUNI TYPE { $$ = mktset ( $1, $3, $5, $9 ); /* complex type: SET */ } + | KBAG '[' INDEX ':' INDEX ']' KOF OPTUNI TYPE { $$ = mktset ( $1, $3, $5, $9 ); /* complex type: BAG */ } + ; +INDEX : NUMBER { $$ = $1; /* index for array, set, bag, list range */ } + | '?' { $$ = -1; /* undefined */ } + | NAME '(' NAME ')' {$$ = -1; printf ( "Warning at line %d: index function %s(%s) ignored\n", ec_curline(), $1, $3 ); /* some function.. */ } + ; +OPTUNI: /* empty */ { $$ = 0; /* UNIQUE keyword for complex type definition */ } + | KUNIQ { $$ = 1; } + ; + +SUBT : /* empty */ { $$ = NULL; /* no subtype clause */ } + | KSUBT KOF TLIST1 { $$ = $3; /* subtype clause */ } + ; +SUPERT: /* empty */ { $$ = 0; /* no supertype clause */ } + | KSPRT { $$ = 0; /* supertype clause (ignored) */ } + | KSPRT KOF SUPLST { $$ = 0; /* supertype clause (ignored) */ } + ; +SUPLST: NAME { $$ = 0; /* simple list of supertypes */ } + | '(' SUPLST ')' { $$ = 0; /* allow bracketing */ } + | NAME ',' SUPLST { $$ = 0; /* ... */ } + | K1OF SUPLST { $$ = 0; /* ONEOF construct */ } + | SUPLST KANDOR SUPLST { $$ = 0; /* ANDOR construct */ } + ; + +FLIST : FIELD { $$ = mkflist ( $1, 0 ); /* list of fields of ENTITY item */ } + | FIELD FLIST { $$ = mkflist ( $1, $2 ); } + | REDEF { $$ = 0; /* redefinition of inherited field, just skip */ } + | REDEF FLIST { $$ = $2; /* ignore redefinition of inherited field, take trailing list */ } + ; +FLIST1: /* empty */ { $$ = NULL; /* empty list of fields */ } + | FLIST { $$ = $1; /* or not empty.. just to fix reduce/reduce conflict */ } + ; +FIELD : NAME ':' OPTNL TYPE ';' { $$ = mkfield ( $1, $4, $3 ); } + ; +REDEF : KSELF '\\' SPECIF ':' TYPE ';' { $$ = NULL; printf ( "Warning at line %d: field redefinition ignored\n", ec_curline() ); /* redefinition of inherited field */ } + ; +SPECIF: NAME { $$ = mktlist ( $1, 0 ); /* inherited field specification */ } + | NAME '.' SPECIF { $$ = mktlist ( $1, $3 ); } + ; + +OPTNL : /* empty */ { $$ = 0; } + | KOPT { $$ = 1; } + ; + +UNIQIT: NAME ':' TLIST ';' { $$ = $3; /* UNIQUE statement */ } + | NAME ':' SPCLST ';' { $$ = NULL; /* UNIQUE statement */ } + ; +UNIQLS: UNIQIT { $$ = NULL; /* list of 1 UNIQUE statements */ } + | UNIQIT UNIQLS { $$ = mktlists ( $1, $2 );/* list of UNIQUE statements */ } + ; +UNIQUE: /* empty */ { $$ = NULL; /* no UNIQUE clause in ENTITY */ } + | KUNIQ UNIQLS { $$ = $2; /* UNIQUE clause in ENTITY */ } + ; +SPCLST: KSELF '\\' SPECIF { $$ = 0; /* list of specifications */ } + | KSELF '\\' SPECIF ',' SPCLST { $$ = 0; } + | NAME ',' SPCLST { $$ = 0; } + ; + +%% + +/************************************************/ +/* FUNCTIONS FOR CREATING SCHEMA REPRESENTATION */ + +static Express_Schema *mkschema ( char *name, Express_HSequenceOfItem *ilist ) +{ + Express_Schema *sch = new Express_Schema ( name, ilist ); + Express::Schema() = sch; + return sch; +} + +static Express_HSequenceOfItem *mkilist ( Express_Item *item, Express_HSequenceOfItem *seq ) +{ + if ( ! seq ) { + seq = new Express_HSequenceOfItem; + seq->Append ( item ); + } + else seq->Prepend ( item ); + return seq; +} + +static Express_Item *mkenum ( char *name, TColStd_HSequenceOfHAsciiString *tlist ) +{ + return new Express_Enum ( name, tlist ); +} + +static Express_Item *mkselect ( char *name, TColStd_HSequenceOfHAsciiString *tlist ) +{ + return new Express_Select ( name, tlist ); +} + +static Express_Item *mkalias ( char *name, Express_Type *type ) +{ + return new Express_Alias ( name, type ); +} + +static Express_Item *mkentity ( char *name, TColStd_HSequenceOfHAsciiString *inherit, + Express_HSequenceOfField *field, int isabstract ) +{ + Express_Entity *ent = new Express_Entity ( name, inherit, field ); + if ( isabstract ) ent->SetAbstractFlag ( Standard_True ); + return ent; +} + +static Express_Reference *mkrefs ( char *name, TColStd_HSequenceOfHAsciiString *items) +{ + return new Express_Reference ( name, items ); +} + +static TColStd_HSequenceOfHAsciiString *mktlist ( char *name, TColStd_HSequenceOfHAsciiString *tlist ) +{ + Handle(TCollection_HAsciiString) str = new TCollection_HAsciiString ( name ); + if ( tlist ) tlist->Prepend ( str ); + else { + tlist = new TColStd_HSequenceOfHAsciiString; + tlist->Append ( str ); + } + return tlist; +} + +static TColStd_HSequenceOfHAsciiString *mktlists ( TColStd_HSequenceOfHAsciiString *tlist1, + TColStd_HSequenceOfHAsciiString *tlist2 ) +{ + if ( ! tlist1 ) return tlist2; + if ( ! tlist2 ) return tlist1; + for ( int i=1; i <= tlist2->Length(); i++ ) + tlist1->Append ( tlist2->Value(i) ); + return tlist1; +} + +static Express_Type *mktstd ( int keyword ) +{ + switch ( keyword ) { + case exptocas::parser::token::KINT : return new Express_Integer; + case exptocas::parser::token::KNUM : return new Express_Number; + case exptocas::parser::token::KDBL : return new Express_Real; + case exptocas::parser::token::KSTR : return new Express_String; + case exptocas::parser::token::KBOOL: return new Express_Boolean; + case exptocas::parser::token::KLOG : return new Express_Logical; + default : ec_error ( "Predefined type not treated!", "" ); + return NULL; + } +} + +static Express_Type *mktname ( char *name ) +{ + return new Express_NamedType ( name ); +} + +static Express_Type *mktset ( int keyword, int ilow, int ihigh, Express_Type *of ) +{ + switch ( keyword ) { + case exptocas::parser::token::KLIST: return new Express_List ( ilow, ihigh, of ); + case exptocas::parser::token::KARR : return new Express_Array ( ilow, ihigh, of ); + case exptocas::parser::token::KBAG : return new Express_Bag ( ilow, ihigh, of ); + case exptocas::parser::token::KSET : return new Express_Set ( ilow, ihigh, of ); + default : ec_error ( "Complex type not treated!", "" ); + return NULL; + } +} + +static Express_Field *mkfield ( char *name, Express_Type *type, int optional ) +{ + return new Express_Field ( name, type, optional ); +} + +static Express_HSequenceOfField *mkflist ( Express_Field *field, Express_HSequenceOfField *seq ) +{ + if ( seq ) seq->Prepend ( field ); + else { + seq = new Express_HSequenceOfField; + seq->Append ( field ); + } + return seq; +} + +/*******************************************************************/ +/* External interface to result of parsing */ + +Handle(Express_Schema) ec_parse(const char* theFileName) +{ + std::ifstream aFileStream; + OSD_OpenStream(aFileStream, theFileName, std::ios_base::in | std::ios_base::binary); + exptocas::scanner aScanner(&aFileStream); + aScanner.yyrestart(aFileStream); + // uncomment next string for debug of parser + //aScanner.set_debug(1); + exptocas::parser aParser(&aScanner); + aParser.parse(); + return Express::Schema(); +} + +/*******************************************************************/ +/* MAIN & co */ + +/* +void tlistfree ( struct tlist *list ) +{ + if ( ! list ) return; + tlistfree ( list->next ); + list->next = 0; + free ( list->str ); + list->str = 0; +} +* / + +int printtlist ( struct ec_tlist *tl ) +{ + int num=0; + while ( tl ) { + num++; + printf ( "%s\n", tl->name ); + tl = tl->next; + } + return num; +} + +int main ( void ) +{ + int num = 0; + yyparse(); + + printf ( "\nFinished\n" ); + if ( schema ) { + struct ec_item *it; + it = schema->items; + printf ( "\nSchema %s", schema->name ); + printf ( "\nItems:" ); + while ( it ) { + num++; + printf ( "\n%s", it->name ); + it = it->next; + } +// num = printtlist ( res ); + printf ( "\nTotal %d", num ); + } + +/* tlistfree ( yylval.tlist ); * / + return num; +} +*/ + +void exptocas::parser::error(const std::string& s) +{ + printf("\nParse error at line %d: %s\n", scanner->lineno(), s.c_str()); +} + diff --git a/src/ExpToCasExe/lex.exptocas.cxx b/src/ExpToCasExe/lex.exptocas.cxx new file mode 100644 index 0000000000..3341ba6eb8 --- /dev/null +++ b/src/ExpToCasExe/lex.exptocas.cxx @@ -0,0 +1,2416 @@ + +#define YY_INT_ALIGNED short int + +/* A lexical scanner generated by flex */ + +/* %not-for-header */ +/* %if-c-only */ +/* %if-not-reentrant */ +/* %endif */ +/* %endif */ +/* %ok-for-header */ + +#define FLEX_SCANNER +#define YY_FLEX_MAJOR_VERSION 2 +#define YY_FLEX_MINOR_VERSION 6 +#define YY_FLEX_SUBMINOR_VERSION 4 +#if YY_FLEX_SUBMINOR_VERSION > 0 +#define FLEX_BETA +#endif + +/* %if-c++-only */ + /* The c++ scanner is a mess. The FlexLexer.h header file relies on the + * following macro. This is required in order to pass the c++-multiple-scanners + * test in the regression suite. We get reports that it breaks inheritance. + * We will address this in a future release of flex, or omit the C++ scanner + * altogether. + */ + #define yyFlexLexer exptocasFlexLexer +/* %endif */ + +/* %if-c-only */ +/* %endif */ + +#ifdef yyalloc +#define exptocasalloc_ALREADY_DEFINED +#else +#define yyalloc exptocasalloc +#endif + +#ifdef yyrealloc +#define exptocasrealloc_ALREADY_DEFINED +#else +#define yyrealloc exptocasrealloc +#endif + +#ifdef yyfree +#define exptocasfree_ALREADY_DEFINED +#else +#define yyfree exptocasfree +#endif + +/* %if-c-only */ +/* %endif */ + +/* First, we deal with platform-specific or compiler-specific issues. */ + +/* begin standard C headers. */ +/* %if-c-only */ +/* %endif */ + +/* %if-tables-serialization */ +/* %endif */ +/* end standard C headers. */ + +/* %if-c-or-c++ */ +/* flex integer type definitions */ + +#ifndef FLEXINT_H +#define FLEXINT_H + +/* C99 systems have . Non-C99 systems may or may not. */ + +#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L + +/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, + * if you want the limit (max/min) macros for int types. + */ +#ifndef __STDC_LIMIT_MACROS +#define __STDC_LIMIT_MACROS 1 +#endif + +#include +typedef int8_t flex_int8_t; +typedef uint8_t flex_uint8_t; +typedef int16_t flex_int16_t; +typedef uint16_t flex_uint16_t; +typedef int32_t flex_int32_t; +typedef uint32_t flex_uint32_t; +#else +typedef signed char flex_int8_t; +typedef short int flex_int16_t; +typedef int flex_int32_t; +typedef unsigned char flex_uint8_t; +typedef unsigned short int flex_uint16_t; +typedef unsigned int flex_uint32_t; + +/* Limits of integral types. */ +#ifndef INT8_MIN +#define INT8_MIN (-128) +#endif +#ifndef INT16_MIN +#define INT16_MIN (-32767-1) +#endif +#ifndef INT32_MIN +#define INT32_MIN (-2147483647-1) +#endif +#ifndef INT8_MAX +#define INT8_MAX (127) +#endif +#ifndef INT16_MAX +#define INT16_MAX (32767) +#endif +#ifndef INT32_MAX +#define INT32_MAX (2147483647) +#endif +#ifndef UINT8_MAX +#define UINT8_MAX (255U) +#endif +#ifndef UINT16_MAX +#define UINT16_MAX (65535U) +#endif +#ifndef UINT32_MAX +#define UINT32_MAX (4294967295U) +#endif + +#ifndef SIZE_MAX +#define SIZE_MAX (~(size_t)0) +#endif + +#endif /* ! C99 */ + +#endif /* ! FLEXINT_H */ + +/* %endif */ + +/* begin standard C++ headers. */ +/* %if-c++-only */ +#include +#include +#include +#include +#include +/* end standard C++ headers. */ +/* %endif */ + +/* TODO: this is always defined, so inline it */ +#define yyconst const + +#if defined(__GNUC__) && __GNUC__ >= 3 +#define yynoreturn __attribute__((__noreturn__)) +#else +#define yynoreturn +#endif + +/* %not-for-header */ +/* Returned upon end-of-file. */ +#define YY_NULL 0 +/* %ok-for-header */ + +/* %not-for-header */ +/* Promotes a possibly negative, possibly signed char to an + * integer in range [0..255] for use as an array index. + */ +#define YY_SC_TO_UI(c) ((YY_CHAR) (c)) +/* %ok-for-header */ + +/* %if-reentrant */ +/* %endif */ + +/* %if-not-reentrant */ + +/* %endif */ + +/* Enter a start condition. This macro really ought to take a parameter, + * but we do it the disgusting crufty way forced on us by the ()-less + * definition of BEGIN. + */ +#define BEGIN (yy_start) = 1 + 2 * +/* Translate the current start state into a value that can be later handed + * to BEGIN to return to the state. The YYSTATE alias is for lex + * compatibility. + */ +#define YY_START (((yy_start) - 1) / 2) +#define YYSTATE YY_START +/* Action number for EOF rule of a given start state. */ +#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) +/* Special action meaning "start processing a new file". */ +#define YY_NEW_FILE yyrestart( yyin ) +#define YY_END_OF_BUFFER_CHAR 0 + +/* Size of default input buffer. */ +#ifndef YY_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k. + * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. + * Ditto for the __ia64__ case accordingly. + */ +#define YY_BUF_SIZE 32768 +#else +#define YY_BUF_SIZE 16384 +#endif /* __ia64__ */ +#endif + +/* The state buf must be large enough to hold one state per character in the main buffer. + */ +#define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) + +#ifndef YY_TYPEDEF_YY_BUFFER_STATE +#define YY_TYPEDEF_YY_BUFFER_STATE +typedef struct yy_buffer_state *YY_BUFFER_STATE; +#endif + +#ifndef YY_TYPEDEF_YY_SIZE_T +#define YY_TYPEDEF_YY_SIZE_T +typedef size_t yy_size_t; +#endif + +/* %if-not-reentrant */ +extern int yyleng; +/* %endif */ + +/* %if-c-only */ +/* %if-not-reentrant */ +/* %endif */ +/* %endif */ + +#define EOB_ACT_CONTINUE_SCAN 0 +#define EOB_ACT_END_OF_FILE 1 +#define EOB_ACT_LAST_MATCH 2 + + #define YY_LESS_LINENO(n) + #define YY_LINENO_REWIND_TO(ptr) + +/* Return all but the first "n" matched characters back to the input stream. */ +#define yyless(n) \ + do \ + { \ + /* Undo effects of setting up yytext. */ \ + int yyless_macro_arg = (n); \ + YY_LESS_LINENO(yyless_macro_arg);\ + *yy_cp = (yy_hold_char); \ + YY_RESTORE_YY_MORE_OFFSET \ + (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ + YY_DO_BEFORE_ACTION; /* set up yytext again */ \ + } \ + while ( 0 ) +#define unput(c) yyunput( c, (yytext_ptr) ) + +#ifndef YY_STRUCT_YY_BUFFER_STATE +#define YY_STRUCT_YY_BUFFER_STATE +struct yy_buffer_state + { +/* %if-c-only */ +/* %endif */ + +/* %if-c++-only */ + std::streambuf* yy_input_file; +/* %endif */ + + char *yy_ch_buf; /* input buffer */ + char *yy_buf_pos; /* current position in input buffer */ + + /* Size of input buffer in bytes, not including room for EOB + * characters. + */ + int yy_buf_size; + + /* Number of characters read into yy_ch_buf, not including EOB + * characters. + */ + int yy_n_chars; + + /* Whether we "own" the buffer - i.e., we know we created it, + * and can realloc() it to grow it, and should free() it to + * delete it. + */ + int yy_is_our_buffer; + + /* Whether this is an "interactive" input source; if so, and + * if we're using stdio for input, then we want to use getc() + * instead of fread(), to make sure we stop fetching input after + * each newline. + */ + int yy_is_interactive; + + /* Whether we're considered to be at the beginning of a line. + * If so, '^' rules will be active on the next match, otherwise + * not. + */ + int yy_at_bol; + + int yy_bs_lineno; /**< The line count. */ + int yy_bs_column; /**< The column count. */ + + /* Whether to try to fill the input buffer when we reach the + * end of it. + */ + int yy_fill_buffer; + + int yy_buffer_status; + +#define YY_BUFFER_NEW 0 +#define YY_BUFFER_NORMAL 1 + /* When an EOF's been seen but there's still some text to process + * then we mark the buffer as YY_EOF_PENDING, to indicate that we + * shouldn't try reading from the input source any more. We might + * still have a bunch of tokens to match, though, because of + * possible backing-up. + * + * When we actually see the EOF, we change the status to "new" + * (via yyrestart()), so that the user can continue scanning by + * just pointing yyin at a new input file. + */ +#define YY_BUFFER_EOF_PENDING 2 + + }; +#endif /* !YY_STRUCT_YY_BUFFER_STATE */ + +/* %if-c-only Standard (non-C++) definition */ +/* %not-for-header */ +/* %if-not-reentrant */ +/* %endif */ +/* %ok-for-header */ + +/* %endif */ + +/* We provide macros for accessing buffer states in case in the + * future we want to put the buffer states in a more general + * "scanner state". + * + * Returns the top of the stack, or NULL. + */ +#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ + ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ + : NULL) +/* Same as previous macro, but useful when we know that the buffer stack is not + * NULL or when we need an lvalue. For internal use only. + */ +#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] + +/* %if-c-only Standard (non-C++) definition */ +/* %if-not-reentrant */ +/* %not-for-header */ +/* %ok-for-header */ + +/* %endif */ +/* %endif */ + +void *yyalloc ( yy_size_t ); +void *yyrealloc ( void *, yy_size_t ); +void yyfree ( void * ); + +#define yy_new_buffer yy_create_buffer +#define yy_set_interactive(is_interactive) \ + { \ + if ( ! YY_CURRENT_BUFFER ){ \ + yyensure_buffer_stack (); \ + YY_CURRENT_BUFFER_LVALUE = \ + yy_create_buffer( yyin, YY_BUF_SIZE ); \ + } \ + YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ + } +#define yy_set_bol(at_bol) \ + { \ + if ( ! YY_CURRENT_BUFFER ){\ + yyensure_buffer_stack (); \ + YY_CURRENT_BUFFER_LVALUE = \ + yy_create_buffer( yyin, YY_BUF_SIZE ); \ + } \ + YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ + } +#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) + +/* %% [1.0] yytext/yyin/yyout/yy_state_type/yylineno etc. def's & init go here */ +/* Begin user sect3 */ +#define YY_SKIP_YYWRAP + +#define FLEX_DEBUG +typedef flex_uint8_t YY_CHAR; + +#define yytext_ptr yytext +#define YY_INTERACTIVE + +#include + +int yyFlexLexer::yywrap() { return 1; } +int yyFlexLexer::yylex() + { + LexerError( "yyFlexLexer::yylex invoked but %option yyclass used" ); + return 0; + } + +#define YY_DECL int exptocas::scanner::yylex() + +/* %% [1.5] DFA */ + +/* %if-c-only Standard (non-C++) definition */ +/* %endif */ + +/* Done after the current pattern has been matched and before the + * corresponding action - sets up yytext. + */ +#define YY_DO_BEFORE_ACTION \ + (yytext_ptr) = yy_bp; \ +/* %% [2.0] code to fiddle yytext and yyleng for yymore() goes here \ */\ + yyleng = (int) (yy_cp - yy_bp); \ + (yy_hold_char) = *yy_cp; \ + *yy_cp = '\0'; \ +/* %% [3.0] code to copy yytext_ptr to yytext[] goes here, if %array \ */\ + (yy_c_buf_p) = yy_cp; +/* %% [4.0] data tables for the DFA and the user's section 1 definitions go here */ +#define YY_NUM_RULES 56 +#define YY_END_OF_BUFFER 57 +/* This struct is not used in this scanner, + but its presence is necessary. */ +struct yy_trans_info + { + flex_int32_t yy_verify; + flex_int32_t yy_nxt; + }; +static const flex_int16_t yy_accept[306] = + { 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 44, 44, 57, 54, 52, 55, 40, 40, + 54, 39, 53, 53, 53, 53, 53, 53, 53, 53, + 53, 53, 53, 53, 53, 53, 38, 53, 53, 53, + 53, 53, 3, 3, 14, 14, 49, 49, 46, 46, + 46, 46, 44, 44, 44, 52, 2, 1, 39, 53, + 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, + 53, 53, 21, 53, 53, 53, 53, 53, 53, 53, + 53, 53, 53, 53, 38, 53, 53, 53, 53, 53, + 4, 0, 0, 0, 45, 42, 43, 44, 44, 44, + + 1, 53, 36, 53, 20, 53, 53, 53, 53, 53, + 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, + 53, 19, 53, 53, 53, 53, 53, 37, 53, 53, + 53, 53, 53, 0, 0, 43, 44, 44, 53, 53, + 53, 53, 53, 53, 53, 53, 53, 53, 17, 53, + 53, 53, 53, 24, 48, 53, 53, 30, 53, 53, + 53, 7, 53, 53, 53, 53, 53, 53, 0, 0, + 44, 44, 53, 34, 18, 53, 53, 53, 53, 53, + 53, 53, 53, 53, 35, 53, 53, 53, 53, 53, + 53, 53, 53, 13, 53, 53, 53, 0, 0, 0, + + 44, 44, 53, 53, 53, 53, 9, 53, 53, 53, + 53, 22, 53, 5, 15, 25, 53, 53, 29, 53, + 12, 53, 53, 0, 0, 0, 44, 44, 53, 27, + 53, 53, 53, 53, 23, 26, 53, 32, 53, 53, + 53, 11, 0, 0, 0, 44, 44, 31, 53, 53, + 53, 41, 28, 53, 8, 53, 0, 8, 0, 44, + 41, 0, 53, 53, 53, 33, 53, 0, 50, 44, + 0, 53, 6, 53, 10, 10, 44, 0, 53, 16, + 44, 0, 53, 44, 0, 53, 47, 0, 53, 0, + 53, 0, 53, 0, 53, 0, 53, 0, 53, 0, + + 53, 0, 53, 51, 0 + } ; + +static const YY_CHAR yy_ec[256] = + { 0, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 1, 1, 1, 1, 1, 1, 4, 5, + 6, 7, 1, 8, 9, 8, 1, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 11, 12, 1, + 11, 1, 8, 1, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 22, 35, 22, + 36, 8, 37, 1, 38, 1, 39, 39, 39, 39, + + 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 1, 40, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1 + } ; + +static const YY_CHAR yy_meta[41] = + { 0, + 1, 2, 3, 2, 2, 2, 1, 1, 2, 4, + 2, 2, 5, 5, 5, 5, 4, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 1, 1, 4, 4, 2 + } ; + +static const flex_int16_t yy_base[316] = + { 0, + 0, 0, 24, 26, 29, 35, 52, 54, 45, 51, + 61, 62, 79, 119, 412, 413, 409, 413, 403, 413, + 400, 398, 75, 79, 381, 0, 381, 373, 379, 45, + 371, 49, 76, 86, 367, 48, 60, 376, 380, 382, + 373, 372, 413, 390, 413, 370, 413, 369, 413, 389, + 385, 382, 0, 365, 357, 386, 413, 0, 377, 0, + 356, 369, 355, 364, 356, 356, 78, 355, 348, 348, + 358, 352, 0, 358, 343, 360, 349, 351, 83, 341, + 115, 342, 347, 357, 101, 116, 349, 336, 118, 102, + 413, 348, 347, 358, 413, 413, 0, 0, 345, 335, + + 0, 328, 332, 344, 0, 333, 325, 316, 332, 328, + 336, 333, 318, 327, 333, 320, 324, 321, 326, 325, + 95, 0, 320, 309, 322, 321, 309, 326, 297, 305, + 312, 294, 314, 292, 291, 0, 290, 312, 297, 296, + 289, 306, 291, 291, 289, 302, 287, 298, 0, 301, + 298, 296, 287, 0, 0, 288, 296, 0, 285, 274, + 279, 0, 275, 113, 289, 272, 121, 275, 129, 274, + 284, 270, 287, 0, 0, 286, 285, 282, 261, 266, + 273, 276, 279, 262, 0, 265, 276, 257, 268, 259, + 254, 267, 248, 0, 265, 256, 250, 254, 243, 245, + + 244, 254, 259, 248, 247, 251, 0, 257, 243, 239, + 244, 0, 253, 0, 0, 0, 248, 229, 0, 236, + 0, 231, 244, 229, 232, 235, 232, 230, 224, 0, + 223, 236, 221, 226, 0, 0, 227, 0, 222, 231, + 226, 0, 225, 228, 227, 228, 217, 0, 159, 212, + 210, 0, 0, 179, 0, 164, 163, 413, 181, 161, + 0, 174, 173, 176, 162, 0, 152, 151, 413, 164, + 159, 158, 0, 157, 0, 413, 155, 164, 163, 0, + 153, 139, 138, 163, 159, 158, 413, 146, 141, 141, + 133, 127, 124, 122, 121, 132, 128, 82, 77, 64, + + 44, 60, 37, 413, 413, 199, 204, 209, 214, 216, + 221, 223, 228, 233, 237 + } ; + +static const flex_int16_t yy_def[316] = + { 0, + 305, 1, 1, 1, 1, 1, 306, 306, 307, 307, + 308, 308, 309, 309, 305, 305, 305, 305, 305, 305, + 305, 310, 310, 310, 310, 310, 310, 310, 310, 310, + 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, + 310, 310, 305, 305, 305, 305, 305, 305, 305, 311, + 305, 305, 312, 312, 312, 305, 305, 313, 310, 310, + 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, + 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, + 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, + 305, 305, 305, 311, 305, 305, 314, 312, 312, 312, + + 313, 310, 310, 310, 310, 310, 310, 310, 310, 310, + 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, + 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, + 310, 310, 310, 305, 305, 314, 312, 312, 310, 310, + 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, + 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, + 310, 310, 310, 310, 310, 310, 310, 310, 305, 305, + 312, 312, 310, 310, 310, 310, 310, 310, 310, 310, + 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, + 310, 310, 310, 310, 310, 310, 310, 305, 305, 305, + + 312, 312, 310, 310, 310, 310, 310, 310, 310, 310, + 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, + 310, 310, 310, 305, 305, 305, 312, 312, 310, 310, + 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, + 310, 310, 305, 305, 305, 312, 312, 310, 310, 310, + 310, 310, 310, 310, 310, 310, 305, 305, 305, 312, + 312, 315, 249, 310, 310, 310, 310, 305, 305, 312, + 305, 310, 310, 310, 310, 305, 312, 305, 310, 310, + 312, 305, 310, 312, 305, 310, 305, 305, 310, 305, + 310, 305, 310, 305, 310, 305, 310, 305, 310, 305, + + 310, 305, 310, 305, 0, 305, 305, 305, 305, 305, + 305, 305, 305, 305, 305 + } ; + +static const flex_int16_t yy_nxt[454] = + { 0, + 16, 17, 18, 16, 19, 20, 16, 20, 21, 22, + 20, 20, 23, 24, 25, 26, 27, 28, 26, 26, + 29, 26, 30, 26, 31, 32, 26, 26, 33, 34, + 35, 36, 26, 26, 26, 20, 20, 37, 37, 16, + 38, 26, 38, 26, 40, 41, 26, 18, 304, 42, + 40, 41, 26, 18, 18, 42, 18, 39, 44, 39, + 44, 46, 39, 18, 18, 70, 73, 46, 39, 85, + 71, 304, 83, 74, 303, 75, 84, 48, 48, 49, + 49, 18, 50, 51, 49, 49, 49, 52, 61, 49, + 49, 64, 76, 108, 302, 54, 55, 85, 85, 62, + + 78, 301, 79, 63, 65, 121, 300, 77, 109, 110, + 85, 157, 158, 122, 49, 49, 80, 81, 49, 49, + 49, 18, 50, 51, 49, 49, 49, 52, 124, 49, + 49, 129, 112, 132, 133, 54, 55, 196, 85, 85, + 299, 125, 178, 193, 298, 198, 109, 110, 109, 110, + 178, 297, 296, 295, 49, 49, 294, 293, 49, 199, + 262, 262, 262, 262, 262, 292, 291, 262, 263, 262, + 262, 290, 289, 288, 287, 286, 285, 284, 283, 282, + 281, 280, 279, 278, 277, 276, 275, 274, 273, 272, + 271, 270, 269, 268, 267, 266, 263, 263, 262, 43, + + 43, 43, 43, 43, 45, 45, 45, 45, 45, 47, + 47, 47, 47, 47, 53, 53, 53, 53, 53, 60, + 60, 94, 94, 94, 94, 94, 98, 98, 101, 101, + 265, 101, 101, 136, 136, 264, 136, 136, 262, 262, + 262, 261, 260, 259, 258, 257, 256, 255, 254, 253, + 252, 251, 250, 249, 248, 247, 246, 245, 244, 243, + 242, 241, 240, 239, 238, 237, 236, 235, 234, 233, + 232, 231, 230, 229, 228, 227, 226, 225, 224, 223, + 222, 221, 220, 219, 218, 217, 216, 215, 214, 213, + 212, 211, 210, 209, 208, 207, 206, 205, 204, 203, + + 202, 201, 200, 197, 195, 194, 192, 191, 190, 189, + 188, 187, 186, 185, 184, 183, 182, 181, 180, 179, + 178, 177, 176, 175, 174, 173, 172, 171, 170, 169, + 168, 167, 166, 165, 164, 128, 163, 162, 161, 160, + 159, 156, 155, 154, 153, 152, 151, 150, 149, 148, + 147, 146, 145, 144, 143, 142, 141, 140, 139, 138, + 137, 95, 135, 134, 131, 130, 128, 127, 126, 123, + 120, 119, 118, 117, 116, 115, 114, 113, 112, 111, + 107, 106, 105, 104, 103, 102, 59, 56, 100, 99, + 97, 96, 95, 93, 92, 91, 90, 89, 88, 87, + + 86, 82, 72, 69, 68, 67, 66, 59, 58, 57, + 56, 305, 15, 305, 305, 305, 305, 305, 305, 305, + 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, + 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, + 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, + 305, 305, 305 + } ; + +static const flex_int16_t yy_chk[454] = + { 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 3, 3, 4, 4, 5, 5, 5, 9, 303, 5, + 6, 6, 6, 10, 7, 6, 8, 3, 7, 4, + 8, 9, 5, 11, 12, 30, 32, 10, 6, 37, + 30, 302, 36, 32, 301, 32, 36, 11, 12, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 23, 13, + 13, 24, 33, 67, 300, 13, 13, 37, 37, 23, + + 34, 299, 34, 23, 24, 79, 298, 33, 67, 67, + 85, 121, 121, 79, 13, 13, 34, 34, 13, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 81, 14, + 14, 86, 90, 89, 90, 14, 14, 167, 85, 85, + 297, 81, 164, 164, 296, 169, 86, 86, 89, 89, + 167, 295, 294, 293, 14, 14, 292, 291, 14, 169, + 249, 249, 249, 249, 249, 290, 289, 249, 249, 249, + 249, 288, 286, 285, 284, 283, 282, 281, 279, 278, + 277, 274, 272, 271, 270, 268, 267, 265, 264, 263, + 262, 260, 259, 257, 256, 254, 249, 249, 249, 306, + + 306, 306, 306, 306, 307, 307, 307, 307, 307, 308, + 308, 308, 308, 308, 309, 309, 309, 309, 309, 310, + 310, 311, 311, 311, 311, 311, 312, 312, 313, 313, + 251, 313, 313, 314, 314, 250, 314, 314, 315, 315, + 315, 247, 246, 245, 244, 243, 241, 240, 239, 237, + 234, 233, 232, 231, 229, 228, 227, 226, 225, 224, + 223, 222, 220, 218, 217, 213, 211, 210, 209, 208, + 206, 205, 204, 203, 202, 201, 200, 199, 198, 197, + 196, 195, 193, 192, 191, 190, 189, 188, 187, 186, + 184, 183, 182, 181, 180, 179, 178, 177, 176, 173, + + 172, 171, 170, 168, 166, 165, 163, 161, 160, 159, + 157, 156, 153, 152, 151, 150, 148, 147, 146, 145, + 144, 143, 142, 141, 140, 139, 138, 137, 135, 134, + 133, 132, 131, 130, 129, 128, 127, 126, 125, 124, + 123, 120, 119, 118, 117, 116, 115, 114, 113, 112, + 111, 110, 109, 108, 107, 106, 104, 103, 102, 100, + 99, 94, 93, 92, 88, 87, 84, 83, 82, 80, + 78, 77, 76, 75, 74, 72, 71, 70, 69, 68, + 66, 65, 64, 63, 62, 61, 59, 56, 55, 54, + 52, 51, 50, 48, 46, 44, 42, 41, 40, 39, + + 38, 35, 31, 29, 28, 27, 25, 22, 21, 19, + 17, 15, 305, 305, 305, 305, 305, 305, 305, 305, + 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, + 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, + 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, + 305, 305, 305 + } ; + +static const flex_int16_t yy_rule_linenum[56] = + { 0, + 104, 105, 106, 107, 109, 110, 112, 113, 115, 116, + 118, 119, 120, 121, 123, 124, 125, 126, 127, 128, + 129, 131, 132, 133, 134, 135, 136, 138, 139, 140, + 142, 143, 144, 145, 146, 147, 149, 151, 153, 154, + 156, 157, 158, 159, 160, 161, 162, 164, 165, 166, + 168, 173, 174, 175, 177 + } ; + +/* The intent behind this definition is that it'll catch + * any uses of REJECT which flex missed. + */ +#define REJECT reject_used_but_not_detected +#define yymore() yymore_used_but_not_detected +#define YY_MORE_ADJ 0 +#define YY_RESTORE_YY_MORE_OFFSET + +/* Created: Thu Oct 28 12:21:16 1999 +/* Author: Andrey BETENEV +/* Copyright (c) 1999-2020 OPEN CASCADE SAS +/* +/* This file is part of Open CASCADE Technology software library. +/* +/* This library is free software; you can redistribute it and/or modify it under +/* the terms of the GNU Lesser General Public License version 2.1 as published +/* by the Free Software Foundation, with special exception defined in the file +/* OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +/* distribution for complete text of the license and disclaimer of any warranty. +/* +/* Alternatively, this file may be used under the terms of Open CASCADE +/* commercial license or contractual agreement. + +/*****************************************************************************\ + +This LEX scanner is performs lexical analysis of EXPRESS schema file +for EXPRESS -> CASCADE/XSTEP classes generator + +On the stage of lexical scanner comments (single- and multi-line), +definitions of CONSTANT, FUNCTION, RULE items and clauses WHERE, INVERSE +and DERIVE of TYPE amd ENTITY items are dismissed (ignored) + +Then, keywords such as ENTITY, SUPERTYPE, SET etc., names of items +and special symbols are identified and returned to parser (yacc) as tokens + +Also, error processing and current line number tracking functions are defined + +\*****************************************************************************/ + +/************************************/ +/* Section 1 */ +/* definitions */ + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "exptocas.tab.hxx" /* define tokens */ + +/* Auxiliary functions */ + +static int fun_level=0; +static int ec_linenum=1; +static int ec_state = 0; + +int yywrap(void) { return 1; } + +int ec_curline ( void ) +{ + return ec_linenum; +} + +int ec_error ( char *s, char *text ) +{ + printf ( "\nError at line %d: %s \"%s\"\n", ec_curline(), s, text ); + return 0; +} + +/* + c++ generate C++ parser class +*/ + +// Tell flex which function to define +#ifdef YY_DECL +# undef YY_DECL +#endif +#define YY_DECL int exptocas::scanner::lex (exptocas::parser::semantic_type* yylval) + +typedef exptocas::parser::token token; + +/************************************/ +/* Section 2 */ +/* parsing rules */ + +#define INITIAL 0 +#define TYP 1 +#define ENT 2 +#define COMM 3 +#define SKP 4 +#define RULE 5 +#define FUN 6 + +/*windows compatibility case*/ +#include +#define isatty _isatty +#define fileno _fileno + +#ifndef YY_EXTRA_TYPE +#define YY_EXTRA_TYPE void * +#endif + +/* %if-c-only Reentrant structure and macros (non-C++). */ +/* %if-reentrant */ +/* %if-c-only */ +/* %endif */ +/* %if-reentrant */ +/* %endif */ +/* %endif End reentrant structures and macros. */ +/* %if-bison-bridge */ +/* %endif */ +/* %not-for-header */ +/* %ok-for-header */ + +/* %endif */ + +#ifndef yytext_ptr +static void yy_flex_strncpy ( char *, const char *, int ); +#endif + +#ifdef YY_NEED_STRLEN +static int yy_flex_strlen ( const char * ); +#endif + +#ifndef YY_NO_INPUT +/* %if-c-only Standard (non-C++) definition */ +/* %not-for-header */ +/* %ok-for-header */ + +/* %endif */ +#endif + +/* %if-c-only */ +/* %endif */ + +/* Amount of stuff to slurp up with each read. */ +#ifndef YY_READ_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k */ +#define YY_READ_BUF_SIZE 16384 +#else +#define YY_READ_BUF_SIZE 8192 +#endif /* __ia64__ */ +#endif + +/* Copy whatever the last rule matched to the standard output. */ +#ifndef ECHO +/* %if-c-only Standard (non-C++) definition */ +/* %endif */ +/* %if-c++-only C++ definition */ +#define ECHO LexerOutput( yytext, yyleng ) +/* %endif */ +#endif + +/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, + * is returned in "result". + */ +#ifndef YY_INPUT +#define YY_INPUT(buf,result,max_size) \ +/* %% [5.0] fread()/read() definition of YY_INPUT goes here unless we're doing C++ \ */\ +\ +/* %if-c++-only C++ definition \ */\ + if ( (int)(result = LexerInput( (char *) buf, max_size )) < 0 ) \ + YY_FATAL_ERROR( "input in flex scanner failed" ); +/* %endif */ + +#endif + +/* No semi-colon after return; correct usage is to write "yyterminate();" - + * we don't want an extra ';' after the "return" because that will cause + * some compilers to complain about unreachable statements. + */ +#ifndef yyterminate +#define yyterminate() return YY_NULL +#endif + +/* Number of entries by which start-condition stack grows. */ +#ifndef YY_START_STACK_INCR +#define YY_START_STACK_INCR 25 +#endif + +/* Report a fatal error. */ +#ifndef YY_FATAL_ERROR +/* %if-c-only */ +/* %endif */ +/* %if-c++-only */ +#define YY_FATAL_ERROR(msg) LexerError( msg ) +/* %endif */ +#endif + +/* %if-tables-serialization structures and prototypes */ +/* %not-for-header */ +/* %ok-for-header */ + +/* %not-for-header */ +/* %tables-yydmap generated elements */ +/* %endif */ +/* end tables serialization structures and prototypes */ + +/* %ok-for-header */ + +/* Default declaration of generated scanner - a define so the user can + * easily add parameters. + */ +#ifndef YY_DECL +#define YY_DECL_IS_OURS 1 +/* %if-c-only Standard (non-C++) definition */ +/* %endif */ +/* %if-c++-only C++ definition */ +#define YY_DECL int yyFlexLexer::yylex() +/* %endif */ +#endif /* !YY_DECL */ + +/* Code executed at the beginning of each rule, after yytext and yyleng + * have been set up. + */ +#ifndef YY_USER_ACTION +#define YY_USER_ACTION +#endif + +/* Code executed at the end of each rule. */ +#ifndef YY_BREAK +#define YY_BREAK /*LINTED*/break; +#endif + +/* %% [6.0] YY_RULE_SETUP definition goes here */ +#define YY_RULE_SETUP \ + YY_USER_ACTION + +/* %not-for-header */ +/** The main scanner function which does all the work. + */ +YY_DECL +{ + yy_state_type yy_current_state; + char *yy_cp, *yy_bp; + int yy_act; + + if ( !(yy_init) ) + { + (yy_init) = 1; + +#ifdef YY_USER_INIT + YY_USER_INIT; +#endif + + if ( ! (yy_start) ) + (yy_start) = 1; /* first start state */ + + if ( ! yyin ) +/* %if-c-only */ +/* %endif */ +/* %if-c++-only */ + yyin.rdbuf(std::cin.rdbuf()); +/* %endif */ + + if ( ! yyout ) +/* %if-c-only */ +/* %endif */ +/* %if-c++-only */ + yyout.rdbuf(std::cout.rdbuf()); +/* %endif */ + + if ( ! YY_CURRENT_BUFFER ) { + yyensure_buffer_stack (); + YY_CURRENT_BUFFER_LVALUE = + yy_create_buffer( yyin, YY_BUF_SIZE ); + } + + yy_load_buffer_state( ); + } + + { +/* %% [7.0] user's declarations go here */ + + while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ + { +/* %% [8.0] yymore()-related code goes here */ + yy_cp = (yy_c_buf_p); + + /* Support of yytext. */ + *yy_cp = (yy_hold_char); + + /* yy_bp points to the position in yy_ch_buf of the start of + * the current run. + */ + yy_bp = yy_cp; + +/* %% [9.0] code to set up and find next match goes here */ + yy_current_state = (yy_start); +yy_match: + do + { + YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ; + if ( yy_accept[yy_current_state] ) + { + (yy_last_accepting_state) = yy_current_state; + (yy_last_accepting_cpos) = yy_cp; + } + while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) + { + yy_current_state = (int) yy_def[yy_current_state]; + if ( yy_current_state >= 306 ) + yy_c = yy_meta[yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; + ++yy_cp; + } + while ( yy_base[yy_current_state] != 413 ); + +yy_find_action: +/* %% [10.0] code to find the action number goes here */ + yy_act = yy_accept[yy_current_state]; + if ( yy_act == 0 ) + { /* have to back up */ + yy_cp = (yy_last_accepting_cpos); + yy_current_state = (yy_last_accepting_state); + yy_act = yy_accept[yy_current_state]; + } + + YY_DO_BEFORE_ACTION; + +/* %% [11.0] code for yylineno update goes here */ + +do_action: /* This label is used only to access EOF actions. */ + +/* %% [12.0] debug code goes here */ + if ( yy_flex_debug ) + { + if ( yy_act == 0 ) + std::cerr << "--scanner backing up\n"; + else if ( yy_act < 56 ) + std::cerr << "--accepting rule at line " << yy_rule_linenum[yy_act] << + "(\"" << yytext << "\")\n"; + else if ( yy_act == 56 ) + std::cerr << "--accepting default rule (\"" << yytext << "\")\n"; + else if ( yy_act == 57 ) + std::cerr << "--(end of buffer or a NUL)\n"; + else + std::cerr << "--EOF (start condition " << YY_START << ")\n"; + } + + switch ( yy_act ) + { /* beginning of action switch */ +/* %% [13.0] actions go here */ + case 0: /* must back up */ + /* undo the effects of YY_DO_BEFORE_ACTION */ + *yy_cp = (yy_hold_char); + yy_cp = (yy_last_accepting_cpos); + yy_current_state = (yy_last_accepting_state); + goto yy_find_action; + +case 1: +YY_RULE_SETUP +{ /* Eat line comments */ } + YY_BREAK +case 2: +YY_RULE_SETUP +{ ec_state = YYSTATE; BEGIN(COMM); } + YY_BREAK +case 3: +YY_RULE_SETUP +{ /* Eat multiline comments */ } + YY_BREAK +case 4: +YY_RULE_SETUP +{ BEGIN(ec_state); } + YY_BREAK +case 5: +YY_RULE_SETUP +{ return yylval->num = token::KSCHEM; } + YY_BREAK +case 6: +YY_RULE_SETUP +{ return yylval->num = token::KENDS; } + YY_BREAK +case 7: +YY_RULE_SETUP +{ BEGIN(TYP); return yylval->num = token::KTYP; } + YY_BREAK +case 8: +YY_RULE_SETUP +{ BEGIN(0); return yylval->num = token::KENDT; } + YY_BREAK +case 9: +YY_RULE_SETUP +{ BEGIN(ENT); return yylval->num = token::KENT; } + YY_BREAK +case 10: +YY_RULE_SETUP +{ BEGIN(0); return yylval->num = token::KENDE; } + YY_BREAK +case 11: +case 12: +case 13: +YY_RULE_SETUP +{ BEGIN(SKP); } + YY_BREAK +case 14: +YY_RULE_SETUP +{ /* eat contents of WHERE and DERIVE subclauses of ENTITY and TYPE */ } + YY_BREAK +case 15: +YY_RULE_SETUP +{ return yylval->num = token::KSEL; } + YY_BREAK +case 16: +YY_RULE_SETUP +{ return yylval->num = token::KENUM; } + YY_BREAK +case 17: +YY_RULE_SETUP +{ return yylval->num = token::KLIST; } + YY_BREAK +case 18: +YY_RULE_SETUP +{ return yylval->num = token::KARR; } + YY_BREAK +case 19: +YY_RULE_SETUP +{ return yylval->num = token::KSET; } + YY_BREAK +case 20: +YY_RULE_SETUP +{ return yylval->num = token::KBAG; } + YY_BREAK +case 21: +YY_RULE_SETUP +{ return yylval->num = token::KOF; } + YY_BREAK +case 22: +YY_RULE_SETUP +{ return yylval->num = token::KNUM; } + YY_BREAK +case 23: +YY_RULE_SETUP +{ return yylval->num = token::KINT; } + YY_BREAK +case 24: +YY_RULE_SETUP +{ return yylval->num = token::KDBL; } + YY_BREAK +case 25: +YY_RULE_SETUP +{ return yylval->num = token::KSTR; } + YY_BREAK +case 26: +YY_RULE_SETUP +{ return yylval->num = token::KLOG; } + YY_BREAK +case 27: +YY_RULE_SETUP +{ return yylval->num = token::KBOOL; } + YY_BREAK +case 28: +YY_RULE_SETUP +{ return yylval->num = token::KOPT; } + YY_BREAK +case 29: +YY_RULE_SETUP +{ return yylval->num = token::KUNIQ; } + YY_BREAK +case 30: +YY_RULE_SETUP +{ return yylval->num = token::KSELF; } + YY_BREAK +case 31: +YY_RULE_SETUP +{ return yylval->num = token::KABSTR; } + YY_BREAK +case 32: +YY_RULE_SETUP +{ return yylval->num = token::KSUBT; } + YY_BREAK +case 33: +YY_RULE_SETUP +{ return yylval->num = token::KSPRT; } + YY_BREAK +case 34: +YY_RULE_SETUP +{ return yylval->num = token::KANDOR; } + YY_BREAK +case 35: +YY_RULE_SETUP +{ return yylval->num = token::K1OF; } + YY_BREAK +case 36: +YY_RULE_SETUP +{ return yylval->num = token::KAND; } + YY_BREAK +case 37: +YY_RULE_SETUP +{ yylval->str = strdup ( yytext ); return token::NAME; } + YY_BREAK +case 38: +YY_RULE_SETUP +{ yylval->str = strdup ( yytext ); return token::NAME; } + YY_BREAK +case 39: +YY_RULE_SETUP +{ yylval->num = atoi ( yytext ); return token::NUMBER; } + YY_BREAK +case 40: +YY_RULE_SETUP +{ return yylval->num = yytext[0]; } + YY_BREAK +case 41: +YY_RULE_SETUP +{ BEGIN(FUN); fun_level++; } + YY_BREAK +case 42: +YY_RULE_SETUP +{ ec_state = YYSTATE; BEGIN(COMM); /* eat comments in functions */ } + YY_BREAK +case 43: +YY_RULE_SETUP +{ /* Eat line comments in functions */ } + YY_BREAK +case 44: +YY_RULE_SETUP +{ /* eat FUNCTIONs - skip IDs explicitly */ } + YY_BREAK +case 45: +/* rule 45 can match eol */ +YY_RULE_SETUP +{ /* eat FUNCTIONs - skip strings explicitly */ } + YY_BREAK +case 46: +YY_RULE_SETUP +{ /* eat FUNCTIONs - skip all other symbols in functions */ } + YY_BREAK +case 47: +YY_RULE_SETUP +{ fun_level--; if ( ! fun_level ) BEGIN(0); } + YY_BREAK +case 48: +YY_RULE_SETUP +{ BEGIN(RULE); /* eat RULEs */ } + YY_BREAK +case 49: +YY_RULE_SETUP +{ /* eat RULEs */ } + YY_BREAK +case 50: +YY_RULE_SETUP +{ BEGIN(0); } + YY_BREAK +case 51: +/* rule 51 can match eol */ +YY_RULE_SETUP +{ /* eat CONSTANTs */ + char *s = yytext; /* but don't forget to count lines.. */ + while ( *s ) if ( *(s++) == '\n' ) ec_linenum++; + } + YY_BREAK +case 52: +YY_RULE_SETUP +{ /* eat spaces */ } + YY_BREAK +case 53: +YY_RULE_SETUP +{ ec_error ( "unknown keyword ", yytext ); /* put unrecognized keywords to cerr */ } + YY_BREAK +case 54: +YY_RULE_SETUP +{ ec_error ( "unknown symbol ", yytext ); /* put unrecognized data to cerr */ } + YY_BREAK +case 55: +/* rule 55 can match eol */ +YY_RULE_SETUP +{ ec_linenum++; /* count lines */ } + YY_BREAK +case 56: +YY_RULE_SETUP +ECHO; + YY_BREAK +case YY_STATE_EOF(INITIAL): +case YY_STATE_EOF(TYP): +case YY_STATE_EOF(ENT): +case YY_STATE_EOF(COMM): +case YY_STATE_EOF(SKP): +case YY_STATE_EOF(RULE): +case YY_STATE_EOF(FUN): + yyterminate(); + + case YY_END_OF_BUFFER: + { + /* Amount of text matched not including the EOB char. */ + int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1; + + /* Undo the effects of YY_DO_BEFORE_ACTION. */ + *yy_cp = (yy_hold_char); + YY_RESTORE_YY_MORE_OFFSET + + if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) + { + /* We're scanning a new file or input source. It's + * possible that this happened because the user + * just pointed yyin at a new source and called + * yylex(). If so, then we have to assure + * consistency between YY_CURRENT_BUFFER and our + * globals. Here is the right place to do so, because + * this is the first action (other than possibly a + * back-up) that will match for the new input source. + */ + (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; +/* %if-c-only */ +/* %endif */ +/* %if-c++-only */ + YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin.rdbuf(); +/* %endif */ + YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; + } + + /* Note that here we test for yy_c_buf_p "<=" to the position + * of the first EOB in the buffer, since yy_c_buf_p will + * already have been incremented past the NUL character + * (since all states make transitions on EOB to the + * end-of-buffer state). Contrast this with the test + * in input(). + */ + if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) + { /* This was really a NUL. */ + yy_state_type yy_next_state; + + (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text; + + yy_current_state = yy_get_previous_state( ); + + /* Okay, we're now positioned to make the NUL + * transition. We couldn't have + * yy_get_previous_state() go ahead and do it + * for us because it doesn't know how to deal + * with the possibility of jamming (and we don't + * want to build jamming into it because then it + * will run more slowly). + */ + + yy_next_state = yy_try_NUL_trans( yy_current_state ); + + yy_bp = (yytext_ptr) + YY_MORE_ADJ; + + if ( yy_next_state ) + { + /* Consume the NUL. */ + yy_cp = ++(yy_c_buf_p); + yy_current_state = yy_next_state; + goto yy_match; + } + + else + { +/* %% [14.0] code to do back-up for compressed tables and set up yy_cp goes here */ + yy_cp = (yy_c_buf_p); + goto yy_find_action; + } + } + + else switch ( yy_get_next_buffer( ) ) + { + case EOB_ACT_END_OF_FILE: + { + (yy_did_buffer_switch_on_eof) = 0; + + if ( yywrap( ) ) + { + /* Note: because we've taken care in + * yy_get_next_buffer() to have set up + * yytext, we can now set up + * yy_c_buf_p so that if some total + * hoser (like flex itself) wants to + * call the scanner after we return the + * YY_NULL, it'll still work - another + * YY_NULL will get returned. + */ + (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ; + + yy_act = YY_STATE_EOF(YY_START); + goto do_action; + } + + else + { + if ( ! (yy_did_buffer_switch_on_eof) ) + YY_NEW_FILE; + } + break; + } + + case EOB_ACT_CONTINUE_SCAN: + (yy_c_buf_p) = + (yytext_ptr) + yy_amount_of_matched_text; + + yy_current_state = yy_get_previous_state( ); + + yy_cp = (yy_c_buf_p); + yy_bp = (yytext_ptr) + YY_MORE_ADJ; + goto yy_match; + + case EOB_ACT_LAST_MATCH: + (yy_c_buf_p) = + &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)]; + + yy_current_state = yy_get_previous_state( ); + + yy_cp = (yy_c_buf_p); + yy_bp = (yytext_ptr) + YY_MORE_ADJ; + goto yy_find_action; + } + break; + } + + default: + YY_FATAL_ERROR( + "fatal flex scanner internal error--no action found" ); + } /* end of action switch */ + } /* end of scanning one token */ + } /* end of user's declarations */ +} /* end of yylex */ +/* %ok-for-header */ + +/* %if-c++-only */ +/* %not-for-header */ +/* The contents of this function are C++ specific, so the () macro is not used. + * This constructor simply maintains backward compatibility. + * DEPRECATED + */ +yyFlexLexer::yyFlexLexer( std::istream* arg_yyin, std::ostream* arg_yyout ): + yyin(arg_yyin ? arg_yyin->rdbuf() : std::cin.rdbuf()), + yyout(arg_yyout ? arg_yyout->rdbuf() : std::cout.rdbuf()) +{ + ctor_common(); +} + +/* The contents of this function are C++ specific, so the () macro is not used. + */ +yyFlexLexer::yyFlexLexer( std::istream& arg_yyin, std::ostream& arg_yyout ): + yyin(arg_yyin.rdbuf()), + yyout(arg_yyout.rdbuf()) +{ + ctor_common(); +} + +/* The contents of this function are C++ specific, so the () macro is not used. + */ +void yyFlexLexer::ctor_common() +{ + yy_c_buf_p = 0; + yy_init = 0; + yy_start = 0; + yy_flex_debug = 0; + yylineno = 1; // this will only get updated if %option yylineno + + yy_did_buffer_switch_on_eof = 0; + + yy_looking_for_trail_begin = 0; + yy_more_flag = 0; + yy_more_len = 0; + yy_more_offset = yy_prev_more_offset = 0; + + yy_start_stack_ptr = yy_start_stack_depth = 0; + yy_start_stack = NULL; + + yy_buffer_stack = NULL; + yy_buffer_stack_top = 0; + yy_buffer_stack_max = 0; + + yy_state_buf = 0; + +} + +/* The contents of this function are C++ specific, so the () macro is not used. + */ +yyFlexLexer::~yyFlexLexer() +{ + delete [] yy_state_buf; + yyfree( yy_start_stack ); + yy_delete_buffer( YY_CURRENT_BUFFER ); + yyfree( yy_buffer_stack ); +} + +/* The contents of this function are C++ specific, so the () macro is not used. + */ +void yyFlexLexer::switch_streams( std::istream& new_in, std::ostream& new_out ) +{ + // was if( new_in ) + yy_delete_buffer( YY_CURRENT_BUFFER ); + yy_switch_to_buffer( yy_create_buffer( new_in, YY_BUF_SIZE ) ); + + // was if( new_out ) + yyout.rdbuf(new_out.rdbuf()); +} + +/* The contents of this function are C++ specific, so the () macro is not used. + */ +void yyFlexLexer::switch_streams( std::istream* new_in, std::ostream* new_out ) +{ + if( ! new_in ) { + new_in = &yyin; + } + + if ( ! new_out ) { + new_out = &yyout; + } + + switch_streams(*new_in, *new_out); +} + +#ifdef YY_INTERACTIVE +int yyFlexLexer::LexerInput( char* buf, int /* max_size */ ) +#else +int yyFlexLexer::LexerInput( char* buf, int max_size ) +#endif +{ + if ( yyin.eof() || yyin.fail() ) + return 0; + +#ifdef YY_INTERACTIVE + yyin.get( buf[0] ); + + if ( yyin.eof() ) + return 0; + + if ( yyin.bad() ) + return -1; + + return 1; + +#else + (void) yyin.read( buf, max_size ); + + if ( yyin.bad() ) + return -1; + else + return yyin.gcount(); +#endif +} + +void yyFlexLexer::LexerOutput( const char* buf, int size ) +{ + (void) yyout.write( buf, size ); +} +/* %ok-for-header */ + +/* %endif */ + +/* yy_get_next_buffer - try to read in a new buffer + * + * Returns a code representing an action: + * EOB_ACT_LAST_MATCH - + * EOB_ACT_CONTINUE_SCAN - continue scanning from current position + * EOB_ACT_END_OF_FILE - end of file + */ +/* %if-c-only */ +/* %endif */ +/* %if-c++-only */ +int yyFlexLexer::yy_get_next_buffer() +/* %endif */ +{ + char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; + char *source = (yytext_ptr); + int number_to_move, i; + int ret_val; + + if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) + YY_FATAL_ERROR( + "fatal flex scanner internal error--end of buffer missed" ); + + if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) + { /* Don't try to fill the buffer, so this is an EOF. */ + if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 ) + { + /* We matched a single character, the EOB, so + * treat this as a final EOF. + */ + return EOB_ACT_END_OF_FILE; + } + + else + { + /* We matched some text prior to the EOB, first + * process it. + */ + return EOB_ACT_LAST_MATCH; + } + } + + /* Try to read more data. */ + + /* First move last chars to start of buffer. */ + number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1); + + for ( i = 0; i < number_to_move; ++i ) + *(dest++) = *(source++); + + if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) + /* don't do the read, it's not guaranteed to return an EOF, + * just force an EOF + */ + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0; + + else + { + int num_to_read = + YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; + + while ( num_to_read <= 0 ) + { /* Not enough room in the buffer - grow it. */ + + /* just a shorter name for the current buffer */ + YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE; + + int yy_c_buf_p_offset = + (int) ((yy_c_buf_p) - b->yy_ch_buf); + + if ( b->yy_is_our_buffer ) + { + int new_size = b->yy_buf_size * 2; + + if ( new_size <= 0 ) + b->yy_buf_size += b->yy_buf_size / 8; + else + b->yy_buf_size *= 2; + + b->yy_ch_buf = (char *) + /* Include room in for 2 EOB chars. */ + yyrealloc( (void *) b->yy_ch_buf, + (yy_size_t) (b->yy_buf_size + 2) ); + } + else + /* Can't grow it, we don't own it. */ + b->yy_ch_buf = NULL; + + if ( ! b->yy_ch_buf ) + YY_FATAL_ERROR( + "fatal error - scanner input buffer overflow" ); + + (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset]; + + num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - + number_to_move - 1; + + } + + if ( num_to_read > YY_READ_BUF_SIZE ) + num_to_read = YY_READ_BUF_SIZE; + + /* Read in more data. */ + YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), + (yy_n_chars), num_to_read ); + + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); + } + + if ( (yy_n_chars) == 0 ) + { + if ( number_to_move == YY_MORE_ADJ ) + { + ret_val = EOB_ACT_END_OF_FILE; + yyrestart( yyin ); + } + + else + { + ret_val = EOB_ACT_LAST_MATCH; + YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = + YY_BUFFER_EOF_PENDING; + } + } + + else + ret_val = EOB_ACT_CONTINUE_SCAN; + + if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { + /* Extend the array by 50%, plus the number we really need. */ + int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc( + (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size ); + if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) + YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); + /* "- 2" to take care of EOB's */ + YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2); + } + + (yy_n_chars) += number_to_move; + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR; + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR; + + (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; + + return ret_val; +} + +/* yy_get_previous_state - get the state just before the EOB char was reached */ + +/* %if-c-only */ +/* %not-for-header */ +/* %endif */ +/* %if-c++-only */ + yy_state_type yyFlexLexer::yy_get_previous_state() +/* %endif */ +{ + yy_state_type yy_current_state; + char *yy_cp; + +/* %% [15.0] code to get the start state into yy_current_state goes here */ + yy_current_state = (yy_start); + + for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) + { +/* %% [16.0] code to find the next state goes here */ + YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); + if ( yy_accept[yy_current_state] ) + { + (yy_last_accepting_state) = yy_current_state; + (yy_last_accepting_cpos) = yy_cp; + } + while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) + { + yy_current_state = (int) yy_def[yy_current_state]; + if ( yy_current_state >= 306 ) + yy_c = yy_meta[yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; + } + + return yy_current_state; +} + +/* yy_try_NUL_trans - try to make a transition on the NUL character + * + * synopsis + * next_state = yy_try_NUL_trans( current_state ); + */ +/* %if-c-only */ +/* %endif */ +/* %if-c++-only */ + yy_state_type yyFlexLexer::yy_try_NUL_trans( yy_state_type yy_current_state ) +/* %endif */ +{ + int yy_is_jam; + /* %% [17.0] code to find the next state, and perhaps do backing up, goes here */ + char *yy_cp = (yy_c_buf_p); + + YY_CHAR yy_c = 1; + if ( yy_accept[yy_current_state] ) + { + (yy_last_accepting_state) = yy_current_state; + (yy_last_accepting_cpos) = yy_cp; + } + while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) + { + yy_current_state = (int) yy_def[yy_current_state]; + if ( yy_current_state >= 306 ) + yy_c = yy_meta[yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; + yy_is_jam = (yy_current_state == 305); + + return yy_is_jam ? 0 : yy_current_state; +} + +#ifndef YY_NO_UNPUT +/* %if-c-only */ +/* %endif */ +/* %if-c++-only */ + void yyFlexLexer::yyunput( int c, char* yy_bp) +/* %endif */ +{ + char *yy_cp; + + yy_cp = (yy_c_buf_p); + + /* undo effects of setting up yytext */ + *yy_cp = (yy_hold_char); + + if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) + { /* need to shift things up to make room */ + /* +2 for EOB chars. */ + int number_to_move = (yy_n_chars) + 2; + char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ + YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; + char *source = + &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]; + + while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) + *--dest = *--source; + + yy_cp += (int) (dest - source); + yy_bp += (int) (dest - source); + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = + (yy_n_chars) = (int) YY_CURRENT_BUFFER_LVALUE->yy_buf_size; + + if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) + YY_FATAL_ERROR( "flex scanner push-back overflow" ); + } + + *--yy_cp = (char) c; + +/* %% [18.0] update yylineno here */ + + (yytext_ptr) = yy_bp; + (yy_hold_char) = *yy_cp; + (yy_c_buf_p) = yy_cp; +} +/* %if-c-only */ +/* %endif */ +#endif + +/* %if-c-only */ +/* %endif */ +/* %if-c++-only */ + int yyFlexLexer::yyinput() +/* %endif */ +{ + int c; + + *(yy_c_buf_p) = (yy_hold_char); + + if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR ) + { + /* yy_c_buf_p now points to the character we want to return. + * If this occurs *before* the EOB characters, then it's a + * valid NUL; if not, then we've hit the end of the buffer. + */ + if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) + /* This was really a NUL. */ + *(yy_c_buf_p) = '\0'; + + else + { /* need more input */ + int offset = (int) ((yy_c_buf_p) - (yytext_ptr)); + ++(yy_c_buf_p); + + switch ( yy_get_next_buffer( ) ) + { + case EOB_ACT_LAST_MATCH: + /* This happens because yy_g_n_b() + * sees that we've accumulated a + * token and flags that we need to + * try matching the token before + * proceeding. But for input(), + * there's no matching to consider. + * So convert the EOB_ACT_LAST_MATCH + * to EOB_ACT_END_OF_FILE. + */ + + /* Reset buffer status. */ + yyrestart( yyin ); + + /*FALLTHROUGH*/ + + case EOB_ACT_END_OF_FILE: + { + if ( yywrap( ) ) + return 0; + + if ( ! (yy_did_buffer_switch_on_eof) ) + YY_NEW_FILE; +#ifdef __cplusplus + return yyinput(); +#else + return input(); +#endif + } + + case EOB_ACT_CONTINUE_SCAN: + (yy_c_buf_p) = (yytext_ptr) + offset; + break; + } + } + } + + c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */ + *(yy_c_buf_p) = '\0'; /* preserve yytext */ + (yy_hold_char) = *++(yy_c_buf_p); + +/* %% [19.0] update BOL and yylineno */ + + return c; +} +/* %if-c-only */ +/* %endif */ + +/** Immediately switch to a different input stream. + * @param input_file A readable stream. + * + * @note This function does not reset the start condition to @c INITIAL . + */ +/* %if-c-only */ +/* %endif */ +/* %if-c++-only */ + void yyFlexLexer::yyrestart( std::istream& input_file ) +/* %endif */ +{ + + if ( ! YY_CURRENT_BUFFER ){ + yyensure_buffer_stack (); + YY_CURRENT_BUFFER_LVALUE = + yy_create_buffer( yyin, YY_BUF_SIZE ); + } + + yy_init_buffer( YY_CURRENT_BUFFER, input_file ); + yy_load_buffer_state( ); +} + +/* %if-c++-only */ +/** Delegate to the new version that takes an istream reference. + * @param input_file A readable stream. + * + * @note This function does not reset the start condition to @c INITIAL . + */ +void yyFlexLexer::yyrestart( std::istream* input_file ) +{ + if( ! input_file ) { + input_file = &yyin; + } + yyrestart( *input_file ); +} +/* %endif */ + +/** Switch to a different input buffer. + * @param new_buffer The new input buffer. + * + */ +/* %if-c-only */ +/* %endif */ +/* %if-c++-only */ + void yyFlexLexer::yy_switch_to_buffer( YY_BUFFER_STATE new_buffer ) +/* %endif */ +{ + + /* TODO. We should be able to replace this entire function body + * with + * yypop_buffer_state(); + * yypush_buffer_state(new_buffer); + */ + yyensure_buffer_stack (); + if ( YY_CURRENT_BUFFER == new_buffer ) + return; + + if ( YY_CURRENT_BUFFER ) + { + /* Flush out information for old buffer. */ + *(yy_c_buf_p) = (yy_hold_char); + YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); + } + + YY_CURRENT_BUFFER_LVALUE = new_buffer; + yy_load_buffer_state( ); + + /* We don't actually know whether we did this switch during + * EOF (yywrap()) processing, but the only time this flag + * is looked at is after yywrap() is called, so it's safe + * to go ahead and always set it. + */ + (yy_did_buffer_switch_on_eof) = 1; +} + +/* %if-c-only */ +/* %endif */ +/* %if-c++-only */ + void yyFlexLexer::yy_load_buffer_state() +/* %endif */ +{ + (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; + (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; +/* %if-c-only */ +/* %endif */ +/* %if-c++-only */ + yyin.rdbuf(YY_CURRENT_BUFFER_LVALUE->yy_input_file); +/* %endif */ + (yy_hold_char) = *(yy_c_buf_p); +} + +/** Allocate and initialize an input buffer state. + * @param file A readable stream. + * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. + * + * @return the allocated buffer state. + */ +/* %if-c-only */ +/* %endif */ +/* %if-c++-only */ + YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream& file, int size ) +/* %endif */ +{ + YY_BUFFER_STATE b; + + b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); + if ( ! b ) + YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); + + b->yy_buf_size = size; + + /* yy_ch_buf has to be 2 characters longer than the size given because + * we need to put in 2 end-of-buffer characters. + */ + b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) ); + if ( ! b->yy_ch_buf ) + YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); + + b->yy_is_our_buffer = 1; + + yy_init_buffer( b, file ); + + return b; +} + +/* %if-c++-only */ +/** Delegate creation of buffers to the new version that takes an istream reference. + * @param file A readable stream. + * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. + * + * @return the allocated buffer state. + */ + YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream* file, int size ) +{ + return yy_create_buffer( *file, size ); +} +/* %endif */ + +/** Destroy the buffer. + * @param b a buffer created with yy_create_buffer() + * + */ +/* %if-c-only */ +/* %endif */ +/* %if-c++-only */ + void yyFlexLexer::yy_delete_buffer( YY_BUFFER_STATE b ) +/* %endif */ +{ + + if ( ! b ) + return; + + if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */ + YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; + + if ( b->yy_is_our_buffer ) + yyfree( (void *) b->yy_ch_buf ); + + yyfree( (void *) b ); +} + +/* Initializes or reinitializes a buffer. + * This function is sometimes called more than once on the same buffer, + * such as during a yyrestart() or at EOF. + */ +/* %if-c-only */ +/* %endif */ +/* %if-c++-only */ + void yyFlexLexer::yy_init_buffer( YY_BUFFER_STATE b, std::istream& file ) +/* %endif */ + +{ + int oerrno = errno; + + yy_flush_buffer( b ); + +/* %if-c-only */ +/* %endif */ +/* %if-c++-only */ + b->yy_input_file = file.rdbuf(); +/* %endif */ + b->yy_fill_buffer = 1; + + /* If b is the current buffer, then yy_init_buffer was _probably_ + * called from yyrestart() or through yy_get_next_buffer. + * In that case, we don't want to reset the lineno or column. + */ + if (b != YY_CURRENT_BUFFER){ + b->yy_bs_lineno = 1; + b->yy_bs_column = 0; + } + +/* %if-c-only */ +/* %endif */ +/* %if-c++-only */ + b->yy_is_interactive = 0; +/* %endif */ + errno = oerrno; +} + +/** Discard all buffered characters. On the next scan, YY_INPUT will be called. + * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. + * + */ +/* %if-c-only */ +/* %endif */ +/* %if-c++-only */ + void yyFlexLexer::yy_flush_buffer( YY_BUFFER_STATE b ) +/* %endif */ +{ + if ( ! b ) + return; + + b->yy_n_chars = 0; + + /* We always need two end-of-buffer characters. The first causes + * a transition to the end-of-buffer state. The second causes + * a jam in that state. + */ + b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; + b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; + + b->yy_buf_pos = &b->yy_ch_buf[0]; + + b->yy_at_bol = 1; + b->yy_buffer_status = YY_BUFFER_NEW; + + if ( b == YY_CURRENT_BUFFER ) + yy_load_buffer_state( ); +} + +/* %if-c-or-c++ */ +/** Pushes the new state onto the stack. The new state becomes + * the current state. This function will allocate the stack + * if necessary. + * @param new_buffer The new state. + * + */ +/* %if-c-only */ +/* %endif */ +/* %if-c++-only */ +void yyFlexLexer::yypush_buffer_state (YY_BUFFER_STATE new_buffer) +/* %endif */ +{ + if (new_buffer == NULL) + return; + + yyensure_buffer_stack(); + + /* This block is copied from yy_switch_to_buffer. */ + if ( YY_CURRENT_BUFFER ) + { + /* Flush out information for old buffer. */ + *(yy_c_buf_p) = (yy_hold_char); + YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); + } + + /* Only push if top exists. Otherwise, replace top. */ + if (YY_CURRENT_BUFFER) + (yy_buffer_stack_top)++; + YY_CURRENT_BUFFER_LVALUE = new_buffer; + + /* copied from yy_switch_to_buffer. */ + yy_load_buffer_state( ); + (yy_did_buffer_switch_on_eof) = 1; +} +/* %endif */ + +/* %if-c-or-c++ */ +/** Removes and deletes the top of the stack, if present. + * The next element becomes the new top. + * + */ +/* %if-c-only */ +/* %endif */ +/* %if-c++-only */ +void yyFlexLexer::yypop_buffer_state (void) +/* %endif */ +{ + if (!YY_CURRENT_BUFFER) + return; + + yy_delete_buffer(YY_CURRENT_BUFFER ); + YY_CURRENT_BUFFER_LVALUE = NULL; + if ((yy_buffer_stack_top) > 0) + --(yy_buffer_stack_top); + + if (YY_CURRENT_BUFFER) { + yy_load_buffer_state( ); + (yy_did_buffer_switch_on_eof) = 1; + } +} +/* %endif */ + +/* %if-c-or-c++ */ +/* Allocates the stack if it does not exist. + * Guarantees space for at least one push. + */ +/* %if-c-only */ +/* %endif */ +/* %if-c++-only */ +void yyFlexLexer::yyensure_buffer_stack(void) +/* %endif */ +{ + yy_size_t num_to_alloc; + + if (!(yy_buffer_stack)) { + + /* First allocation is just for 2 elements, since we don't know if this + * scanner will even need a stack. We use 2 instead of 1 to avoid an + * immediate realloc on the next call. + */ + num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */ + (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc + (num_to_alloc * sizeof(struct yy_buffer_state*) + ); + if ( ! (yy_buffer_stack) ) + YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); + + memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); + + (yy_buffer_stack_max) = num_to_alloc; + (yy_buffer_stack_top) = 0; + return; + } + + if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ + + /* Increase the buffer to prepare for a possible push. */ + yy_size_t grow_size = 8 /* arbitrary grow size */; + + num_to_alloc = (yy_buffer_stack_max) + grow_size; + (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc + ((yy_buffer_stack), + num_to_alloc * sizeof(struct yy_buffer_state*) + ); + if ( ! (yy_buffer_stack) ) + YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); + + /* zero only the new slots.*/ + memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*)); + (yy_buffer_stack_max) = num_to_alloc; + } +} +/* %endif */ + +/* %if-c-only */ +/* %endif */ + +/* %if-c-only */ +/* %endif */ + +/* %if-c-only */ +/* %endif */ + +/* %if-c-only */ +/* %endif */ +/* %if-c++-only */ + void yyFlexLexer::yy_push_state( int _new_state ) +/* %endif */ +{ + if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) ) + { + yy_size_t new_size; + + (yy_start_stack_depth) += YY_START_STACK_INCR; + new_size = (yy_size_t) (yy_start_stack_depth) * sizeof( int ); + + if ( ! (yy_start_stack) ) + (yy_start_stack) = (int *) yyalloc( new_size ); + + else + (yy_start_stack) = (int *) yyrealloc( + (void *) (yy_start_stack), new_size ); + + if ( ! (yy_start_stack) ) + YY_FATAL_ERROR( "out of memory expanding start-condition stack" ); + } + + (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START; + + BEGIN(_new_state); +} + +/* %if-c-only */ +/* %endif */ +/* %if-c++-only */ + void yyFlexLexer::yy_pop_state() +/* %endif */ +{ + if ( --(yy_start_stack_ptr) < 0 ) + YY_FATAL_ERROR( "start-condition stack underflow" ); + + BEGIN((yy_start_stack)[(yy_start_stack_ptr)]); +} + +/* %if-c-only */ +/* %endif */ +/* %if-c++-only */ + int yyFlexLexer::yy_top_state() +/* %endif */ +{ + return (yy_start_stack)[(yy_start_stack_ptr) - 1]; +} + +#ifndef YY_EXIT_FAILURE +#define YY_EXIT_FAILURE 2 +#endif + +/* %if-c-only */ +/* %endif */ +/* %if-c++-only */ +void yyFlexLexer::LexerError( const char* msg ) +{ + std::cerr << msg << std::endl; + exit( YY_EXIT_FAILURE ); +} +/* %endif */ + +/* Redefine yyless() so it works in section 3 code. */ + +#undef yyless +#define yyless(n) \ + do \ + { \ + /* Undo effects of setting up yytext. */ \ + int yyless_macro_arg = (n); \ + YY_LESS_LINENO(yyless_macro_arg);\ + yytext[yyleng] = (yy_hold_char); \ + (yy_c_buf_p) = yytext + yyless_macro_arg; \ + (yy_hold_char) = *(yy_c_buf_p); \ + *(yy_c_buf_p) = '\0'; \ + yyleng = yyless_macro_arg; \ + } \ + while ( 0 ) + +/* Accessor methods (get/set functions) to struct members. */ + +/* %if-c-only */ +/* %if-reentrant */ +/* %endif */ +/* %if-reentrant */ +/* %endif */ +/* %endif */ + +/* %if-reentrant */ +/* %if-bison-bridge */ +/* %endif */ +/* %endif if-c-only */ + +/* %if-c-only */ +/* %endif */ + +/* %if-c-only SNIP! this currently causes conflicts with the c++ scanner */ +/* %if-reentrant */ +/* %endif */ +/* %endif */ + +/* + * Internal utility routines. + */ + +#ifndef yytext_ptr +static void yy_flex_strncpy (char* s1, const char * s2, int n ) +{ + + int i; + for ( i = 0; i < n; ++i ) + s1[i] = s2[i]; +} +#endif + +#ifdef YY_NEED_STRLEN +static int yy_flex_strlen (const char * s ) +{ + int n; + for ( n = 0; s[n]; ++n ) + ; + + return n; +} +#endif + +void *yyalloc (yy_size_t size ) +{ + return malloc(size); +} + +void *yyrealloc (void * ptr, yy_size_t size ) +{ + + /* The cast to (char *) in the following accommodates both + * implementations that use char* generic pointers, and those + * that use void* generic pointers. It works with the latter + * because both ANSI C and C++ allow castless assignment from + * any pointer type to void*, and deal with argument conversions + * as though doing an assignment. + */ + return realloc(ptr, size); +} + +void yyfree (void * ptr ) +{ + free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ +} + +/* %if-tables-serialization definitions */ +/* %define-yytables The name for this specific scanner's tables. */ +#define YYTABLES_NAME "yytables" +/* %endif */ + +/* %ok-for-header */ + +/************************************/ +/* Section 3 */ +/* auxiliary procedures */ + +exptocas::scanner::scanner(std::istream* in, std::ostream* out) + : exptocasFlexLexer(in, out) +{ +} + +/* +int main ( void ) +{ + yylex(); +} +*/ + diff --git a/src/ExpToCasExe/lex.yy.c b/src/ExpToCasExe/lex.yy.c deleted file mode 100644 index 4e9b828d2c..0000000000 --- a/src/ExpToCasExe/lex.yy.c +++ /dev/null @@ -1,1023 +0,0 @@ -// Created: Mon Nov 1 12:50:27 1999 -// Author: Andrey BETENEV -// Copyright (c) 1999-2020 OPEN CASCADE SAS -// -// This file is part of Open CASCADE Technology software library. -// -// This library is free software; you can redistribute it and/or modify it under -// the terms of the GNU Lesser General Public License version 2.1 as published -// by the Free Software Foundation, with special exception defined in the file -// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT -// distribution for complete text of the license and disclaimer of any warranty. -// -// Alternatively, this file may be used under the terms of Open CASCADE -// commercial license or contractual agreement. - -#include -#include -# define U(x) x -# define NLSTATE yyprevious=YYNEWLINE -# define BEGIN yybgin = yysvec + 1 + -# define INITIAL 0 -# define YYLERR yysvec -# define YYSTATE (yyestate-yysvec-1) -# define YYOPTIM 1 -# ifndef YYLMAX -# define YYLMAX BUFSIZ -# endif -#ifndef __cplusplus -# define output(c) (void)putc(c,yyout) -#else -# define lex_output(c) (void)putc(c,yyout) -#endif - -#if defined(__cplusplus) || defined(__STDC__) - -#if defined(__cplusplus) && defined(__EXTERN_C__) -extern "C" { -#endif - int yyback(int *, int); - int yyinput(void); - int yylook(void); - void yyoutput(int); - int yyracc(int); - int yyreject(void); - void yyunput(int); - int yylex(void); -#ifdef YYLEX_E - void yywoutput(wchar_t); - wchar_t yywinput(void); -#endif -#ifndef yyless - int yyless(int); -#endif -#ifndef yywrap - int yywrap(void); -#endif -#ifdef LEXDEBUG - void allprint(char); - void sprint(char *); -#endif -#if defined(__cplusplus) && defined(__EXTERN_C__) -} -#endif - -#ifdef __cplusplus -extern "C" { -#endif - void exit(int); -#ifdef __cplusplus -} -#endif - -#endif -# define unput(c) {yytchar= (c);if(yytchar=='\n')yylineno--;*yysptr++=yytchar;} -# define yymore() (yymorfg=1) -#ifndef __cplusplus -# define input() (((yytchar=yysptr>yysbuf?U(*--yysptr):getc(yyin))==10?(yylineno++,yytchar):yytchar)==EOF?0:yytchar) -#else -# define lex_input() (((yytchar=yysptr>yysbuf?U(*--yysptr):getc(yyin))==10?(yylineno++,yytchar):yytchar)==EOF?0:yytchar) -#endif -#define ECHO fprintf(yyout, "%s",yytext) -# define REJECT { nstr = yyreject(); goto yyfussy;} -int yyleng; -#define YYISARRAY -char yytext[YYLMAX]; -int yymorfg; -extern char *yysptr, yysbuf[]; -int yytchar; -FILE *yyin = {stdin}, *yyout = {stdout}; -extern int yylineno; -struct yysvf { - struct yywork *yystoff; - struct yysvf *yyother; - int *yystops;}; -struct yysvf *yyestate; -extern struct yysvf yysvec[], *yybgin; - - -# line 4 "explist.l" -/* This LEX scanner produces list of items included in the EXPRESS schema */ - -# line 5 "explist.l" -/* (TYPE, ENTITY, FUNCTION, RULE) */ - - -# line 7 "explist.l" -/************************************/ - -# line 8 "explist.l" -/* Section 1 */ - -# line 9 "explist.l" -/* definitions */ -# define CONST 2 -# define TYP 4 -# define TYP1 6 -# define ENT 8 -# define ENT1 10 -# define LIST 12 -# define COMM 14 -# define SKP 16 -# define FUN 18 -# define FUN1 20 -# define RUL 22 - -static int fun_level=0; - - -# line 26 "explist.l" -/************************************/ - -# line 27 "explist.l" -/* Section 2 */ - -# line 28 "explist.l" -/* parsing rules */ -# define YYNEWLINE 10 -yylex(){ -int nstr; extern int yyprevious; -#ifdef __cplusplus -/* to avoid CC and lint complaining yyfussy not being used ...*/ -static int __lex_hack = 0; -if (__lex_hack) goto yyfussy; -#endif -while((nstr = yylook()) >= 0) -yyfussy: switch(nstr){ -case 0: -if(yywrap()) return(0); break; -case 1: - -# line 32 "explist.l" - ; -break; -case 2: - -# line 33 "explist.l" - { printf ( "Starting multiline comment\n" ); BEGIN(COMM); } -break; -case 3: - -# line 34 "explist.l" - ; -break; -case 4: - -# line 35 "explist.l" - { printf ( "End of multiline comment\n" ); BEGIN(0); } -break; -case 5: - -# line 37 "explist.l" - printf ( "Starting %s\n", yytext ); -break; -case 6: - -# line 38 "explist.l" - printf ( "Schema finished\n" ); -break; -case 7: - -# line 40 "explist.l" - { BEGIN(TYP); } -break; -case 8: - -# line 41 "explist.l" - { printf ( "TYPE %s\n", yytext ); BEGIN(TYP1); } -break; -case 9: - -# line 42 "explist.l" - ; -break; -case 10: - -# line 43 "explist.l" - { printf ( "\n" ); BEGIN(0); } -break; -case 11: - -# line 45 "explist.l" - { BEGIN(ENT); } -break; -case 12: - -# line 46 "explist.l" - { printf ( "ENTITY %s\n", yytext ); BEGIN(ENT1); } -break; -case 13: - -# line 47 "explist.l" - ; -break; -case 14: - -# line 48 "explist.l" - BEGIN(0); -break; -case 15: - -# line 50 "explist.l" - case 16: - -# line 51 "explist.l" - BEGIN(SKP); -break; -case 17: - -# line 52 "explist.l" - ; -break; -case 18: - -# line 54 "explist.l" - { BEGIN(FUN); fun_level++; } -break; -case 19: - -# line 55 "explist.l" - { printf ( "FUNCTION %s\n", yytext ); BEGIN(FUN1); } -break; -case 20: - -# line 56 "explist.l" - ; -break; -case 21: - -# line 57 "explist.l" - { fun_level--; if ( ! fun_level ) BEGIN(0); } -break; -case 22: - -# line 59 "explist.l" - { BEGIN(RUL); } -break; -case 23: - -# line 60 "explist.l" - { printf ( "RULE %s\n", yytext ); BEGIN(SKP); } -break; -case 24: - -# line 61 "explist.l" - BEGIN(0); -break; -case 25: - -# line 63 "explist.l" - ; -break; -case -1: -break; -default: -(void)fprintf(yyout,"bad switch yylook %d",nstr); -} return(0); } -/* end of yylex */ - -# line 66 "explist.l" - -/************************************/ -/* Section 3 */ -/* calling and auxiliary procedures */ - -int main ( void ) -{ - yylex(); -} - -int yywrap(void) { return 1; } -int yyvstop[] = { -0, - -25, -0, - -25, -0, - -25, -0, - -25, -0, - -25, -0, - -25, -0, - -25, -0, - -25, -0, - -25, -0, - -8, -0, - -9, -0, - -9, -0, - -12, -0, - -13, -0, - -13, -0, - -3, -0, - -3, -0, - -17, -0, - -17, -0, - -19, -0, - -20, -0, - -20, -0, - -20, -0, - -20, -0, - -23, -0, - -2, -0, - -1, -0, - -4, -0, - -22, -0, - -7, -0, - -16, -0, - -11, -0, - -15, -0, - -18, -0, - -10, -0, - -24, -0, - -5, -0, - -14, -0, - -6, -0, - -21, -0, -0}; -# define YYTYPE unsigned char -struct yywork { YYTYPE verify, advance; } yycrank[] = { -0,0, 0,0, 1,25, 0,0, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 1,25, 1,25, -0,0, 0,0, 2,32, 2,32, -0,0, 0,0, 22,52, 22,52, -32,62, 32,62, 0,0, 0,0, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 0,0, 0,0, -0,0, 1,26, 111,119, 32,62, -0,0, 2,26, 1,27, 0,0, -45,69, 1,25, 2,27, 16,45, -15,44, 26,56, 27,57, 0,0, -0,0, 0,0, 0,0, 0,0, -15,44, 15,44, 0,0, 0,0, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 1,28, 5,34, -5,35, 8,39, 2,28, 2,33, -12,43, 18,47, 22,51, 22,53, -30,60, 32,63, 34,65, 1,29, -1,30, 1,31, 7,38, 2,29, -2,30, 2,31, 5,36, 28,58, -29,59, 15,45, 7,38, 7,38, -1,25, 31,61, 5,37, 15,44, -5,37, 5,37, 5,37, 5,37, -5,37, 5,37, 5,37, 5,37, -5,37, 5,37, 5,37, 5,37, -5,37, 5,37, 5,37, 5,37, -5,37, 5,37, 5,37, 5,37, -5,37, 5,37, 5,37, 5,37, -5,37, 5,37, 33,64, 35,66, -36,67, 40,68, 47,70, 48,71, -54,72, 7,38, 58,73, 59,75, -60,76, 61,77, 64,78, 65,79, -66,80, 67,81, 68,82, 70,83, -71,84, 72,85, 15,44, 73,86, -74,87, 75,88, 58,74, 76,89, -77,90, 9,40, 7,39, 78,91, -79,92, 80,93, 81,94, 82,95, -83,96, 84,97, 85,98, 86,99, -87,100, 89,101, 91,102, 92,103, -57,57, 93,104, 94,105, 95,106, -97,108, 98,107, 99,109, 100,110, -57,57, 57,0, 101,111, 9,41, -7,38, 9,41, 9,41, 9,41, -9,41, 9,41, 9,41, 9,41, -9,41, 9,41, 9,41, 9,41, -9,41, 9,41, 9,41, 9,41, -9,41, 9,41, 9,41, 9,41, -9,41, 9,41, 9,41, 9,41, -9,41, 9,41, 9,41, 10,40, -102,112, 103,113, 104,114, 106,115, -107,116, 96,106, 11,42, 57,57, -17,46, 108,117, 109,118, 112,120, -114,121, 115,122, 11,42, 11,42, -17,46, 17,46, 96,107, 116,123, -96,104, 117,124, 118,125, 120,127, -121,128, 10,41, 122,129, 10,41, -10,41, 10,41, 10,41, 10,41, -10,41, 10,41, 10,41, 10,41, -10,41, 10,41, 10,41, 10,41, -10,41, 10,41, 10,41, 10,41, -10,41, 10,41, 10,41, 10,41, -10,41, 10,41, 10,41, 10,41, -10,41, 11,42, 57,57, 17,46, -123,130, 124,131, 125,132, 126,126, -126,126, 126,126, 126,126, 126,126, -126,126, 126,126, 126,126, 126,126, -126,126, 129,134, 126,133, 131,135, -132,136, 134,137, 11,43, 19,48, -17,47, 135,138, 136,139, 138,140, -140,141, 0,0, 21,50, 0,0, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 21,50, 21,50, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 0,0, 0,0, -11,42, 19,49, 17,46, 19,49, -19,49, 19,49, 19,49, 19,49, -19,49, 19,49, 19,49, 19,49, -19,49, 19,49, 19,49, 19,49, -19,49, 19,49, 19,49, 19,49, -19,49, 19,49, 19,49, 19,49, -19,49, 19,49, 19,49, 19,49, -19,49, 21,50, 0,0, 0,0, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 0,0, 0,0, -0,0, 23,54, 21,51, 0,0, -0,0, 0,0, 0,0, 0,0, -37,37, 37,37, 37,37, 37,37, -37,37, 37,37, 37,37, 37,37, -37,37, 37,37, 0,0, 0,0, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 0,0, 23,55, -21,50, 23,55, 23,55, 23,55, -23,55, 23,55, 23,55, 23,55, -23,55, 23,55, 23,55, 23,55, -23,55, 23,55, 23,55, 23,55, -23,55, 23,55, 23,55, 23,55, -23,55, 23,55, 23,55, 23,55, -23,55, 23,55, 23,55, 37,37, -0,0, 37,37, 37,37, 37,37, -37,37, 37,37, 37,37, 37,37, -37,37, 37,37, 37,37, 37,37, -37,37, 37,37, 37,37, 37,37, -37,37, 37,37, 37,37, 37,37, -37,37, 37,37, 37,37, 37,37, -37,37, 37,37, 37,37, 41,41, -41,41, 41,41, 41,41, 41,41, -41,41, 41,41, 41,41, 41,41, -41,41, 0,0, 0,0, 0,0, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 0,0, 49,49, -49,49, 49,49, 49,49, 49,49, -49,49, 49,49, 49,49, 49,49, -49,49, 0,0, 0,0, 0,0, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 41,41, 0,0, -41,41, 41,41, 41,41, 41,41, -41,41, 41,41, 41,41, 41,41, -41,41, 41,41, 41,41, 41,41, -41,41, 41,41, 41,41, 41,41, -41,41, 41,41, 41,41, 41,41, -41,41, 41,41, 41,41, 41,41, -41,41, 41,41, 49,49, 0,0, -49,49, 49,49, 49,49, 49,49, -49,49, 49,49, 49,49, 49,49, -49,49, 49,49, 49,49, 49,49, -49,49, 49,49, 49,49, 49,49, -49,49, 49,49, 49,49, 49,49, -49,49, 49,49, 49,49, 49,49, -49,49, 49,49, 55,55, 55,55, -55,55, 55,55, 55,55, 55,55, -55,55, 55,55, 55,55, 55,55, -119,126, 0,0, 119,126, 119,126, -119,126, 119,126, 119,126, 119,126, -119,126, 119,126, 119,126, 119,126, -119,126, 119,126, 119,126, 119,126, -119,126, 119,126, 119,126, 119,126, -119,126, 119,126, 119,126, 119,126, -119,126, 119,126, 119,126, 119,126, -0,0, 0,0, 0,0, 0,0, -0,0, 0,0, 0,0, 0,0, -0,0, 55,55, 0,0, 55,55, -55,55, 55,55, 55,55, 55,55, -55,55, 55,55, 55,55, 55,55, -55,55, 55,55, 55,55, 55,55, -55,55, 55,55, 55,55, 55,55, -55,55, 55,55, 55,55, 55,55, -55,55, 55,55, 55,55, 55,55, -55,55, 0,0, 0,0, 0,0, -0,0}; -struct yysvf yysvec[] = { -0, 0, 0, -yycrank+-1, 0, 0, -yycrank+-5, yysvec+1, 0, -yycrank+0, 0, 0, -yycrank+0, 0, 0, -yycrank+3, 0, 0, -yycrank+0, yysvec+5, 0, -yycrank+-85, 0, 0, -yycrank+-4, yysvec+7, 0, -yycrank+84, yysvec+5, 0, -yycrank+138, yysvec+5, 0, -yycrank+-213, 0, 0, -yycrank+-7, yysvec+11, 0, -yycrank+0, 0, 0, -yycrank+0, 0, 0, -yycrank+-51, 0, 0, -yycrank+-9, yysvec+15, 0, -yycrank+-215, 0, 0, -yycrank+-8, yysvec+17, 0, -yycrank+214, 0, 0, -yycrank+0, yysvec+19, 0, -yycrank+-289, 0, 0, -yycrank+-9, yysvec+21, 0, -yycrank+288, 0, 0, -yycrank+0, yysvec+23, 0, -yycrank+0, 0, yyvstop+1, -yycrank+11, 0, yyvstop+3, -yycrank+9, 0, yyvstop+5, -yycrank+13, 0, yyvstop+7, -yycrank+7, 0, yyvstop+9, -yycrank+13, 0, yyvstop+11, -yycrank+8, 0, yyvstop+13, -yycrank+11, 0, yyvstop+15, -yycrank+41, 0, yyvstop+17, -yycrank+13, 0, 0, -yycrank+49, 0, 0, -yycrank+56, 0, 0, -yycrank+316, 0, yyvstop+19, -yycrank+0, 0, yyvstop+21, -yycrank+0, yysvec+35, yyvstop+23, -yycrank+51, 0, 0, -yycrank+391, 0, yyvstop+25, -yycrank+0, 0, yyvstop+27, -yycrank+0, yysvec+40, yyvstop+29, -yycrank+0, 0, yyvstop+31, -yycrank+7, 0, yyvstop+33, -yycrank+0, 0, yyvstop+35, -yycrank+52, 0, yyvstop+37, -yycrank+53, 0, 0, -yycrank+419, 0, yyvstop+39, -yycrank+0, 0, yyvstop+41, -yycrank+0, yysvec+48, yyvstop+43, -yycrank+0, yysvec+32, yyvstop+45, -yycrank+0, yysvec+33, yyvstop+47, -yycrank+54, 0, 0, -yycrank+494, 0, yyvstop+49, -yycrank+0, 0, yyvstop+51, -yycrank+-167, 0, yyvstop+53, -yycrank+66, 0, 0, -yycrank+59, 0, 0, -yycrank+64, 0, 0, -yycrank+57, 0, 0, -yycrank+0, yysvec+32, 0, -yycrank+0, yysvec+33, 0, -yycrank+60, 0, 0, -yycrank+57, 0, 0, -yycrank+72, 0, 0, -yycrank+72, 0, 0, -yycrank+74, 0, 0, -yycrank+0, 0, yyvstop+55, -yycrank+75, 0, 0, -yycrank+76, 0, 0, -yycrank+77, 0, 0, -yycrank+52, 0, 0, -yycrank+75, 0, 0, -yycrank+80, 0, 0, -yycrank+82, 0, 0, -yycrank+83, 0, 0, -yycrank+88, 0, 0, -yycrank+83, 0, 0, -yycrank+62, 0, 0, -yycrank+76, 0, 0, -yycrank+64, 0, 0, -yycrank+65, 0, 0, -yycrank+66, 0, 0, -yycrank+67, 0, 0, -yycrank+80, 0, 0, -yycrank+80, 0, 0, -yycrank+0, 0, yyvstop+57, -yycrank+88, 0, 0, -yycrank+0, 0, yyvstop+59, -yycrank+82, 0, 0, -yycrank+81, 0, 0, -yycrank+85, 0, 0, -yycrank+101, 0, 0, -yycrank+102, 0, 0, -yycrank+144, 0, 0, -yycrank+102, 0, 0, -yycrank+91, 0, 0, -yycrank+107, 0, 0, -yycrank+86, 0, 0, -yycrank+113, 0, 0, -yycrank+135, 0, 0, -yycrank+140, 0, 0, -yycrank+121, 0, 0, -yycrank+0, 0, yyvstop+61, -yycrank+133, 0, 0, -yycrank+127, 0, 0, -yycrank+132, 0, 0, -yycrank+146, 0, 0, -yycrank+0, 0, yyvstop+63, -yycrank+10, 0, 0, -yycrank+140, 0, 0, -yycrank+0, 0, yyvstop+65, -yycrank+140, 0, 0, -yycrank+137, 0, 0, -yycrank+151, 0, 0, -yycrank+151, 0, 0, -yycrank+161, 0, 0, -yycrank+457, 0, 0, -yycrank+153, 0, 0, -yycrank+163, 0, 0, -yycrank+161, 0, 0, -yycrank+195, 0, 0, -yycrank+198, 0, 0, -yycrank+189, 0, 0, -yycrank+219, yysvec+119, 0, -yycrank+0, 0, yyvstop+67, -yycrank+0, 0, yyvstop+69, -yycrank+193, 0, 0, -yycrank+0, 0, yyvstop+71, -yycrank+195, 0, 0, -yycrank+215, 0, 0, -yycrank+0, 0, yyvstop+73, -yycrank+192, 0, 0, -yycrank+212, 0, 0, -yycrank+227, 0, 0, -yycrank+0, 0, yyvstop+75, -yycrank+208, 0, 0, -yycrank+0, 0, yyvstop+77, -yycrank+210, 0, 0, -yycrank+0, 0, yyvstop+79, -0, 0, 0}; -struct yywork *yytop = yycrank+616; -struct yysvf *yybgin = yysvec+1; -char yymatch[] = { - 0, 1, 1, 1, 1, 1, 1, 1, - 1, 9, 10, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 9, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 95, - 1, 95, 95, 95, 95, 95, 95, 95, - 95, 95, 95, 95, 95, 95, 95, 95, - 95, 95, 95, 95, 95, 95, 95, 95, - 95, 95, 95, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, -0}; -char yyextra[] = { -0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0, -0}; -/* Copyright (c) 1989 AT&T */ -/* All Rights Reserved */ - -/* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T */ -/* The copyright notice above does not evidence any */ -/* actual or intended publication of such source code. */ - -#pragma ident "@(#)ncform 6.11 97/01/06 SMI" - -int yylineno =1; -# define YYU(x) x -# define NLSTATE yyprevious=YYNEWLINE -struct yysvf *yylstate [YYLMAX], **yylsp, **yyolsp; -char yysbuf[YYLMAX]; -char *yysptr = yysbuf; -int *yyfnd; -extern struct yysvf *yyestate; -int yyprevious = YYNEWLINE; -#if defined(__cplusplus) || defined(__STDC__) -int yylook(void) -#else -yylook() -#endif -{ - register struct yysvf *yystate, **lsp; - register struct yywork *yyt; - struct yysvf *yyz; - int yych, yyfirst; - struct yywork *yyr; -# ifdef LEXDEBUG - int debug; -# endif - char *yylastch; - /* start off machines */ -# ifdef LEXDEBUG - debug = 0; -# endif - yyfirst=1; - if (!yymorfg) - yylastch = yytext; - else { - yymorfg=0; - yylastch = yytext+yyleng; - } - for(;;){ - lsp = yylstate; - yyestate = yystate = yybgin; - if (yyprevious==YYNEWLINE) yystate++; - for (;;){ -# ifdef LEXDEBUG - if(debug)fprintf(yyout,"state %d\n",yystate-yysvec-1); -# endif - yyt = yystate->yystoff; - if(yyt == yycrank && !yyfirst){ /* may not be any transitions */ - yyz = yystate->yyother; - if(yyz == 0)break; - if(yyz->yystoff == yycrank)break; - } -#ifndef __cplusplus - *yylastch++ = yych = input(); -#else - *yylastch++ = yych = lex_input(); -#endif -#ifdef YYISARRAY - if(yylastch > &yytext[YYLMAX]) { - fprintf(yyout,"Input string too long, limit %d\n",YYLMAX); - exit(1); - } -#else - if (yylastch >= &yytext[ yytextsz ]) { - int x = yylastch - yytext; - - yytextsz += YYTEXTSZINC; - if (yytext == yy_tbuf) { - yytext = (char *) malloc(yytextsz); - memcpy(yytext, yy_tbuf, sizeof (yy_tbuf)); - } - else - yytext = (char *) realloc(yytext, yytextsz); - if (!yytext) { - fprintf(yyout, - "Cannot realloc yytext\n"); - exit(1); - } - yylastch = yytext + x; - } -#endif - yyfirst=0; - tryagain: -# ifdef LEXDEBUG - if(debug){ - fprintf(yyout,"char "); - allprint(yych); - putchar('\n'); - } -# endif - yyr = yyt; - if ( (int)yyt > (int)yycrank){ - yyt = yyr + yych; - if (yyt <= yytop && yyt->verify+yysvec == yystate){ - if(yyt->advance+yysvec == YYLERR) /* error transitions */ - {unput(*--yylastch);break;} - *lsp++ = yystate = yyt->advance+yysvec; - if(lsp > &yylstate[YYLMAX]) { - fprintf(yyout,"Input string too long, limit %d\n",YYLMAX); - exit(1); - } - goto contin; - } - } -# ifdef YYOPTIM - else if((int)yyt < (int)yycrank) { /* r < yycrank */ - yyt = yyr = yycrank+(yycrank-yyt); -# ifdef LEXDEBUG - if(debug)fprintf(yyout,"compressed state\n"); -# endif - yyt = yyt + yych; - if(yyt <= yytop && yyt->verify+yysvec == yystate){ - if(yyt->advance+yysvec == YYLERR) /* error transitions */ - {unput(*--yylastch);break;} - *lsp++ = yystate = yyt->advance+yysvec; - if(lsp > &yylstate[YYLMAX]) { - fprintf(yyout,"Input string too long, limit %d\n",YYLMAX); - exit(1); - } - goto contin; - } - yyt = yyr + YYU(yymatch[yych]); -# ifdef LEXDEBUG - if(debug){ - fprintf(yyout,"try fall back character "); - allprint(YYU(yymatch[yych])); - putchar('\n'); - } -# endif - if(yyt <= yytop && yyt->verify+yysvec == yystate){ - if(yyt->advance+yysvec == YYLERR) /* error transition */ - {unput(*--yylastch);break;} - *lsp++ = yystate = yyt->advance+yysvec; - if(lsp > &yylstate[YYLMAX]) { - fprintf(yyout,"Input string too long, limit %d\n",YYLMAX); - exit(1); - } - goto contin; - } - } - if ((yystate = yystate->yyother) && (yyt= yystate->yystoff) != yycrank){ -# ifdef LEXDEBUG - if(debug)fprintf(yyout,"fall back to state %d\n",yystate-yysvec-1); -# endif - goto tryagain; - } -# endif - else - {unput(*--yylastch);break;} - contin: -# ifdef LEXDEBUG - if(debug){ - fprintf(yyout,"state %d char ",yystate-yysvec-1); - allprint(yych); - putchar('\n'); - } -# endif - ; - } -# ifdef LEXDEBUG - if(debug){ - fprintf(yyout,"stopped at %d with ",*(lsp-1)-yysvec-1); - allprint(yych); - putchar('\n'); - } -# endif - while (lsp-- > yylstate){ - *yylastch-- = 0; - if (*lsp != 0 && (yyfnd= (*lsp)->yystops) && *yyfnd > 0){ - yyolsp = lsp; - if(yyextra[*yyfnd]){ /* must backup */ - while(yyback((*lsp)->yystops,-*yyfnd) != 1 && lsp > yylstate){ - lsp--; - unput(*yylastch--); - } - } - yyprevious = YYU(*yylastch); - yylsp = lsp; - yyleng = yylastch-yytext+1; - yytext[yyleng] = 0; -# ifdef LEXDEBUG - if(debug){ - fprintf(yyout,"\nmatch "); - sprint(yytext); - fprintf(yyout," action %d\n",*yyfnd); - } -# endif - return(*yyfnd++); - } - unput(*yylastch); - } - if (yytext[0] == 0 /* && feof(yyin) */) - { - yysptr=yysbuf; - return(0); - } -#ifndef __cplusplus - yyprevious = yytext[0] = input(); - if (yyprevious>0) - output(yyprevious); -#else - yyprevious = yytext[0] = lex_input(); - if (yyprevious>0) - lex_output(yyprevious); -#endif - yylastch=yytext; -# ifdef LEXDEBUG - if(debug)putchar('\n'); -# endif - } - } -#if defined(__cplusplus) || defined(__STDC__) -int yyback(int *p, int m) -#else -yyback(p, m) - int *p; -#endif -{ - if (p==0) return(0); - while (*p) { - if (*p++ == m) - return(1); - } - return(0); -} - /* the following are only used in the lex library */ -#if defined(__cplusplus) || defined(__STDC__) -int yyinput(void) -#else -yyinput() -#endif -{ -#ifndef __cplusplus - return(input()); -#else - return(lex_input()); -#endif - } -#if defined(__cplusplus) || defined(__STDC__) -void yyoutput(int c) -#else -yyoutput(c) - int c; -#endif -{ -#ifndef __cplusplus - output(c); -#else - lex_output(c); -#endif - } -#if defined(__cplusplus) || defined(__STDC__) -void yyunput(int c) -#else -yyunput(c) - int c; -#endif -{ - unput(c); - } diff --git a/src/ExpToCasExe/mkexpformat b/src/ExpToCasExe/mkexpformat deleted file mode 100644 index 2c3fc8e47d..0000000000 --- a/src/ExpToCasExe/mkexpformat +++ /dev/null @@ -1,2 +0,0 @@ -lex expformat.l -cc lex.yy.c -o expformat diff --git a/src/ExpToCasExe/mkexplist b/src/ExpToCasExe/mkexplist deleted file mode 100644 index 6c8826a8c2..0000000000 --- a/src/ExpToCasExe/mkexplist +++ /dev/null @@ -1,2 +0,0 @@ -lex explist.l -cc lex.yy.c -o explist diff --git a/src/ExpToCasExe/mkparser b/src/ExpToCasExe/mkparser deleted file mode 100644 index 255bd74ced..0000000000 --- a/src/ExpToCasExe/mkparser +++ /dev/null @@ -1,5 +0,0 @@ -rm -f yy.tab.c y.tab.h expparse.cxx expparse.h -#yacc -v -d exptocas.y -yacc -d exptocas.y -mv y.tab.c expparse.cxx -mv y.tab.h expparse.h diff --git a/src/ExpToCasExe/mkscanner b/src/ExpToCasExe/mkscanner deleted file mode 100644 index bfcefb4ac9..0000000000 --- a/src/ExpToCasExe/mkscanner +++ /dev/null @@ -1 +0,0 @@ -lex -t exptocas.l >expscan.cxx diff --git a/src/ExpToCasExe/occt_existed_step_entities.lst b/src/ExpToCasExe/occt_existed_step_entities.lst new file mode 100644 index 0000000000..0472a22583 --- /dev/null +++ b/src/ExpToCasExe/occt_existed_step_entities.lst @@ -0,0 +1,784 @@ +# Last update 03.04.2020 +#=============================================== +# package StepAP203 +#=============================================== +ApprovedItem StepAP203 +CcDesignApproval StepAP203 +CcDesignCertification StepAP203 +CcDesignContract StepAP203 +CcDesignDateAndTimeAssignment StepAP203 +CcDesignPersonAndOrganizationAssignment StepAP203 +CcDesignSecurityClassification StepAP203 +CcDesignSpecificationReference StepAP203 +CertifiedItem StepAP203 +Change StepAP203 +ChangeRequest StepAP203 +ChangeRequestItem StepAP203 +ClassifiedItem StepAP203 +ContractedItem StepAP203 +DateTimeItem StepAP203 +PersonOrganizationItem StepAP203 +SpecifiedItem StepAP203 +StartRequest StepAP203 +StartRequestItem StepAP203 +StartWork StepAP203 +WorkItem StepAP203 + +#=============================================== +# package StepAP214 +#=============================================== +AppliedApprovalAssignment StepAP214 +AppliedDateAndTimeAssignment StepAP214 +AppliedDateAssignment StepAP214 +AppliedDocumentReference StepAP214 +AppliedExternalIdentificationAssignment StepAP214 +AppliedGroupAssignment StepAP214 +AppliedOrganizationAssignment StepAP214 +AppliedPersonAndOrganizationAssignment StepAP214 +AppliedPresentedItem StepAP214 +AppliedSecurityClassificationAssignment StepAP214 +ApprovalItem StepAP214 +AutoDesignActualDateAndTimeAssignment StepAP214 +AutoDesignActualDateAssignment StepAP214 +AutoDesignApprovalAssignment StepAP214 +AutoDesignDateAndPersonAssignment StepAP214 +AutoDesignDateAndPersonItem StepAP214 +AutoDesignDateAndTimeItem StepAP214 +AutoDesignDatedItem StepAP214 +AutoDesignDocumentReference StepAP214 +AutoDesignGeneralOrgItem StepAP214 +AutoDesignGroupAssignment StepAP214 +AutoDesignGroupedItem StepAP214 +AutoDesignNominalDateAndTimeAssignment StepAP214 +AutoDesignNominalDateAssignment StepAP214 +AutoDesignOrganizationAssignment StepAP214 +AutoDesignOrganizationItem StepAP214 +AutoDesignPersonAndOrganizationAssignment StepAP214 +AutoDesignPresentedItem StepAP214 +AutoDesignPresentedItemSelect StepAP214 +AutoDesignReferencingItem StepAP214 +AutoDesignSecurityClassificationAssignment StepAP214 +Class StepAP214 +DateAndTimeItem StepAP214 +DateItem StepAP214 +DocumentReferenceItem StepAP214 +ExternalIdentificationItem StepAP214 +ExternallyDefinedClass StepAP214 +ExternallyDefinedGeneralProperty StepAP214 +GroupItem StepAP214 +OrganizationItem StepAP214 +PersonAndOrganizationItem StepAP214 +PresentedItemSelect StepAP214 +Protocol StepAP214 +RepItemGroup StepAP214 +SecurityClassificationItem StepAP214 + +#=============================================== +# package StepAP242 +#=============================================== +DraughtingModelItemAssociation StepAP242 +GeometricItemSpecificUsage StepAP242 +IdAttribute StepAP242 +IdAttributeSelect StepAP242 +ItemIdentifiedRepresentationUsage StepAP242 +ItemIdentifiedRepresentationUsageDefinition StepAP242 + +#=============================================== +# package StepBasic +#=============================================== +Action StepBasic +ActionAssignment StepBasic +ActionMethod StepBasic +ActionRequestAssignment StepBasic +ActionRequestSolution StepBasic +Address StepBasic +ApplicationContext StepBasic +ApplicationContextElement StepBasic +ApplicationProtocolDefinition StepBasic +Approval StepBasic +ApprovalAssignment StepBasic +ApprovalDateTime StepBasic +ApprovalPersonOrganization StepBasic +ApprovalRelationship StepBasic +ApprovalRole StepBasic +ApprovalStatus StepBasic +AreaUnit StepBasic +CalendarDate StepBasic +Certification StepBasic +CertificationAssignment StepBasic +CertificationType StepBasic +CharacterizedObject StepBasic +Contract StepBasic +ContractAssignment StepBasic +ContractType StepBasic +ConversionBasedUnit StepBasic +ConversionBasedUnitAndAreaUnit StepBasic +ConversionBasedUnitAndLengthUnit StepBasic +ConversionBasedUnitAndMassUnit StepBasic +ConversionBasedUnitAndPlaneAngleUnit StepBasic +ConversionBasedUnitAndRatioUnit StepBasic +ConversionBasedUnitAndSolidAngleUnit StepBasic +ConversionBasedUnitAndTimeUnit StepBasic +ConversionBasedUnitAndVolumeUnit StepBasic +CoordinatedUniversalTimeOffset StepBasic +Date StepBasic +DateAndTime StepBasic +DateAndTimeAssignment StepBasic +DateAssignment StepBasic +DateRole StepBasic +DateTimeRole StepBasic +DateTimeSelect StepBasic +DerivedUnit StepBasic +DerivedUnitElement StepBasic +DesignContext StepBasic +DigitalDocument StepBasic +DimensionalExponents StepBasic +Document StepBasic +DocumentFile StepBasic +DocumentProductAssociation StepBasic +DocumentProductEquivalence StepBasic +DocumentReference StepBasic +DocumentRelationship StepBasic +DocumentRepresentationType StepBasic +DocumentType StepBasic +DocumentUsageConstraint StepBasic +Effectivity StepBasic +EffectivityAssignment StepBasic +EulerAngles StepBasic +ExternalIdentificationAssignment StepBasic +ExternallyDefinedItem StepBasic +ExternalSource StepBasic +GeneralProperty StepBasic +Group StepBasic +GroupAssignment StepBasic +GroupRelationship StepBasic +IdentificationAssignment StepBasic +IdentificationRole StepBasic +LengthMeasureWithUnit StepBasic +LengthUnit StepBasic +LocalTime StepBasic +MassMeasureWithUnit StepBasic +MassUnit StepBasic +MeasureValueMember StepBasic +MeasureWithUnit StepBasic +MechanicalContext StepBasic +NameAssignment StepBasic +NamedUnit StepBasic +ObjectRole StepBasic +OrdinalDate StepBasic +Organization StepBasic +OrganizationalAddress StepBasic +OrganizationAssignment StepBasic +OrganizationRole StepBasic +Person StepBasic +PersonalAddress StepBasic +PersonAndOrganization StepBasic +PersonAndOrganizationAssignment StepBasic +PersonAndOrganizationRole StepBasic +PersonOrganizationSelect StepBasic +PhysicallyModeledProductDefinition StepBasic +PlaneAngleMeasureWithUnit StepBasic +PlaneAngleUnit StepBasic +Product StepBasic +ProductCategory StepBasic +ProductCategoryRelationship StepBasic +ProductConceptContext StepBasic +ProductContext StepBasic +ProductDefinition StepBasic +ProductDefinitionContext StepBasic +ProductDefinitionEffectivity StepBasic +ProductDefinitionFormation StepBasic +ProductDefinitionFormationRelationship StepBasic +ProductDefinitionFormationWithSpecifiedSource StepBasic +ProductDefinitionOrReference StepBasic +ProductDefinitionReference StepBasic +ProductDefinitionReferenceWithLocalRepresentation StepBasic +ProductDefinitionRelationship StepBasic +ProductDefinitionWithAssociatedDocuments StepBasic +ProductOrFormationOrDefinition StepBasic +ProductRelatedProductCategory StepBasic +ProductType StepBasic +RatioMeasureWithUnit StepBasic +RatioUnit StepBasic +RoleAssociation StepBasic +RoleSelect StepBasic +SecurityClassification StepBasic +SecurityClassificationAssignment StepBasic +SecurityClassificationLevel StepBasic +SiUnit StepBasic +SiUnitAndAreaUnit StepBasic +SiUnitAndLengthUnit StepBasic +SiUnitAndMassUnit StepBasic +SiUnitAndPlaneAngleUnit StepBasic +SiUnitAndRatioUnit StepBasic +SiUnitAndSolidAngleUnit StepBasic +SiUnitAndThermodynamicTemperatureUnit StepBasic +SiUnitAndTimeUnit StepBasic +SiUnitAndVolumeUnit StepBasic +SizeMember StepBasic +SizeSelect StepBasic +SolidAngleMeasureWithUnit StepBasic +SolidAngleUnit StepBasic +SourceItem StepBasic +ThermodynamicTemperatureUnit StepBasic +TimeMeasureWithUnit StepBasic +TimeUnit StepBasic +UncertaintyMeasureWithUnit StepBasic +Unit StepBasic +VersionedActionRequest StepBasic +VolumeUnit StepBasic +WeekOfYearAndDayDate StepBasic + +#=============================================== +# package StepDimTol +#=============================================== +AngularityTolerance StepDimTol +CircularRunoutTolerance StepDimTol +CoaxialityTolerance StepDimTol +CommonDatum StepDimTol +ConcentricityTolerance StepDimTol +CylindricityTolerance StepDimTol +Datum StepDimTol +DatumFeature StepDimTol +DatumOrCommonDatum StepDimTol +DatumReference StepDimTol +DatumReferenceCompartment StepDimTol +DatumReferenceElement StepDimTol +DatumReferenceModifier StepDimTol +DatumReferenceModifierWithValue StepDimTol +DatumSystem StepDimTol +DatumSystemOrReference StepDimTol +DatumTarget StepDimTol +FlatnessTolerance StepDimTol +GeneralDatumReference StepDimTol +GeometricTolerance StepDimTol +GeometricToleranceRelationship StepDimTol +GeometricToleranceTarget StepDimTol +GeometricToleranceWithDatumReference StepDimTol +GeometricToleranceWithDefinedAreaUnit StepDimTol +GeometricToleranceWithDefinedUnit StepDimTol +GeometricToleranceWithMaximumTolerance StepDimTol +GeometricToleranceWithModifiers StepDimTol +GeoTolAndGeoTolWthDatRef StepDimTol +GeoTolAndGeoTolWthDatRefAndGeoTolWthMaxTol StepDimTol +GeoTolAndGeoTolWthDatRefAndGeoTolWthMod StepDimTol +GeoTolAndGeoTolWthDatRefAndModGeoTolAndPosTol StepDimTol +GeoTolAndGeoTolWthDatRefAndUneqDisGeoTol StepDimTol +GeoTolAndGeoTolWthMaxTol StepDimTol +GeoTolAndGeoTolWthMod StepDimTol +LineProfileTolerance StepDimTol +ModifiedGeometricTolerance StepDimTol +NonUniformZoneDefinition StepDimTol +ParallelismTolerance StepDimTol +PerpendicularityTolerance StepDimTol +PlacedDatumTargetFeature StepDimTol +PositionTolerance StepDimTol +ProjectedZoneDefinition StepDimTol +RoundnessTolerance StepDimTol +RunoutZoneDefinition StepDimTol +RunoutZoneOrientation StepDimTol +ShapeToleranceSelect StepDimTol +SimpleDatumReferenceModifierMember StepDimTol +StraightnessTolerance StepDimTol +SurfaceProfileTolerance StepDimTol +SymmetryTolerance StepDimTol +ToleranceZone StepDimTol +ToleranceZoneDefinition StepDimTol +ToleranceZoneForm StepDimTol +ToleranceZoneTarget StepDimTol +TotalRunoutTolerance StepDimTol +UnequallyDisposedGeometricTolerance StepDimTol + +#=============================================== +# package StepElement +#=============================================== +AnalysisItemWithinRepresentation StepElement +Curve3dElementDescriptor StepElement +CurveElementEndReleasePacket StepElement +CurveElementFreedom StepElement +CurveElementFreedomMember StepElement +CurveElementPurpose StepElement +CurveElementPurposeMember StepElement +CurveElementSectionDefinition StepElement +CurveElementSectionDerivedDefinitions StepElement +ElementAspect StepElement +ElementAspectMember StepElement +ElementDescriptor StepElement +ElementMaterial StepElement +MeasureOrUnspecifiedValue StepElement +MeasureOrUnspecifiedValueMember StepElement +Surface3dElementDescriptor StepElement +SurfaceElementProperty StepElement +SurfaceElementPurpose StepElement +SurfaceElementPurposeMember StepElement +SurfaceSection StepElement +SurfaceSectionField StepElement +SurfaceSectionFieldConstant StepElement +SurfaceSectionFieldVarying StepElement +UniformSurfaceSection StepElement +Volume3dElementDescriptor StepElement +VolumeElementPurpose StepElement +VolumeElementPurposeMember StepElement + +#=============================================== +# package StepFEA +#=============================================== +AlignedCurve3dElementCoordinateSystem StepFEA +AlignedSurface3dElementCoordinateSystem StepFEA +ArbitraryVolume3dElementCoordinateSystem StepFEA +ConstantSurface3dElementCoordinateSystem StepFEA +Curve3dElementProperty StepFEA +Curve3dElementRepresentation StepFEA +CurveElementEndCoordinateSystem StepFEA +CurveElementEndOffset StepFEA +CurveElementEndRelease StepFEA +CurveElementInterval StepFEA +CurveElementIntervalConstant StepFEA +CurveElementIntervalLinearlyVarying StepFEA +CurveElementLocation StepFEA +DegreeOfFreedom StepFEA +DegreeOfFreedomMember StepFEA +DummyNode StepFEA +ElementGeometricRelationship StepFEA +ElementGroup StepFEA +ElementOrElementGroup StepFEA +ElementRepresentation StepFEA +FeaAreaDensity StepFEA +FeaAxis2Placement3d StepFEA +FeaCurveSectionGeometricRelationship StepFEA +FeaGroup StepFEA +FeaLinearElasticity StepFEA +FeaMassDensity StepFEA +FeaMaterialPropertyRepresentation StepFEA +FeaMaterialPropertyRepresentationItem StepFEA +FeaModel StepFEA +FeaModel3d StepFEA +FeaModelDefinition StepFEA +FeaMoistureAbsorption StepFEA +FeaParametricPoint StepFEA +FeaRepresentationItem StepFEA +FeaSecantCoefficientOfLinearThermalExpansion StepFEA +FeaShellBendingStiffness StepFEA +FeaShellMembraneBendingCouplingStiffness StepFEA +FeaShellMembraneStiffness StepFEA +FeaShellShearStiffness StepFEA +FeaSurfaceSectionGeometricRelationship StepFEA +FeaTangentialCoefficientOfLinearThermalExpansion StepFEA +FreedomAndCoefficient StepFEA +FreedomsList StepFEA +GeometricNode StepFEA +Node StepFEA +NodeDefinition StepFEA +NodeGroup StepFEA +NodeRepresentation StepFEA +NodeSet StepFEA +NodeWithSolutionCoordinateSystem StepFEA +NodeWithVector StepFEA +ParametricCurve3dElementCoordinateDirection StepFEA +ParametricCurve3dElementCoordinateSystem StepFEA +ParametricSurface3dElementCoordinateSystem StepFEA +Surface3dElementRepresentation StepFEA +SymmetricTensor22d StepFEA +SymmetricTensor23d StepFEA +SymmetricTensor23dMember StepFEA +SymmetricTensor42d StepFEA +SymmetricTensor43d StepFEA +SymmetricTensor43dMember StepFEA +Volume3dElementRepresentation StepFEA + +#=============================================== +# package StepGeom +#=============================================== +Axis1Placement StepGeom +Axis2Placement StepGeom +Axis2Placement2d StepGeom +Axis2Placement3d StepGeom +BezierCurve StepGeom +BezierCurveAndRationalBSplineCurve StepGeom +BezierSurface StepGeom +BezierSurfaceAndRationalBSplineSurface StepGeom +BoundaryCurve StepGeom +BoundedCurve StepGeom +BoundedSurface StepGeom +BSplineCurve StepGeom +BSplineCurveWithKnots StepGeom +BSplineCurveWithKnotsAndRationalBSplineCurve StepGeom +BSplineSurface StepGeom +BSplineSurfaceWithKnots StepGeom +BSplineSurfaceWithKnotsAndRationalBSplineSurface StepGeom +CartesianPoint StepGeom +CartesianTransformationOperator StepGeom +CartesianTransformationOperator2d StepGeom +CartesianTransformationOperator3d StepGeom +Circle StepGeom +CompositeCurve StepGeom +CompositeCurveOnSurface StepGeom +CompositeCurveSegment StepGeom +Conic StepGeom +ConicalSurface StepGeom +Curve StepGeom +CurveBoundedSurface StepGeom +CurveOnSurface StepGeom +CurveReplica StepGeom +CylindricalSurface StepGeom +DegeneratePcurve StepGeom +DegenerateToroidalSurface StepGeom +Direction StepGeom +ElementarySurface StepGeom +Ellipse StepGeom +EvaluatedDegeneratePcurve StepGeom +GeometricRepresentationContext StepGeom +GeometricRepresentationContextAndGlobalUnitAssignedContext StepGeom +GeometricRepresentationContextAndParametricRepresentationContext StepGeom +GeometricRepresentationItem StepGeom +GeomRepContextAndGlobUnitAssCtxAndGlobUncertaintyAssCtx StepGeom +Hyperbola StepGeom +IntersectionCurve StepGeom +Line StepGeom +OffsetCurve3d StepGeom +OffsetSurface StepGeom +OrientedSurface StepGeom +OuterBoundaryCurve StepGeom +Parabola StepGeom +Pcurve StepGeom +PcurveOrSurface StepGeom +Placement StepGeom +Plane StepGeom +Point StepGeom +PointOnCurve StepGeom +PointOnSurface StepGeom +PointReplica StepGeom +Polyline StepGeom +QuasiUniformCurve StepGeom +QuasiUniformCurveAndRationalBSplineCurve StepGeom +QuasiUniformSurface StepGeom +QuasiUniformSurfaceAndRationalBSplineSurface StepGeom +RationalBSplineCurve StepGeom +RationalBSplineSurface StepGeom +RectangularCompositeSurface StepGeom +RectangularTrimmedSurface StepGeom +ReparametrisedCompositeCurveSegment StepGeom +SeamCurve StepGeom +SphericalSurface StepGeom +Surface StepGeom +SurfaceBoundary StepGeom +SurfaceCurveAndBoundedCurve StepGeom +SurfaceOfLinearExtrusion StepGeom +SurfaceOfRevolution StepGeom +SurfacePatch StepGeom +SurfaceReplica StepGeom +SweptSurface StepGeom +ToroidalSurface StepGeom +TrimmedCurve StepGeom +TrimmingMember StepGeom +TrimmingSelect StepGeom +UniformCurve StepGeom +UniformCurveAndRationalBSplineCurve StepGeom +UniformSurface StepGeom +UniformSurfaceAndRationalBSplineSurface StepGeom +Vector StepGeom +VectorOrDirection StepGeom + +#=============================================== +# package StepRepr +#=============================================== +AllAroundShapeAspect StepRepr +Apex StepRepr +AssemblyComponentUsage StepRepr +AssemblyComponentUsageSubstitute StepRepr +BetweenShapeAspect StepRepr +CentreOfSymmetry StepRepr +CharacterizedDefinition StepRepr +CharacterizedRepresentation StepRepr +CompGroupShAspAndCompShAspAndDatumFeatAndShAsp StepRepr +CompositeGroupShapeAspect StepRepr +CompositeShapeAspect StepRepr +CompoundRepresentationItem StepRepr +CompShAspAndDatumFeatAndShAsp StepRepr +ConfigurationDesign StepRepr +ConfigurationDesignItem StepRepr +ConfigurationEffectivity StepRepr +ConfigurationItem StepRepr +ConstructiveGeometryRepresentation StepRepr +ConstructiveGeometryRepresentationRelationship StepRepr +ContinuosShapeAspect StepRepr +DataEnvironment StepRepr +DefinitionalRepresentation StepRepr +DerivedShapeAspect StepRepr +DescriptiveRepresentationItem StepRepr +Extension StepRepr +ExternallyDefinedRepresentation StepRepr +FeatureForDatumTargetRelationship StepRepr +FunctionallyDefinedTransformation StepRepr +GeometricAlignment StepRepr +GlobalUncertaintyAssignedContext StepRepr +GlobalUnitAssignedContext StepRepr +IntegerRepresentationItem StepRepr +ItemDefinedTransformation StepRepr +MakeFromUsageOption StepRepr +MappedItem StepRepr +MaterialDesignation StepRepr +MaterialProperty StepRepr +MaterialPropertyRepresentation StepRepr +MeasureRepresentationItem StepRepr +NextAssemblyUsageOccurrence StepRepr +ParallelOffset StepRepr +ParametricRepresentationContext StepRepr +PerpendicularTo StepRepr +ProductConcept StepRepr +ProductDefinitionShape StepRepr +ProductDefinitionUsage StepRepr +PromissoryUsageOccurrence StepRepr +PropertyDefinition StepRepr +PropertyDefinitionRelationship StepRepr +PropertyDefinitionRepresentation StepRepr +QuantifiedAssemblyComponentUsage StepRepr +Representation StepRepr +RepresentationContext StepRepr +RepresentationItem StepRepr +RepresentationMap StepRepr +RepresentationRelationship StepRepr +RepresentationRelationshipWithTransformation StepRepr +RepresentedDefinition StepRepr +ReprItemAndLengthMeasureWithUnit StepRepr +ReprItemAndLengthMeasureWithUnitAndQRI StepRepr +ReprItemAndMeasureWithUnit StepRepr +ReprItemAndMeasureWithUnitAndQRI StepRepr +ReprItemAndPlaneAngleMeasureWithUnit StepRepr +ReprItemAndPlaneAngleMeasureWithUnitAndQRI StepRepr +ShapeAspect StepRepr +ShapeAspectDerivingRelationship StepRepr +ShapeAspectRelationship StepRepr +ShapeAspectTransition StepRepr +ShapeDefinition StepRepr +ShapeRepresentationRelationship StepRepr +ShapeRepresentationRelationshipWithTransformation StepRepr +SpecifiedHigherUsageOccurrence StepRepr +StructuralResponseProperty StepRepr +StructuralResponsePropertyDefinitionRepresentation StepRepr +SuppliedPartRelationship StepRepr +Tangent StepRepr +Transformation StepRepr +ValueRange StepRepr +ValueRepresentationItem StepRepr + +#=============================================== +# package StepShape +#=============================================== +AdvancedBrepShapeRepresentation StepShape +AdvancedFace StepShape +AngularLocation StepShape +AngularSize StepShape +Block StepShape +BooleanOperand StepShape +BooleanResult StepShape +BoxDomain StepShape +BoxedHalfSpace StepShape +BrepWithVoids StepShape +ClosedShell StepShape +CompoundShapeRepresentation StepShape +ConnectedEdgeSet StepShape +ConnectedFaceSet StepShape +ConnectedFaceShapeRepresentation StepShape +ConnectedFaceSubSet StepShape +ContextDependentShapeRepresentation StepShape +CsgPrimitive StepShape +CsgSelect StepShape +CsgShapeRepresentation StepShape +CsgSolid StepShape +DefinitionalRepresentationAndShapeRepresentation StepShape +DimensionalCharacteristic StepShape +DimensionalCharacteristicRepresentation StepShape +DimensionalLocation StepShape +DimensionalLocationWithPath StepShape +DimensionalSize StepShape +DimensionalSizeWithPath StepShape +DirectedDimensionalLocation StepShape +Edge StepShape +EdgeBasedWireframeModel StepShape +EdgeBasedWireframeShapeRepresentation StepShape +EdgeCurve StepShape +EdgeLoop StepShape +ExtrudedAreaSolid StepShape +ExtrudedFaceSolid StepShape +Face StepShape +FaceBasedSurfaceModel StepShape +FaceBound StepShape +FaceOuterBound StepShape +FaceSurface StepShape +FacetedBrep StepShape +FacetedBrepAndBrepWithVoids StepShape +FacetedBrepShapeRepresentation StepShape +GeometricallyBoundedSurfaceShapeRepresentation StepShape +GeometricallyBoundedWireframeShapeRepresentation StepShape +GeometricCurveSet StepShape +GeometricSet StepShape +GeometricSetSelect StepShape +HalfSpaceSolid StepShape +LimitsAndFits StepShape +Loop StepShape +LoopAndPath StepShape +ManifoldSolidBrep StepShape +ManifoldSurfaceShapeRepresentation StepShape +MeasureQualification StepShape +MeasureRepresentationItemAndQualifiedRepresentationItem StepShape +NonManifoldSurfaceShapeRepresentation StepShape +OpenShell StepShape +OrientedClosedShell StepShape +OrientedEdge StepShape +OrientedFace StepShape +OrientedOpenShell StepShape +OrientedPath StepShape +Path StepShape +PlusMinusTolerance StepShape +PointRepresentation StepShape +PolyLoop StepShape +PrecisionQualifier StepShape +QualifiedRepresentationItem StepShape +ReversibleTopologyItem StepShape +RevolvedAreaSolid StepShape +RevolvedFaceSolid StepShape +RightAngularWedge StepShape +RightCircularCone StepShape +RightCircularCylinder StepShape +SeamEdge StepShape +ShapeDefinitionRepresentation StepShape +ShapeDimensionRepresentation StepShape +ShapeDimensionRepresentationItem StepShape +ShapeRepresentation StepShape +ShapeRepresentationWithParameters StepShape +Shell StepShape +ShellBasedSurfaceModel StepShape +SolidModel StepShape +SolidReplica StepShape +Sphere StepShape +Subedge StepShape +Subface StepShape +SurfaceModel StepShape +SweptAreaSolid StepShape +SweptFaceSolid StepShape +ToleranceMethodDefinition StepShape +ToleranceValue StepShape +TopologicalRepresentationItem StepShape +Torus StepShape +TransitionalShapeRepresentation StepShape +TypeQualifier StepShape +ValueFormatTypeQualifier StepShape +ValueQualifier StepShape +Vertex StepShape +VertexLoop StepShape +VertexPoint StepShape + +#=============================================== +# package StepVisual +#=============================================== +AnnotationCurveOccurrence StepVisual +AnnotationCurveOccurrenceAndAnnotationOccurrenceAndGeomReprItemAndReprItemAndStyledItem StepVisual +AnnotationFillArea StepVisual +AnnotationFillAreaOccurrence StepVisual +AnnotationOccurrence StepVisual +AnnotationPlane StepVisual +AnnotationPlaneElement StepVisual +AnnotationText StepVisual +AnnotationTextOccurrence StepVisual +AreaInSet StepVisual +AreaOrView StepVisual +BackgroundColour StepVisual +BoxCharacteristicSelect StepVisual +CameraImage StepVisual +CameraImage2dWithScale StepVisual +CameraImage3dWithScale StepVisual +CameraModel StepVisual +CameraModelD2 StepVisual +CameraModelD3 StepVisual +CameraModelD3MultiClipping StepVisual +CameraModelD3MultiClippingInterectionSelect StepVisual +CameraModelD3MultiClippingIntersection StepVisual +CameraModelD3MultiClippingUnion StepVisual +CameraModelD3MultiClippingUnionSelect StepVisual +CameraUsage StepVisual +CharacterizedObjectAndCharacterizedRepresentationAndDraughtingModelAndRepresentation StepVisual +Colour StepVisual +ColourRgb StepVisual +ColourSpecification StepVisual +CompositeText StepVisual +CompositeTextWithExtent StepVisual +ContextDependentInvisibility StepVisual +ContextDependentOverRidingStyledItem StepVisual +CurveStyle StepVisual +CurveStyleFont StepVisual +CurveStyleFontPattern StepVisual +CurveStyleFontSelect StepVisual +DirectionCountSelect StepVisual +DraughtingAnnotationOccurrence StepVisual +DraughtingCallout StepVisual +DraughtingCalloutElement StepVisual +DraughtingModel StepVisual +DraughtingPreDefinedColour StepVisual +DraughtingPreDefinedCurveFont StepVisual +ExternallyDefinedCurveFont StepVisual +ExternallyDefinedTextFont StepVisual +FillAreaStyle StepVisual +FillAreaStyleColour StepVisual +FillStyleSelect StepVisual +FontSelect StepVisual +Invisibility StepVisual +InvisibilityContext StepVisual +InvisibleItem StepVisual +LayeredItem StepVisual +MarkerMember StepVisual +MarkerSelect StepVisual +MechanicalDesignGeometricPresentationArea StepVisual +MechanicalDesignGeometricPresentationRepresentation StepVisual +NullStyleMember StepVisual +OverRidingStyledItem StepVisual +PlanarBox StepVisual +PlanarExtent StepVisual +PointStyle StepVisual +PreDefinedColour StepVisual +PreDefinedCurveFont StepVisual +PreDefinedItem StepVisual +PreDefinedTextFont StepVisual +PresentationArea StepVisual +PresentationLayerAssignment StepVisual +PresentationLayerUsage StepVisual +PresentationRepresentation StepVisual +PresentationRepresentationSelect StepVisual +PresentationSet StepVisual +PresentationSize StepVisual +PresentationSizeAssignmentSelect StepVisual +PresentationStyleAssignment StepVisual +PresentationStyleByContext StepVisual +PresentationStyleSelect StepVisual +PresentationView StepVisual +PresentedItem StepVisual +PresentedItemRepresentation StepVisual +StyleContextSelect StepVisual +StyledItem StepVisual +StyledItemTarget StepVisual +SurfaceSideStyle StepVisual +SurfaceStyleBoundary StepVisual +SurfaceStyleControlGrid StepVisual +SurfaceStyleElementSelect StepVisual +SurfaceStyleFillArea StepVisual +SurfaceStyleParameterLine StepVisual +SurfaceStyleSegmentationCurve StepVisual +SurfaceStyleSilhouette StepVisual +SurfaceStyleUsage StepVisual +Template StepVisual +TemplateInstance StepVisual +TextLiteral StepVisual +TextOrCharacter StepVisual +TextStyle StepVisual +TextStyleForDefinedFont StepVisual +TextStyleWithBoxCharacteristics StepVisual +ViewVolume StepVisual +TessellatedAnnotationOccurrence StepVisual +TessellatedItem StepVisual +TessellatedGeometricSet StepVisual +TessellatedCurveSet StepVisual +CoordinatesList StepVisual +SurfaceStyleTransparent StepVisual +SurfaceStyleReflectanceAmbient StepVisual +SurfaceStyleRendering StepVisual +SurfaceStyleRenderingWithProperties StepVisual diff --git a/src/ExpToCasExe/occt_step_entities.lst b/src/ExpToCasExe/occt_step_entities.lst deleted file mode 100644 index 0472a22583..0000000000 --- a/src/ExpToCasExe/occt_step_entities.lst +++ /dev/null @@ -1,784 +0,0 @@ -# Last update 03.04.2020 -#=============================================== -# package StepAP203 -#=============================================== -ApprovedItem StepAP203 -CcDesignApproval StepAP203 -CcDesignCertification StepAP203 -CcDesignContract StepAP203 -CcDesignDateAndTimeAssignment StepAP203 -CcDesignPersonAndOrganizationAssignment StepAP203 -CcDesignSecurityClassification StepAP203 -CcDesignSpecificationReference StepAP203 -CertifiedItem StepAP203 -Change StepAP203 -ChangeRequest StepAP203 -ChangeRequestItem StepAP203 -ClassifiedItem StepAP203 -ContractedItem StepAP203 -DateTimeItem StepAP203 -PersonOrganizationItem StepAP203 -SpecifiedItem StepAP203 -StartRequest StepAP203 -StartRequestItem StepAP203 -StartWork StepAP203 -WorkItem StepAP203 - -#=============================================== -# package StepAP214 -#=============================================== -AppliedApprovalAssignment StepAP214 -AppliedDateAndTimeAssignment StepAP214 -AppliedDateAssignment StepAP214 -AppliedDocumentReference StepAP214 -AppliedExternalIdentificationAssignment StepAP214 -AppliedGroupAssignment StepAP214 -AppliedOrganizationAssignment StepAP214 -AppliedPersonAndOrganizationAssignment StepAP214 -AppliedPresentedItem StepAP214 -AppliedSecurityClassificationAssignment StepAP214 -ApprovalItem StepAP214 -AutoDesignActualDateAndTimeAssignment StepAP214 -AutoDesignActualDateAssignment StepAP214 -AutoDesignApprovalAssignment StepAP214 -AutoDesignDateAndPersonAssignment StepAP214 -AutoDesignDateAndPersonItem StepAP214 -AutoDesignDateAndTimeItem StepAP214 -AutoDesignDatedItem StepAP214 -AutoDesignDocumentReference StepAP214 -AutoDesignGeneralOrgItem StepAP214 -AutoDesignGroupAssignment StepAP214 -AutoDesignGroupedItem StepAP214 -AutoDesignNominalDateAndTimeAssignment StepAP214 -AutoDesignNominalDateAssignment StepAP214 -AutoDesignOrganizationAssignment StepAP214 -AutoDesignOrganizationItem StepAP214 -AutoDesignPersonAndOrganizationAssignment StepAP214 -AutoDesignPresentedItem StepAP214 -AutoDesignPresentedItemSelect StepAP214 -AutoDesignReferencingItem StepAP214 -AutoDesignSecurityClassificationAssignment StepAP214 -Class StepAP214 -DateAndTimeItem StepAP214 -DateItem StepAP214 -DocumentReferenceItem StepAP214 -ExternalIdentificationItem StepAP214 -ExternallyDefinedClass StepAP214 -ExternallyDefinedGeneralProperty StepAP214 -GroupItem StepAP214 -OrganizationItem StepAP214 -PersonAndOrganizationItem StepAP214 -PresentedItemSelect StepAP214 -Protocol StepAP214 -RepItemGroup StepAP214 -SecurityClassificationItem StepAP214 - -#=============================================== -# package StepAP242 -#=============================================== -DraughtingModelItemAssociation StepAP242 -GeometricItemSpecificUsage StepAP242 -IdAttribute StepAP242 -IdAttributeSelect StepAP242 -ItemIdentifiedRepresentationUsage StepAP242 -ItemIdentifiedRepresentationUsageDefinition StepAP242 - -#=============================================== -# package StepBasic -#=============================================== -Action StepBasic -ActionAssignment StepBasic -ActionMethod StepBasic -ActionRequestAssignment StepBasic -ActionRequestSolution StepBasic -Address StepBasic -ApplicationContext StepBasic -ApplicationContextElement StepBasic -ApplicationProtocolDefinition StepBasic -Approval StepBasic -ApprovalAssignment StepBasic -ApprovalDateTime StepBasic -ApprovalPersonOrganization StepBasic -ApprovalRelationship StepBasic -ApprovalRole StepBasic -ApprovalStatus StepBasic -AreaUnit StepBasic -CalendarDate StepBasic -Certification StepBasic -CertificationAssignment StepBasic -CertificationType StepBasic -CharacterizedObject StepBasic -Contract StepBasic -ContractAssignment StepBasic -ContractType StepBasic -ConversionBasedUnit StepBasic -ConversionBasedUnitAndAreaUnit StepBasic -ConversionBasedUnitAndLengthUnit StepBasic -ConversionBasedUnitAndMassUnit StepBasic -ConversionBasedUnitAndPlaneAngleUnit StepBasic -ConversionBasedUnitAndRatioUnit StepBasic -ConversionBasedUnitAndSolidAngleUnit StepBasic -ConversionBasedUnitAndTimeUnit StepBasic -ConversionBasedUnitAndVolumeUnit StepBasic -CoordinatedUniversalTimeOffset StepBasic -Date StepBasic -DateAndTime StepBasic -DateAndTimeAssignment StepBasic -DateAssignment StepBasic -DateRole StepBasic -DateTimeRole StepBasic -DateTimeSelect StepBasic -DerivedUnit StepBasic -DerivedUnitElement StepBasic -DesignContext StepBasic -DigitalDocument StepBasic -DimensionalExponents StepBasic -Document StepBasic -DocumentFile StepBasic -DocumentProductAssociation StepBasic -DocumentProductEquivalence StepBasic -DocumentReference StepBasic -DocumentRelationship StepBasic -DocumentRepresentationType StepBasic -DocumentType StepBasic -DocumentUsageConstraint StepBasic -Effectivity StepBasic -EffectivityAssignment StepBasic -EulerAngles StepBasic -ExternalIdentificationAssignment StepBasic -ExternallyDefinedItem StepBasic -ExternalSource StepBasic -GeneralProperty StepBasic -Group StepBasic -GroupAssignment StepBasic -GroupRelationship StepBasic -IdentificationAssignment StepBasic -IdentificationRole StepBasic -LengthMeasureWithUnit StepBasic -LengthUnit StepBasic -LocalTime StepBasic -MassMeasureWithUnit StepBasic -MassUnit StepBasic -MeasureValueMember StepBasic -MeasureWithUnit StepBasic -MechanicalContext StepBasic -NameAssignment StepBasic -NamedUnit StepBasic -ObjectRole StepBasic -OrdinalDate StepBasic -Organization StepBasic -OrganizationalAddress StepBasic -OrganizationAssignment StepBasic -OrganizationRole StepBasic -Person StepBasic -PersonalAddress StepBasic -PersonAndOrganization StepBasic -PersonAndOrganizationAssignment StepBasic -PersonAndOrganizationRole StepBasic -PersonOrganizationSelect StepBasic -PhysicallyModeledProductDefinition StepBasic -PlaneAngleMeasureWithUnit StepBasic -PlaneAngleUnit StepBasic -Product StepBasic -ProductCategory StepBasic -ProductCategoryRelationship StepBasic -ProductConceptContext StepBasic -ProductContext StepBasic -ProductDefinition StepBasic -ProductDefinitionContext StepBasic -ProductDefinitionEffectivity StepBasic -ProductDefinitionFormation StepBasic -ProductDefinitionFormationRelationship StepBasic -ProductDefinitionFormationWithSpecifiedSource StepBasic -ProductDefinitionOrReference StepBasic -ProductDefinitionReference StepBasic -ProductDefinitionReferenceWithLocalRepresentation StepBasic -ProductDefinitionRelationship StepBasic -ProductDefinitionWithAssociatedDocuments StepBasic -ProductOrFormationOrDefinition StepBasic -ProductRelatedProductCategory StepBasic -ProductType StepBasic -RatioMeasureWithUnit StepBasic -RatioUnit StepBasic -RoleAssociation StepBasic -RoleSelect StepBasic -SecurityClassification StepBasic -SecurityClassificationAssignment StepBasic -SecurityClassificationLevel StepBasic -SiUnit StepBasic -SiUnitAndAreaUnit StepBasic -SiUnitAndLengthUnit StepBasic -SiUnitAndMassUnit StepBasic -SiUnitAndPlaneAngleUnit StepBasic -SiUnitAndRatioUnit StepBasic -SiUnitAndSolidAngleUnit StepBasic -SiUnitAndThermodynamicTemperatureUnit StepBasic -SiUnitAndTimeUnit StepBasic -SiUnitAndVolumeUnit StepBasic -SizeMember StepBasic -SizeSelect StepBasic -SolidAngleMeasureWithUnit StepBasic -SolidAngleUnit StepBasic -SourceItem StepBasic -ThermodynamicTemperatureUnit StepBasic -TimeMeasureWithUnit StepBasic -TimeUnit StepBasic -UncertaintyMeasureWithUnit StepBasic -Unit StepBasic -VersionedActionRequest StepBasic -VolumeUnit StepBasic -WeekOfYearAndDayDate StepBasic - -#=============================================== -# package StepDimTol -#=============================================== -AngularityTolerance StepDimTol -CircularRunoutTolerance StepDimTol -CoaxialityTolerance StepDimTol -CommonDatum StepDimTol -ConcentricityTolerance StepDimTol -CylindricityTolerance StepDimTol -Datum StepDimTol -DatumFeature StepDimTol -DatumOrCommonDatum StepDimTol -DatumReference StepDimTol -DatumReferenceCompartment StepDimTol -DatumReferenceElement StepDimTol -DatumReferenceModifier StepDimTol -DatumReferenceModifierWithValue StepDimTol -DatumSystem StepDimTol -DatumSystemOrReference StepDimTol -DatumTarget StepDimTol -FlatnessTolerance StepDimTol -GeneralDatumReference StepDimTol -GeometricTolerance StepDimTol -GeometricToleranceRelationship StepDimTol -GeometricToleranceTarget StepDimTol -GeometricToleranceWithDatumReference StepDimTol -GeometricToleranceWithDefinedAreaUnit StepDimTol -GeometricToleranceWithDefinedUnit StepDimTol -GeometricToleranceWithMaximumTolerance StepDimTol -GeometricToleranceWithModifiers StepDimTol -GeoTolAndGeoTolWthDatRef StepDimTol -GeoTolAndGeoTolWthDatRefAndGeoTolWthMaxTol StepDimTol -GeoTolAndGeoTolWthDatRefAndGeoTolWthMod StepDimTol -GeoTolAndGeoTolWthDatRefAndModGeoTolAndPosTol StepDimTol -GeoTolAndGeoTolWthDatRefAndUneqDisGeoTol StepDimTol -GeoTolAndGeoTolWthMaxTol StepDimTol -GeoTolAndGeoTolWthMod StepDimTol -LineProfileTolerance StepDimTol -ModifiedGeometricTolerance StepDimTol -NonUniformZoneDefinition StepDimTol -ParallelismTolerance StepDimTol -PerpendicularityTolerance StepDimTol -PlacedDatumTargetFeature StepDimTol -PositionTolerance StepDimTol -ProjectedZoneDefinition StepDimTol -RoundnessTolerance StepDimTol -RunoutZoneDefinition StepDimTol -RunoutZoneOrientation StepDimTol -ShapeToleranceSelect StepDimTol -SimpleDatumReferenceModifierMember StepDimTol -StraightnessTolerance StepDimTol -SurfaceProfileTolerance StepDimTol -SymmetryTolerance StepDimTol -ToleranceZone StepDimTol -ToleranceZoneDefinition StepDimTol -ToleranceZoneForm StepDimTol -ToleranceZoneTarget StepDimTol -TotalRunoutTolerance StepDimTol -UnequallyDisposedGeometricTolerance StepDimTol - -#=============================================== -# package StepElement -#=============================================== -AnalysisItemWithinRepresentation StepElement -Curve3dElementDescriptor StepElement -CurveElementEndReleasePacket StepElement -CurveElementFreedom StepElement -CurveElementFreedomMember StepElement -CurveElementPurpose StepElement -CurveElementPurposeMember StepElement -CurveElementSectionDefinition StepElement -CurveElementSectionDerivedDefinitions StepElement -ElementAspect StepElement -ElementAspectMember StepElement -ElementDescriptor StepElement -ElementMaterial StepElement -MeasureOrUnspecifiedValue StepElement -MeasureOrUnspecifiedValueMember StepElement -Surface3dElementDescriptor StepElement -SurfaceElementProperty StepElement -SurfaceElementPurpose StepElement -SurfaceElementPurposeMember StepElement -SurfaceSection StepElement -SurfaceSectionField StepElement -SurfaceSectionFieldConstant StepElement -SurfaceSectionFieldVarying StepElement -UniformSurfaceSection StepElement -Volume3dElementDescriptor StepElement -VolumeElementPurpose StepElement -VolumeElementPurposeMember StepElement - -#=============================================== -# package StepFEA -#=============================================== -AlignedCurve3dElementCoordinateSystem StepFEA -AlignedSurface3dElementCoordinateSystem StepFEA -ArbitraryVolume3dElementCoordinateSystem StepFEA -ConstantSurface3dElementCoordinateSystem StepFEA -Curve3dElementProperty StepFEA -Curve3dElementRepresentation StepFEA -CurveElementEndCoordinateSystem StepFEA -CurveElementEndOffset StepFEA -CurveElementEndRelease StepFEA -CurveElementInterval StepFEA -CurveElementIntervalConstant StepFEA -CurveElementIntervalLinearlyVarying StepFEA -CurveElementLocation StepFEA -DegreeOfFreedom StepFEA -DegreeOfFreedomMember StepFEA -DummyNode StepFEA -ElementGeometricRelationship StepFEA -ElementGroup StepFEA -ElementOrElementGroup StepFEA -ElementRepresentation StepFEA -FeaAreaDensity StepFEA -FeaAxis2Placement3d StepFEA -FeaCurveSectionGeometricRelationship StepFEA -FeaGroup StepFEA -FeaLinearElasticity StepFEA -FeaMassDensity StepFEA -FeaMaterialPropertyRepresentation StepFEA -FeaMaterialPropertyRepresentationItem StepFEA -FeaModel StepFEA -FeaModel3d StepFEA -FeaModelDefinition StepFEA -FeaMoistureAbsorption StepFEA -FeaParametricPoint StepFEA -FeaRepresentationItem StepFEA -FeaSecantCoefficientOfLinearThermalExpansion StepFEA -FeaShellBendingStiffness StepFEA -FeaShellMembraneBendingCouplingStiffness StepFEA -FeaShellMembraneStiffness StepFEA -FeaShellShearStiffness StepFEA -FeaSurfaceSectionGeometricRelationship StepFEA -FeaTangentialCoefficientOfLinearThermalExpansion StepFEA -FreedomAndCoefficient StepFEA -FreedomsList StepFEA -GeometricNode StepFEA -Node StepFEA -NodeDefinition StepFEA -NodeGroup StepFEA -NodeRepresentation StepFEA -NodeSet StepFEA -NodeWithSolutionCoordinateSystem StepFEA -NodeWithVector StepFEA -ParametricCurve3dElementCoordinateDirection StepFEA -ParametricCurve3dElementCoordinateSystem StepFEA -ParametricSurface3dElementCoordinateSystem StepFEA -Surface3dElementRepresentation StepFEA -SymmetricTensor22d StepFEA -SymmetricTensor23d StepFEA -SymmetricTensor23dMember StepFEA -SymmetricTensor42d StepFEA -SymmetricTensor43d StepFEA -SymmetricTensor43dMember StepFEA -Volume3dElementRepresentation StepFEA - -#=============================================== -# package StepGeom -#=============================================== -Axis1Placement StepGeom -Axis2Placement StepGeom -Axis2Placement2d StepGeom -Axis2Placement3d StepGeom -BezierCurve StepGeom -BezierCurveAndRationalBSplineCurve StepGeom -BezierSurface StepGeom -BezierSurfaceAndRationalBSplineSurface StepGeom -BoundaryCurve StepGeom -BoundedCurve StepGeom -BoundedSurface StepGeom -BSplineCurve StepGeom -BSplineCurveWithKnots StepGeom -BSplineCurveWithKnotsAndRationalBSplineCurve StepGeom -BSplineSurface StepGeom -BSplineSurfaceWithKnots StepGeom -BSplineSurfaceWithKnotsAndRationalBSplineSurface StepGeom -CartesianPoint StepGeom -CartesianTransformationOperator StepGeom -CartesianTransformationOperator2d StepGeom -CartesianTransformationOperator3d StepGeom -Circle StepGeom -CompositeCurve StepGeom -CompositeCurveOnSurface StepGeom -CompositeCurveSegment StepGeom -Conic StepGeom -ConicalSurface StepGeom -Curve StepGeom -CurveBoundedSurface StepGeom -CurveOnSurface StepGeom -CurveReplica StepGeom -CylindricalSurface StepGeom -DegeneratePcurve StepGeom -DegenerateToroidalSurface StepGeom -Direction StepGeom -ElementarySurface StepGeom -Ellipse StepGeom -EvaluatedDegeneratePcurve StepGeom -GeometricRepresentationContext StepGeom -GeometricRepresentationContextAndGlobalUnitAssignedContext StepGeom -GeometricRepresentationContextAndParametricRepresentationContext StepGeom -GeometricRepresentationItem StepGeom -GeomRepContextAndGlobUnitAssCtxAndGlobUncertaintyAssCtx StepGeom -Hyperbola StepGeom -IntersectionCurve StepGeom -Line StepGeom -OffsetCurve3d StepGeom -OffsetSurface StepGeom -OrientedSurface StepGeom -OuterBoundaryCurve StepGeom -Parabola StepGeom -Pcurve StepGeom -PcurveOrSurface StepGeom -Placement StepGeom -Plane StepGeom -Point StepGeom -PointOnCurve StepGeom -PointOnSurface StepGeom -PointReplica StepGeom -Polyline StepGeom -QuasiUniformCurve StepGeom -QuasiUniformCurveAndRationalBSplineCurve StepGeom -QuasiUniformSurface StepGeom -QuasiUniformSurfaceAndRationalBSplineSurface StepGeom -RationalBSplineCurve StepGeom -RationalBSplineSurface StepGeom -RectangularCompositeSurface StepGeom -RectangularTrimmedSurface StepGeom -ReparametrisedCompositeCurveSegment StepGeom -SeamCurve StepGeom -SphericalSurface StepGeom -Surface StepGeom -SurfaceBoundary StepGeom -SurfaceCurveAndBoundedCurve StepGeom -SurfaceOfLinearExtrusion StepGeom -SurfaceOfRevolution StepGeom -SurfacePatch StepGeom -SurfaceReplica StepGeom -SweptSurface StepGeom -ToroidalSurface StepGeom -TrimmedCurve StepGeom -TrimmingMember StepGeom -TrimmingSelect StepGeom -UniformCurve StepGeom -UniformCurveAndRationalBSplineCurve StepGeom -UniformSurface StepGeom -UniformSurfaceAndRationalBSplineSurface StepGeom -Vector StepGeom -VectorOrDirection StepGeom - -#=============================================== -# package StepRepr -#=============================================== -AllAroundShapeAspect StepRepr -Apex StepRepr -AssemblyComponentUsage StepRepr -AssemblyComponentUsageSubstitute StepRepr -BetweenShapeAspect StepRepr -CentreOfSymmetry StepRepr -CharacterizedDefinition StepRepr -CharacterizedRepresentation StepRepr -CompGroupShAspAndCompShAspAndDatumFeatAndShAsp StepRepr -CompositeGroupShapeAspect StepRepr -CompositeShapeAspect StepRepr -CompoundRepresentationItem StepRepr -CompShAspAndDatumFeatAndShAsp StepRepr -ConfigurationDesign StepRepr -ConfigurationDesignItem StepRepr -ConfigurationEffectivity StepRepr -ConfigurationItem StepRepr -ConstructiveGeometryRepresentation StepRepr -ConstructiveGeometryRepresentationRelationship StepRepr -ContinuosShapeAspect StepRepr -DataEnvironment StepRepr -DefinitionalRepresentation StepRepr -DerivedShapeAspect StepRepr -DescriptiveRepresentationItem StepRepr -Extension StepRepr -ExternallyDefinedRepresentation StepRepr -FeatureForDatumTargetRelationship StepRepr -FunctionallyDefinedTransformation StepRepr -GeometricAlignment StepRepr -GlobalUncertaintyAssignedContext StepRepr -GlobalUnitAssignedContext StepRepr -IntegerRepresentationItem StepRepr -ItemDefinedTransformation StepRepr -MakeFromUsageOption StepRepr -MappedItem StepRepr -MaterialDesignation StepRepr -MaterialProperty StepRepr -MaterialPropertyRepresentation StepRepr -MeasureRepresentationItem StepRepr -NextAssemblyUsageOccurrence StepRepr -ParallelOffset StepRepr -ParametricRepresentationContext StepRepr -PerpendicularTo StepRepr -ProductConcept StepRepr -ProductDefinitionShape StepRepr -ProductDefinitionUsage StepRepr -PromissoryUsageOccurrence StepRepr -PropertyDefinition StepRepr -PropertyDefinitionRelationship StepRepr -PropertyDefinitionRepresentation StepRepr -QuantifiedAssemblyComponentUsage StepRepr -Representation StepRepr -RepresentationContext StepRepr -RepresentationItem StepRepr -RepresentationMap StepRepr -RepresentationRelationship StepRepr -RepresentationRelationshipWithTransformation StepRepr -RepresentedDefinition StepRepr -ReprItemAndLengthMeasureWithUnit StepRepr -ReprItemAndLengthMeasureWithUnitAndQRI StepRepr -ReprItemAndMeasureWithUnit StepRepr -ReprItemAndMeasureWithUnitAndQRI StepRepr -ReprItemAndPlaneAngleMeasureWithUnit StepRepr -ReprItemAndPlaneAngleMeasureWithUnitAndQRI StepRepr -ShapeAspect StepRepr -ShapeAspectDerivingRelationship StepRepr -ShapeAspectRelationship StepRepr -ShapeAspectTransition StepRepr -ShapeDefinition StepRepr -ShapeRepresentationRelationship StepRepr -ShapeRepresentationRelationshipWithTransformation StepRepr -SpecifiedHigherUsageOccurrence StepRepr -StructuralResponseProperty StepRepr -StructuralResponsePropertyDefinitionRepresentation StepRepr -SuppliedPartRelationship StepRepr -Tangent StepRepr -Transformation StepRepr -ValueRange StepRepr -ValueRepresentationItem StepRepr - -#=============================================== -# package StepShape -#=============================================== -AdvancedBrepShapeRepresentation StepShape -AdvancedFace StepShape -AngularLocation StepShape -AngularSize StepShape -Block StepShape -BooleanOperand StepShape -BooleanResult StepShape -BoxDomain StepShape -BoxedHalfSpace StepShape -BrepWithVoids StepShape -ClosedShell StepShape -CompoundShapeRepresentation StepShape -ConnectedEdgeSet StepShape -ConnectedFaceSet StepShape -ConnectedFaceShapeRepresentation StepShape -ConnectedFaceSubSet StepShape -ContextDependentShapeRepresentation StepShape -CsgPrimitive StepShape -CsgSelect StepShape -CsgShapeRepresentation StepShape -CsgSolid StepShape -DefinitionalRepresentationAndShapeRepresentation StepShape -DimensionalCharacteristic StepShape -DimensionalCharacteristicRepresentation StepShape -DimensionalLocation StepShape -DimensionalLocationWithPath StepShape -DimensionalSize StepShape -DimensionalSizeWithPath StepShape -DirectedDimensionalLocation StepShape -Edge StepShape -EdgeBasedWireframeModel StepShape -EdgeBasedWireframeShapeRepresentation StepShape -EdgeCurve StepShape -EdgeLoop StepShape -ExtrudedAreaSolid StepShape -ExtrudedFaceSolid StepShape -Face StepShape -FaceBasedSurfaceModel StepShape -FaceBound StepShape -FaceOuterBound StepShape -FaceSurface StepShape -FacetedBrep StepShape -FacetedBrepAndBrepWithVoids StepShape -FacetedBrepShapeRepresentation StepShape -GeometricallyBoundedSurfaceShapeRepresentation StepShape -GeometricallyBoundedWireframeShapeRepresentation StepShape -GeometricCurveSet StepShape -GeometricSet StepShape -GeometricSetSelect StepShape -HalfSpaceSolid StepShape -LimitsAndFits StepShape -Loop StepShape -LoopAndPath StepShape -ManifoldSolidBrep StepShape -ManifoldSurfaceShapeRepresentation StepShape -MeasureQualification StepShape -MeasureRepresentationItemAndQualifiedRepresentationItem StepShape -NonManifoldSurfaceShapeRepresentation StepShape -OpenShell StepShape -OrientedClosedShell StepShape -OrientedEdge StepShape -OrientedFace StepShape -OrientedOpenShell StepShape -OrientedPath StepShape -Path StepShape -PlusMinusTolerance StepShape -PointRepresentation StepShape -PolyLoop StepShape -PrecisionQualifier StepShape -QualifiedRepresentationItem StepShape -ReversibleTopologyItem StepShape -RevolvedAreaSolid StepShape -RevolvedFaceSolid StepShape -RightAngularWedge StepShape -RightCircularCone StepShape -RightCircularCylinder StepShape -SeamEdge StepShape -ShapeDefinitionRepresentation StepShape -ShapeDimensionRepresentation StepShape -ShapeDimensionRepresentationItem StepShape -ShapeRepresentation StepShape -ShapeRepresentationWithParameters StepShape -Shell StepShape -ShellBasedSurfaceModel StepShape -SolidModel StepShape -SolidReplica StepShape -Sphere StepShape -Subedge StepShape -Subface StepShape -SurfaceModel StepShape -SweptAreaSolid StepShape -SweptFaceSolid StepShape -ToleranceMethodDefinition StepShape -ToleranceValue StepShape -TopologicalRepresentationItem StepShape -Torus StepShape -TransitionalShapeRepresentation StepShape -TypeQualifier StepShape -ValueFormatTypeQualifier StepShape -ValueQualifier StepShape -Vertex StepShape -VertexLoop StepShape -VertexPoint StepShape - -#=============================================== -# package StepVisual -#=============================================== -AnnotationCurveOccurrence StepVisual -AnnotationCurveOccurrenceAndAnnotationOccurrenceAndGeomReprItemAndReprItemAndStyledItem StepVisual -AnnotationFillArea StepVisual -AnnotationFillAreaOccurrence StepVisual -AnnotationOccurrence StepVisual -AnnotationPlane StepVisual -AnnotationPlaneElement StepVisual -AnnotationText StepVisual -AnnotationTextOccurrence StepVisual -AreaInSet StepVisual -AreaOrView StepVisual -BackgroundColour StepVisual -BoxCharacteristicSelect StepVisual -CameraImage StepVisual -CameraImage2dWithScale StepVisual -CameraImage3dWithScale StepVisual -CameraModel StepVisual -CameraModelD2 StepVisual -CameraModelD3 StepVisual -CameraModelD3MultiClipping StepVisual -CameraModelD3MultiClippingInterectionSelect StepVisual -CameraModelD3MultiClippingIntersection StepVisual -CameraModelD3MultiClippingUnion StepVisual -CameraModelD3MultiClippingUnionSelect StepVisual -CameraUsage StepVisual -CharacterizedObjectAndCharacterizedRepresentationAndDraughtingModelAndRepresentation StepVisual -Colour StepVisual -ColourRgb StepVisual -ColourSpecification StepVisual -CompositeText StepVisual -CompositeTextWithExtent StepVisual -ContextDependentInvisibility StepVisual -ContextDependentOverRidingStyledItem StepVisual -CurveStyle StepVisual -CurveStyleFont StepVisual -CurveStyleFontPattern StepVisual -CurveStyleFontSelect StepVisual -DirectionCountSelect StepVisual -DraughtingAnnotationOccurrence StepVisual -DraughtingCallout StepVisual -DraughtingCalloutElement StepVisual -DraughtingModel StepVisual -DraughtingPreDefinedColour StepVisual -DraughtingPreDefinedCurveFont StepVisual -ExternallyDefinedCurveFont StepVisual -ExternallyDefinedTextFont StepVisual -FillAreaStyle StepVisual -FillAreaStyleColour StepVisual -FillStyleSelect StepVisual -FontSelect StepVisual -Invisibility StepVisual -InvisibilityContext StepVisual -InvisibleItem StepVisual -LayeredItem StepVisual -MarkerMember StepVisual -MarkerSelect StepVisual -MechanicalDesignGeometricPresentationArea StepVisual -MechanicalDesignGeometricPresentationRepresentation StepVisual -NullStyleMember StepVisual -OverRidingStyledItem StepVisual -PlanarBox StepVisual -PlanarExtent StepVisual -PointStyle StepVisual -PreDefinedColour StepVisual -PreDefinedCurveFont StepVisual -PreDefinedItem StepVisual -PreDefinedTextFont StepVisual -PresentationArea StepVisual -PresentationLayerAssignment StepVisual -PresentationLayerUsage StepVisual -PresentationRepresentation StepVisual -PresentationRepresentationSelect StepVisual -PresentationSet StepVisual -PresentationSize StepVisual -PresentationSizeAssignmentSelect StepVisual -PresentationStyleAssignment StepVisual -PresentationStyleByContext StepVisual -PresentationStyleSelect StepVisual -PresentationView StepVisual -PresentedItem StepVisual -PresentedItemRepresentation StepVisual -StyleContextSelect StepVisual -StyledItem StepVisual -StyledItemTarget StepVisual -SurfaceSideStyle StepVisual -SurfaceStyleBoundary StepVisual -SurfaceStyleControlGrid StepVisual -SurfaceStyleElementSelect StepVisual -SurfaceStyleFillArea StepVisual -SurfaceStyleParameterLine StepVisual -SurfaceStyleSegmentationCurve StepVisual -SurfaceStyleSilhouette StepVisual -SurfaceStyleUsage StepVisual -Template StepVisual -TemplateInstance StepVisual -TextLiteral StepVisual -TextOrCharacter StepVisual -TextStyle StepVisual -TextStyleForDefinedFont StepVisual -TextStyleWithBoxCharacteristics StepVisual -ViewVolume StepVisual -TessellatedAnnotationOccurrence StepVisual -TessellatedItem StepVisual -TessellatedGeometricSet StepVisual -TessellatedCurveSet StepVisual -CoordinatesList StepVisual -SurfaceStyleTransparent StepVisual -SurfaceStyleReflectanceAmbient StepVisual -SurfaceStyleRendering StepVisual -SurfaceStyleRenderingWithProperties StepVisual diff --git a/src/ExpToCasExe/readme.txt b/src/ExpToCasExe/readme.txt index 10ed624048..6a39a4ee6d 100644 --- a/src/ExpToCasExe/readme.txt +++ b/src/ExpToCasExe/readme.txt @@ -1,15 +1,116 @@ This is an auxiliary tool to generate code for implementation of new STEP entities into OCCT. +This tool contains from two packages: ExpToCasExe and Express(+TKExpress) + +Package Express contains classes for all needed items from STEP schema. + +Package ExpToCasExe is a base package for generation; +This packages includes following files: + exptocas.lex + exptocas.yacc + exptocas.tab.cxx + exptocas.tab.hxx + ExpToCasExe.cxx + EXTERNLIB + FILES + FlexLexer.h + lex.exptocas.cxx + occt_existed_step_entities.lst + +Files exptocas.lex, exptocas.yacc and ExpToCasExe.cxx are a base files for generator. +Files exptocas.tab.cxx, exptocas.tab.hxx, lex.exptocas.cxx and FlexLexer.h are a result +of generation from files exptocas.lex and exptocas.yac. +Result of building will be executable file ExpToCasExe.exe. + +WARNING: It is not recommended to modify files exptocas.tab.cxx, exptocas.tab.hxx, lex.exptocas.cxx +and FlexLexer.h manually. + +!!!NOTE: It is strongly prohibited to commit manually changed files exptocas.tab.cxx, exptocas.tab.hxx, +lex.exptocas.cxx and FlexLexer.h. + +File occt_existed_step_entities.lst contains list of STEP entities implemented in OCC at this moment. + + Example how to run ExpToCas tool: -ExpToCasExe.exe schemaAP000.exp to_add.lst occt_step_entities.lst N + + ExpToCasExe.exe schema.exp new_entities.lst occt_existed_step_entities.lst N where -* schemaAP000.exp - STEP schema, some lines in can be not parsed, just delete them. -ap242.exp - cleaned schema for AP242 edition 2. -* to_add.lst - list of necessary entities, each line should be like this "ShapeAspect StepRepr". -* occt_step_entities.lst - list of already implemented entities, please update the file after each generation. -* N - a first index for entity registration (files StepAP214_Protocol.cxx, RWStepAP214_GeneralModule.cxx,RWStepAP214_ReadWriteModule.cxx) + * schema.exp - STEP schema + * new_entities.lst - list of entities which we have to generate, + each line should be like this "ClassName PackageName" + (see example in the file occt_existed_step_entities.lst). + * occt_existed_step_entities.lst - list of already implemented STEP entities + * N - a first index for entity registration + (value of it you can recieve after analyse of files StepAP214_Protocol.cxx, + RWStepAP214_GeneralModule.cxx, RWStepAP214_ReadWriteModule.cxx) + +!!!NOTE: It is strongly recommended to update file occt_existed_step_entities.lst + after each generation and not to forget to change date of updation in the + first line of this file. The result of generation consists of several folders: -* two folders for each package for which new entities was generated. -* a folder Registration with *.txt files with code to copy into common files (see description of last parameter). \ No newline at end of file + * two folders ("PackageName" and "RWPackageName") for each package for which new entities was generated. + * a folder "Registration" with *.txt files with code to copy into common files (see description of last parameter). + + +For generation it is easy to copy to separate directory following files: + - ExpToCasExe.exe, TKernel.dll, TKExpress.dll, tbb.dll and tbbmalloc.dll from OCC + - STEP schema (schema.exp) + - occt_existed_step_entities.lst from package occt/src/ExpToCasExe + - file with needed entities new_entities.lst +and from this directoty execute command: + ExpToCasExe.exe schema.exp new_entities.lst occt_existed_step_entities.lst N + +NOTE: +Some of STEP schemes may be not fully corresponded to rules which set in our generator. +If during generation we recieve a message about syntaxis error you can try to edit schema +file in order to avoid it. Such approach is reasonable if number of errors is small. +If there are many errors we have to change existed rules (for debug parser process you can +uncomment string "//aScanner.set_debug(1);" in the file exptocas.yacc). + +NOTE: +Please, take into account that most of existed entities was generated many years ago. +Some of them can be not corresonded to last versions of schemes. +For example we haven`t classes for entity: + ENTITY founded_item + SUPERTYPE OF ((ONEOF(b_spline_curve_knot_locator, b_spline_curve_segment, b_spline_surface_knot_locator, + b_spline_surface_patch, b_spline_surface_strip, + boundary_curve_of_b_spline_or_rectangular_composite_surface, box_domain, + character_glyph_style_outline, character_glyph_style_stroke, composite_curve_segment, + composite_curve_transition_locator, curve_style, curve_style_font, curve_style_font_and_scaling, + curve_style_font_pattern, externally_defined_style, fill_area_style, + interpolated_configuration_segment, kinematic_path_segment, plane_angle_and_length_pair, + plane_angle_and_ratio_pair, point_style, presentation_style_assignment, + rectangular_composite_surface_transition_locator, surface_patch, surface_side_style, + surface_style_boundary, surface_style_control_grid, surface_style_fill_area, + surface_style_parameter_line, surface_style_segmentation_curve, surface_style_silhouette, + surface_style_usage, symbol_style, text_style, view_volume)) ANDOR + (ONEOF(character_glyph_style_outline, character_glyph_style_stroke, curve_style, curve_style_font, + curve_style_font_and_scaling, curve_style_font_pattern, externally_defined_style, + fill_area_style, point_style, presentation_style_assignment, surface_side_style, + surface_style_boundary, surface_style_control_grid, surface_style_fill_area, + surface_style_parameter_line, surface_style_segmentation_curve, surface_style_silhouette, + surface_style_usage, symbol_style, text_style))); + DERIVE + users : SET [0 : ?] OF founded_item_select := using_items(SELF, []); + WHERE + WR1: SIZEOF(users) > 0; + WR2: NOT (SELF IN users); + END_ENTITY; +But some of existed entities (for example - composite_curve_segment) must be inherited from +this missing entity (at present such existed entities are inherited from Standard_Transient): + 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 : ('AUTOMOTIVE_DESIGN.BOUNDED_CURVE' IN TYPEOF(parent_curve)); + END_ENTITY; -- 10303-42: geometry_schema + + + + diff --git a/src/TKExpress/EXTERNLIB b/src/TKExpress/EXTERNLIB index 799bf4ad2c..58c24f0d95 100644 --- a/src/TKExpress/EXTERNLIB +++ b/src/TKExpress/EXTERNLIB @@ -1,2 +1 @@ TKernel -CSF_TBB \ No newline at end of file