37400 lines
1.5 MiB
37400 lines
1.5 MiB
(*
|
|
$Id: mim_lf.exp,v 1.16 2011/10/14 20:59:21 thomasrthurman Exp $
|
|
ISO TC184/SC4/WG3 N2813 - ISO/TS 10303-442 AP242 managed model based 3d engineering - EXPRESS MIM Long form
|
|
*)
|
|
|
|
(* ======================================================================================= *)
|
|
(* Long form schema generated by The EXPRESS Data Manager compiler version 9.8.1B.20090502*)
|
|
(* with patches applied after *)
|
|
(* modified Friday October 7, 2011 *)
|
|
(* modified Friday October 14, 2011 *)
|
|
(* The schema is converted from ISO10303 P11-2003 to ISO10303 P11-1994 *)
|
|
(* ======================================================================================= *)
|
|
|
|
SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF;
|
|
|
|
|
|
CONSTANT
|
|
|
|
the_real_tuples : extended_tuple_space := make_extended_tuple_space(
|
|
the_zero_tuple_space, the_reals);
|
|
|
|
deprecated_constructed_data_types : SET OF STRING :=
|
|
['approved_item',
|
|
'certified_item',
|
|
'change_request_item',
|
|
'contracted_item',
|
|
'cc_classified_item',
|
|
'date_time_item',
|
|
'cc_person_organization_item',
|
|
'cc_specified_item',
|
|
'start_request_item',
|
|
'work_item'];
|
|
|
|
deprecated_entity_data_types : SET OF STRING :=
|
|
['cc_design_approval',
|
|
'cc_design_certification',
|
|
'cc_design_contract',
|
|
'cc_design_date_and_time_assignment',
|
|
'cc_design_person_and_organization_assignment',
|
|
'cc_design_security_classification',
|
|
'cc_design_specification_reference',
|
|
'change',
|
|
'change_request',
|
|
'design_context',
|
|
'design_make_from_relationship',
|
|
'mechanical_context',
|
|
'start_request',
|
|
'start_work',
|
|
'supplied_part_relationship'];
|
|
|
|
pre_defined_picture_representation_types : SET [0:?] OF STRING := [ 'JPEG', 'PNG', 'TIFF', 'BMP', 'GIF'];
|
|
schema_prefix : STRING := 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.';
|
|
|
|
the_empty_maths_tuple : maths_tuple := [];
|
|
|
|
the_empty_space : finite_space := make_finite_space([]);
|
|
|
|
the_zero_tuple_space : listed_product_space := make_listed_product_space([]);
|
|
|
|
the_reals : elementary_space := make_elementary_space(es_reals);
|
|
|
|
the_tuples : extended_tuple_space := make_extended_tuple_space(
|
|
the_zero_tuple_space, the_generics);
|
|
|
|
the_generics : elementary_space := make_elementary_space(es_generics);
|
|
|
|
the_logicals : elementary_space := make_elementary_space(es_logicals);
|
|
|
|
the_integers : elementary_space := make_elementary_space(es_integers);
|
|
|
|
the_integer_tuples : extended_tuple_space := make_extended_tuple_space(
|
|
the_zero_tuple_space, the_integers);
|
|
|
|
deprecated_interfaced_data_types : SET OF STRING :=
|
|
['document_with_class',
|
|
'ordinal_date',
|
|
'product_definition_formation_with_specified_source',
|
|
'week_of_year_and_day_date'];
|
|
|
|
the_nonnegative_reals : real_interval_from_min :=
|
|
make_real_interval_from_min(0.0, closed);
|
|
|
|
the_neg1_one_interval : finite_real_interval := make_finite_real_interval(
|
|
-1.0, closed, 1.0, closed);
|
|
|
|
the_complex_numbers : elementary_space := make_elementary_space(es_complex_numbers);
|
|
|
|
the_complex_tuples : extended_tuple_space := make_extended_tuple_space(
|
|
the_zero_tuple_space, the_complex_numbers);
|
|
|
|
the_strings : elementary_space := make_elementary_space(es_strings);
|
|
|
|
the_numbers : elementary_space := make_elementary_space(es_numbers);
|
|
|
|
the_binarys : elementary_space := make_elementary_space(es_binarys);
|
|
|
|
the_maths_spaces : elementary_space := make_elementary_space(es_maths_spaces);
|
|
|
|
the_booleans : elementary_space := make_elementary_space(es_booleans);
|
|
|
|
the_zero_pi_interval : finite_real_interval := make_finite_real_interval(
|
|
0.0, closed, PI, closed);
|
|
|
|
the_neghalfpi_halfpi_interval : finite_real_interval := make_finite_real_interval(
|
|
-0.5*PI, closed, 0.5*PI, closed);
|
|
|
|
the_negpi_pi_interval : finite_real_interval := make_finite_real_interval(
|
|
-PI, open, PI, closed);
|
|
|
|
dummy_gri : geometric_representation_item := representation_item('')||
|
|
geometric_representation_item();
|
|
|
|
dummy_tri : topological_representation_item := representation_item('')||
|
|
topological_representation_item();
|
|
|
|
END_CONSTANT;
|
|
|
|
TYPE unit = SELECT (derived_unit, named_unit);
|
|
END_TYPE;
|
|
|
|
(* Pruned unused type: draughting_model_item_definition_242 *)
|
|
|
|
|
|
(* Pruned unused type: ap242_change_management_object *)
|
|
|
|
|
|
(* Pruned unused type: ap242_change_relationship_select *)
|
|
|
|
|
|
(* Pruned unused type: action_request_item_242 *)
|
|
|
|
|
|
(* Pruned unused type: aliasable_item_242 *)
|
|
|
|
|
|
(* Pruned unused type: approval_item_242 *)
|
|
|
|
|
|
TYPE approved_item = SELECT
|
|
(certification,
|
|
change,
|
|
change_request,
|
|
configuration_effectivity,
|
|
configuration_item,
|
|
contract,
|
|
product,
|
|
security_classification,
|
|
start_request,
|
|
start_work);
|
|
END_TYPE;
|
|
|
|
(* Pruned unused type: attribute_language_item_242 *)
|
|
|
|
|
|
(* Pruned unused type: certification_item_242 *)
|
|
|
|
|
|
TYPE certified_item = SELECT
|
|
(supplied_part_relationship);
|
|
END_TYPE;
|
|
|
|
TYPE change_request_item = SELECT
|
|
(product_definition_formation);
|
|
END_TYPE;
|
|
|
|
TYPE cc_classified_item = SELECT
|
|
(assembly_component_usage,
|
|
product_definition_formation);
|
|
END_TYPE;
|
|
|
|
(* Pruned unused type: contract_item_242 *)
|
|
|
|
|
|
TYPE contracted_item = SELECT
|
|
(product_definition_formation);
|
|
END_TYPE;
|
|
|
|
(* Pruned unused type: date_and_time_item_242 *)
|
|
|
|
|
|
(* Pruned unused type: date_item_242 *)
|
|
|
|
|
|
TYPE date_time_item = SELECT
|
|
(approval_person_organization,
|
|
certification,
|
|
change,
|
|
change_request,
|
|
contract,
|
|
product_definition,
|
|
security_classification,
|
|
start_request,
|
|
start_work);
|
|
END_TYPE;
|
|
|
|
(* Pruned unused type: document_reference_item_242 *)
|
|
|
|
|
|
(* Pruned unused type: effectivity_item_242 *)
|
|
|
|
|
|
(* Pruned unused type: event_occurrence_item_242 *)
|
|
|
|
|
|
(* Pruned unused type: external_identification_item_242 *)
|
|
|
|
|
|
(* Pruned unused type: groupable_item_242 *)
|
|
|
|
|
|
(* Pruned unused type: identification_item_242 *)
|
|
|
|
|
|
(* Pruned unused type: multi_language_attribute_item_242 *)
|
|
|
|
|
|
(* Pruned unused type: organization_item_242 *)
|
|
|
|
|
|
(* Pruned unused type: organizational_project_item_242 *)
|
|
|
|
|
|
(* Pruned unused type: person_and_organization_item_242 *)
|
|
|
|
|
|
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;
|
|
|
|
(* Pruned unused type: presented_item_select_242 *)
|
|
|
|
|
|
(* Pruned unused type: security_classification_item_242 *)
|
|
|
|
|
|
TYPE cc_specified_item = SELECT
|
|
(product_definition,
|
|
shape_aspect);
|
|
END_TYPE;
|
|
|
|
TYPE start_request_item = SELECT
|
|
(product_definition_formation);
|
|
END_TYPE;
|
|
|
|
(* Pruned unused type: time_interval_item_242 *)
|
|
|
|
|
|
(* Pruned unused type: action_items_242 *)
|
|
|
|
|
|
(* Pruned unused type: classification_item_242 *)
|
|
|
|
|
|
(* Pruned unused type: configured_effectivity_item_242 *)
|
|
|
|
|
|
TYPE work_item = SELECT
|
|
(product_definition_formation);
|
|
END_TYPE;
|
|
|
|
TYPE boolean_operand_2d = SELECT (
|
|
primitive_2d,
|
|
boolean_result_2d,
|
|
half_space_2d);
|
|
END_TYPE;
|
|
|
|
TYPE compound_inner_area_boundary = SELECT (set_inner_area_boundary);
|
|
END_TYPE;
|
|
|
|
TYPE csg_2d_area_select = SELECT (axis2_placement_2d, csg_primitive_solid_2d);
|
|
END_TYPE;
|
|
|
|
TYPE csg_2d_shape_select = SELECT (mapped_item, axis2_placement_2d, csg_solid_2d);
|
|
END_TYPE;
|
|
|
|
TYPE csg_select_2d = SELECT (primitive_2d, boolean_result_2d);
|
|
END_TYPE;
|
|
|
|
TYPE set_inner_area_boundary = SET [1:?] OF primitive_2d;
|
|
END_TYPE;
|
|
|
|
(* Pruned unused type: design_pdm_action_item *)
|
|
|
|
|
|
(* Pruned unused type: design_pdm_action_method_items *)
|
|
|
|
|
|
(* Pruned unused type: design_pdm_action_request_item *)
|
|
|
|
|
|
(* Pruned unused type: design_pdm_approval_item *)
|
|
|
|
|
|
(* Pruned unused type: design_pdm_attribute_classification_item *)
|
|
|
|
|
|
(* Pruned unused type: design_pdm_attribute_language_item *)
|
|
|
|
|
|
(* Pruned unused type: design_pdm_certification_item *)
|
|
|
|
|
|
(* Pruned unused type: design_pdm_classification_item *)
|
|
|
|
|
|
(* Pruned unused type: design_pdm_configured_effectivity_item *)
|
|
|
|
|
|
(* Pruned unused type: design_pdm_contract_item *)
|
|
|
|
|
|
(* Pruned unused type: design_pdm_date_and_time_item *)
|
|
|
|
|
|
(* Pruned unused type: design_pdm_date_item *)
|
|
|
|
|
|
(* Pruned unused type: design_pdm_document_reference_item *)
|
|
|
|
|
|
(* Pruned unused type: design_pdm_effectivity_item *)
|
|
|
|
|
|
(* Pruned unused type: design_pdm_event_occurrence_item *)
|
|
|
|
|
|
(* Pruned unused type: design_pdm_groupable_item *)
|
|
|
|
|
|
(* Pruned unused type: design_pdm_identification_item *)
|
|
|
|
|
|
(* Pruned unused type: design_pdm_ir_usage_item *)
|
|
|
|
|
|
(* Pruned unused type: design_pdm_multi_language_attribute_item *)
|
|
|
|
|
|
(* Pruned unused type: design_pdm_name_item *)
|
|
|
|
|
|
(* Pruned unused type: design_pdm_organization_item *)
|
|
|
|
|
|
(* Pruned unused type: design_pdm_project_item *)
|
|
|
|
|
|
(* Pruned unused type: design_pdm_person_and_organization_item *)
|
|
|
|
|
|
(* Pruned unused type: design_pdm_requirement_assigned_item *)
|
|
|
|
|
|
(* Pruned unused type: design_pdm_requirement_source_item *)
|
|
|
|
|
|
(* Pruned unused type: design_pdm_security_classification_item *)
|
|
|
|
|
|
(* Pruned unused type: promissory_usage_in_product_model_assigned_item *)
|
|
|
|
|
|
(* Pruned unused type: design_pdm_time_interval_item *)
|
|
|
|
|
|
(* Pruned unused type: datc_draughting_model_item_definition *)
|
|
|
|
|
|
(* Pruned unused type: dimensioning_standard_document_reference_item *)
|
|
|
|
|
|
(* Pruned unused type: dimension_identification_item *)
|
|
|
|
|
|
(* Pruned unused type: dimension_tolerance_document_reference_item *)
|
|
|
|
|
|
(* Pruned unused type: eri_external_identification *)
|
|
|
|
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 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 picture_representation_item_select = SELECT (
|
|
styled_item,
|
|
planar_box,
|
|
axis2_placement_2d);
|
|
END_TYPE;
|
|
|
|
(* Pruned unused type: pr_external_identification_item *)
|
|
|
|
|
|
TYPE angle_direction_reference_select = SELECT (
|
|
direction,
|
|
curve,
|
|
point_path);
|
|
END_TYPE;
|
|
|
|
TYPE angle_direction_reference_with_a2p3d_select = SELECT (
|
|
angle_direction_reference_select,
|
|
axis2_placement_3d);
|
|
END_TYPE;
|
|
|
|
TYPE orientation_basis_select = SELECT (
|
|
axis2_placement_3d,
|
|
min_and_major_ply_orientation_basis);
|
|
END_TYPE;
|
|
|
|
TYPE point_and_vector_member = SELECT (point, direction);
|
|
END_TYPE;
|
|
|
|
TYPE point_and_vector_members = LIST [2:3] OF point_and_vector_member;
|
|
END_TYPE;
|
|
|
|
TYPE point_path_members = LIST [1:?] OF point_and_vector;
|
|
END_TYPE;
|
|
|
|
(* Pruned unused type: cm_approval_item *)
|
|
|
|
|
|
TYPE previous_element_assignment_select = SELECT (modify_element, delete_element);
|
|
END_TYPE;
|
|
|
|
TYPE current_element_assignment_select = SELECT (modify_element, add_element);
|
|
END_TYPE;
|
|
|
|
TYPE change_relationship_select = SELECT (
|
|
action_relationship,
|
|
product_definition_formation_relationship,
|
|
product_definition_relationship,
|
|
shape_aspect_relationship);
|
|
END_TYPE;
|
|
|
|
|
|
TYPE change_management_object = SELECT (
|
|
action,
|
|
action_items,
|
|
action_relationship,
|
|
class,
|
|
event_occurrence,
|
|
project_item);
|
|
END_TYPE;
|
|
|
|
|
|
TYPE location_in_aggregate_item = LIST [1:?] OF integer_representation_item;
|
|
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_organization_assignment,
|
|
applied_organizational_project_assignment,
|
|
applied_person_and_organization_assignment,
|
|
applied_security_classification_assignment,
|
|
applied_time_interval_assignment,
|
|
applied_usage_right,
|
|
dimensional_size,
|
|
general_property,
|
|
geometric_tolerance,
|
|
product_definition_relationship,
|
|
property_definition,
|
|
property_definition_relationship,
|
|
shape_aspect,
|
|
shape_aspect_relationship);
|
|
END_TYPE;
|
|
|
|
|
|
(* Pruned unused type: effectivity_item_for_replacement *)
|
|
|
|
|
|
TYPE effectivity_item = SELECT (
|
|
action,
|
|
action_method,
|
|
action_method_relationship,
|
|
action_property,
|
|
action_relationship,
|
|
assembly_component_usage_substitute,
|
|
class,
|
|
class_system,
|
|
configuration_design,
|
|
configuration_item,
|
|
configured_effectivity_assignment,
|
|
document_file,
|
|
draughting_model,
|
|
drawing_revision,
|
|
general_property,
|
|
material_designation,
|
|
mechanical_design_geometric_presentation_representation,
|
|
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,
|
|
shape_aspect,
|
|
shape_representation);
|
|
END_TYPE;
|
|
|
|
|
|
TYPE role_select = SELECT (
|
|
action_assignment,
|
|
action_request_assignment,
|
|
approval_assignment,
|
|
approval_date_time,
|
|
certification_assignment,
|
|
contract_assignment,
|
|
document_reference,
|
|
effectivity_assignment,
|
|
group_assignment,
|
|
name_assignment,
|
|
security_classification_assignment);
|
|
END_TYPE;
|
|
|
|
|
|
TYPE product_definition_or_assembly_relationship = SELECT (assembly_component_usage, product_definition);
|
|
END_TYPE;
|
|
|
|
(* Pruned unused type: at_requirement_assigned_item *)
|
|
|
|
|
|
(* Pruned unused type: at_external_identification_item *)
|
|
|
|
|
|
(* Pruned unused type: cf_groupable_item *)
|
|
|
|
|
|
TYPE requirement_assigned_item = SELECT (
|
|
assembly_joint,
|
|
configuration_item,
|
|
descriptive_representation_item,
|
|
product,
|
|
product_class,
|
|
product_definition,
|
|
product_definition_formation,
|
|
product_definition_relationship,
|
|
representation,
|
|
shape_aspect);
|
|
END_TYPE;
|
|
|
|
|
|
TYPE requirement_satisfaction_item = SELECT (
|
|
requirement_assigned_item);
|
|
END_TYPE;
|
|
|
|
|
|
TYPE requirement_source_item = SELECT (
|
|
characterized_object,
|
|
group,
|
|
group_relationship,
|
|
product,
|
|
product_definition,
|
|
product_definition_formation,
|
|
product_definition_relationship,
|
|
shape_aspect);
|
|
END_TYPE;
|
|
|
|
|
|
(* Pruned unused type: pie_external_identification_item *)
|
|
|
|
|
|
(* Pruned unused type: bc_external_identification_item *)
|
|
|
|
|
|
TYPE external_identification_item = SELECT (
|
|
action_relationship,
|
|
action_request_status,
|
|
applied_organization_assignment,
|
|
applied_person_and_organization_assignment,
|
|
approval,
|
|
approval_status,
|
|
assembly_bond_definition,
|
|
date_and_time_assignment,
|
|
date_assignment,
|
|
document_file,
|
|
external_source,
|
|
externally_defined_class,
|
|
externally_defined_context_dependent_unit,
|
|
externally_defined_conversion_based_unit,
|
|
externally_defined_general_property,
|
|
externally_defined_picture_representation_item,
|
|
externally_defined_product_definition,
|
|
externally_defined_representation_item,
|
|
organizational_address,
|
|
product_definition,
|
|
security_classification,
|
|
trimmed_curve,
|
|
versioned_action_request);
|
|
END_TYPE;
|
|
|
|
|
|
(* Pruned unused type: representation_identification_item *)
|
|
|
|
|
|
TYPE description_attribute_select = SELECT (
|
|
action_request_solution,
|
|
application_context,
|
|
approval_role,
|
|
configuration_design,
|
|
date_role,
|
|
date_time_role,
|
|
context_dependent_shape_representation,
|
|
effectivity,
|
|
external_source,
|
|
organization_role,
|
|
person_and_organization_role,
|
|
person_and_organization,
|
|
property_definition_representation,
|
|
representation);
|
|
END_TYPE;
|
|
|
|
|
|
TYPE id_attribute_select = SELECT (action, address, product_category, property_definition, shape_aspect, shape_aspect_relationship, application_context, group, organizational_project, representation);
|
|
END_TYPE;
|
|
|
|
TYPE detailed_report_type = ENUMERATION OF
|
|
(MEASURED_ELEMENT,
|
|
INFERIOR_QUALITY_ELEMENT);
|
|
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 preferred_ordering = ENUMERATION OF
|
|
(EXTREMITY_ORDER,
|
|
DETECTED_ORDER);
|
|
END_TYPE;
|
|
|
|
(* Pruned unused type: pdq_date_and_time_item *)
|
|
|
|
|
|
(* Pruned unused type: pdq_person_and_organization_item *)
|
|
|
|
|
|
(* Pruned unused type: pdq_date_item *)
|
|
|
|
|
|
(* Pruned unused type: pqd_organization_item *)
|
|
|
|
|
|
TYPE date_item = SELECT (
|
|
action,
|
|
action_directive,
|
|
action_method,
|
|
action_property,
|
|
action_relationship,
|
|
action_request_solution,
|
|
alternate_product_relationship,
|
|
applied_action_assignment,
|
|
applied_classification_assignment,
|
|
applied_organization_assignment,
|
|
applied_person_and_organization_assignment,
|
|
applied_security_classification_assignment,
|
|
approval_person_organization,
|
|
approval_status,
|
|
assembly_component_usage_substitute,
|
|
certification,
|
|
class,
|
|
class_system,
|
|
configuration_design,
|
|
configuration_item,
|
|
configured_effectivity_assignment,
|
|
contract,
|
|
data_quality_definition,
|
|
directed_action,
|
|
document,
|
|
document_file,
|
|
draughting_model,
|
|
drawing_revision,
|
|
effectivity,
|
|
event_occurrence,
|
|
executed_action,
|
|
general_property,
|
|
information_usage_right,
|
|
material_designation,
|
|
mechanical_design_geometric_presentation_representation,
|
|
organization_relationship,
|
|
organizational_project,
|
|
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,
|
|
versioned_action_request);
|
|
END_TYPE;
|
|
|
|
|
|
TYPE date_and_time_item = SELECT (
|
|
action,
|
|
action_directive,
|
|
action_method,
|
|
action_property,
|
|
action_relationship,
|
|
action_request_solution,
|
|
alternate_product_relationship,
|
|
applied_action_assignment,
|
|
applied_classification_assignment,
|
|
applied_organization_assignment,
|
|
applied_person_and_organization_assignment,
|
|
applied_security_classification_assignment,
|
|
approval_person_organization,
|
|
approval_status,
|
|
assembly_component_usage_substitute,
|
|
certification,
|
|
class,
|
|
class_system,
|
|
configuration_design,
|
|
configuration_item,
|
|
configured_effectivity_assignment,
|
|
contract,
|
|
data_quality_definition,
|
|
directed_action,
|
|
document,
|
|
document_file,
|
|
draughting_model,
|
|
drawing_revision,
|
|
effectivity,
|
|
event_occurrence,
|
|
executed_action,
|
|
general_property,
|
|
information_usage_right,
|
|
material_designation,
|
|
mechanical_design_geometric_presentation_representation,
|
|
organization_relationship,
|
|
organizational_project,
|
|
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,
|
|
rule_action,
|
|
security_classification,
|
|
security_classification_level,
|
|
shape_representation,
|
|
versioned_action_request);
|
|
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_classification_assignment,
|
|
applied_identification_assignment,
|
|
applied_organization_assignment,
|
|
applied_person_and_organization_assignment,
|
|
applied_security_classification_assignment,
|
|
approval,
|
|
approval_status,
|
|
assembly_component_usage_substitute,
|
|
certification,
|
|
class,
|
|
class_system,
|
|
configuration_design,
|
|
configuration_effectivity,
|
|
configuration_item,
|
|
configured_effectivity_assignment,
|
|
contract,
|
|
data_quality_definition,
|
|
document_file,
|
|
document_type,
|
|
draughting_model,
|
|
drawing_revision,
|
|
effectivity,
|
|
event_occurrence,
|
|
executed_action,
|
|
general_property,
|
|
information_usage_right,
|
|
material_designation,
|
|
mechanical_design_geometric_presentation_representation,
|
|
organization,
|
|
organization_relationship,
|
|
organizational_project,
|
|
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,
|
|
rule_action,
|
|
security_classification,
|
|
security_classification_level,
|
|
shape_representation,
|
|
versioned_action_request);
|
|
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_classification_assignment,
|
|
applied_identification_assignment,
|
|
applied_organization_assignment,
|
|
applied_person_and_organization_assignment,
|
|
applied_security_classification_assignment,
|
|
approval,
|
|
approval_status,
|
|
assembly_component_usage_substitute,
|
|
certification,
|
|
class,
|
|
class_system,
|
|
configuration_design,
|
|
configuration_effectivity,
|
|
configuration_item,
|
|
configured_effectivity_assignment,
|
|
contract,
|
|
data_quality_definition,
|
|
document_file,
|
|
document_type,
|
|
draughting_model,
|
|
drawing_revision,
|
|
event_occurrence,
|
|
executed_action,
|
|
general_property,
|
|
information_usage_right,
|
|
material_designation,
|
|
mechanical_design_geometric_presentation_representation,
|
|
organization,
|
|
organization_relationship,
|
|
organizational_project,
|
|
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,
|
|
rule_action,
|
|
security_classification,
|
|
security_classification_level,
|
|
shape_representation,
|
|
versioned_action_request);
|
|
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 used_quality_representation_select = SELECT
|
|
(data_quality_criteria_representation,
|
|
data_quality_inspection_result_representation);
|
|
END_TYPE;
|
|
|
|
TYPE statistical_value_type = ENUMERATION OF
|
|
(NUMBER_OF_INSPECTED_INSTANCES,
|
|
NUMBER_OF_QUALITY_DEFECTS_DETECTED);
|
|
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_range,
|
|
shape_data_quality_value_limit);
|
|
END_TYPE;
|
|
|
|
TYPE compound_item_definition = SELECT
|
|
(list_representation_item,
|
|
set_representation_item);
|
|
END_TYPE;
|
|
|
|
TYPE list_representation_item = LIST [1:?] OF representation_item;
|
|
END_TYPE;
|
|
|
|
TYPE set_representation_item = SET [1:?] OF representation_item;
|
|
END_TYPE;
|
|
|
|
TYPE measured_value_select = SELECT
|
|
(boolean_value,
|
|
measure_value,
|
|
plane_angle_and_ratio_pair,
|
|
plane_angle_and_length_pair);
|
|
END_TYPE;
|
|
|
|
TYPE boolean_value = BOOLEAN;
|
|
END_TYPE;
|
|
|
|
TYPE location_of_extreme_value_select = SELECT
|
|
(inspected_shape_element_select,
|
|
b_spline_surface_knot_locator,
|
|
b_spline_curve_knot_locator,
|
|
b_spline_curve_segment,
|
|
b_spline_surface_strip,
|
|
b_spline_surface_patch,
|
|
composite_curve_transition_locator,
|
|
rectangular_composite_surface_transition_locator,
|
|
boundary_curve_of_b_spline_or_rectangular_composite_surface,
|
|
oriented_edge,
|
|
face_bound,
|
|
point_on_edge_curve,
|
|
point_on_face_surface,
|
|
subedge,
|
|
subface);
|
|
END_TYPE;
|
|
|
|
TYPE inspected_shape_element_select = SELECT
|
|
(edge_loop,
|
|
edge_curve,
|
|
face_surface,
|
|
curve,
|
|
surface,
|
|
vertex_point,
|
|
closed_or_open_shell_select,
|
|
b_spline_or_composite_curve_select,
|
|
b_spline_or_rectangular_composite_surface_select,
|
|
point,
|
|
connected_face_set,
|
|
manifold_solid_brep,
|
|
direction,
|
|
placement);
|
|
END_TYPE;
|
|
|
|
TYPE closed_or_open_shell_select = SELECT
|
|
(closed_shell,
|
|
open_shell);
|
|
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 u_or_v_parameter = ENUMERATION OF
|
|
(U_PARAMETER,
|
|
V_PARAMETER);
|
|
END_TYPE;
|
|
|
|
TYPE surface_boundary_type = ENUMERATION OF
|
|
(U_PARAMETER_MIN,
|
|
V_PARAMETER_MIN,
|
|
U_PARAMETER_MAX,
|
|
V_PARAMETER_MAX);
|
|
END_TYPE;
|
|
|
|
TYPE geometric_item_specific_usage_select = SELECT
|
|
(shape_aspect,
|
|
shape_aspect_relationship);
|
|
END_TYPE;
|
|
|
|
TYPE shape_model = SELECT (
|
|
constructive_geometry_representation,
|
|
shape_representation);
|
|
END_TYPE;
|
|
|
|
|
|
TYPE constraint_group_member = SELECT
|
|
(explicit_constraint,
|
|
simultaneous_constraint_group);
|
|
END_TYPE;
|
|
|
|
TYPE geometric_constraint_element = SELECT
|
|
(point,
|
|
curve,
|
|
surface,
|
|
vector,
|
|
direction);
|
|
END_TYPE;
|
|
|
|
TYPE point_curve_or_surface_constraint_element = SELECT
|
|
(point,
|
|
curve,
|
|
surface);
|
|
END_TYPE;
|
|
|
|
TYPE curve_or_surface_constraint_element = SELECT
|
|
(curve,
|
|
surface);
|
|
END_TYPE;
|
|
|
|
TYPE linear_geometry_constraint_element = SELECT
|
|
(line,
|
|
plane,
|
|
direction,
|
|
vector);
|
|
END_TYPE;
|
|
|
|
TYPE radial_geometry_constraint_element = SELECT
|
|
(circle,
|
|
cylindrical_surface,
|
|
conical_surface,
|
|
spherical_surface,
|
|
right_circular_cylinder,
|
|
right_circular_cone,
|
|
sphere);
|
|
END_TYPE;
|
|
|
|
TYPE axial_geometry_constraint_element = SELECT
|
|
(point,
|
|
line,
|
|
circle,
|
|
plane,
|
|
cylindrical_surface,
|
|
conical_surface,
|
|
spherical_surface,
|
|
toroidal_surface,
|
|
surface_of_revolution,
|
|
sphere,
|
|
right_circular_cone,
|
|
right_circular_cylinder,
|
|
torus,
|
|
revolved_face_solid,
|
|
revolved_area_solid);
|
|
END_TYPE;
|
|
|
|
TYPE swept_surface_or_solid = SELECT
|
|
(swept_surface,
|
|
swept_face_solid,
|
|
swept_area_solid);
|
|
END_TYPE;
|
|
|
|
TYPE tangent_contact_type = ENUMERATION OF
|
|
(point_contact,
|
|
curve_contact,
|
|
surface_contact);
|
|
END_TYPE;
|
|
|
|
TYPE parallel_offset_type = ENUMERATION OF
|
|
(curve_2d_offset,
|
|
curve_3d_offset,
|
|
surface_offset);
|
|
END_TYPE;
|
|
|
|
TYPE identification_item = SELECT (
|
|
action,
|
|
action_directive,
|
|
action_method,
|
|
action_property,
|
|
applied_identification_assignment,
|
|
approval_status,
|
|
characterized_class,
|
|
class,
|
|
class_system,
|
|
configuration_item,
|
|
contract,
|
|
dimensional_size,
|
|
document_file,
|
|
document_type,
|
|
draughting_model,
|
|
effectivity,
|
|
general_property,
|
|
group,
|
|
group_relationship,
|
|
information_right,
|
|
information_usage_right,
|
|
material_designation,
|
|
measure_representation_item,
|
|
mechanical_design_geometric_presentation_representation,
|
|
organization,
|
|
organizational_project,
|
|
person_and_organization,
|
|
presentation_area,
|
|
product,
|
|
product_category,
|
|
product_class,
|
|
product_concept,
|
|
product_concept_feature,
|
|
product_concept_feature_category,
|
|
product_definition,
|
|
product_definition_formation,
|
|
product_definition_relationship,
|
|
product_identification,
|
|
property_definition,
|
|
property_definition_relationship,
|
|
representation,
|
|
rule_set,
|
|
security_classification,
|
|
security_classification_level,
|
|
shape_aspect_relationship,
|
|
shape_representation,
|
|
usage_association,
|
|
versioned_action_request);
|
|
END_TYPE;
|
|
|
|
|
|
TYPE document_identifier_assigned_item = SELECT
|
|
(document);
|
|
END_TYPE;
|
|
|
|
(* Pruned unused type: sd_document_reference_item *)
|
|
|
|
|
|
(* Pruned unused type: machining_feature_definition *)
|
|
|
|
|
|
TYPE kinematic_analysis_definition = SELECT
|
|
(interpolated_configuration_sequence,
|
|
prescribed_path);
|
|
END_TYPE;
|
|
|
|
TYPE kinematic_result = SELECT
|
|
(interpolated_configuration_sequence,
|
|
resulting_path);
|
|
END_TYPE;
|
|
|
|
(* Pruned unused type: id_for_product_identification *)
|
|
|
|
|
|
TYPE characterized_product_definition = SELECT (product_definition, product_definition_relationship);
|
|
END_TYPE;
|
|
|
|
TYPE class_usage_effectivity_context_item = SELECT
|
|
(product_definition);
|
|
END_TYPE;
|
|
|
|
(* Pruned unused type: effectivity_specification_for_replacement *)
|
|
|
|
|
|
TYPE instance_usage_context_select = SELECT (
|
|
product_definition_relationship,
|
|
product_definition_usage);
|
|
END_TYPE;
|
|
|
|
|
|
(* Pruned unused type: product_as_individual_identification_item *)
|
|
|
|
|
|
TYPE action_items = SELECT (
|
|
action,
|
|
action_directive,
|
|
action_method,
|
|
action_property,
|
|
action_relationship,
|
|
action_request_solution,
|
|
alternate_product_relationship,
|
|
applied_action_assignment,
|
|
applied_classification_assignment,
|
|
applied_person_and_organization_assignment,
|
|
approval_status,
|
|
assembly_component_usage_substitute,
|
|
certification,
|
|
certification_item,
|
|
characterized_object,
|
|
class,
|
|
class_system,
|
|
classification_item,
|
|
configuration_design,
|
|
configuration_effectivity,
|
|
configuration_item,
|
|
configured_effectivity_assignment,
|
|
contract,
|
|
document_file,
|
|
document_reference_item,
|
|
draughting_model,
|
|
drawing_revision,
|
|
executed_action,
|
|
general_property,
|
|
identification_item,
|
|
material_designation,
|
|
mechanical_design_geometric_presentation_representation,
|
|
organization,
|
|
organization_relationship,
|
|
organizational_project,
|
|
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_assigned_item,
|
|
requirement_for_action_resource,
|
|
resource_property,
|
|
security_classification,
|
|
security_classification_level,
|
|
shape_aspect,
|
|
shape_representation,
|
|
versioned_action_request);
|
|
END_TYPE;
|
|
|
|
|
|
(* Pruned unused type: file_identification_item *)
|
|
|
|
|
|
(* Pruned unused type: file_location_select *)
|
|
|
|
|
|
(* Pruned unused type: classification_item_extended *)
|
|
|
|
|
|
(* Pruned unused type: classification_identification_item *)
|
|
|
|
|
|
(* Pruned unused type: classification_classification_item *)
|
|
|
|
|
|
TYPE classified_item = SELECT (
|
|
product,
|
|
product_definition,
|
|
product_definition_formation);
|
|
END_TYPE;
|
|
|
|
|
|
(* Pruned unused type: cwa_identification_item *)
|
|
|
|
|
|
TYPE classification_item = SELECT (
|
|
action,
|
|
action_directive,
|
|
action_method,
|
|
action_property,
|
|
action_relationship,
|
|
action_request_solution,
|
|
action_request_status,
|
|
address,
|
|
alternate_product_relationship,
|
|
applied_action_assignment,
|
|
applied_action_request_assignment,
|
|
applied_approval_assignment,
|
|
applied_certification_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_identification_assignment,
|
|
applied_organization_assignment,
|
|
applied_organizational_project_assignment,
|
|
applied_person_and_organization_assignment,
|
|
applied_security_classification_assignment,
|
|
approval,
|
|
approval_person_organization,
|
|
approval_relationship,
|
|
approval_status,
|
|
assembly_component_usage_substitute,
|
|
calendar_date,
|
|
certification,
|
|
characterized_class,
|
|
characterized_object,
|
|
class,
|
|
classified_item,
|
|
configuration_item,
|
|
context_dependent_unit,
|
|
contract,
|
|
conversion_based_unit,
|
|
date_and_time,
|
|
date_and_time_assignment,
|
|
date_assignment,
|
|
derived_unit,
|
|
descriptive_representation_item,
|
|
directed_action,
|
|
document_file,
|
|
document_relationship,
|
|
document_type,
|
|
effectivity,
|
|
event_occurrence,
|
|
executed_action,
|
|
feature_definition,
|
|
general_feature,
|
|
general_property,
|
|
general_property_relationship,
|
|
group,
|
|
identification_assignment,
|
|
information_right,
|
|
information_usage_right,
|
|
language,
|
|
material_designation,
|
|
measure_representation_item,
|
|
measure_with_unit,
|
|
multi_language_attribute_assignment,
|
|
named_unit,
|
|
organization,
|
|
organization_relationship,
|
|
organizational_address,
|
|
organizational_project,
|
|
organizational_project_relationship,
|
|
person,
|
|
person_and_organization_address,
|
|
plus_minus_tolerance,
|
|
process_operation,
|
|
product,
|
|
product_concept,
|
|
product_concept_feature,
|
|
product_concept_feature_category,
|
|
product_definition,
|
|
product_definition_context,
|
|
product_definition_formation,
|
|
product_definition_formation_relationship,
|
|
product_definition_relationship,
|
|
property_definition,
|
|
property_definition_representation,
|
|
representation,
|
|
representation_context,
|
|
representation_item,
|
|
resource_property,
|
|
security_classification,
|
|
security_classification_level,
|
|
shape_aspect,
|
|
uncertainty_measure_with_unit,
|
|
usage_association,
|
|
versioned_action_request);
|
|
END_TYPE;
|
|
|
|
|
|
(* Pruned unused type: plib_class_identification_item *)
|
|
|
|
|
|
(* Pruned unused type: plib_class_organization_item *)
|
|
|
|
|
|
(* Pruned unused type: ir_approval_item *)
|
|
|
|
|
|
(* Pruned unused type: ir_contract_item *)
|
|
|
|
|
|
(* Pruned unused type: ir_date_and_time_item *)
|
|
|
|
|
|
(* Pruned unused type: ir_date_item *)
|
|
|
|
|
|
(* Pruned unused type: ir_identification_item *)
|
|
|
|
|
|
(* Pruned unused type: ir_organization_item *)
|
|
|
|
|
|
(* Pruned unused type: ir_person_and_organization_item *)
|
|
|
|
|
|
TYPE ir_usage_item = action_items;
|
|
WHERE
|
|
wr1 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ACTION' IN TYPEOF(SELF));
|
|
wr2 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ACTION_METHOD' IN TYPEOF(SELF));
|
|
wr3 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ACTION_PROPERTY' IN TYPEOF(SELF));
|
|
wr4 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ACTION_RELATIONSHIP' IN TYPEOF(SELF));
|
|
wr5 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ACTION_REQUEST_SOLUTION' IN TYPEOF(SELF));
|
|
wr6 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ALTERNATE_PRODUCT_RELATIONSHIP' IN TYPEOF(SELF));
|
|
wr7 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.APPLIED_ACTION_ASSIGNMENT' IN TYPEOF(SELF));
|
|
wr8 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.APPLIED_CLASSIFICATION_ASSIGNMENT' IN TYPEOF(SELF));
|
|
wr9 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.APPLIED_PERSON_AND_ORGANIZATION_ASSIGNMENT' IN TYPEOF(SELF));
|
|
wr10 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.APPROVAL_STATUS' IN TYPEOF(SELF));
|
|
wr11 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ASSEMBLY_COMPONENT_USAGE_SUBSTITUTE' IN TYPEOF(SELF));
|
|
wr12 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CERTIFICATION' IN TYPEOF(SELF));
|
|
wr13 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLASS' IN TYPEOF(SELF));
|
|
wr14 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLASS_SYSTEM' IN TYPEOF(SELF));
|
|
wr15 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONFIGURATION_DESIGN' IN TYPEOF(SELF));
|
|
wr16 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONFIGURATION_EFFECTIVITY' IN TYPEOF(SELF));
|
|
wr17 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONFIGURATION_ITEM' IN TYPEOF(SELF));
|
|
wr18 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONFIGURED_EFFECTIVITY_ASSIGNMENT' IN TYPEOF(SELF));
|
|
wr19 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONTRACT' IN TYPEOF(SELF));
|
|
wr20 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DOCUMENT_FILE' IN TYPEOF(SELF));
|
|
wr21 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_MODEL' IN TYPEOF(SELF));
|
|
wr22 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAWING_REVISION' IN TYPEOF(SELF));
|
|
wr23 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXECUTED_ACTION' IN TYPEOF(SELF));
|
|
wr24 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GENERAL_PROPERTY' IN TYPEOF(SELF));
|
|
wr25 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MATERIAL_DESIGNATION' IN TYPEOF(SELF));
|
|
wr26 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION' IN TYPEOF(SELF));
|
|
wr27 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORGANIZATION_RELATIONSHIP' IN TYPEOF(SELF));
|
|
wr28 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORGANIZATIONAL_PROJECT' IN TYPEOF(SELF));
|
|
wr29 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_AREA' IN TYPEOF(SELF));
|
|
wr30 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT' IN TYPEOF(SELF));
|
|
wr31 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_CONCEPT' IN TYPEOF(SELF));
|
|
wr32 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_CONCEPT_FEATURE' IN TYPEOF(SELF));
|
|
wr33 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_CONCEPT_FEATURE_ASSOCIATION' IN TYPEOF(SELF));
|
|
wr34 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_CONCEPT_FEATURE_CATEGORY' IN TYPEOF(SELF));
|
|
wr35 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_CONCEPT_FEATURE_CATEGORY_USAGE' IN TYPEOF(SELF));
|
|
wr36 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF(SELF));
|
|
wr37 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_FORMATION_RELATIONSHIP' IN TYPEOF(SELF));
|
|
wr38 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_RELATIONSHIP' IN TYPEOF(SELF));
|
|
wr39 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SUBSTITUTE' IN TYPEOF(SELF));
|
|
wr40 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION' IN TYPEOF(SELF));
|
|
wr41 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REQUIREMENT_FOR_ACTION_RESOURCE' IN TYPEOF(SELF));
|
|
wr42 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RESOURCE_PROPERTY' IN TYPEOF(SELF));
|
|
wr43 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SECURITY_CLASSIFICATION' IN TYPEOF(SELF));
|
|
wr44 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SECURITY_CLASSIFICATION_LEVEL' IN TYPEOF(SELF));
|
|
wr45 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT' IN TYPEOF(SELF));
|
|
wr46 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION' IN TYPEOF(SELF));
|
|
wr47 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERSIONED_ACTION_REQUEST' IN TYPEOF(SELF));
|
|
END_TYPE;
|
|
|
|
|
|
(* Pruned unused type: pdpdms_person_and_organization_item *)
|
|
|
|
|
|
(* Pruned unused type: pdpdms_external_identification_item *)
|
|
|
|
|
|
(* Pruned unused type: pdm_action_items *)
|
|
|
|
|
|
(* Pruned unused type: pdm_action_request_item *)
|
|
|
|
|
|
(* Pruned unused type: pdm_approval_item *)
|
|
|
|
|
|
(* Pruned unused type: pdm_attribute_language_item *)
|
|
|
|
|
|
(* Pruned unused type: pdm_certification_item *)
|
|
|
|
|
|
(* Pruned unused type: pdm_classification_item *)
|
|
|
|
|
|
(* Pruned unused type: pdm_date_and_time_item *)
|
|
|
|
|
|
(* Pruned unused type: pdm_date_item *)
|
|
|
|
|
|
(* Pruned unused type: pdm_document_reference_item *)
|
|
|
|
|
|
(* Pruned unused type: pdm_effectivity_item *)
|
|
|
|
|
|
(* Pruned unused type: pdm_event_occurrence_item *)
|
|
|
|
|
|
(* Pruned unused type: pdm_external_class_name_item *)
|
|
|
|
|
|
(* Pruned unused type: pdm_identification_item *)
|
|
|
|
|
|
(* Pruned unused type: pdm_multi_language_attribute_item *)
|
|
|
|
|
|
(* Pruned unused type: pdm_organization_item *)
|
|
|
|
|
|
(* Pruned unused type: pdm_person_and_organization_item *)
|
|
|
|
|
|
(* Pruned unused type: pdm_project_item *)
|
|
|
|
|
|
(* Pruned unused type: pdm_security_classification_item *)
|
|
|
|
|
|
(* Pruned unused type: pdm_time_interval_item *)
|
|
|
|
|
|
TYPE action_method_items = SELECT (
|
|
product,
|
|
product_definition_formation);
|
|
END_TYPE;
|
|
|
|
|
|
TYPE attribute_classification_item = SELECT (
|
|
action_directive,
|
|
action_method,
|
|
action_property,
|
|
action_property_representation,
|
|
action_relationship,
|
|
action_request_solution,
|
|
action_request_status,
|
|
alternate_product_relationship,
|
|
applied_action_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_organization_assignment,
|
|
applied_organizational_project_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,
|
|
event_occurrence_relationship,
|
|
executed_action,
|
|
general_property,
|
|
general_property_relationship,
|
|
group,
|
|
group_relationship,
|
|
information_right,
|
|
information_usage_right,
|
|
language,
|
|
measure_representation_item,
|
|
measure_with_unit,
|
|
named_unit,
|
|
organization_relationship,
|
|
organizational_address,
|
|
organizational_project_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,
|
|
time_interval_relationship,
|
|
uncertainty_measure_with_unit,
|
|
usage_association,
|
|
versioned_action_request);
|
|
END_TYPE;
|
|
|
|
|
|
TYPE draughting_model_item_association_select = SELECT (
|
|
annotation_occurrence,
|
|
draughting_callout);
|
|
END_TYPE;
|
|
|
|
TYPE draughting_model_item_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_organization_assignment,
|
|
applied_organizational_project_assignment,
|
|
applied_person_and_organization_assignment,
|
|
applied_security_classification_assignment,
|
|
applied_time_interval_assignment,
|
|
applied_usage_right,
|
|
dimensional_size,
|
|
geometric_tolerance,
|
|
product_definition_relationship,
|
|
product_definition_shape,
|
|
property_definition,
|
|
shape_aspect,
|
|
shape_aspect_relationship);
|
|
END_TYPE;
|
|
|
|
|
|
(* Pruned unused type: aade_annotation_representation_select *)
|
|
|
|
|
|
(* Pruned unused type: aade_invisibility_context *)
|
|
|
|
|
|
TYPE draughting_model_item_select = SELECT
|
|
(mapped_item,
|
|
styled_item,
|
|
axis2_placement,
|
|
camera_model,
|
|
draughting_callout);
|
|
END_TYPE;
|
|
|
|
TYPE shape_definition = SELECT (product_definition_shape, shape_aspect, shape_aspect_relationship);
|
|
END_TYPE;
|
|
|
|
(* Pruned unused type: cg_shape_model *)
|
|
|
|
|
|
TYPE constructive_geometry_representation_or_shape_represenation = SELECT
|
|
(constructive_geometry_representation,
|
|
shape_representation);
|
|
END_TYPE;
|
|
|
|
TYPE document_reference_item = SELECT (
|
|
action_directive,
|
|
action_method,
|
|
action_relationship,
|
|
applied_action_assignment,
|
|
applied_external_identification_assignment,
|
|
approval,
|
|
assembly_component_usage,
|
|
certification,
|
|
characterized_class,
|
|
characterized_object,
|
|
class,
|
|
class_system,
|
|
configuration_design,
|
|
configuration_item,
|
|
contract,
|
|
descriptive_representation_item,
|
|
dimensional_size,
|
|
executed_action,
|
|
externally_defined_dimension_definition,
|
|
externally_defined_item,
|
|
feature_definition,
|
|
general_property,
|
|
group,
|
|
group_relationship,
|
|
information_right,
|
|
information_usage_right,
|
|
material_designation,
|
|
measure_representation_item,
|
|
organization,
|
|
organizational_project,
|
|
person,
|
|
presentation_area,
|
|
process_plan,
|
|
product,
|
|
product_category,
|
|
product_concept,
|
|
product_concept_feature,
|
|
product_concept_feature_category,
|
|
product_definition,
|
|
product_definition_formation,
|
|
product_definition_formation_relationship,
|
|
product_definition_process,
|
|
product_definition_relationship,
|
|
product_definition_substitute,
|
|
product_related_product_category,
|
|
property_definition,
|
|
representation,
|
|
representation_item,
|
|
resource_requirement_type,
|
|
retention,
|
|
rule_set,
|
|
security_classification,
|
|
shape_aspect,
|
|
shape_aspect_relationship,
|
|
usage_association,
|
|
versioned_action_request);
|
|
END_TYPE;
|
|
|
|
|
|
TYPE value_qualifier = SELECT
|
|
(precision_qualifier,
|
|
type_qualifier,
|
|
uncertainty_qualifier);
|
|
END_TYPE;
|
|
|
|
TYPE angle_relator = ENUMERATION OF
|
|
(equal,
|
|
large,
|
|
small);
|
|
END_TYPE;
|
|
|
|
TYPE dimensional_characteristic = SELECT
|
|
(dimensional_location,
|
|
dimensional_size);
|
|
END_TYPE;
|
|
|
|
(* Pruned unused type: sds_item_identified_representation_usage_definition *)
|
|
|
|
|
|
TYPE shape_dimension_representation_item = SELECT
|
|
(compound_representation_item,
|
|
descriptive_representation_item,
|
|
measure_representation_item);
|
|
END_TYPE;
|
|
|
|
TYPE tolerance_method_definition = SELECT
|
|
(limits_and_fits,
|
|
tolerance_value);
|
|
END_TYPE;
|
|
|
|
TYPE draughting_subfigure_representation_item = SELECT (
|
|
annotation_occurrence,
|
|
draughting_callout,
|
|
axis2_placement);
|
|
END_TYPE;
|
|
|
|
TYPE draughting_symbol_representation_item = SELECT (
|
|
annotation_curve_occurrence,
|
|
annotation_symbol_occurrence,
|
|
annotation_fill_area_occurrence,
|
|
annotation_text_occurrence,
|
|
axis2_placement);
|
|
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 draughting_titled_item = SELECT
|
|
(drawing_revision,
|
|
drawing_sheet_revision);
|
|
END_TYPE;
|
|
|
|
TYPE absorbed_dose_measure = REAL;
|
|
END_TYPE;
|
|
|
|
TYPE acceleration_measure = REAL;
|
|
END_TYPE;
|
|
|
|
TYPE radioactivity_measure = REAL;
|
|
END_TYPE;
|
|
|
|
TYPE amount_of_substance_measure = REAL;
|
|
END_TYPE;
|
|
|
|
TYPE area_measure = REAL;
|
|
END_TYPE;
|
|
|
|
TYPE celsius_temperature_measure = REAL;
|
|
END_TYPE;
|
|
|
|
TYPE context_dependent_measure = REAL;
|
|
END_TYPE;
|
|
|
|
TYPE count_measure = NUMBER;
|
|
END_TYPE;
|
|
|
|
TYPE descriptive_measure = STRING;
|
|
END_TYPE;
|
|
|
|
TYPE capacitance_measure = REAL;
|
|
END_TYPE;
|
|
|
|
TYPE dose_equivalent_measure = REAL;
|
|
END_TYPE;
|
|
|
|
TYPE electric_charge_measure = REAL;
|
|
END_TYPE;
|
|
|
|
TYPE electric_current_measure = REAL;
|
|
END_TYPE;
|
|
|
|
TYPE conductance_measure = REAL;
|
|
END_TYPE;
|
|
|
|
TYPE electric_potential_measure = REAL;
|
|
END_TYPE;
|
|
|
|
TYPE energy_measure = REAL;
|
|
END_TYPE;
|
|
|
|
TYPE force_measure = REAL;
|
|
END_TYPE;
|
|
|
|
TYPE frequency_measure = REAL;
|
|
END_TYPE;
|
|
|
|
TYPE magnetic_flux_density_measure = REAL;
|
|
END_TYPE;
|
|
|
|
TYPE illuminance_measure = REAL;
|
|
END_TYPE;
|
|
|
|
TYPE inductance_measure = REAL;
|
|
END_TYPE;
|
|
|
|
TYPE length_measure = REAL;
|
|
END_TYPE;
|
|
|
|
TYPE luminous_intensity_measure = REAL;
|
|
END_TYPE;
|
|
|
|
TYPE luminous_flux_measure = REAL;
|
|
END_TYPE;
|
|
|
|
TYPE mass_measure = REAL;
|
|
END_TYPE;
|
|
|
|
TYPE measure_value = SELECT
|
|
(absorbed_dose_measure,
|
|
dose_equivalent_measure,
|
|
radioactivity_measure,
|
|
acceleration_measure,
|
|
amount_of_substance_measure,
|
|
area_measure,
|
|
celsius_temperature_measure,
|
|
context_dependent_measure,
|
|
count_measure,
|
|
descriptive_measure,
|
|
capacitance_measure,
|
|
electric_charge_measure,
|
|
conductance_measure,
|
|
electric_current_measure,
|
|
electric_potential_measure,
|
|
energy_measure,
|
|
magnetic_flux_density_measure,
|
|
force_measure,
|
|
frequency_measure,
|
|
illuminance_measure,
|
|
inductance_measure,
|
|
length_measure,
|
|
luminous_flux_measure,
|
|
luminous_intensity_measure,
|
|
magnetic_flux_measure,
|
|
mass_measure,
|
|
numeric_measure,
|
|
non_negative_length_measure,
|
|
parameter_value,
|
|
plane_angle_measure,
|
|
positive_length_measure,
|
|
positive_plane_angle_measure,
|
|
positive_ratio_measure,
|
|
power_measure,
|
|
pressure_measure,
|
|
ratio_measure,
|
|
resistance_measure,
|
|
solid_angle_measure,
|
|
thermodynamic_temperature_measure,
|
|
time_measure,
|
|
velocity_measure,
|
|
volume_measure);
|
|
END_TYPE;
|
|
|
|
TYPE magnetic_flux_measure = REAL;
|
|
END_TYPE;
|
|
|
|
TYPE non_negative_length_measure = length_measure;
|
|
WHERE
|
|
WR1: SELF >= 0.0;
|
|
END_TYPE;
|
|
|
|
TYPE numeric_measure = NUMBER;
|
|
END_TYPE;
|
|
|
|
TYPE parameter_value = REAL;
|
|
END_TYPE;
|
|
|
|
TYPE plane_angle_measure = REAL;
|
|
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 pressure_measure = REAL;
|
|
END_TYPE;
|
|
|
|
TYPE ratio_measure = REAL;
|
|
END_TYPE;
|
|
|
|
TYPE resistance_measure = REAL;
|
|
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 solid_angle_measure = REAL;
|
|
END_TYPE;
|
|
|
|
TYPE thermodynamic_temperature_measure = REAL;
|
|
END_TYPE;
|
|
|
|
TYPE time_measure = REAL;
|
|
END_TYPE;
|
|
|
|
(* Pruned unused type: item_identified_representation_usage_definition_242 *)
|
|
|
|
|
|
TYPE velocity_measure = REAL;
|
|
END_TYPE;
|
|
|
|
TYPE volume_measure = REAL;
|
|
END_TYPE;
|
|
|
|
(* Pruned unused type: eu_external_identification_item *)
|
|
|
|
|
|
(* Pruned unused type: el_external_identification_item *)
|
|
|
|
|
|
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 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 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 trim_condition_select = SELECT
|
|
(length_measure,
|
|
plane_angle_measure,
|
|
generalized_surface_select,
|
|
solid_model);
|
|
END_TYPE;
|
|
|
|
TYPE trim_intent = ENUMERATION OF
|
|
(blind,
|
|
offset,
|
|
through_all,
|
|
unspecified,
|
|
up_to_next);
|
|
END_TYPE;
|
|
|
|
(* Pruned unused type: sm_approval_item *)
|
|
|
|
|
|
TYPE identifier = STRING;
|
|
END_TYPE;
|
|
|
|
(* Pruned unused type: pr_action_items *)
|
|
|
|
|
|
(* Pruned unused type: pr_date_and_time_item *)
|
|
|
|
|
|
(* Pruned unused type: pr_document_reference_item *)
|
|
|
|
|
|
(* Pruned unused type: pr_identification_item *)
|
|
|
|
|
|
(* Pruned unused type: pr_organization_item *)
|
|
|
|
|
|
(* Pruned unused type: pr_person_and_organization_item *)
|
|
|
|
|
|
TYPE rule_superseded_item = SELECT
|
|
(product_definition_formation);
|
|
END_TYPE;
|
|
|
|
TYPE csg_primitive = SELECT (
|
|
sphere,
|
|
block,
|
|
right_angular_wedge,
|
|
torus,
|
|
right_circular_cone,
|
|
right_circular_cylinder,
|
|
primitive_2d);
|
|
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 blend_radius_variation_type = ENUMERATION OF
|
|
(linear_blend,
|
|
cubic_blend,
|
|
unspecified_blend);
|
|
END_TYPE;
|
|
|
|
TYPE blend_end_condition_select = SELECT
|
|
(point_on_curve,
|
|
edge_curve,
|
|
vertex);
|
|
END_TYPE;
|
|
|
|
TYPE box_height = positive_ratio_measure;
|
|
END_TYPE;
|
|
|
|
TYPE box_width = positive_ratio_measure;
|
|
END_TYPE;
|
|
|
|
TYPE box_slant_angle = plane_angle_measure;
|
|
END_TYPE;
|
|
|
|
TYPE box_rotate_angle = plane_angle_measure;
|
|
END_TYPE;
|
|
|
|
TYPE font_select = SELECT
|
|
(pre_defined_text_font,
|
|
externally_defined_text_font,
|
|
text_font);
|
|
END_TYPE;
|
|
|
|
(* Pruned unused type: appearance_representation_identification_item *)
|
|
|
|
|
|
TYPE style_context_select = SELECT
|
|
(group,
|
|
presentation_layer_assignment,
|
|
presentation_set,
|
|
representation,
|
|
representation_item,
|
|
representation_relationship);
|
|
END_TYPE;
|
|
|
|
TYPE annotation_representation_select = SELECT (
|
|
draughting_model,
|
|
presentation_area,
|
|
presentation_view,
|
|
symbol_representation);
|
|
END_TYPE;
|
|
|
|
|
|
TYPE approval_item = SELECT (
|
|
action,
|
|
action_directive,
|
|
action_property,
|
|
action_request_solution,
|
|
alternate_product_relationship,
|
|
applied_action_assignment,
|
|
applied_classification_assignment,
|
|
applied_usage_right,
|
|
assembly_component_usage_substitute,
|
|
certification,
|
|
class,
|
|
class_system,
|
|
configuration_design,
|
|
configuration_effectivity,
|
|
configuration_item,
|
|
configured_effectivity_assignment,
|
|
contract,
|
|
date,
|
|
directed_action,
|
|
document,
|
|
document_file,
|
|
draughting_model,
|
|
drawing_revision,
|
|
effectivity,
|
|
executed_action,
|
|
frozen_assignment,
|
|
general_property,
|
|
general_property_relationship,
|
|
group,
|
|
group_relationship,
|
|
information_usage_right,
|
|
material_designation,
|
|
mechanical_design_geometric_presentation_representation,
|
|
organizational_project,
|
|
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,
|
|
representation,
|
|
requirement_assignment,
|
|
resource_property,
|
|
security_classification,
|
|
shape_aspect_relationship,
|
|
shape_representation,
|
|
versioned_action_request);
|
|
END_TYPE;
|
|
|
|
|
|
(* Pruned unused type: date_and_time_item_approval *)
|
|
|
|
|
|
(* Pruned unused type: date_item_approval *)
|
|
|
|
|
|
TYPE surface_or_solid_model = SELECT
|
|
(surface_model,
|
|
solid_model);
|
|
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 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_basis_select = SELECT
|
|
(planar_curve_select,
|
|
curve_bounded_surface,
|
|
face_surface);
|
|
END_TYPE;
|
|
|
|
TYPE sketch_type_select = SELECT
|
|
(neutral_sketch_representation,
|
|
positioned_sketch,
|
|
subsketch);
|
|
END_TYPE;
|
|
|
|
TYPE curves_or_area = ENUMERATION OF
|
|
(curves, area);
|
|
END_TYPE;
|
|
|
|
(* Pruned unused type: event_occurrence_date_and_time_item *)
|
|
|
|
|
|
(* Pruned unused type: event_occurrence_date_item *)
|
|
|
|
|
|
(* Pruned unused type: spr_document_reference_item *)
|
|
|
|
|
|
(* Pruned unused type: spr_organization_item *)
|
|
|
|
|
|
(* Pruned unused type: spr_person_and_organization_item *)
|
|
|
|
|
|
TYPE label = STRING;
|
|
END_TYPE;
|
|
|
|
TYPE text = STRING;
|
|
END_TYPE;
|
|
|
|
TYPE product_space = SELECT
|
|
(uniform_product_space,
|
|
listed_product_space);
|
|
END_TYPE;
|
|
|
|
TYPE tuple_space = SELECT
|
|
(product_space,
|
|
extended_tuple_space);
|
|
END_TYPE;
|
|
|
|
TYPE maths_number = NUMBER;
|
|
END_TYPE;
|
|
|
|
TYPE attribute_identifier = identifier;
|
|
WHERE
|
|
WR1: validate_attribute_id(SELF);
|
|
END_TYPE;
|
|
|
|
(* Pruned unused type: c_document_reference_item *)
|
|
|
|
|
|
(* Pruned unused type: external_identification_for_plib_property *)
|
|
|
|
|
|
TYPE string_representation_item_select = SELECT(
|
|
descriptive_representation_item,
|
|
included_text_block,
|
|
structured_text_composition);
|
|
END_TYPE;
|
|
|
|
(* Pruned unused type: representing_relationship *)
|
|
|
|
|
|
TYPE link_or_shape_representation = SELECT(
|
|
kinematic_link_representation,
|
|
shape_representation);
|
|
END_TYPE;
|
|
|
|
TYPE interpolation_type = ENUMERATION OF
|
|
(undefined_interpolation_type,
|
|
discontinuous_interpolation_type,
|
|
synchronous_interpolation_type,
|
|
linear_interpolation_type);
|
|
END_TYPE;
|
|
|
|
TYPE category_usage_item = SELECT (product_class);
|
|
END_TYPE;
|
|
|
|
(* Pruned unused type: id_for_class *)
|
|
|
|
|
|
(* Pruned unused type: specification_for_category *)
|
|
|
|
|
|
TYPE groupable_item = SELECT (
|
|
component_feature,
|
|
geometric_representation_item,
|
|
group_relationship,
|
|
mapped_item,
|
|
package_product_concept_feature,
|
|
product_concept_feature,
|
|
product_definition,
|
|
product_definition_formation,
|
|
property_definition_representation,
|
|
representation,
|
|
representation_item,
|
|
representation_relationship_with_transformation,
|
|
shape_aspect,
|
|
shape_aspect_relationship,
|
|
shape_representation_relationship,
|
|
styled_item,
|
|
topological_representation_item);
|
|
WHERE
|
|
WR1: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GROUP' IN TYPEOF(SELF));
|
|
END_TYPE;
|
|
|
|
(* Pruned unused type: organization_item_solution *)
|
|
|
|
|
|
TYPE product_definition_or_breakdown_element_usage = SELECT (
|
|
product_definition,
|
|
product_definition_usage);
|
|
END_TYPE;
|
|
|
|
|
|
TYPE product_definition_or_product_definition_relationship = SELECT (
|
|
product_definition,
|
|
product_definition_usage);
|
|
END_TYPE;
|
|
|
|
|
|
(* Pruned unused type: requirement_identification_and_version_identification_item *)
|
|
|
|
|
|
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 boolean_operand = SELECT
|
|
(solid_model,
|
|
half_space_solid,
|
|
csg_primitive,
|
|
boolean_result,
|
|
half_space_2d);
|
|
END_TYPE;
|
|
|
|
TYPE boolean_operator = ENUMERATION OF
|
|
(union,
|
|
intersection,
|
|
difference);
|
|
END_TYPE;
|
|
|
|
TYPE csg_select = SELECT
|
|
(boolean_result,
|
|
csg_primitive);
|
|
END_TYPE;
|
|
|
|
(* Pruned unused type: external_class_name_item *)
|
|
|
|
|
|
TYPE name_item = SELECT (
|
|
assembly_component_usage,
|
|
external_class_library,
|
|
group,
|
|
group_relationship,
|
|
product,
|
|
product_definition);
|
|
END_TYPE;
|
|
|
|
|
|
TYPE contract_item = SELECT (
|
|
action_directive,
|
|
alternate_product_relationship,
|
|
directed_action,
|
|
drawing_revision,
|
|
executed_action,
|
|
information_usage_right,
|
|
organization,
|
|
person_and_organization,
|
|
product,
|
|
product_definition_formation);
|
|
END_TYPE;
|
|
|
|
|
|
(* Pruned unused type: mri_aliasable_item *)
|
|
|
|
|
|
(* Pruned unused type: mri_approval_item *)
|
|
|
|
|
|
(* Pruned unused type: mri_attribute_language_item *)
|
|
|
|
|
|
(* Pruned unused type: mri_date_and_time_item *)
|
|
|
|
|
|
(* Pruned unused type: mri_date_item *)
|
|
|
|
|
|
(* Pruned unused type: mri_identification_item *)
|
|
|
|
|
|
(* Pruned unused type: mri_multi_language_attribute_item *)
|
|
|
|
|
|
(* Pruned unused type: mri_organization_item *)
|
|
|
|
|
|
(* Pruned unused type: mri_person_and_organization_item *)
|
|
|
|
|
|
TYPE security_classification_item = SELECT (
|
|
action,
|
|
action_directive,
|
|
action_property,
|
|
applied_action_assignment,
|
|
assembly_component_usage,
|
|
assembly_component_usage_substitute,
|
|
class_system,
|
|
configuration_design,
|
|
configuration_effectivity,
|
|
configured_effectivity_assignment,
|
|
document,
|
|
document_file,
|
|
draughting_model,
|
|
drawing_revision,
|
|
executed_action,
|
|
general_property,
|
|
make_from_usage_option,
|
|
material_designation,
|
|
mechanical_design_geometric_presentation_representation,
|
|
organizational_project,
|
|
presentation_area,
|
|
product,
|
|
product_concept,
|
|
product_concept_feature,
|
|
product_concept_feature_category,
|
|
product_definition,
|
|
product_definition_formation,
|
|
product_definition_relationship,
|
|
product_definition_usage,
|
|
property_definition,
|
|
resource_property,
|
|
shape_representation,
|
|
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,
|
|
document_file,
|
|
draughting_model,
|
|
drawing_revision,
|
|
general_property,
|
|
material_designation,
|
|
mechanical_design_geometric_presentation_representation,
|
|
organizational_project,
|
|
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,
|
|
resource_property,
|
|
shape_aspect,
|
|
shape_representation,
|
|
versioned_action_request);
|
|
END_TYPE;
|
|
|
|
|
|
(* Pruned unused type: dm_aliasable_item *)
|
|
|
|
|
|
(* Pruned unused type: dm_approval_item *)
|
|
|
|
|
|
(* Pruned unused type: dm_attribute_language_item *)
|
|
|
|
|
|
(* Pruned unused type: dm_contract_item *)
|
|
|
|
|
|
(* Pruned unused type: dm_date_and_time_item *)
|
|
|
|
|
|
(* Pruned unused type: dm_date_item *)
|
|
|
|
|
|
(* Pruned unused type: dm_identification_item *)
|
|
|
|
|
|
(* Pruned unused type: dm_multi_language_attribute_item *)
|
|
|
|
|
|
(* Pruned unused type: dm_organization_item *)
|
|
|
|
|
|
(* Pruned unused type: dm_person_and_organization_item *)
|
|
|
|
|
|
(* Pruned unused type: dm_security_classification_item *)
|
|
|
|
|
|
(* Pruned unused type: document_location_select *)
|
|
|
|
|
|
(* Pruned unused type: idrm_marked_item *)
|
|
|
|
|
|
TYPE characterized_action_definition = SELECT
|
|
(action,
|
|
action_method,
|
|
action_method_relationship,
|
|
action_relationship);
|
|
END_TYPE;
|
|
|
|
TYPE derived_property_select = SELECT (property_definition, action_property, resource_property);
|
|
END_TYPE;
|
|
|
|
TYPE time_interval_item = SELECT (
|
|
action,
|
|
action_directive,
|
|
action_method,
|
|
action_property,
|
|
action_relationship,
|
|
action_request_solution,
|
|
alternate_product_relationship,
|
|
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,
|
|
executed_action,
|
|
general_property,
|
|
material_designation,
|
|
mechanical_design_geometric_presentation_representation,
|
|
organization_relationship,
|
|
organizational_project,
|
|
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,
|
|
versioned_action_request);
|
|
END_TYPE;
|
|
|
|
|
|
(* Pruned unused type: terminator *)
|
|
|
|
|
|
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 axis2_placement = SELECT
|
|
(axis2_placement_2d,
|
|
axis2_placement_3d);
|
|
END_TYPE;
|
|
|
|
TYPE invisibility_context = SELECT (
|
|
draughting_model,
|
|
presentation_representation,
|
|
presentation_set);
|
|
END_TYPE;
|
|
|
|
|
|
TYPE null_style = ENUMERATION OF
|
|
(null);
|
|
END_TYPE;
|
|
|
|
TYPE text_alignment = label;
|
|
END_TYPE;
|
|
|
|
TYPE message = STRING;
|
|
END_TYPE;
|
|
|
|
TYPE source_item = SELECT (identifier, message);
|
|
END_TYPE;
|
|
|
|
TYPE surface_side = ENUMERATION OF
|
|
(positive,
|
|
negative,
|
|
both);
|
|
END_TYPE;
|
|
|
|
TYPE u_direction_count = INTEGER;
|
|
WHERE
|
|
WR1: SELF > 1;
|
|
END_TYPE;
|
|
|
|
TYPE v_direction_count = INTEGER;
|
|
WHERE
|
|
WR1: SELF > 1;
|
|
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 day_in_month_number = INTEGER;
|
|
WHERE
|
|
WR1: {1 <= SELF <= 31};
|
|
END_TYPE;
|
|
|
|
TYPE maths_boolean = BOOLEAN;
|
|
END_TYPE;
|
|
|
|
TYPE maths_integer = INTEGER;
|
|
END_TYPE;
|
|
|
|
TYPE maths_real = REAL;
|
|
END_TYPE;
|
|
|
|
TYPE maths_simple_atom = SELECT
|
|
(maths_number,
|
|
maths_real,
|
|
maths_integer,
|
|
maths_logical,
|
|
maths_boolean,
|
|
maths_string,
|
|
maths_binary);
|
|
END_TYPE;
|
|
|
|
TYPE atom_based_tuple = LIST OF atom_based_value;
|
|
END_TYPE;
|
|
|
|
TYPE atom_based_value = SELECT
|
|
(maths_atom,
|
|
atom_based_tuple);
|
|
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 rigid_placement = SELECT
|
|
(axis2_placement_3d,
|
|
su_parameters);
|
|
END_TYPE;
|
|
|
|
TYPE kinematic_link_representation_items = SELECT (
|
|
curve,
|
|
point,
|
|
rigid_placement,
|
|
surface);
|
|
END_TYPE;
|
|
|
|
TYPE actuated_direction = ENUMERATION OF (
|
|
bidirectional,
|
|
positive_only,
|
|
negative_only,
|
|
not_actuated);
|
|
END_TYPE;
|
|
|
|
TYPE spatial_rotation = SELECT
|
|
(ypr_rotation,
|
|
rotation_about_direction);
|
|
END_TYPE;
|
|
|
|
TYPE ypr_rotation = ARRAY [ypr_index(yaw) : ypr_index(roll)]
|
|
OF plane_angle_measure;
|
|
END_TYPE;
|
|
|
|
TYPE ypr_enumeration = ENUMERATION OF
|
|
(yaw,
|
|
pitch,
|
|
roll);
|
|
END_TYPE;
|
|
|
|
TYPE spherical_pair_select = SELECT (
|
|
spherical_pair,
|
|
spherical_pair_with_pin);
|
|
END_TYPE;
|
|
|
|
(* Pruned unused type: aliasable_item *)
|
|
|
|
|
|
TYPE certification_item = SELECT (
|
|
alternate_product_relationship,
|
|
make_from_usage_option,
|
|
product_definition,
|
|
product_definition_formation,
|
|
product_definition_formation_relationship,
|
|
product_definition_relationship);
|
|
END_TYPE;
|
|
|
|
|
|
TYPE attribute_language_item = SELECT (
|
|
action,
|
|
actuated_kinematic_pair,
|
|
alternate_product_relationship,
|
|
application_context,
|
|
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,
|
|
event_occurrence,
|
|
external_source,
|
|
general_property,
|
|
general_property_relationship,
|
|
geometric_representation_item,
|
|
geometric_tolerance,
|
|
group,
|
|
group_relationship,
|
|
identification_role,
|
|
information_right,
|
|
information_usage_right,
|
|
kinematic_pair,
|
|
make_from_usage_option,
|
|
mapped_item,
|
|
multi_language_attribute_assignment,
|
|
name_assignment,
|
|
object_role,
|
|
organization_relationship,
|
|
organization_role,
|
|
organizational_project,
|
|
organizational_project_relationship,
|
|
organizational_project_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_related_product_category,
|
|
property_definition,
|
|
property_definition_relationship,
|
|
representation,
|
|
representation_relationship,
|
|
requirement_for_action_resource,
|
|
resource_property,
|
|
resource_requirement_type,
|
|
security_classification,
|
|
security_classification_assignment,
|
|
shape_aspect,
|
|
shape_aspect_relationship,
|
|
shape_representation,
|
|
styled_item,
|
|
time_interval_role,
|
|
topological_representation_item,
|
|
uncertainty_measure_with_unit,
|
|
uncertainty_qualifier,
|
|
usage_association,
|
|
versioned_action_request,
|
|
versioned_action_request_relationship);
|
|
END_TYPE;
|
|
|
|
|
|
TYPE multi_language_attribute_item = SELECT (
|
|
action,
|
|
action_directive,
|
|
action_method,
|
|
action_property,
|
|
action_relationship,
|
|
actuated_kinematic_pair,
|
|
alternate_product_relationship,
|
|
application_context,
|
|
applied_certification_assignment,
|
|
applied_document_reference,
|
|
applied_document_usage_constraint_assignment,
|
|
applied_external_identification_assignment,
|
|
applied_identification_assignment,
|
|
applied_organizational_project_assignment,
|
|
approval,
|
|
approval_relationship,
|
|
approval_status,
|
|
assembly_component_usage_substitute,
|
|
attribute_value_assignment,
|
|
certification,
|
|
certification_type,
|
|
colour,
|
|
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,
|
|
event_occurrence,
|
|
external_source,
|
|
general_property,
|
|
general_property_relationship,
|
|
geometric_representation_item,
|
|
geometric_tolerance,
|
|
group,
|
|
group_relationship,
|
|
identification_role,
|
|
information_right,
|
|
information_usage_right,
|
|
kinematic_pair,
|
|
make_from_usage_option,
|
|
mapped_item,
|
|
name_assignment,
|
|
object_role,
|
|
organization_relationship,
|
|
organization_role,
|
|
organizational_project,
|
|
organizational_project_relationship,
|
|
organizational_project_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_related_product_category,
|
|
property_definition,
|
|
property_definition_relationship,
|
|
representation,
|
|
representation_relationship,
|
|
requirement_for_action_resource,
|
|
resource_property,
|
|
resource_requirement_type,
|
|
security_classification,
|
|
security_classification_assignment,
|
|
shape_aspect,
|
|
shape_aspect_relationship,
|
|
shape_representation,
|
|
styled_item,
|
|
time_interval_role,
|
|
topological_representation_item,
|
|
uncertainty_measure_with_unit,
|
|
uncertainty_qualifier,
|
|
usage_association,
|
|
versioned_action_request,
|
|
versioned_action_request_relationship);
|
|
END_TYPE;
|
|
|
|
|
|
(* Pruned unused type: project_as_date_and_time_item *)
|
|
|
|
|
|
(* Pruned unused type: project_as_date_item *)
|
|
|
|
|
|
(* Pruned unused type: project_event_occurrence_item *)
|
|
|
|
|
|
TYPE project_item = SELECT (
|
|
assembly_component_usage,
|
|
configuration_item,
|
|
executed_action,
|
|
product,
|
|
product_concept,
|
|
product_definition,
|
|
product_definition_formation);
|
|
END_TYPE;
|
|
|
|
|
|
TYPE kinematic_topology_representation_select = SELECT (
|
|
kinematic_topology_structure,
|
|
kinematic_topology_directed_structure,
|
|
kinematic_topology_network_structure
|
|
);
|
|
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_property,
|
|
material_designation,
|
|
mechanical_design_geometric_presentation_representation,
|
|
organization_relationship,
|
|
organizational_project,
|
|
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 characterized_definition = SELECT (characterized_object, characterized_product_definition, shape_definition);
|
|
END_TYPE;
|
|
|
|
TYPE year_number = INTEGER;
|
|
END_TYPE;
|
|
|
|
TYPE date_time_or_event_occurrence = SELECT
|
|
(date_time_select,
|
|
event_occurrence);
|
|
END_TYPE;
|
|
|
|
TYPE trimming_select = SELECT
|
|
(cartesian_point,
|
|
parameter_value);
|
|
END_TYPE;
|
|
|
|
TYPE trimming_preference = ENUMERATION OF
|
|
(cartesian,
|
|
parameter,
|
|
unspecified);
|
|
END_TYPE;
|
|
|
|
TYPE founded_item_select = SELECT
|
|
(founded_item,
|
|
representation_item);
|
|
END_TYPE;
|
|
|
|
TYPE transition_code = ENUMERATION OF
|
|
(discontinuous,
|
|
continuous,
|
|
cont_same_gradient,
|
|
cont_same_gradient_same_curvature);
|
|
END_TYPE;
|
|
|
|
TYPE pcurve_or_surface = SELECT
|
|
(pcurve,
|
|
surface);
|
|
END_TYPE;
|
|
|
|
TYPE preferred_surface_curve_representation = ENUMERATION OF
|
|
(curve_3d,
|
|
pcurve_s1,
|
|
pcurve_s2);
|
|
END_TYPE;
|
|
|
|
TYPE curve_on_surface = SELECT
|
|
(pcurve,
|
|
surface_curve,
|
|
composite_curve_on_surface);
|
|
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_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 month_in_year_number = INTEGER;
|
|
WHERE
|
|
WR1: { 1 <= SELF <= 12 };
|
|
END_TYPE;
|
|
|
|
TYPE hour_in_day = INTEGER;
|
|
WHERE
|
|
WR1: { 0 <= SELF < 24 };
|
|
END_TYPE;
|
|
|
|
TYPE minute_in_hour = INTEGER;
|
|
WHERE
|
|
WR1: { 0 <= SELF <= 59 };
|
|
END_TYPE;
|
|
|
|
TYPE second_in_minute = REAL;
|
|
WHERE
|
|
WR1: { 0 <= SELF <= 60.0 };
|
|
END_TYPE;
|
|
|
|
TYPE ahead_or_behind = ENUMERATION OF
|
|
(ahead,
|
|
exact,
|
|
behind);
|
|
END_TYPE;
|
|
|
|
TYPE maths_function_select = SELECT
|
|
(maths_function,
|
|
elementary_function_enumerators);
|
|
END_TYPE;
|
|
|
|
TYPE maths_logical = LOGICAL;
|
|
END_TYPE;
|
|
|
|
TYPE maths_string = STRING;
|
|
END_TYPE;
|
|
|
|
TYPE maths_binary = BINARY;
|
|
END_TYPE;
|
|
|
|
TYPE maths_enum_atom = SELECT (
|
|
elementary_space_enumerators,
|
|
ordering_type,
|
|
elementary_function_enumerators,
|
|
open_closed,
|
|
space_constraint_type,
|
|
repackage_options,
|
|
extension_options);
|
|
END_TYPE;
|
|
|
|
|
|
TYPE positive_integer = nonnegative_integer;
|
|
WHERE positivity: SELF > 0;
|
|
END_TYPE;
|
|
|
|
TYPE nonnegative_integer = INTEGER;
|
|
WHERE
|
|
nonnegativity: SELF >= 0;
|
|
END_TYPE;
|
|
|
|
TYPE space_constraint_type = ENUMERATION OF
|
|
(sc_equal,
|
|
sc_subspace,
|
|
sc_member);
|
|
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 maths_expression = SELECT
|
|
(atom_based_value,
|
|
maths_tuple,
|
|
generic_expression);
|
|
END_TYPE;
|
|
|
|
TYPE maths_space_or_function = SELECT
|
|
(maths_space,
|
|
maths_function);
|
|
END_TYPE;
|
|
|
|
TYPE input_selector = positive_integer;
|
|
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 open_closed = ENUMERATION OF
|
|
(open,
|
|
closed);
|
|
END_TYPE;
|
|
|
|
TYPE repackage_options = ENUMERATION OF
|
|
(ro_nochange,
|
|
ro_wrap_as_tuple,
|
|
ro_unwrap_tuple);
|
|
END_TYPE;
|
|
|
|
TYPE zero_or_one = nonnegative_integer;
|
|
WHERE in_range: (SELF = 0) OR (SELF = 1);
|
|
END_TYPE;
|
|
|
|
TYPE one_or_two = positive_integer;
|
|
WHERE in_range: (SELF = 1) OR (SELF = 2);
|
|
END_TYPE;
|
|
|
|
TYPE extension_options = ENUMERATION OF
|
|
(eo_none,
|
|
eo_cont,
|
|
eo_cont_right,
|
|
eo_cont_left);
|
|
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 ordering_type = ENUMERATION OF
|
|
(by_rows,
|
|
by_columns);
|
|
END_TYPE;
|
|
|
|
TYPE dimension_count = INTEGER;
|
|
WHERE
|
|
WR1: SELF > 0;
|
|
END_TYPE;
|
|
|
|
TYPE maths_atom = SELECT
|
|
(maths_simple_atom,
|
|
maths_enum_atom);
|
|
END_TYPE;
|
|
|
|
TYPE vector_or_direction = SELECT
|
|
(vector,
|
|
direction);
|
|
END_TYPE;
|
|
|
|
TYPE represented_definition = SELECT (
|
|
general_property,
|
|
property_definition,
|
|
property_definition_relationship,
|
|
shape_aspect,
|
|
shape_aspect_relationship);
|
|
END_TYPE;
|
|
|
|
TYPE supported_item = SELECT (action_directive, action, action_method);
|
|
END_TYPE;
|
|
|
|
TYPE property_or_shape_select = SELECT
|
|
(property_definition,
|
|
shape_definition);
|
|
END_TYPE;
|
|
|
|
TYPE characterized_resource_definition = SELECT (
|
|
action_resource,
|
|
action_resource_requirement);
|
|
END_TYPE;
|
|
|
|
|
|
TYPE configuration_design_item = SELECT
|
|
(product_definition,
|
|
product_definition_formation);
|
|
END_TYPE;
|
|
|
|
TYPE chained_representation_link = SELECT (mapped_item, representation_context, representation_relationship);
|
|
END_TYPE;
|
|
|
|
TYPE characterized_product_composition_value = SELECT (
|
|
measure_with_unit);
|
|
END_TYPE;
|
|
|
|
|
|
TYPE source = ENUMERATION OF (made, bought, not_known);
|
|
END_TYPE;
|
|
|
|
TYPE dimension_extent_usage = ENUMERATION OF
|
|
(origin,
|
|
target);
|
|
END_TYPE;
|
|
|
|
TYPE annotation_symbol_occurrence_item = SELECT (
|
|
annotation_symbol,
|
|
defined_symbol);
|
|
END_TYPE;
|
|
|
|
TYPE datum_reference_modifier_type = ENUMERATION OF (
|
|
circular_or_cylindrical,
|
|
distance,
|
|
spherical);
|
|
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 limit_condition = ENUMERATION OF
|
|
(maximum_material_condition,
|
|
least_material_condition,
|
|
regardless_of_feature_size);
|
|
END_TYPE;
|
|
|
|
TYPE geometric_tolerance_target = SELECT
|
|
(dimensional_location,
|
|
dimensional_size,
|
|
product_definition_shape,
|
|
shape_aspect);
|
|
END_TYPE;
|
|
|
|
TYPE datum_system_or_reference = SELECT
|
|
(datum_reference,
|
|
datum_system);
|
|
END_TYPE;
|
|
|
|
TYPE area_unit_type = ENUMERATION OF (
|
|
circular,
|
|
rectangular,
|
|
square);
|
|
END_TYPE;
|
|
|
|
|
|
TYPE geometric_tolerance_modifier = ENUMERATION OF (
|
|
any_cross_section,
|
|
common_zone,
|
|
each_radial_element,
|
|
free_state,
|
|
least_material_requirement,
|
|
line_element,
|
|
major_diameter,
|
|
maximum_material_requirement,
|
|
minor_diameter,
|
|
not_convex,
|
|
pitch_diameter,
|
|
reciprocity_requirement,
|
|
separate_requirement,
|
|
statistical_tolerance,
|
|
tangent_plane);
|
|
END_TYPE;
|
|
|
|
|
|
TYPE tolerance_zone_target = SELECT (
|
|
dimensional_location,
|
|
dimensional_size,
|
|
geometric_tolerance,
|
|
general_datum_reference);
|
|
END_TYPE;
|
|
|
|
TYPE central_or_parallel = ENUMERATION OF
|
|
(central,
|
|
parallel);
|
|
END_TYPE;
|
|
|
|
TYPE camera_model_d3_multi_clipping_interection_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 presentation_size_assignment_select = SELECT
|
|
(presentation_view,
|
|
presentation_area,
|
|
area_in_set);
|
|
END_TYPE;
|
|
|
|
TYPE transformation = SELECT
|
|
(item_defined_transformation,
|
|
functionally_defined_transformation);
|
|
END_TYPE;
|
|
|
|
TYPE shape_representation_item = SELECT
|
|
(geometric_representation_item,
|
|
topological_representation_item);
|
|
END_TYPE;
|
|
|
|
TYPE generalized_surface_select = SELECT
|
|
(surface,
|
|
face_surface,
|
|
surfaced_open_shell);
|
|
END_TYPE;
|
|
|
|
TYPE characterized_material_property = SELECT
|
|
(material_property_representation,
|
|
product_material_composition_relationship);
|
|
END_TYPE;
|
|
|
|
TYPE character_style_select = SELECT
|
|
(character_glyph_style_stroke,
|
|
character_glyph_style_outline,
|
|
text_style_for_defined_font);
|
|
END_TYPE;
|
|
|
|
TYPE character_spacing_select = SELECT (
|
|
length_measure,
|
|
ratio_measure,
|
|
measure_with_unit,
|
|
descriptive_measure);
|
|
END_TYPE;
|
|
|
|
|
|
TYPE text_delineation = label;
|
|
END_TYPE;
|
|
|
|
TYPE defined_glyph_select = SELECT
|
|
(pre_defined_character_glyph,
|
|
externally_defined_character_glyph);
|
|
END_TYPE;
|
|
|
|
TYPE presentable_text = STRING;
|
|
WHERE
|
|
WR1: control_characters_free(SELF);
|
|
END_TYPE;
|
|
|
|
TYPE text_path = ENUMERATION OF
|
|
(left,
|
|
right,
|
|
up,
|
|
down);
|
|
END_TYPE;
|
|
|
|
TYPE invisible_item = SELECT (
|
|
draughting_callout,
|
|
presentation_layer_assignment,
|
|
representation,
|
|
styled_item);
|
|
END_TYPE;
|
|
|
|
|
|
TYPE presentation_style_select = SELECT (
|
|
point_style,
|
|
curve_style,
|
|
surface_style_usage,
|
|
symbol_style,
|
|
fill_area_style,
|
|
text_style,
|
|
externally_defined_style,
|
|
null_style);
|
|
END_TYPE;
|
|
|
|
|
|
TYPE annotation_text_occurrence_item = SELECT (
|
|
annotation_text,
|
|
annotation_text_character,
|
|
composite_text,
|
|
defined_character_glyph,
|
|
text_literal,
|
|
text_reference);
|
|
END_TYPE;
|
|
|
|
|
|
TYPE curve_or_curve_set = SELECT (
|
|
curve,
|
|
geometric_curve_set);
|
|
END_TYPE;
|
|
|
|
TYPE text_string_representation_item = SELECT(
|
|
text_literal,
|
|
annotation_text,
|
|
annotation_text_character,
|
|
defined_character_glyph,
|
|
composite_text,
|
|
axis2_placement);
|
|
END_TYPE;
|
|
|
|
TYPE curve_font_or_scaled_curve_font_select = SELECT
|
|
(curve_style_font_select,
|
|
curve_style_font_and_scaling);
|
|
END_TYPE;
|
|
|
|
TYPE size_select = SELECT (
|
|
positive_length_measure,
|
|
measure_with_unit,
|
|
descriptive_measure);
|
|
END_TYPE;
|
|
|
|
|
|
TYPE box_characteristic_select = SELECT
|
|
(box_height,
|
|
box_width,
|
|
box_slant_angle,
|
|
box_rotate_angle);
|
|
END_TYPE;
|
|
|
|
TYPE date_time_select = SELECT
|
|
(date,
|
|
date_and_time,
|
|
local_time);
|
|
END_TYPE;
|
|
|
|
TYPE person_organization_select = SELECT (person, organization, person_and_organization);
|
|
END_TYPE;
|
|
|
|
TYPE reversible_topology = SELECT
|
|
(reversible_topology_item,
|
|
list_of_reversible_topology_item,
|
|
set_of_reversible_topology_item);
|
|
END_TYPE;
|
|
|
|
TYPE list_of_reversible_topology_item =
|
|
LIST [0:?] of reversible_topology_item;
|
|
END_TYPE;
|
|
|
|
TYPE reversible_topology_item = SELECT
|
|
(edge,
|
|
path,
|
|
face,
|
|
face_bound,
|
|
closed_shell,
|
|
open_shell);
|
|
END_TYPE;
|
|
|
|
TYPE set_of_reversible_topology_item =
|
|
SET [0:?] of reversible_topology_item;
|
|
END_TYPE;
|
|
|
|
TYPE shell = SELECT
|
|
(vertex_shell,
|
|
wire_shell,
|
|
open_shell,
|
|
closed_shell);
|
|
END_TYPE;
|
|
|
|
TYPE shape_representation_with_parameters_items = SELECT (
|
|
descriptive_representation_item,
|
|
direction,
|
|
measure_representation_item,
|
|
placement);
|
|
END_TYPE;
|
|
|
|
|
|
TYPE knot_type = ENUMERATION OF
|
|
(uniform_knots,
|
|
quasi_uniform_knots,
|
|
piecewise_bezier_knots,
|
|
unspecified);
|
|
END_TYPE;
|
|
|
|
TYPE product_or_formation_or_definition = SELECT (product, product_definition_formation, product_definition);
|
|
END_TYPE;
|
|
|
|
TYPE annotation_plane_element = SELECT
|
|
(draughting_callout,
|
|
styled_item);
|
|
END_TYPE;
|
|
|
|
TYPE plane_or_planar_box = SELECT
|
|
(plane,
|
|
planar_box) ;
|
|
END_TYPE;
|
|
|
|
TYPE draughting_callout_element = SELECT
|
|
(annotation_curve_occurrence,
|
|
annotation_fill_area_occurrence,
|
|
annotation_symbol_occurrence,
|
|
annotation_text_occurrence);
|
|
END_TYPE;
|
|
|
|
TYPE fill_style_select = SELECT (
|
|
fill_area_style_colour,
|
|
externally_defined_tile_style,
|
|
fill_area_style_tiles,
|
|
externally_defined_hatch_style,
|
|
fill_area_style_hatching);
|
|
END_TYPE;
|
|
|
|
|
|
TYPE fill_area_style_tile_shape_select = SELECT
|
|
(fill_area_style_tile_curve_with_style,
|
|
fill_area_style_tile_coloured_region,
|
|
fill_area_style_tile_symbol_with_style,
|
|
pre_defined_tile,
|
|
externally_defined_tile);
|
|
END_TYPE;
|
|
|
|
TYPE symbol_style_select = SELECT (
|
|
symbol_colour);
|
|
END_TYPE;
|
|
|
|
|
|
TYPE text_or_character = SELECT
|
|
(annotation_text,
|
|
annotation_text_character,
|
|
defined_character_glyph,
|
|
composite_text,
|
|
text_literal);
|
|
END_TYPE;
|
|
|
|
TYPE defined_symbol_select = SELECT
|
|
(pre_defined_symbol,
|
|
externally_defined_symbol);
|
|
END_TYPE;
|
|
|
|
TYPE presentation_representation_select = SELECT
|
|
(presentation_representation,
|
|
presentation_set);
|
|
END_TYPE;
|
|
|
|
TYPE curve_or_annotation_curve_occurrence = SELECT
|
|
(curve,
|
|
annotation_curve_occurrence);
|
|
END_TYPE;
|
|
|
|
TYPE surface_style_element_select = SELECT
|
|
(surface_style_fill_area,
|
|
surface_style_boundary,
|
|
surface_style_silhouette,
|
|
surface_style_segmentation_curve,
|
|
surface_style_control_grid,
|
|
surface_style_parameter_line,
|
|
surface_style_rendering);
|
|
END_TYPE;
|
|
|
|
TYPE curve_or_render = SELECT
|
|
(curve_style,
|
|
curve_style_rendering);
|
|
END_TYPE;
|
|
|
|
TYPE shading_surface_method = ENUMERATION OF
|
|
(constant_shading,
|
|
colour_shading,
|
|
dot_shading,
|
|
normal_shading);
|
|
END_TYPE;
|
|
|
|
TYPE direction_count_select = SELECT
|
|
(u_direction_count,
|
|
v_direction_count);
|
|
END_TYPE;
|
|
|
|
TYPE surface_side_style_select = SELECT
|
|
(surface_side_style,
|
|
pre_defined_surface_side_style);
|
|
END_TYPE;
|
|
|
|
TYPE layered_item = SELECT
|
|
(presentation_representation,
|
|
representation_item);
|
|
END_TYPE;
|
|
|
|
TYPE area_or_view = SELECT
|
|
(presentation_area,
|
|
presentation_view);
|
|
END_TYPE;
|
|
|
|
TYPE geometric_set_select = SELECT
|
|
(point,
|
|
curve,
|
|
surface);
|
|
END_TYPE;
|
|
|
|
TYPE day_in_year_number = INTEGER;
|
|
WHERE
|
|
WR1: {1 <= SELF <= 366};
|
|
END_TYPE;
|
|
|
|
TYPE week_in_year_number = INTEGER;
|
|
WHERE
|
|
WR1: { 1 <= SELF <= 53 };
|
|
END_TYPE;
|
|
|
|
TYPE day_in_week_number = INTEGER;
|
|
WHERE
|
|
WR1: { 1 <= SELF <= 7 };
|
|
END_TYPE;
|
|
|
|
TYPE curve_style_font_select = SELECT
|
|
(curve_style_font,
|
|
pre_defined_curve_font,
|
|
externally_defined_curve_font);
|
|
END_TYPE;
|
|
|
|
TYPE shading_curve_method = ENUMERATION OF
|
|
(constant_colour,
|
|
linear_colour);
|
|
END_TYPE;
|
|
|
|
TYPE rendering_properties_select = SELECT
|
|
(surface_style_reflectance_ambient,
|
|
surface_style_transparent);
|
|
END_TYPE;
|
|
|
|
TYPE attribute_type = SELECT (label, text);
|
|
END_TYPE;
|
|
|
|
(* Pruned unused type: surface_boundary *)
|
|
|
|
|
|
(* Pruned unused type: shape_tolerance_select *)
|
|
|
|
|
|
(* Pruned unused type: sts_item_identified_representation_usage_definition *)
|
|
|
|
|
|
(* Pruned unused type: product_data_representation_view_item *)
|
|
|
|
|
|
(* Pruned unused type: text_literal_or_text_reference *)
|
|
|
|
|
|
TYPE surface_model = SELECT
|
|
(shell_based_surface_model,
|
|
face_based_surface_model);
|
|
END_TYPE;
|
|
|
|
(* Pruned unused type: des_invisible_item *)
|
|
|
|
|
|
(* Pruned unused type: wireframe_model *)
|
|
|
|
|
|
ENTITY all_around_shape_aspect
|
|
SUBTYPE OF (composite_shape_aspect);
|
|
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 change
|
|
SUBTYPE OF (action_assignment);
|
|
items : SET[1:?] OF work_item;
|
|
END_ENTITY;
|
|
|
|
ENTITY change_request
|
|
SUBTYPE OF (action_request_assignment);
|
|
items : SET[1:?] OF change_request_item;
|
|
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 mechanical_context
|
|
SUBTYPE OF (product_context);
|
|
WHERE
|
|
WR1: SELF.discipline_type = 'mechanical';
|
|
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 supplied_part_relationship
|
|
SUBTYPE OF (product_definition_relationship);
|
|
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 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 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 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 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 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 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 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 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 process_operation
|
|
SUBTYPE OF (action_method);
|
|
WHERE
|
|
WR1: SIZEOF( QUERY( amr <* USEDIN(SELF,'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ACTION_METHOD_RELATIONSHIP.' +
|
|
'RELATING_METHOD') |
|
|
NOT('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROCESS_OPERATION' IN
|
|
TYPEOF(amr\action_method_relationship.related_method)) OR
|
|
(SELF :=: amr\action_method_relationship.related_method)
|
|
)) = 0;
|
|
WR2: SIZEOF( QUERY( amr <* USEDIN(SELF,'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ACTION_METHOD_RELATIONSHIP.' +
|
|
'RELATED_METHOD') |
|
|
NOT('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROCESS_OPERATION' IN
|
|
TYPEOF(amr\action_method_relationship.relating_method)) OR
|
|
(SELF :=: amr\action_method_relationship.relating_method)
|
|
)) = 0;
|
|
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 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.frame_of_reference.name IN
|
|
['part_definition','part occurrence','physical occurrence'];
|
|
|
|
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 area_with_outer_boundary
|
|
SUBTYPE OF (complex_area, half_space_2d);
|
|
SELF\half_space_2d.base_curve : composite_curve;
|
|
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 closed_curve_style_parameters
|
|
SUBTYPE OF(curve_style_parameters_representation);
|
|
END_ENTITY;
|
|
|
|
ENTITY complex_area
|
|
ABSTRACT SUPERTYPE OF (
|
|
AREA_WITH_OUTER_BOUNDARY)
|
|
SUBTYPE OF (primitive_2d);
|
|
END_ENTITY;
|
|
|
|
ENTITY csg_primitive_solid_2d
|
|
SUBTYPE OF (csg_solid_2d);
|
|
SELF\csg_solid.tree_root_expression : primitive_2d;
|
|
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 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;
|
|
-- TODO does not work with the new introduced subtypes
|
|
-- WR4: SIZEOF(TYPEOF(SELF) - TYPEOF(SELF\shape_representation ||
|
|
-- SELF\csg_2d_shape_representation || SELF\representation)) = 0;
|
|
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 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);
|
|
-- the mapping source must be a curve (open or closed)
|
|
-- no the mapping target must be a curve (open or closed)
|
|
--wr2: -- the mapping_source.mapped_representation must be curve_style_parameters_representation;
|
|
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';
|
|
--don't reall care on mapping_source.mapping_origin. Best to make it the line-width
|
|
END_ENTITY;
|
|
|
|
ENTITY primitive_2d_with_inner_boundary
|
|
SUBTYPE OF (primitive_2d, compound_representation_item);
|
|
SELF\compound_representation_item.item_element : compound_inner_area_boundary; -- inner_boundary : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, an attribute with the new name is in the DERIVE clause
|
|
DERIVE
|
|
inner_boundary : COMPOUND_INNER_AREA_BOUNDARY := SELF\compound_representation_item.item_element; -- ITEM_ELEMENT : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE
|
|
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.COMPLEX_AREA'] * 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 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 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 composite_material_designation
|
|
SUBTYPE OF (material_designation);
|
|
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 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 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 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 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 drawing_sheet_layout
|
|
SUBTYPE OF (draughting_symbol_representation);
|
|
END_ENTITY;
|
|
|
|
ENTITY externally_defined_currency
|
|
SUBTYPE OF (currency, externally_defined_context_dependent_unit);
|
|
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 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 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 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 mechanical_design_presentation_representation_with_draughting
|
|
SUBTYPE of (representation);
|
|
SELF\representation.items : SET[1:?] OF camera_model_d3;
|
|
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 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_assembly_table
|
|
SUBTYPE OF (part_laminate_table);
|
|
END_ENTITY;
|
|
|
|
ENTITY laminate_table
|
|
SUPERTYPE OF (ONEOF (
|
|
PART_LAMINATE_TABLE,
|
|
ZONE_STRUCTURAL_MAKEUP))
|
|
SUBTYPE OF (product_definition);
|
|
END_ENTITY;
|
|
|
|
ENTITY part_laminate_table
|
|
SUPERTYPE OF (ONEOF (
|
|
COMPOSITE_ASSEMBLY_TABLE,
|
|
PLY_LAMINATE_TABLE))
|
|
SUBTYPE OF (laminate_table);
|
|
END_ENTITY;
|
|
|
|
ENTITY percentage_laminate_table
|
|
SUBTYPE OF (zone_structural_makeup);
|
|
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_laminate_table
|
|
SUBTYPE OF (part_laminate_table);
|
|
END_ENTITY;
|
|
|
|
ENTITY smeared_material_definition
|
|
SUBTYPE OF (zone_structural_makeup);
|
|
END_ENTITY;
|
|
|
|
ENTITY thickness_laminate_table
|
|
SUBTYPE OF (zone_structural_makeup);
|
|
END_ENTITY;
|
|
|
|
ENTITY zone_structural_makeup
|
|
SUPERTYPE OF (ONEOF ((
|
|
SMEARED_MATERIAL_DEFINITION
|
|
AND
|
|
THICKNESS_LAMINATE_TABLE),(
|
|
SMEARED_MATERIAL_DEFINITION
|
|
AND
|
|
PERCENTAGE_LAMINATE_TABLE),
|
|
THICKNESS_LAMINATE_TABLE,
|
|
PERCENTAGE_LAMINATE_TABLE,
|
|
SMEARED_MATERIAL_DEFINITION))
|
|
SUBTYPE OF (laminate_table);
|
|
END_ENTITY;
|
|
|
|
ENTITY externally_defined_picture_representation_item
|
|
SUBTYPE OF (picture_representation_item);
|
|
INVERSE
|
|
source : applied_external_identification_assignment FOR items;
|
|
WHERE
|
|
WR1: NOT (SELF\representation_item.name IN pre_defined_picture_representation_types);
|
|
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 picture_representation_item
|
|
ABSTRACT SUPERTYPE OF (ONEOF (
|
|
EXTERNALLY_DEFINED_PICTURE_REPRESENTATION_ITEM,
|
|
PREDEFINED_PICTURE_REPRESENTATION_ITEM))
|
|
SUBTYPE OF (bytes_representation_item);
|
|
END_ENTITY;
|
|
|
|
ENTITY predefined_picture_representation_item
|
|
SUBTYPE OF (picture_representation_item);
|
|
WHERE
|
|
WR1: SELF\representation_item.name IN pre_defined_picture_representation_types;
|
|
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 evaluation_product_definition
|
|
SUBTYPE OF (product_definition);
|
|
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 draped_defined_transformation
|
|
SUBTYPE OF (transformation_with_derived_angle);
|
|
END_ENTITY;
|
|
|
|
ENTITY laid_defined_transformation
|
|
SUBTYPE OF (transformation_with_derived_angle);
|
|
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; -- minor_orientation_basis : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, an attribute with the new name is in the DERIVE clause
|
|
SELF\representation_item_relationship.related_representation_item : axis2_placement_3d; -- major_orientation_basis : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, an attribute with the new name is in the DERIVE clause
|
|
DERIVE
|
|
major_orientation_basis : AXIS2_PLACEMENT_3D := SELF\representation_item_relationship.related_representation_item; -- RELATED_REPRESENTATION_ITEM : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE
|
|
minor_orientation_basis : AXIS2_PLACEMENT_3D := SELF\representation_item_relationship.relating_representation_item; -- RELATING_REPRESENTATION_ITEM : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE
|
|
|
|
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_path
|
|
SUBTYPE OF (compound_representation_item, geometric_representation_item);
|
|
SELF\compound_representation_item.item_element : point_path_members;
|
|
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 shape_feature_definition
|
|
SUBTYPE OF (feature_definition);
|
|
END_ENTITY;
|
|
|
|
ENTITY placed_feature
|
|
SUBTYPE OF (shape_aspect);
|
|
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 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 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 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 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 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 change_group
|
|
SUBTYPE OF (group);
|
|
END_ENTITY;
|
|
|
|
ENTITY change_element
|
|
ABSTRACT SUPERTYPE OF (ONEOF (
|
|
MODIFY_ELEMENT,
|
|
DELETE_ELEMENT,
|
|
ADD_ELEMENT))
|
|
SUBTYPE OF (group, characterized_object);
|
|
END_ENTITY;
|
|
|
|
ENTITY modify_element
|
|
SUBTYPE OF (change_element);
|
|
END_ENTITY;
|
|
|
|
ENTITY delete_element
|
|
SUBTYPE OF (change_element);
|
|
END_ENTITY;
|
|
|
|
ENTITY add_element
|
|
SUBTYPE OF (change_element);
|
|
END_ENTITY;
|
|
|
|
ENTITY change_element_sequence
|
|
SUBTYPE OF (group_relationship);
|
|
SELF\group_relationship.relating_group : change_element; -- previous : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, an attribute with the new name is in the DERIVE clause
|
|
SELF\group_relationship.related_group : change_element; -- next : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, an attribute with the new name is in the DERIVE clause
|
|
DERIVE
|
|
next : CHANGE_ELEMENT := SELF\group_relationship.related_group; -- RELATED_GROUP : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE
|
|
previous : CHANGE_ELEMENT := SELF\group_relationship.relating_group; -- RELATING_GROUP : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE
|
|
|
|
END_ENTITY;
|
|
|
|
ENTITY change_composition_relationship
|
|
SUBTYPE OF (group_relationship);
|
|
SELF\group_relationship.relating_group : change_group; -- composition : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, an attribute with the new name is in the DERIVE clause
|
|
SELF\group_relationship.related_group : change_element; -- element : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, an attribute with the new name is in the DERIVE clause
|
|
DERIVE
|
|
composition : CHANGE_GROUP := SELF\group_relationship.relating_group; -- RELATING_GROUP : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE
|
|
element : CHANGE_ELEMENT := SELF\group_relationship.related_group; -- RELATED_GROUP : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE
|
|
|
|
END_ENTITY;
|
|
|
|
ENTITY change_group_assignment
|
|
SUBTYPE OF (group_assignment);
|
|
SELF\group_assignment.assigned_group : change_group;
|
|
item : change_relationship_select;
|
|
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 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 frozen_assignment
|
|
SUBTYPE OF (approval_assignment);
|
|
items : SET [1:?] OF change_management_object;
|
|
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 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_protocol_definition;
|
|
status : label;
|
|
application_interpreted_model_schema_name : label;
|
|
application_protocol_year : year_number;
|
|
application : application_context;
|
|
END_ENTITY;
|
|
|
|
ENTITY product_context
|
|
SUBTYPE OF (application_context_element);
|
|
discipline_type : label;
|
|
END_ENTITY;
|
|
|
|
ENTITY product_definition_context
|
|
SUBTYPE OF (application_context_element);
|
|
life_cycle_stage : label;
|
|
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_definition_context_role;
|
|
name : label;
|
|
description : OPTIONAL text;
|
|
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 applied_effectivity_assignment
|
|
SUBTYPE OF (effectivity_assignment);
|
|
items : SET[1:?] OF effectivity_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 object_role;
|
|
name : label;
|
|
description : OPTIONAL text;
|
|
END_ENTITY;
|
|
|
|
ENTITY role_association;
|
|
role : object_role;
|
|
item_with_role : role_select;
|
|
END_ENTITY;
|
|
|
|
ENTITY dated_effectivity
|
|
SUBTYPE OF (effectivity);
|
|
effectivity_end_date : OPTIONAL date_time_or_event_occurrence;
|
|
effectivity_start_date : date_time_or_event_occurrence;
|
|
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_relationship;
|
|
name : label;
|
|
description : OPTIONAL text;
|
|
related_effectivity : effectivity;
|
|
relating_effectivity : effectivity;
|
|
END_ENTITY;
|
|
|
|
ENTITY lot_effectivity
|
|
SUBTYPE OF (effectivity);
|
|
effectivity_lot_id : identifier;
|
|
effectivity_lot_size : measure_with_unit;
|
|
END_ENTITY;
|
|
|
|
ENTITY serial_numbered_effectivity
|
|
SUBTYPE OF (effectivity);
|
|
effectivity_start_id : identifier;
|
|
effectivity_end_id : OPTIONAL identifier;
|
|
END_ENTITY;
|
|
|
|
ENTITY time_interval_based_effectivity
|
|
SUBTYPE OF (effectivity);
|
|
effectivity_period : time_interval;
|
|
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 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 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_terminal
|
|
SUBTYPE OF (component_feature);
|
|
END_ENTITY;
|
|
|
|
ENTITY make_from_feature_relationship
|
|
SUBTYPE OF (component_feature_relationship);
|
|
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 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_source
|
|
SUBTYPE OF (group);
|
|
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 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 physical_component_feature
|
|
SUBTYPE OF (component_feature);
|
|
END_ENTITY;
|
|
|
|
ENTITY physical_component_terminal
|
|
SUBTYPE OF (component_terminal,
|
|
physical_component_feature);
|
|
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 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 interfaced_group_component
|
|
SUBTYPE OF (assembly_group_component);
|
|
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 rectangular_array_placement_group_component
|
|
SUBTYPE OF (array_placement_group);
|
|
END_ENTITY;
|
|
|
|
ENTITY externally_defined_product_definition
|
|
SUPERTYPE OF (
|
|
LIBRARY_DEFINED_PRODUCT_DEFINITION)
|
|
|
|
SUBTYPE OF (product_definition, externally_defined_item);
|
|
END_ENTITY;
|
|
|
|
ENTITY library_defined_product_definition
|
|
SUBTYPE OF (externally_defined_product_definition);
|
|
DERIVE
|
|
library : external_source := SELF\externally_defined_item.source;
|
|
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 applied_external_identification_assignment
|
|
SUBTYPE OF (external_identification_assignment);
|
|
items : SET [1 : ?] OF external_identification_item;
|
|
END_ENTITY;
|
|
|
|
ENTITY circle
|
|
SUBTYPE OF (conic);
|
|
radius : positive_length_measure;
|
|
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 line
|
|
SUBTYPE OF (curve);
|
|
pnt : cartesian_point;
|
|
dir : vector;
|
|
WHERE
|
|
WR1: dir.dim = pnt.dim;
|
|
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_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 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 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 edge_curve
|
|
SUBTYPE OF(edge,geometric_representation_item);
|
|
edge_geometry : curve;
|
|
same_sense : BOOLEAN;
|
|
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 poly_loop
|
|
SUBTYPE OF (loop,geometric_representation_item);
|
|
polygon : LIST [3:?] OF UNIQUE cartesian_point;
|
|
END_ENTITY;
|
|
|
|
ENTITY vertex_point
|
|
SUBTYPE OF(vertex,geometric_representation_item);
|
|
vertex_geometry : point;
|
|
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_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 bezier_curve
|
|
SUBTYPE OF (b_spline_curve);
|
|
END_ENTITY;
|
|
|
|
ENTITY bezier_surface
|
|
SUBTYPE OF (b_spline_surface);
|
|
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 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 uniform_curve
|
|
SUBTYPE OF (b_spline_curve);
|
|
END_ENTITY;
|
|
|
|
ENTITY uniform_surface
|
|
SUBTYPE OF (b_spline_surface);
|
|
END_ENTITY;
|
|
|
|
ENTITY bounded_curve
|
|
SUPERTYPE OF (ONEOF (
|
|
POLYLINE,
|
|
B_SPLINE_CURVE,
|
|
TRIMMED_CURVE,
|
|
BOUNDED_PCURVE,
|
|
BOUNDED_SURFACE_CURVE,
|
|
COMPOSITE_CURVE))
|
|
SUBTYPE OF (curve);
|
|
END_ENTITY;
|
|
|
|
ENTITY bounded_surface
|
|
SUPERTYPE OF (ONEOF (
|
|
B_SPLINE_SURFACE,
|
|
RECTANGULAR_TRIMMED_SURFACE,
|
|
CURVE_BOUNDED_SURFACE,
|
|
RECTANGULAR_COMPOSITE_SURFACE))
|
|
SUBTYPE OF (surface);
|
|
END_ENTITY;
|
|
|
|
ENTITY conic
|
|
SUPERTYPE OF (ONEOF (
|
|
CIRCLE,
|
|
ELLIPSE,
|
|
HYPERBOLA,
|
|
PARABOLA))
|
|
SUBTYPE OF (curve);
|
|
position: axis2_placement;
|
|
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 curve
|
|
SUPERTYPE OF (ONEOF (
|
|
LINE,
|
|
CONIC,
|
|
PCURVE,
|
|
SURFACE_CURVE,
|
|
OFFSET_CURVE_2D,
|
|
OFFSET_CURVE_3D,
|
|
CURVE_REPLICA))
|
|
SUBTYPE OF (geometric_representation_item);
|
|
END_ENTITY;
|
|
|
|
ENTITY cylindrical_surface
|
|
SUBTYPE OF (elementary_surface);
|
|
radius : positive_length_measure;
|
|
END_ENTITY;
|
|
|
|
ENTITY ellipse
|
|
SUBTYPE OF (conic);
|
|
semi_axis_1 : positive_length_measure;
|
|
semi_axis_2 : positive_length_measure;
|
|
END_ENTITY;
|
|
|
|
ENTITY hyperbola
|
|
SUBTYPE OF (conic);
|
|
semi_axis : positive_length_measure;
|
|
semi_imag_axis : positive_length_measure;
|
|
END_ENTITY;
|
|
|
|
ENTITY oriented_surface
|
|
SUBTYPE OF (surface);
|
|
orientation : BOOLEAN;
|
|
END_ENTITY;
|
|
|
|
ENTITY parabola
|
|
SUBTYPE OF (conic);
|
|
focal_dist : length_measure;
|
|
WHERE
|
|
WR1: focal_dist <> 0.0;
|
|
END_ENTITY;
|
|
|
|
ENTITY plane
|
|
SUBTYPE OF (elementary_surface);
|
|
END_ENTITY;
|
|
|
|
ENTITY point_on_curve
|
|
SUBTYPE OF (point);
|
|
basis_curve : curve;
|
|
point_parameter : parameter_value;
|
|
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 surface
|
|
SUPERTYPE OF (ONEOF (
|
|
ELEMENTARY_SURFACE,
|
|
SWEPT_SURFACE,
|
|
BOUNDED_SURFACE,
|
|
OFFSET_SURFACE,
|
|
SURFACE_REPLICA))
|
|
SUBTYPE OF (geometric_representation_item);
|
|
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 swept_surface
|
|
SUPERTYPE OF (ONEOF (
|
|
SURFACE_OF_LINEAR_EXTRUSION,
|
|
SURFACE_OF_REVOLUTION))
|
|
SUBTYPE OF (surface);
|
|
swept_curve : curve;
|
|
END_ENTITY;
|
|
|
|
ENTITY toroidal_surface
|
|
SUBTYPE OF (elementary_surface);
|
|
major_radius : positive_length_measure;
|
|
minor_radius : positive_length_measure;
|
|
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_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 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 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 description_attribute;
|
|
attribute_value : text;
|
|
described_item : description_attribute_select;
|
|
END_ENTITY;
|
|
|
|
ENTITY id_attribute;
|
|
attribute_value : identifier;
|
|
identified_item : id_attribute_select;
|
|
END_ENTITY;
|
|
|
|
ENTITY global_unit_assigned_context
|
|
SUBTYPE OF (representation_context);
|
|
units : SET [1:?] OF unit;
|
|
END_ENTITY;
|
|
|
|
ENTITY descriptive_representation_item
|
|
SUPERTYPE OF (ONEOF (
|
|
TAGGED_TEXT_ITEM,
|
|
UNIFORM_RESOURCE_IDENTIFIER) )
|
|
SUBTYPE OF (representation_item);
|
|
description : text;
|
|
END_ENTITY;
|
|
|
|
ENTITY global_uncertainty_assigned_context
|
|
SUBTYPE OF (representation_context);
|
|
uncertainty : SET [1:?] OF uncertainty_measure_with_unit;
|
|
END_ENTITY;
|
|
|
|
ENTITY representation;
|
|
name : label;
|
|
items : SET[1:?] OF representation_item;
|
|
context_of_items : representation_context;
|
|
DERIVE
|
|
id : identifier := get_id_value (SELF);
|
|
description : text := get_description_value (SELF);
|
|
WHERE
|
|
WR1: SIZEOF (USEDIN (SELF, '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_item
|
|
SUPERTYPE OF (ONEOF(
|
|
BINARY_REPRESENTATION_ITEM,
|
|
COMPOUND_REPRESENTATION_ITEM,
|
|
VALUE_REPRESENTATION_ITEM,
|
|
BOOLEAN_REPRESENTATION_ITEM,
|
|
DATE_REPRESENTATION_ITEM,
|
|
DATE_TIME_REPRESENTATION_ITEM,
|
|
INTEGER_REPRESENTATION_ITEM,
|
|
LOGICAL_REPRESENTATION_ITEM,
|
|
RATIONAL_REPRESENTATION_ITEM,
|
|
REAL_REPRESENTATION_ITEM,
|
|
MAPPED_ITEM,
|
|
STYLED_ITEM));
|
|
name : label;
|
|
WHERE
|
|
WR1: SIZEOF(using_representations(SELF)) > 0;
|
|
END_ENTITY;
|
|
|
|
ENTITY representation_relationship;
|
|
name : label;
|
|
description : OPTIONAL text;
|
|
rep_1 : representation;
|
|
rep_2 : representation;
|
|
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 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_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_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_assessment_specification;
|
|
description : text;
|
|
END_ENTITY;
|
|
|
|
ENTITY data_quality_criterion_assessment_association;
|
|
criterion : data_quality_criterion;
|
|
assessment_specification : data_quality_assessment_specification;
|
|
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_report_request
|
|
ABSTRACT SUPERTYPE OF (ONEOF (
|
|
SUMMARY_REPORT_REQUEST,
|
|
DETAILED_REPORT_REQUEST));
|
|
description : text;
|
|
criterion_of_report_request : data_quality_criterion;
|
|
END_ENTITY;
|
|
|
|
ENTITY summary_report_request
|
|
SUBTYPE OF(data_quality_report_request);
|
|
summary_report_request_type : summary_report_type;
|
|
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;
|
|
WHERE
|
|
WR1 : SELF\detailed_report_request.detailed_report_request_type
|
|
<> INFERIOR_QUALITY_ELEMENT;
|
|
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 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 date_and_time;
|
|
date_component : date;
|
|
time_component : local_time;
|
|
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 date
|
|
SUPERTYPE OF (ONEOF (
|
|
CALENDAR_DATE,
|
|
ORDINAL_DATE,
|
|
WEEK_OF_YEAR_AND_DAY_DATE,
|
|
YEAR_MONTH));
|
|
year_component : year_number;
|
|
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_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_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 applied_organization_assignment
|
|
SUBTYPE OF (organization_assignment);
|
|
items : SET[1:?] OF organization_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 organization_assignment
|
|
ABSTRACT SUPERTYPE;
|
|
assigned_organization : organization;
|
|
role : organization_role;
|
|
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_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 name_attribute;
|
|
attribute_value : label;
|
|
named_item : name_attribute_select;
|
|
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 organization;
|
|
id : OPTIONAL identifier;
|
|
name : label;
|
|
description : OPTIONAL text;
|
|
END_ENTITY;
|
|
|
|
ENTITY organization_relationship;
|
|
name : label;
|
|
description : OPTIONAL text;
|
|
relating_organization : organization;
|
|
related_organization : organization;
|
|
END_ENTITY;
|
|
|
|
ENTITY organizational_address
|
|
SUBTYPE OF (address);
|
|
organizations : SET [1:?] OF organization;
|
|
description : OPTIONAL text;
|
|
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 personal_address
|
|
SUBTYPE OF (address);
|
|
people : SET [1:?] OF person;
|
|
description : OPTIONAL text;
|
|
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 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 data_quality_definition;
|
|
description : text;
|
|
END_ENTITY;
|
|
|
|
ENTITY data_quality_definition_representation_relationship;
|
|
description : text;
|
|
definition : data_quality_definition;
|
|
used_representation : used_quality_representation_select;
|
|
END_ENTITY;
|
|
|
|
ENTITY product_data_and_data_quality_relationship;
|
|
description : text;
|
|
product_data : product_definition;
|
|
data_quality : data_quality_definition;
|
|
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 software_for_data_quality_check;
|
|
description : text;
|
|
software_name : text;
|
|
software_version : text;
|
|
data_quality : data_quality_definition_representation_relationship;
|
|
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
|
|
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_with_judgement
|
|
SUBTYPE OF(data_quality_inspection_result);
|
|
judgement : BOOLEAN;
|
|
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_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);
|
|
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_report_measurement_association
|
|
SUBTYPE OF(representation_item_relationship);
|
|
SELF\representation_item_relationship.related_representation_item : data_quality_inspection_report;
|
|
SELF\representation_item_relationship.relating_representation_item : data_quality_measurement_requirement;
|
|
END_ENTITY;
|
|
|
|
ENTITY measure_representation_item
|
|
SUBTYPE OF (representation_item, measure_with_unit);
|
|
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 expanded_uncertainty
|
|
SUBTYPE OF (standard_uncertainty);
|
|
coverage_factor : REAL;
|
|
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))) < 2;
|
|
WR2: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_ITEM'
|
|
IN TYPEOF(SELF\measure_qualification.qualified_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))) < 2;
|
|
END_ENTITY;
|
|
|
|
ENTITY qualitative_uncertainty
|
|
SUBTYPE OF (uncertainty_qualifier);
|
|
uncertainty_value : text;
|
|
END_ENTITY;
|
|
|
|
ENTITY precision_qualifier;
|
|
precision_value : INTEGER;
|
|
END_ENTITY;
|
|
|
|
ENTITY standard_uncertainty
|
|
SUPERTYPE OF (
|
|
EXPANDED_UNCERTAINTY)
|
|
SUBTYPE OF (uncertainty_qualifier);
|
|
uncertainty_value : REAL;
|
|
END_ENTITY;
|
|
|
|
ENTITY type_qualifier;
|
|
name : label;
|
|
END_ENTITY;
|
|
|
|
ENTITY uncertainty_qualifier
|
|
SUPERTYPE OF (ONEOF (
|
|
STANDARD_UNCERTAINTY,
|
|
QUALITATIVE_UNCERTAINTY));
|
|
measure_name : label;
|
|
description : text;
|
|
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_assessment_by_numerical_test
|
|
SUBTYPE OF(data_quality_assessment_specification);
|
|
threshold : shape_data_quality_value_limit_type_select;
|
|
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_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_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_lower_value_limit
|
|
SUBTYPE OF(shape_data_quality_value_limit);
|
|
WHERE
|
|
WR1 : SELF\qualified_representation_item.qualifiers[1].name = 'minimum';
|
|
END_ENTITY;
|
|
|
|
ENTITY shape_summary_request_with_representative_value
|
|
SUBTYPE OF(summary_report_request);
|
|
END_ENTITY;
|
|
|
|
ENTITY shape_data_quality_assessment_by_logical_test
|
|
SUBTYPE OF(data_quality_assessment_specification);
|
|
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_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 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_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 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 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 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 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 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 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 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_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 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; -- ISO 10303-59 error!
|
|
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_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_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 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 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 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 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_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 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 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 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_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 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 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 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 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 nearly_degenerate_geometry
|
|
ABSTRACT SUPERTYPE OF (ONEOF (
|
|
SMALL_AREA_SURFACE,
|
|
SHORT_LENGTH_CURVE,
|
|
ENTIRELY_NARROW_SURFACE))
|
|
SUBTYPE OF(inapt_geometry);
|
|
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 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 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 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 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 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 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_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 self_intersecting_geometry
|
|
ABSTRACT SUPERTYPE OF (ONEOF (
|
|
SELF_INTERSECTING_CURVE,
|
|
SELF_INTERSECTING_SURFACE))
|
|
SUBTYPE OF(inapt_geometry);
|
|
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_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 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 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 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 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 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 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 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 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 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 overlapping_geometry
|
|
ABSTRACT SUPERTYPE OF (ONEOF (
|
|
PARTLY_OVERLAPPING_CURVES,
|
|
PARTLY_OVERLAPPING_SURFACES))
|
|
SUBTYPE OF(inapt_geometry);
|
|
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_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 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_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_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_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_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_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 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 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 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 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 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 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 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 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 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_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_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 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 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 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 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 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 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 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_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 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_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_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 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 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 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 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 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 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 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 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 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 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_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 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 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_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 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 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 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 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 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 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 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 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 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 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 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 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_measurement_accuracy;
|
|
description : text;
|
|
range : shape_data_quality_value_limit_type_select;
|
|
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 compound_representation_item
|
|
SUPERTYPE OF (ONEOF(
|
|
POINT_AND_VECTOR,
|
|
POINT_PATH,
|
|
ROW_REPRESENTATION_ITEM,
|
|
TABLE_REPRESENTATION_ITEM))
|
|
SUBTYPE OF (representation_item);
|
|
item_element : compound_item_definition;
|
|
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_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_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_result
|
|
SUBTYPE OF(data_quality_inspection_result);
|
|
WHERE
|
|
WR1 : 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.'+
|
|
'SHAPE_DATA_QUALITY_CRITERION' IN TYPEOF
|
|
(SELF\data_quality_inspection_result.criterion_inspected);
|
|
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_inspection_result_accuracy_association;
|
|
applied_specific_accuracy : shape_measurement_accuracy;
|
|
shape_data_quality_result : shape_data_quality_inspection_result;
|
|
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);
|
|
inspected_elements : SET [1:?] OF inspected_shape_element_select;
|
|
measured_value : measured_value_select;
|
|
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 extreme_instance;
|
|
locations_of_extreme_value : SET [1:?] OF location_of_extreme_value_select;
|
|
measured_value : measured_value_select;
|
|
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 plane_angle_and_ratio_pair
|
|
SUBTYPE OF(founded_item);
|
|
plane_angle_value : plane_angle_measure;
|
|
ratio_value : ratio_measure;
|
|
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 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_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_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 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 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 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 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_representation_item;
|
|
UNIQUE
|
|
UR1 : definition;
|
|
END_ENTITY;
|
|
|
|
ENTITY chain_based_geometric_item_specific_usage
|
|
SUBTYPE OF (geometric_item_specific_usage,
|
|
chain_based_item_identified_representation_usage);
|
|
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 defined_constraint
|
|
ABSTRACT SUPERTYPE OF (
|
|
EQUAL_PARAMETER_CONSTRAINT)
|
|
SUBTYPE OF (explicit_constraint);
|
|
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 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_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_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 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 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 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 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 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 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 pdgc_with_dimension
|
|
SUBTYPE OF (point_distance_geometric_constraint);
|
|
distance_value : non_negative_length_measure;
|
|
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 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 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 cdgc_with_dimension
|
|
SUBTYPE OF (curve_distance_geometric_constraint);
|
|
distance_value : non_negative_length_measure;
|
|
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 sdgc_with_dimension
|
|
SUBTYPE OF (surface_distance_geometric_constraint);
|
|
distance_value : non_negative_length_measure;
|
|
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 rgc_with_dimension
|
|
SUBTYPE OF (radius_geometric_constraint);
|
|
radius_value : positive_length_measure;
|
|
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 clgc_with_dimension
|
|
SUBTYPE OF (curve_length_geometric_constraint);
|
|
length_value : positive_length_measure;
|
|
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 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 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 agc_with_dimension
|
|
SUBTYPE OF (angle_geometric_constraint);
|
|
angle_value : plane_angle_measure;
|
|
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 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 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 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 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 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_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 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 surface_patch_set
|
|
SUBTYPE OF (geometric_representation_item);
|
|
patches : SET[1:?] OF surface_patch;
|
|
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 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 cartesian_point
|
|
|
|
SUBTYPE OF (point);
|
|
coordinates : LIST [1:3] OF length_measure;
|
|
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 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 geometric_representation_context
|
|
SUBTYPE OF (representation_context);
|
|
coordinate_space_dimension : dimension_count;
|
|
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,
|
|
VOLUME,
|
|
HALF_SPACE_SOLID,
|
|
HALF_SPACE_2D,
|
|
SHELL_BASED_SURFACE_MODEL,
|
|
FACE_BASED_SURFACE_MODEL,
|
|
SHELL_BASED_WIREFRAME_MODEL,
|
|
EDGE_BASED_WIREFRAME_MODEL,
|
|
GEOMETRIC_SET))
|
|
SUBTYPE OF (representation_item);
|
|
DERIVE
|
|
dim : dimension_count := dimension_of(SELF);
|
|
WHERE
|
|
WR1: SIZEOF (QUERY (using_rep <* using_representations (SELF) |
|
|
NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_REPRESENTATION_CONTEXT' IN
|
|
TYPEOF (using_rep.context_of_items)))) = 0;
|
|
END_ENTITY;
|
|
|
|
ENTITY applied_identification_assignment
|
|
SUBTYPE OF (identification_assignment);
|
|
items : SET[1:?] OF identification_item;
|
|
END_ENTITY;
|
|
|
|
ENTITY shape_representation
|
|
SUBTYPE OF (representation);
|
|
END_ENTITY;
|
|
|
|
ENTITY item_defined_transformation;
|
|
name : label;
|
|
description : OPTIONAL text;
|
|
transform_item_1 : representation_item;
|
|
transform_item_2 : representation_item;
|
|
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 representation_map;
|
|
mapping_origin : representation_item;
|
|
mapped_representation : representation;
|
|
INVERSE
|
|
map_usage : SET[1:?] OF mapped_item FOR mapping_source;
|
|
WHERE
|
|
WR1: item_in_context(SELF.mapping_origin,
|
|
SELF.mapped_representation.context_of_items);
|
|
END_ENTITY;
|
|
|
|
ENTITY connection_zone_interface_plane_relationship
|
|
SUBTYPE OF (shape_aspect, shape_aspect_relationship);
|
|
UNIQUE
|
|
UR1: SELF\shape_aspect_relationship.name;
|
|
END_ENTITY;
|
|
|
|
ENTITY feature_definition_with_connection_area
|
|
SUBTYPE OF (shape_feature_definition);
|
|
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 partial_document_with_structured_text_representation_assignment
|
|
SUBTYPE OF (applied_document_usage_constraint_assignment, characterized_object);
|
|
END_ENTITY;
|
|
|
|
ENTITY specification_definition
|
|
SUBTYPE OF (product_definition);
|
|
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; -- applied_area
|
|
|
|
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; -- Boss
|
|
|
|
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; -- boss_top
|
|
|
|
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; -- chamfer
|
|
|
|
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; -- chamfer_offset
|
|
|
|
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; -- circular_pattern
|
|
|
|
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; -- circular_closed_profile
|
|
|
|
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; -- closed_path_profile
|
|
|
|
ENTITY composite_hole
|
|
SUBTYPE OF (compound_feature);
|
|
WHERE
|
|
WR1: (SELF\characterized_object.description IN ['counterbore',
|
|
'countersunk']);
|
|
WR2: 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: (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; -- composite_hole
|
|
|
|
ENTITY compound_feature
|
|
SUBTYPE OF (feature_definition);
|
|
WHERE
|
|
WR1: 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: 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: (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: 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: (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: (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; -- compound_feature
|
|
|
|
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; -- direction_shape_representation
|
|
|
|
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; -- edge_round
|
|
|
|
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; -- externally_defined_feature_definition
|
|
|
|
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; -- face_shape_representation
|
|
|
|
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; -- feature_component_definition
|
|
|
|
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; -- feature_component_relationship
|
|
|
|
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; -- feature_pattern
|
|
|
|
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 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; -- flat_face
|
|
|
|
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 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; -- hole_bottom
|
|
|
|
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; -- linear_profile
|
|
|
|
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; -- location_shape_representation
|
|
|
|
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; -- marking
|
|
|
|
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; -- modified_pattern
|
|
|
|
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 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 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; -- outer_round
|
|
|
|
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; -- outside_profile
|
|
|
|
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; -- partial_circular_profile
|
|
|
|
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; -- path_feature_component
|
|
|
|
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; -- path_shape_representation
|
|
|
|
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; -- pattern_offset_membership
|
|
|
|
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; -- pattern_omit_membership
|
|
|
|
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 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; -- pocket
|
|
|
|
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; -- Pocket_bottom
|
|
|
|
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; -- profile_floor
|
|
|
|
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; -- protrusion
|
|
|
|
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; -- rectangular_closed_profile
|
|
|
|
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; -- rectangular_pattern
|
|
|
|
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; -- removal_volume
|
|
|
|
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; -- replicate_feature
|
|
|
|
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; -- revolved_profile
|
|
|
|
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; -- rib_top
|
|
|
|
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; -- rib_top_floor
|
|
|
|
ENTITY round_hole
|
|
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 = '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: (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: (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: (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: 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; -- round_hole
|
|
|
|
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; -- rounded_end
|
|
|
|
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; -- rounded_u_profile
|
|
|
|
ENTITY shape_defining_relationship
|
|
SUBTYPE OF (shape_aspect_relationship);
|
|
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; -- spherical_cap
|
|
|
|
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; -- Square_U_profile
|
|
|
|
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; -- step
|
|
|
|
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; -- slot
|
|
|
|
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; -- slot_end
|
|
|
|
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; -- taper
|
|
|
|
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; -- tee_profile
|
|
|
|
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; -- thread
|
|
|
|
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; -- thread_runout
|
|
|
|
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; -- transition_feature
|
|
|
|
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; -- turned_knurl
|
|
|
|
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; -- vee_profile
|
|
|
|
ENTITY expression_conversion_based_unit
|
|
SUBTYPE OF (context_dependent_unit, variable_semantics);
|
|
INVERSE
|
|
associated_variable_environment: environment FOR semantics;
|
|
END_ENTITY;
|
|
|
|
ENTITY dielectric_constant_measure_with_unit
|
|
SUBTYPE OF (ratio_measure_with_unit);
|
|
END_ENTITY;
|
|
|
|
ENTITY loss_tangent_measure_with_unit
|
|
SUBTYPE OF (ratio_measure_with_unit);
|
|
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 polar_complex_number_literal
|
|
SUBTYPE OF (generic_literal);
|
|
radius : REAL;
|
|
angle : REAL;
|
|
WHERE
|
|
WR1: radius >= 0;
|
|
WR2: { 0 <= angle < 2*PI };
|
|
END_ENTITY;
|
|
|
|
ENTITY scattering_parameter
|
|
SUBTYPE OF (polar_complex_number_literal);
|
|
WHERE
|
|
WR1: SIZEOF(TYPEOF(SELF) - (TYPEOF(SELF\polar_complex_number_literal ||
|
|
SELF\scattering_parameter))) = 0;
|
|
END_ENTITY;
|
|
|
|
ENTITY connected_edge_set
|
|
SUBTYPE OF (topological_representation_item);
|
|
ces_edges : SET [1:?] OF edge;
|
|
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 edge
|
|
SUPERTYPE OF (ONEOF (
|
|
EDGE_CURVE,
|
|
ORIENTED_EDGE,
|
|
SUBEDGE))
|
|
SUBTYPE OF (topological_representation_item);
|
|
edge_start : vertex;
|
|
edge_end : vertex;
|
|
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 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_bound
|
|
SUBTYPE OF(topological_representation_item);
|
|
bound : loop;
|
|
orientation : BOOLEAN;
|
|
END_ENTITY;
|
|
|
|
ENTITY face_outer_bound
|
|
SUBTYPE OF (face_bound);
|
|
END_ENTITY;
|
|
|
|
ENTITY loop
|
|
SUPERTYPE OF (ONEOF (
|
|
VERTEX_LOOP,
|
|
EDGE_LOOP,
|
|
POLY_LOOP))
|
|
SUBTYPE OF (topological_representation_item);
|
|
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 path
|
|
SUPERTYPE OF (ONEOF (
|
|
EDGE_LOOP,
|
|
ORIENTED_PATH))
|
|
SUBTYPE OF (topological_representation_item);
|
|
edge_list : LIST [1:?] OF UNIQUE oriented_edge;
|
|
WHERE
|
|
WR1: path_head_to_tail(SELF);
|
|
END_ENTITY;
|
|
|
|
ENTITY topological_representation_item
|
|
SUPERTYPE OF (ONEOF (
|
|
VERTEX,
|
|
EDGE,
|
|
FACE_BOUND,
|
|
FACE,
|
|
VERTEX_SHELL,
|
|
WIRE_SHELL,
|
|
CONNECTED_EDGE_SET,
|
|
CONNECTED_FACE_SET,(
|
|
LOOP
|
|
ANDOR
|
|
PATH)))
|
|
SUBTYPE OF (representation_item);
|
|
END_ENTITY;
|
|
|
|
ENTITY vertex
|
|
SUBTYPE OF (topological_representation_item);
|
|
END_ENTITY;
|
|
|
|
ENTITY vertex_loop
|
|
SUBTYPE OF (loop);
|
|
loop_vertex : vertex;
|
|
END_ENTITY;
|
|
|
|
ENTITY assembly_geometric_constraint
|
|
ABSTRACT SUPERTYPE OF (ONEOF (
|
|
BINARY_ASSEMBLY_CONSTRAINT,
|
|
FIXED_CONSTITUENT_ASSEMBLY_CONSTRAINT))
|
|
SUBTYPE OF (explicit_constraint);
|
|
|
|
END_ENTITY;-- assembly_geometric_constraint
|
|
|
|
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;-- binary_assembly_constraint
|
|
|
|
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;-- fixed_constituent_assembly_constraint
|
|
|
|
ENTITY parallel_assembly_constraint
|
|
SUBTYPE OF (binary_assembly_constraint,
|
|
parallel_geometric_constraint);
|
|
END_ENTITY;-- parallel_assembly_constraint
|
|
|
|
ENTITY parallel_assembly_constraint_with_dimension
|
|
SUBTYPE OF (parallel_assembly_constraint,
|
|
pgc_with_dimension);
|
|
END_ENTITY;-- parallel_assembly_constraint_with_dimension
|
|
|
|
ENTITY surface_distance_assembly_constraint_with_dimension
|
|
SUBTYPE OF (binary_assembly_constraint,
|
|
sdgc_with_dimension);
|
|
END_ENTITY;-- surface_distance_assembly_constraint_with_dimension
|
|
|
|
ENTITY angle_assembly_constraint_with_dimension
|
|
SUBTYPE OF (binary_assembly_constraint,
|
|
agc_with_dimension);
|
|
END_ENTITY;-- angle_assembly_constraint_with_dimension
|
|
|
|
ENTITY perpendicular_assembly_constraint
|
|
SUBTYPE OF (binary_assembly_constraint,
|
|
perpendicular_geometric_constraint);
|
|
END_ENTITY;-- perpendicular_assembly_constraint
|
|
|
|
ENTITY incidence_assembly_constraint
|
|
SUBTYPE OF (binary_assembly_constraint,
|
|
incidence_geometric_constraint);
|
|
END_ENTITY;-- incidence_assembly_constraint
|
|
|
|
ENTITY coaxial_assembly_constraint
|
|
SUBTYPE OF (binary_assembly_constraint,
|
|
coaxial_geometric_constraint);
|
|
END_ENTITY;-- coaxial_assembly_constraint
|
|
|
|
ENTITY tangent_assembly_constraint
|
|
SUBTYPE OF (binary_assembly_constraint,
|
|
tangent_geometric_constraint);
|
|
END_ENTITY;-- tangent_assembly_constraint
|
|
|
|
ENTITY kinematic_control;
|
|
controlled_mechanism : mechanism_representation;
|
|
contained_kinematic_programs : kinematic_analysis_definition;
|
|
END_ENTITY;
|
|
|
|
ENTITY prescribed_path
|
|
SUBTYPE OF (link_motion_representation_along_path);
|
|
controlling_joints : OPTIONAL SET [1 : 6] OF kinematic_joint;
|
|
END_ENTITY;
|
|
|
|
ENTITY kinematic_analysis_result;
|
|
analysed_mechanism : mechanism_representation; -- LK
|
|
result : kinematic_result;
|
|
(*
|
|
WHERE
|
|
WR1: ('KINEMATIC_ANALYSIS_CONTROL_AND_RESULT_SCHEMA.RESULTING_PATH' IN TYPEOF (result))
|
|
XOR
|
|
(SIZEOF (QUERY (result <* contained_kinematic_results |
|
|
(('KINEMATIC_ANALYSIS_CONTROL_AND_RESULT_SCHEMA.'+
|
|
'INTERPOLATED_CONFIGURATION_SEQUENCE' IN TYPEOF (result))
|
|
AND
|
|
(SIZEOF (QUERY (sequence <* result\
|
|
interpolated_configuration_sequence.interpolation |
|
|
(sequence.interpolation <> undefined ))) > 0)))) = 0);
|
|
*)
|
|
END_ENTITY;
|
|
|
|
ENTITY kinematic_analysis_consistency;
|
|
control : kinematic_control;
|
|
result : kinematic_analysis_result;
|
|
WHERE
|
|
WR1: control.controlled_mechanism :=: result.analysed_mechanism;
|
|
END_ENTITY;
|
|
|
|
ENTITY resulting_path
|
|
SUBTYPE OF (link_motion_representation_along_path);
|
|
controlling_joints : SET [1 : ?] OF kinematic_joint;
|
|
END_ENTITY;
|
|
|
|
ENTITY action_method;
|
|
name : label;
|
|
description : OPTIONAL text;
|
|
consequence : text;
|
|
purpose : text;
|
|
END_ENTITY;
|
|
|
|
ENTITY assembly_component_usage
|
|
SUPERTYPE OF (ONEOF (
|
|
NEXT_ASSEMBLY_USAGE_OCCURRENCE,
|
|
SPECIFIED_HIGHER_USAGE_OCCURRENCE,
|
|
PROMISSORY_USAGE_OCCURRENCE))
|
|
SUBTYPE OF (product_definition_usage);
|
|
reference_designator : OPTIONAL identifier;
|
|
END_ENTITY;
|
|
|
|
ENTITY next_assembly_usage_occurrence
|
|
SUBTYPE OF (assembly_component_usage);
|
|
END_ENTITY;
|
|
|
|
ENTITY promissory_usage_occurrence
|
|
SUBTYPE OF (assembly_component_usage);
|
|
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 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 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 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_specification
|
|
SUBTYPE OF (product_identification, configurable_item);
|
|
END_ENTITY;
|
|
|
|
ENTITY product_definition_relationship;
|
|
id : identifier;
|
|
name : label;
|
|
description : OPTIONAL text;
|
|
relating_product_definition : product_definition;
|
|
related_product_definition : product_definition;
|
|
END_ENTITY;
|
|
|
|
ENTITY property_definition;
|
|
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_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 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 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 instance_usage_context_assignment
|
|
SUBTYPE OF (product_definition_context);
|
|
items : SET [1:?] OF instance_usage_context_select;
|
|
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_method_relationship;
|
|
name : label;
|
|
description : OPTIONAL text;
|
|
relating_method : action_method;
|
|
related_method : action_method;
|
|
END_ENTITY;
|
|
|
|
ENTITY action_resource;
|
|
name : label;
|
|
description : OPTIONAL text;
|
|
usage : SET [1:?] OF supported_item;
|
|
kind : action_resource_type;
|
|
END_ENTITY;
|
|
|
|
ENTITY action_property_representation;
|
|
name : label;
|
|
description : text;
|
|
property : action_property;
|
|
representation : representation;
|
|
END_ENTITY;
|
|
|
|
ENTITY resource_property_representation;
|
|
name : label;
|
|
description : text;
|
|
property : resource_property;
|
|
representation : representation;
|
|
END_ENTITY;
|
|
|
|
ENTITY action_property;
|
|
name : label;
|
|
description : text;
|
|
definition : characterized_action_definition;
|
|
END_ENTITY;
|
|
|
|
ENTITY action_resource_requirement;
|
|
name : label;
|
|
description : text;
|
|
kind : resource_requirement_type;
|
|
operations : SET [1:?] OF characterized_action_definition;
|
|
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_definition_process
|
|
SUBTYPE OF (action);
|
|
identification : identifier;
|
|
INVERSE
|
|
product_definitions : SET [1:?] OF process_product_association FOR process;
|
|
END_ENTITY;
|
|
|
|
ENTITY property_process
|
|
SUBTYPE OF (action);
|
|
identification : identifier;
|
|
INVERSE
|
|
properties : SET [1:?] OF process_property_association FOR process;
|
|
END_ENTITY;
|
|
|
|
ENTITY requirement_for_action_resource
|
|
SUBTYPE OF (action_resource_requirement);
|
|
resources : SET [1:?] OF action_resource;
|
|
END_ENTITY;
|
|
|
|
ENTITY resource_property;
|
|
name : label;
|
|
description : text;
|
|
resource : characterized_resource_definition;
|
|
END_ENTITY;
|
|
|
|
ENTITY resource_requirement_type;
|
|
name : label;
|
|
description : text;
|
|
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 circular_area
|
|
SUBTYPE OF (primitive_2d);
|
|
centre: cartesian_point;
|
|
radius: 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 polygonal_area
|
|
SUBTYPE OF (primitive_2d);
|
|
bounds: LIST [3:?] OF UNIQUE cartesian_point;
|
|
END_ENTITY;
|
|
|
|
ENTITY primitive_2d
|
|
SUPERTYPE OF (ONEOF(
|
|
CIRCULAR_AREA,
|
|
ELLIPTIC_AREA,
|
|
RECTANGULAR_AREA,
|
|
POLYGONAL_AREA,
|
|
ELLIPTIC_AREA,
|
|
COMPLEX_AREA))
|
|
SUBTYPE OF (geometric_representation_item);
|
|
WHERE
|
|
WR1 : SELF\geometric_representation_item.dim = 2;
|
|
END_ENTITY;
|
|
|
|
ENTITY rectangular_area
|
|
SUBTYPE OF (primitive_2d);
|
|
position: axis2_placement_2d;
|
|
x: positive_length_measure;
|
|
y: positive_length_measure;
|
|
END_ENTITY;
|
|
|
|
ENTITY boolean_result
|
|
SUBTYPE OF (geometric_representation_item);
|
|
operator : boolean_operator;
|
|
first_operand : boolean_operand;
|
|
second_operand : boolean_operand;
|
|
END_ENTITY;
|
|
|
|
ENTITY csg_solid
|
|
SUBTYPE OF (solid_model);
|
|
tree_root_expression : csg_select;
|
|
END_ENTITY;
|
|
|
|
ENTITY half_space_2d
|
|
SUBTYPE OF (geometric_representation_item);
|
|
base_curve: curve;
|
|
agreement_flag: BOOLEAN;
|
|
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; -- RELATED_PRODUCT_DEFINITION_FORMATION : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE
|
|
product_design_version : PRODUCT_DEFINITION_FORMATION := SELF\product_definition_formation_relationship.relating_product_definition_formation; -- RELATING_PRODUCT_DEFINITION_FORMATION : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE
|
|
|
|
END_ENTITY;
|
|
|
|
ENTITY product_design_to_individual
|
|
SUBTYPE OF (product_relationship);
|
|
DERIVE
|
|
individual_product : PRODUCT := SELF\product_relationship.related_product; -- RELATED_PRODUCT : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE
|
|
product_design : PRODUCT := SELF\product_relationship.relating_product; -- RELATING_PRODUCT : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE
|
|
|
|
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; -- RELATING_PRODUCT_DEFINITION_FORMATION : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE
|
|
realized_product : PRODUCT_DEFINITION_FORMATION := SELF\product_definition_formation_relationship.related_product_definition_formation; -- RELATED_PRODUCT_DEFINITION_FORMATION : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE
|
|
|
|
END_ENTITY;
|
|
|
|
ENTITY product_as_planned
|
|
SUBTYPE OF (product_definition_formation);
|
|
END_ENTITY;
|
|
|
|
ENTITY configuration_item_hierarchical_relationship
|
|
SUBTYPE OF (configuration_item_relationship);
|
|
END_ENTITY;
|
|
|
|
ENTITY configuration_item_revision_sequence
|
|
SUBTYPE OF (configuration_item_relationship);
|
|
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_item;
|
|
id : identifier;
|
|
name : label;
|
|
description : OPTIONAL text;
|
|
item_concept : product_concept;
|
|
purpose : OPTIONAL label;
|
|
END_ENTITY;
|
|
|
|
ENTITY configuration_item_relationship;
|
|
name : label;
|
|
description : OPTIONAL text;
|
|
relating_configuration_item : configuration_item;
|
|
related_configuration_item : configuration_item;
|
|
END_ENTITY;
|
|
|
|
ENTITY identification_assignment
|
|
ABSTRACT SUPERTYPE;
|
|
assigned_id : identifier;
|
|
role : identification_role;
|
|
END_ENTITY;
|
|
|
|
ENTITY product;
|
|
id : identifier;
|
|
name : label;
|
|
description : OPTIONAL text;
|
|
frame_of_reference : SET [1:?] OF product_context;
|
|
END_ENTITY;
|
|
|
|
ENTITY product_definition SUPERTYPE OF (ONEOF (
|
|
COMPOSITE_ASSEMBLY_SEQUENCE_DEFINITION,
|
|
LAMINATE_TABLE,
|
|
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_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_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 applied_action_assignment
|
|
SUBTYPE OF (action_assignment);
|
|
items : SET[1:?] OF action_items;
|
|
END_ENTITY;
|
|
|
|
ENTITY action_relationship;
|
|
name : label;
|
|
description : OPTIONAL text;
|
|
relating_action : action;
|
|
related_action : action;
|
|
END_ENTITY;
|
|
|
|
ENTITY action_status;
|
|
status : label;
|
|
assigned_action : executed_action;
|
|
END_ENTITY;
|
|
|
|
ENTITY executed_action
|
|
SUBTYPE OF (action);
|
|
END_ENTITY;
|
|
|
|
ENTITY action_assignment
|
|
ABSTRACT SUPERTYPE;
|
|
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 characterized_object;
|
|
name : label;
|
|
description : OPTIONAL text;
|
|
END_ENTITY;
|
|
|
|
ENTITY characterized_item_within_representation
|
|
SUBTYPE OF (characterized_object);
|
|
item : representation_item;
|
|
rep : representation;
|
|
UNIQUE
|
|
WR1: item, rep;
|
|
WHERE
|
|
WR2: rep IN using_representations(item);
|
|
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 UNIQUE chained_representation_link;
|
|
DERIVE
|
|
root : representation := nodes[1];
|
|
|
|
SELF\characterized_item_within_representation.rep : representation := nodes[HIINDEX(nodes)]; -- leaf : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, an attribute with the new name is in the DERIVE clause
|
|
directed_link : LIST[1:?] OF representation_relationship := get_directed_link(nodes, undirected_link);
|
|
leaf : REPRESENTATION := SELF\characterized_item_within_representation.rep; -- REP : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE
|
|
WHERE
|
|
WR1 : root :=: directed_link[1]\representation_relationship.rep_1;
|
|
WR2 : leaf :=: directed_link[HIINDEX(undirected_link)]\representation_relationship.rep_2;
|
|
WR3 : SIZEOF(nodes) :=: SIZEOF(undirected_link) + 1;
|
|
WR4 : (SIZEOF(QUERY(directed_link_element <* directed_link |(root :=: directed_link_element\representation_relationship.rep_1))) +
|
|
SIZEOF(QUERY(directed_link_element <* directed_link |(root :=: directed_link_element\representation_relationship.rep_2)))) = 1;
|
|
WR5 : (SIZEOF(QUERY(directed_link_element <* directed_link |(leaf :=: directed_link_element\representation_relationship.rep_1))) +
|
|
SIZEOF(QUERY(directed_link_element <* directed_link |(leaf :=: directed_link_element\representation_relationship.rep_2)))) = 1;
|
|
WR6 : (SIZEOF(QUERY(directed_link_element <* directed_link |(root :<>: directed_link_element\representation_relationship.rep_1))) +
|
|
SIZEOF(QUERY(directed_link_element <* directed_link |(root :<>: directed_link_element\representation_relationship.rep_2))) +
|
|
SIZEOF(QUERY(directed_link_element <* directed_link |(leaf :<>: directed_link_element\representation_relationship.rep_1))) +
|
|
SIZEOF(QUERY(directed_link_element <* directed_link |(leaf :<>: directed_link_element\representation_relationship.rep_2)))) = 2;
|
|
WR7 : NOT('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF(undirected_link[1])) OR
|
|
(root IN using_representations(undirected_link[1]));
|
|
WR8 : SIZEOF(undirected_link) = SIZEOF(directed_link);
|
|
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.derived_definition)) )) = 0;
|
|
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 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 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 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 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 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 characterized_class
|
|
SUBTYPE OF (characterized_object, class);
|
|
END_ENTITY;
|
|
|
|
ENTITY class_system
|
|
SUBTYPE OF (group);
|
|
END_ENTITY;
|
|
|
|
ENTITY applied_classification_assignment
|
|
SUBTYPE OF (classification_assignment);
|
|
items : SET[1:?] OF classification_item;
|
|
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 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 classification_assignment
|
|
ABSTRACT SUPERTYPE;
|
|
assigned_class : group;
|
|
role : classification_role;
|
|
END_ENTITY;
|
|
|
|
ENTITY known_source
|
|
SUBTYPE OF (external_source, pre_defined_item);
|
|
END_ENTITY;
|
|
|
|
ENTITY group_relationship;
|
|
name : label;
|
|
description : OPTIONAL text;
|
|
relating_group : group;
|
|
related_group : group;
|
|
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(USEDIN(derived_definition, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'GENERAL_PROPERTY_ASSOCIATION.' + 'DERIVED_DEFINITION')) = 1;
|
|
WR2: derived_definition.name = base_definition.name;
|
|
END_ENTITY;
|
|
|
|
ENTITY classification_role;
|
|
name : label;
|
|
description : OPTIONAL text;
|
|
END_ENTITY;
|
|
|
|
ENTITY applied_usage_right
|
|
SUBTYPE OF (applied_action_assignment);
|
|
SELF\applied_action_assignment.items : SET[1:?] OF ir_usage_item;
|
|
END_ENTITY;
|
|
|
|
ENTITY information_right
|
|
SUBTYPE OF (action_method);
|
|
END_ENTITY;
|
|
|
|
ENTITY information_usage_right
|
|
SUBTYPE OF (action_method);
|
|
END_ENTITY;
|
|
|
|
ENTITY right_to_usage_association
|
|
SUBTYPE OF (action_method_relationship);
|
|
SELF\action_method_relationship.relating_method : information_usage_right; -- right_usage : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, an attribute with the new name is in the DERIVE clause
|
|
SELF\action_method_relationship.related_method : information_right; -- right_applied : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, an attribute with the new name is in the DERIVE clause
|
|
DERIVE
|
|
right_applied : INFORMATION_RIGHT := SELF\action_method_relationship.related_method; -- RELATED_METHOD : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE
|
|
right_usage : INFORMATION_USAGE_RIGHT := SELF\action_method_relationship.relating_method; -- RELATING_METHOD : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE
|
|
|
|
END_ENTITY;
|
|
|
|
ENTITY usage_association
|
|
SUBTYPE OF (action_method_relationship);
|
|
SELF\action_method_relationship.relating_method : information_usage_right; -- relating : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, an attribute with the new name is in the DERIVE clause
|
|
SELF\action_method_relationship.related_method : information_usage_right; -- related : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, an attribute with the new name is in the DERIVE clause
|
|
DERIVE
|
|
related : INFORMATION_USAGE_RIGHT := SELF\action_method_relationship.related_method; -- RELATED_METHOD : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE
|
|
relating : INFORMATION_USAGE_RIGHT := SELF\action_method_relationship.relating_method; -- RELATING_METHOD : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE
|
|
|
|
END_ENTITY;
|
|
|
|
ENTITY applied_action_method_assignment
|
|
SUBTYPE OF (action_method_assignment);
|
|
items : SET[1:?] OF action_method_items;
|
|
END_ENTITY;
|
|
|
|
ENTITY action_method_assignment
|
|
ABSTRACT SUPERTYPE;
|
|
assigned_action_method : action_method;
|
|
role : action_method_role;
|
|
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 attribute_classification_assignment
|
|
ABSTRACT SUPERTYPE;
|
|
assigned_class : group;
|
|
attribute_name : label;
|
|
role : classification_role;
|
|
END_ENTITY;
|
|
|
|
ENTITY contract_type;
|
|
description : label;
|
|
END_ENTITY;
|
|
|
|
ENTITY document_type;
|
|
product_data_type : label;
|
|
END_ENTITY;
|
|
|
|
ENTITY property_definition_relationship;
|
|
name : label;
|
|
description : text;
|
|
relating_property_definition : property_definition;
|
|
related_property_definition : property_definition;
|
|
END_ENTITY;
|
|
|
|
ENTITY product_definition_formation_with_specified_source
|
|
SUBTYPE OF (product_definition_formation);
|
|
make_or_buy : source;
|
|
END_ENTITY;
|
|
|
|
ENTITY parametric_representation_context
|
|
SUBTYPE OF (representation_context);
|
|
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 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 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 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 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 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 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_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 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 constructive_geometry_representation
|
|
SUBTYPE OF (representation);
|
|
WHERE
|
|
WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF(SELF.context_of_items)) AND ({2 <= SELF.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.FACE_SURFACE', '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;
|
|
WR4: SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'REPRESENTATION_MAP.MAPPED_REPRESENTATION') ) = 0;
|
|
END_ENTITY;
|
|
|
|
ENTITY constructive_geometry_representation_relationship
|
|
SUBTYPE OF (representation_relationship);
|
|
SELF\representation_relationship.rep_1 : constructive_geometry_representation_or_shape_represenation;
|
|
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 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 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_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 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 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 placement
|
|
SUPERTYPE OF (ONEOF (
|
|
AXIS1_PLACEMENT,
|
|
AXIS2_PLACEMENT_2D,
|
|
AXIS2_PLACEMENT_3D))
|
|
SUBTYPE OF (geometric_representation_item);
|
|
location : cartesian_point;
|
|
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 polyline
|
|
SUBTYPE OF (bounded_curve);
|
|
points : LIST [2:?] OF cartesian_point;
|
|
END_ENTITY;
|
|
|
|
ENTITY spherical_surface
|
|
SUBTYPE OF (elementary_surface);
|
|
radius : positive_length_measure;
|
|
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 apex
|
|
SUBTYPE OF (derived_shape_aspect);
|
|
END_ENTITY;
|
|
|
|
ENTITY centre_of_symmetry
|
|
SUBTYPE OF (derived_shape_aspect);
|
|
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 extension
|
|
SUBTYPE OF (derived_shape_aspect);
|
|
WHERE
|
|
WR1: SIZEOF (SELF\derived_shape_aspect.deriving_relationships)= 1;
|
|
END_ENTITY;
|
|
|
|
ENTITY geometric_alignment
|
|
SUBTYPE OF (derived_shape_aspect);
|
|
WHERE
|
|
WR1: SIZEOF (SELF\derived_shape_aspect.deriving_relationships)> 1;
|
|
END_ENTITY;
|
|
|
|
ENTITY geometric_intersection
|
|
SUBTYPE OF (derived_shape_aspect);
|
|
WHERE
|
|
WR1: SIZEOF (SELF\derived_shape_aspect.deriving_relationships)> 1;
|
|
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 perpendicular_to
|
|
SUBTYPE OF (derived_shape_aspect);
|
|
WHERE
|
|
WR1: SIZEOF (SELF\derived_shape_aspect.deriving_relationships)= 1;
|
|
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 tangent
|
|
SUBTYPE OF (derived_shape_aspect);
|
|
WHERE
|
|
WR1: SIZEOF (SELF\derived_shape_aspect.deriving_relationships)= 1;
|
|
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 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 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 externally_defined_item;
|
|
item_id : source_item;
|
|
source : external_source;
|
|
END_ENTITY;
|
|
|
|
ENTITY dimensional_location_with_datum_feature
|
|
SUBTYPE OF (datum_feature, dimensional_location);
|
|
END_ENTITY;
|
|
|
|
ENTITY dimensional_size_with_datum_feature
|
|
SUBTYPE OF (datum_feature, dimensional_size);
|
|
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 dimensional_characteristic_representation;
|
|
dimension : dimensional_characteristic;
|
|
representation : shape_dimension_representation;
|
|
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;
|
|
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;
|
|
WHERE
|
|
WR1: applies_to.product_definitional = TRUE;
|
|
END_ENTITY;
|
|
|
|
ENTITY dimensional_size_with_path
|
|
SUBTYPE OF (dimensional_size);
|
|
path : shape_aspect;
|
|
END_ENTITY;
|
|
|
|
ENTITY directed_dimensional_location
|
|
SUBTYPE OF (dimensional_location);
|
|
END_ENTITY;
|
|
|
|
ENTITY shape_dimension_representation
|
|
SUBTYPE OF (shape_representation);
|
|
SELF\representation.items : SET[1:?] OF shape_dimension_representation_item;
|
|
WHERE
|
|
WR1: SIZEOF (QUERY (temp <* items | NOT ( NOT('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF (temp)) OR (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF (temp)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' IN TYPEOF (temp))) ) )) = 0;
|
|
END_ENTITY;
|
|
|
|
ENTITY limits_and_fits;
|
|
form_variance : label;
|
|
zone_variance : label;
|
|
grade : label;
|
|
source : text;
|
|
END_ENTITY;
|
|
|
|
ENTITY plus_minus_tolerance;
|
|
range : tolerance_method_definition;
|
|
toleranced_dimension : dimensional_characteristic;
|
|
UNIQUE
|
|
UR1: toleranced_dimension;
|
|
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 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 terminator_symbol
|
|
SUBTYPE OF (annotation_symbol_occurrence);
|
|
annotated_curve : annotation_curve_occurrence;
|
|
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 draughting_annotation_occurrence
|
|
SUBTYPE OF (annotation_occurrence);
|
|
--modified wr7
|
|
WHERE
|
|
WR1: -- curve_has_curve_style:
|
|
(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: -- fill_area_has_fill_style:
|
|
(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: -- styled_fill_boundaries:
|
|
(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: -- symbol_has_symbol_style:
|
|
(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: -- allowable_symbol_representations:
|
|
(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: -- text_has_text_style:
|
|
(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: -- allowable_text:
|
|
(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',
|
|
'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TEXT_REFERENCE']) = 1);
|
|
WR8: -- text_not_nested:
|
|
(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: -- text_alignment_literals:
|
|
(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: -- text_alignment_composites:
|
|
(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: -- single_text_alignment:
|
|
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: -- single_text_font:
|
|
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: -- allowable_text_literals:
|
|
(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: -- styled_text_literal_curves:
|
|
(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: -- styled_composite_text_curves:
|
|
(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: -- curve_style_has_width:
|
|
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: -- tiling_constraints:
|
|
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: -- hatching_constraints:
|
|
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: -- text_style_constraint:
|
|
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: -- text_style_characteristics:
|
|
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_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 annotation_symbol_occurrence
|
|
SUBTYPE OF (annotation_occurrence);
|
|
SELF\styled_item.item : annotation_symbol_occurrence_item;
|
|
END_ENTITY;
|
|
|
|
ENTITY pre_defined_symbol
|
|
SUBTYPE OF (pre_defined_item);
|
|
END_ENTITY;
|
|
|
|
ENTITY applied_presented_item
|
|
SUBTYPE OF (presented_item);
|
|
items : SET[1:?] OF presented_item_select;
|
|
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_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 draughting_title;
|
|
items : SET [1:?] OF draughting_titled_item;
|
|
language : label;
|
|
contents : text;
|
|
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 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 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 iso4217_currency
|
|
SUBTYPE OF (currency);
|
|
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 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 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 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 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 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 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 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 context_dependent_unit
|
|
SUBTYPE OF (named_unit);
|
|
name : 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 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 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 capacitance_unit
|
|
SUBTYPE OF(derived_unit);
|
|
WHERE
|
|
WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.farad);
|
|
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 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 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 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 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_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 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 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 conductance_unit
|
|
SUBTYPE OF(derived_unit);
|
|
WHERE
|
|
WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.siemens);
|
|
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 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 electric_potential_unit
|
|
SUBTYPE OF(derived_unit);
|
|
WHERE
|
|
WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.volt);
|
|
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 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 energy_unit
|
|
SUBTYPE OF(derived_unit);
|
|
WHERE
|
|
WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.joule);
|
|
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 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 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_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 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 force_unit
|
|
SUBTYPE OF(derived_unit);
|
|
WHERE
|
|
WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.newton);
|
|
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 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 frequency_unit
|
|
SUBTYPE OF(derived_unit);
|
|
WHERE
|
|
WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.hertz);
|
|
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 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 illuminance_unit
|
|
SUBTYPE OF(derived_unit);
|
|
WHERE
|
|
WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.lux);
|
|
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 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 inductance_unit
|
|
SUBTYPE OF(derived_unit);
|
|
WHERE
|
|
WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.henry);
|
|
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 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 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 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_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_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 magnetic_flux_unit
|
|
SUBTYPE OF(derived_unit);
|
|
WHERE
|
|
WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.weber);
|
|
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 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 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 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 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 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 power_unit
|
|
SUBTYPE OF(derived_unit);
|
|
WHERE
|
|
WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.watt);
|
|
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 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 pressure_unit
|
|
SUBTYPE OF(derived_unit);
|
|
WHERE
|
|
WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.pascal);
|
|
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 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 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 resistance_unit
|
|
SUBTYPE OF(derived_unit);
|
|
WHERE
|
|
WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.ohm);
|
|
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 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 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 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 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 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 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 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 composite_unit_shape_aspect
|
|
SUBTYPE OF (composite_shape_aspect);
|
|
END_ENTITY;
|
|
|
|
ENTITY cc_design_approval
|
|
SUBTYPE OF (approval_assignment);
|
|
items : SET[1:?] OF approved_item;
|
|
END_ENTITY;
|
|
|
|
ENTITY between_shape_aspect
|
|
SUBTYPE OF (continuous_shape_aspect);
|
|
END_ENTITY;
|
|
|
|
ENTITY continuous_shape_aspect
|
|
SUBTYPE OF (composite_shape_aspect);
|
|
END_ENTITY;
|
|
|
|
ENTITY composite_shape_aspect
|
|
SUPERTYPE OF (ONEOF (
|
|
ALL_AROUND_SHAPE_ASPECT,
|
|
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_group_shape_aspect
|
|
SUBTYPE OF (composite_shape_aspect);
|
|
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 contacting_feature
|
|
SUBTYPE OF (shape_aspect);
|
|
WHERE
|
|
WR1: SELF\shape_aspect.product_definitional = FALSE;
|
|
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_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_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_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 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 geometric_contact
|
|
SUBTYPE OF (derived_shape_aspect);
|
|
WHERE
|
|
WR1: SIZEOF (SELF\derived_shape_aspect.deriving_relationships)= 2;
|
|
END_ENTITY;
|
|
|
|
ENTITY referenced_modified_datum
|
|
SUBTYPE OF (datum_reference);
|
|
modifier : limit_condition;
|
|
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 dimension_related_tolerance_zone_element;
|
|
related_dimension : dimensional_location;
|
|
related_element : tolerance_zone_definition;
|
|
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);
|
|
UNIQUE
|
|
UR1: name,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);
|
|
END_ENTITY;
|
|
|
|
ENTITY geometric_tolerance_relationship;
|
|
name : label;
|
|
description : text;
|
|
relating_geometric_tolerance : geometric_tolerance;
|
|
related_geometric_tolerance : 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_unit
|
|
SUBTYPE OF (geometric_tolerance);
|
|
unit_size : length_measure_with_unit;
|
|
WHERE
|
|
WR1: ('NUMBER' IN TYPEOF (unit_size\measure_with_unit.value_component)) AND (unit_size\measure_with_unit.value_component > 0.0);
|
|
END_ENTITY;
|
|
|
|
ENTITY geometric_tolerance_with_defined_area_unit
|
|
SUBTYPE OF (geometric_tolerance_with_defined_unit);
|
|
area_type : area_unit_type;
|
|
second_unit_size : OPTIONAL length_measure_with_unit;
|
|
WHERE
|
|
WR1: NOT (EXISTS(second_unit_size) XOR (area_type = rectangular));
|
|
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;
|
|
END_ENTITY;
|
|
|
|
ENTITY modified_geometric_tolerance
|
|
SUBTYPE OF (geometric_tolerance);
|
|
modifier : limit_condition;
|
|
END_ENTITY;
|
|
|
|
ENTITY non_uniform_zone_definition
|
|
SUBTYPE OF (tolerance_zone_definition);
|
|
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 runout_zone_definition
|
|
SUBTYPE OF (tolerance_zone_definition);
|
|
orientation : runout_zone_orientation;
|
|
END_ENTITY;
|
|
|
|
ENTITY runout_zone_orientation_reference_direction
|
|
SUBTYPE OF (runout_zone_orientation);
|
|
orientation_defining_relationship : shape_aspect_relationship;
|
|
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 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 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 line_profile_tolerance
|
|
SUBTYPE OF (geometric_tolerance);
|
|
END_ENTITY;
|
|
|
|
ENTITY position_tolerance
|
|
SUBTYPE OF (geometric_tolerance);
|
|
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 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 surface_profile_tolerance
|
|
SUBTYPE OF (geometric_tolerance);
|
|
END_ENTITY;
|
|
|
|
ENTITY angularity_tolerance
|
|
SUBTYPE OF (geometric_tolerance_with_datum_reference);
|
|
END_ENTITY;
|
|
|
|
ENTITY circular_runout_tolerance
|
|
SUBTYPE OF (geometric_tolerance_with_datum_reference);
|
|
END_ENTITY;
|
|
|
|
ENTITY coaxiality_tolerance
|
|
SUBTYPE OF (geometric_tolerance_with_datum_reference);
|
|
END_ENTITY;
|
|
|
|
ENTITY concentricity_tolerance
|
|
SUBTYPE OF (geometric_tolerance_with_datum_reference);
|
|
END_ENTITY;
|
|
|
|
ENTITY parallelism_tolerance
|
|
SUBTYPE OF (geometric_tolerance_with_datum_reference);
|
|
END_ENTITY;
|
|
|
|
ENTITY perpendicularity_tolerance
|
|
SUBTYPE OF (geometric_tolerance_with_datum_reference);
|
|
END_ENTITY;
|
|
|
|
ENTITY symmetry_tolerance
|
|
SUBTYPE OF (geometric_tolerance_with_datum_reference);
|
|
END_ENTITY;
|
|
|
|
ENTITY total_runout_tolerance
|
|
SUBTYPE OF (geometric_tolerance_with_datum_reference);
|
|
END_ENTITY;
|
|
|
|
ENTITY unequally_disposed_geometric_tolerance
|
|
SUBTYPE OF (geometric_tolerance);
|
|
displacement : length_measure_with_unit;
|
|
WHERE
|
|
WR1: ('NUMBER' IN TYPEOF (SELF\geometric_tolerance_with_defined_unit.unit_size\measure_with_unit.value_component)) AND (SELF\geometric_tolerance_with_defined_unit.unit_size\measure_with_unit.value_component > 0.0);
|
|
END_ENTITY;
|
|
|
|
ENTITY shape_aspect;
|
|
name : label;
|
|
description : OPTIONAL text;
|
|
of_shape : product_definition_shape;
|
|
product_definitional : LOGICAL;
|
|
DERIVE
|
|
id : identifier := get_id_value(SELF);
|
|
WHERE
|
|
WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1;
|
|
END_ENTITY;
|
|
|
|
ENTITY shape_definition_representation
|
|
SUBTYPE OF (property_definition_representation);
|
|
SELF\property_definition_representation.definition : property_definition;
|
|
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));
|
|
WR2: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION' IN TYPEOF(SELF\property_definition_representation.used_representation);
|
|
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 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 externally_defined_colour
|
|
SUBTYPE OF (colour_specification,externally_defined_item);
|
|
END_ENTITY; -- externally_defined_colour
|
|
|
|
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_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_interection_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_interection_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_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 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 <* SELF.style_context | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_ITEM' IN TYPEOF(sc)))= 1) OR
|
|
(SIZEOF(QUERY(sc <* SELF.style_context |
|
|
('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF(sc))
|
|
OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_RELATIONSHIP' IN TYPEOF(sc)) ))
|
|
= SIZEOF(style_context));
|
|
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: -- only presentation_views or axis2_placements in
|
|
-- mechanical_design_geometric_presentation_area
|
|
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: -- only mechanical_design_geometric_presentation_representation
|
|
-- via camera_image_3d_with_scale or axis2_placements in
|
|
-- presentation_views
|
|
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)) |
|
|
-- search in all presentation_views for axis2_placements and
|
|
-- mapped_items and for the subtype of mapped_item
|
|
-- camera_image_3d_with_scale; the latter shall reference
|
|
-- a mechanical_design_geometric_presentation_representation;
|
|
-- the supertype mapped_item shall reference presentation_view.
|
|
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 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 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 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 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 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 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 beveled_sheet_representation
|
|
SUBTYPE OF (shape_representation);
|
|
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 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 shape_representation_relationship
|
|
SUBTYPE OF (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));
|
|
END_ENTITY;
|
|
|
|
ENTITY binary_representation_item
|
|
SUBTYPE OF (representation_item);
|
|
binary_value : BINARY;
|
|
END_ENTITY;
|
|
|
|
ENTITY bytes_representation_item
|
|
SUBTYPE OF (binary_representation_item);
|
|
DERIVE
|
|
no_of_bytes : INTEGER := BLENGTH(SELF\binary_representation_item.binary_value) DIV 8;
|
|
WHERE
|
|
WR1: BLENGTH(SELF\binary_representation_item.binary_value) MOD 8 = 0;
|
|
END_ENTITY;
|
|
|
|
ENTITY external_identification_assignment
|
|
ABSTRACT SUPERTYPE
|
|
SUBTYPE OF (identification_assignment);
|
|
source : external_source;
|
|
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_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 (SELF.unit)) AND
|
|
item_in_context (SELF.size,
|
|
SELF.unit\representation.context_of_items)
|
|
)
|
|
OR
|
|
(('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_IN_SET'
|
|
IN TYPEOF (SELF.unit)) AND
|
|
(SIZEOF (QUERY ( ais <* SELF.unit\area_in_set.in_set.areas |
|
|
NOT item_in_context (SELF.size, ais.area\representation.
|
|
context_of_items) )) = 0));
|
|
END_ENTITY;
|
|
|
|
ENTITY area_in_set;
|
|
area : presentation_area;
|
|
in_set : presentation_set;
|
|
END_ENTITY;
|
|
|
|
ENTITY planar_box
|
|
SUBTYPE OF (planar_extent);
|
|
placement: axis2_placement;
|
|
END_ENTITY;
|
|
|
|
ENTITY abstract_variable
|
|
SUBTYPE OF (property_definition, property_definition_representation, representation, representation_item);
|
|
END_ENTITY;
|
|
|
|
ENTITY atomic_formula
|
|
SUBTYPE OF (compound_representation_item);
|
|
END_ENTITY;
|
|
|
|
ENTITY attribute_assertion
|
|
SUBTYPE OF (fact_type, property_definition_representation, representation);
|
|
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 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 entity_assertion
|
|
SUBTYPE OF (fact_type);
|
|
END_ENTITY;
|
|
|
|
ENTITY enum_reference_prefix
|
|
SUBTYPE OF (descriptive_representation_item);
|
|
END_ENTITY;
|
|
|
|
ENTITY extent
|
|
SUBTYPE OF (characterized_object);
|
|
END_ENTITY;
|
|
|
|
ENTITY fact_type
|
|
SUBTYPE OF (property_definition);
|
|
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 func
|
|
SUBTYPE OF (compound_representation_item);
|
|
END_ENTITY;
|
|
|
|
ENTITY global_assignment
|
|
SUBTYPE OF (representation_item_relationship);
|
|
END_ENTITY;
|
|
|
|
ENTITY ground_fact
|
|
SUBTYPE OF (atomic_formula);
|
|
END_ENTITY;
|
|
|
|
ENTITY literal_conjunction
|
|
SUBTYPE OF (simple_clause);
|
|
END_ENTITY;
|
|
|
|
ENTITY literal_disjunction
|
|
SUBTYPE OF (simple_clause);
|
|
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_superseded_assignment
|
|
SUBTYPE OF (action_assignment);
|
|
items : SET [1:?] OF rule_superseded_item;
|
|
END_ENTITY;
|
|
|
|
ENTITY rule_set
|
|
SUBTYPE OF (rule_software_definition);
|
|
END_ENTITY;
|
|
|
|
ENTITY rule_software_definition
|
|
SUBTYPE OF (product_definition);
|
|
END_ENTITY;
|
|
|
|
ENTITY rule_set_group
|
|
SUBTYPE OF (rule_software_definition);
|
|
END_ENTITY;
|
|
|
|
ENTITY rule_supersedence
|
|
SUBTYPE OF (rule_action);
|
|
END_ENTITY;
|
|
|
|
ENTITY scalar_variable
|
|
SUBTYPE OF (abstract_variable);
|
|
END_ENTITY;
|
|
|
|
ENTITY simple_clause
|
|
SUBTYPE OF (compound_representation_item);
|
|
END_ENTITY;
|
|
|
|
ENTITY symbol
|
|
SUBTYPE OF (representation_item);
|
|
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;
|
|
END_ENTITY;
|
|
|
|
ENTITY point
|
|
SUPERTYPE OF (ONEOF (
|
|
CARTESIAN_POINT,
|
|
POINT_ON_CURVE,
|
|
POINT_ON_SURFACE,
|
|
POINT_REPLICA,
|
|
DEGENERATE_PCURVE))
|
|
SUBTYPE OF (geometric_representation_item);
|
|
END_ENTITY;
|
|
|
|
ENTITY representation_item_relationship;
|
|
name : label;
|
|
description : OPTIONAL text;
|
|
relating_representation_item : representation_item;
|
|
related_representation_item : representation_item;
|
|
END_ENTITY;
|
|
|
|
ENTITY uncertainty_assigned_representation
|
|
SUBTYPE OF (representation);
|
|
uncertainty : SET [1:?] OF uncertainty_measure_with_unit;
|
|
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 functionally_defined_transformation;
|
|
name : label;
|
|
description : OPTIONAL text;
|
|
END_ENTITY;
|
|
|
|
ENTITY general_property_relationship;
|
|
name : label;
|
|
description : OPTIONAL text;
|
|
relating_property : general_property;
|
|
related_property : general_property;
|
|
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 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 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_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_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 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 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 user_selected_shape_elements
|
|
SUBTYPE OF (user_selected_elements);
|
|
SELF\user_selected_elements.picked_items : SET [1:?] OF shape_representation_item;
|
|
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 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 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 double_offset_shelled_solid
|
|
SUBTYPE OF (shelled_solid);
|
|
thickness2 : length_measure;
|
|
WHERE
|
|
WR1: thickness2 <> 0;
|
|
WR2: SELF\shelled_solid.thickness <> thickness2;
|
|
END_ENTITY;
|
|
|
|
ENTITY sculptured_solid
|
|
SUBTYPE OF (modified_solid);
|
|
sculpturing_element : generalized_surface_select;
|
|
positive_side : BOOLEAN;
|
|
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 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_conical_bottom_round_hole
|
|
SUBTYPE OF (solid_with_stepped_round_hole);
|
|
semi_apex_angle : positive_plane_angle_measure;
|
|
tip_radius : non_negative_length_measure;
|
|
WHERE
|
|
WR1 : tip_radius <
|
|
SELF\solid_with_stepped_round_hole.segment_radii[segments];
|
|
END_ENTITY;
|
|
|
|
ENTITY solid_with_constant_radius_edge_blend
|
|
SUBTYPE OF (edge_blended_solid);
|
|
radius : positive_length_measure;
|
|
END_ENTITY;
|
|
|
|
ENTITY solid_with_curved_slot
|
|
SUBTYPE OF (solid_with_slot);
|
|
slot_centreline : bounded_curve;
|
|
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_flat_bottom_round_hole
|
|
SUBTYPE OF (solid_with_stepped_round_hole);
|
|
fillet_radius : non_negative_length_measure;
|
|
WHERE
|
|
WR1 : fillet_radius <
|
|
SELF\solid_with_stepped_round_hole.segment_radii[segments];
|
|
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_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_single_offset_chamfer
|
|
SUBTYPE OF (solid_with_chamfered_edges);
|
|
offset_distance : positive_length_measure;
|
|
END_ENTITY;
|
|
|
|
ENTITY solid_with_spherical_bottom_round_hole
|
|
SUBTYPE OF (solid_with_stepped_round_hole);
|
|
sphere_radius : positive_length_measure;
|
|
WHERE
|
|
WR1 : sphere_radius >=
|
|
SELF\solid_with_stepped_round_hole.segment_radii[segments];
|
|
END_ENTITY;
|
|
|
|
ENTITY solid_with_stepped_round_hole
|
|
SUPERTYPE OF (
|
|
SOLID_WITH_STEPPED_ROUND_HOLE_AND_CONICAL_TRANSITIONS
|
|
ANDOR ONEOF (
|
|
SOLID_WITH_FLAT_BOTTOM_ROUND_HOLE,
|
|
SOLID_WITH_CONICAL_BOTTOM_ROUND_HOLE,
|
|
SOLID_WITH_SPHERICAL_BOTTOM_ROUND_HOLE))
|
|
|
|
SUBTYPE OF (solid_with_hole);
|
|
segments : positive_integer;
|
|
segment_radii : LIST[1:segments] OF positive_length_measure;
|
|
segment_depths : LIST[1:segments] OF positive_length_measure;
|
|
DERIVE
|
|
SELF\solid_with_depression.depth
|
|
: positive_length_measure := compute_total_depth(SELF);
|
|
WHERE
|
|
WR1: NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SOLID_WITH_THROUGH_DEPRESSION'
|
|
IN TYPEOF(SELF)) AND (SIZEOF(TYPEOF(SELF) *
|
|
['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SOLID_WITH_FLAT_BOTTOM_ROUND_HOLE',
|
|
'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SOLID_WITH_SPHERICAL_BOTTOM_ROUND_HOLE',
|
|
'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SOLID_WITH_FLAT_BOTTOM_ROUND_HOLE'])
|
|
<> 0));
|
|
END_ENTITY;
|
|
|
|
ENTITY solid_with_stepped_round_hole_and_conical_transitions
|
|
SUBTYPE OF (solid_with_stepped_round_hole);
|
|
conical_transitions : SET[1:?] OF conical_stepped_hole_transition;
|
|
WHERE
|
|
WR1: SIZEOF (conical_transitions) <=
|
|
(SELF\solid_with_stepped_round_hole.segments + 1);
|
|
WR2: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SOLID_WITH_THROUGH_DEPRESSION'
|
|
IN TYPEOF(SELF)) XOR (SIZEOF(conical_transitions) <=
|
|
SELF\solid_with_stepped_round_hole.segments);
|
|
WR3: validate_countersink_radii(SELF);
|
|
END_ENTITY;
|
|
|
|
ENTITY solid_with_straight_slot
|
|
SUBTYPE OF (solid_with_slot);
|
|
slot_length : positive_length_measure;
|
|
END_ENTITY;
|
|
|
|
ENTITY solid_with_tee_section_slot
|
|
SUBTYPE OF (solid_with_slot);
|
|
tee_section_width : positive_length_measure;
|
|
collar_depth : positive_length_measure;
|
|
WHERE
|
|
WR1: collar_depth < SELF\solid_with_depression.depth;
|
|
WR2: tee_section_width > SELF\solid_with_slot.slot_width;
|
|
END_ENTITY;
|
|
|
|
ENTITY solid_with_through_depression
|
|
SUBTYPE OF (solid_with_depression);
|
|
exit_faces : SET[1:?] OF face_surface;
|
|
WHERE
|
|
WR1: SIZEOF(TYPEOF(SELF) *
|
|
['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SOLID_WITH_HOLE',
|
|
'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SOLID_WITH_POCKET',
|
|
'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SOLID_WITH_SLOT']) = 1;
|
|
END_ENTITY;
|
|
|
|
ENTITY solid_with_trapezoidal_section_slot
|
|
SUBTYPE OF (solid_with_slot);
|
|
draft_angle : plane_angle_measure;
|
|
floor_fillet_radius : non_negative_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 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 track_blended_solid
|
|
ABSTRACT SUPERTYPE OF (
|
|
TRACK_BLENDED_SOLID_WITH_END_CONDITIONS)
|
|
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 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 data_environment;
|
|
name : label;
|
|
description : text;
|
|
elements : SET [1:?] OF property_definition_representation;
|
|
END_ENTITY;
|
|
|
|
ENTITY material_property_representation
|
|
SUBTYPE OF (property_definition_representation);
|
|
dependent_environment : data_environment;
|
|
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 application_context_element
|
|
SUPERTYPE OF (ONEOF (
|
|
PRODUCT_CONCEPT_CONTEXT,
|
|
PRODUCT_CONTEXT,
|
|
PRODUCT_DEFINITION_CONTEXT));
|
|
name : label;
|
|
frame_of_reference : application_context;
|
|
END_ENTITY;
|
|
|
|
ENTITY character_glyph_style_stroke
|
|
SUBTYPE OF (founded_item);
|
|
stroke_style : curve_style;
|
|
END_ENTITY;
|
|
|
|
ENTITY character_glyph_style_outline
|
|
SUBTYPE OF (founded_item);
|
|
outline_style : curve_style;
|
|
END_ENTITY;
|
|
|
|
ENTITY text_style
|
|
SUBTYPE OF (founded_item);
|
|
name : label;
|
|
character_appearance : character_style_select;
|
|
END_ENTITY;
|
|
|
|
ENTITY text_style_with_spacing
|
|
SUBTYPE OF (text_style);
|
|
character_spacing : character_spacing_select;
|
|
END_ENTITY;
|
|
|
|
ENTITY composite_text_with_extent
|
|
SUBTYPE OF (composite_text);
|
|
extent : planar_extent;
|
|
END_ENTITY;
|
|
|
|
ENTITY composite_text_with_delineation
|
|
SUBTYPE OF (composite_text);
|
|
delineation : text_delineation;
|
|
END_ENTITY;
|
|
|
|
ENTITY composite_text_with_blanking_box
|
|
SUBTYPE OF (composite_text);
|
|
blanking : planar_box;
|
|
END_ENTITY;
|
|
|
|
ENTITY defined_character_glyph
|
|
SUBTYPE OF(geometric_representation_item);
|
|
definition : defined_glyph_select;
|
|
placement : axis2_placement;
|
|
END_ENTITY;
|
|
|
|
ENTITY pre_defined_character_glyph
|
|
SUBTYPE OF (pre_defined_item);
|
|
END_ENTITY;
|
|
|
|
ENTITY externally_defined_character_glyph
|
|
SUBTYPE OF (externally_defined_item);
|
|
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_extent
|
|
SUBTYPE OF (text_literal);
|
|
extent : planar_extent;
|
|
END_ENTITY;
|
|
|
|
ENTITY text_literal_with_delineation
|
|
SUBTYPE OF (text_literal);
|
|
delineation : text_delineation;
|
|
END_ENTITY;
|
|
|
|
ENTITY text_literal_with_blanking_box
|
|
SUBTYPE OF (text_literal);
|
|
blanking : planar_box;
|
|
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 draughting_pre_defined_text_font
|
|
SUBTYPE of (pre_defined_text_font);
|
|
WHERE
|
|
WR1: SELF.name[1:8] = 'ISO 3098';
|
|
END_ENTITY;
|
|
|
|
ENTITY externally_defined_text_font
|
|
SUBTYPE OF (externally_defined_item);
|
|
END_ENTITY;
|
|
|
|
ENTITY pre_defined_colour
|
|
SUBTYPE OF (pre_defined_item, colour);
|
|
END_ENTITY;
|
|
|
|
ENTITY pre_defined_text_font
|
|
SUBTYPE OF (pre_defined_item);
|
|
END_ENTITY;
|
|
|
|
ENTITY fill_area_style_colour;
|
|
name : label;
|
|
fill_colour : colour;
|
|
END_ENTITY;
|
|
|
|
ENTITY invisibility;
|
|
invisible_items : SET [1:?] OF invisible_item;
|
|
END_ENTITY;
|
|
|
|
ENTITY over_riding_styled_item
|
|
SUBTYPE OF (styled_item);
|
|
over_ridden_style : styled_item;
|
|
END_ENTITY;
|
|
|
|
ENTITY presentation_style_assignment
|
|
SUBTYPE OF (founded_item);
|
|
styles : SET [1:?] OF presentation_style_select;
|
|
WHERE
|
|
WR1: SIZEOF (QUERY (style1 <* SELF.styles |
|
|
NOT (SIZEOF (QUERY (style2 <* (SELF.styles - style1) |
|
|
NOT ((TYPEOF (style1) <> TYPEOF (style2)) OR
|
|
(SIZEOF (['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 <* SELF.styles |
|
|
'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_USAGE' IN
|
|
TYPEOF(style1)
|
|
)) <= 2;
|
|
WR3: SIZEOF (QUERY (style1 <* SELF.styles |
|
|
('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF (style1)) AND
|
|
(SIZEOF (QUERY (style2 <* (SELF.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 externally_defined_style
|
|
SUBTYPE OF (externally_defined_item, founded_item);
|
|
END_ENTITY;
|
|
|
|
ENTITY styled_item
|
|
SUBTYPE OF (representation_item);
|
|
styles : SET [1:?] OF presentation_style_assignment;
|
|
item : representation_item;
|
|
WHERE
|
|
WR1: (SIZEOF(SELF.styles) = 1)
|
|
XOR
|
|
(SIZEOF(QUERY(pres_style <* SELF.styles |
|
|
NOT ('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));
|
|
END_ENTITY;
|
|
|
|
ENTITY annotation_occurrence
|
|
SUPERTYPE OF (ONEOF (
|
|
ANNOTATION_CURVE_OCCURRENCE,
|
|
ANNOTATION_FILL_AREA_OCCURRENCE,
|
|
ANNOTATION_TEXT_OCCURRENCE,
|
|
ANNOTATION_SYMBOL_OCCURRENCE))
|
|
SUBTYPE OF (styled_item);
|
|
WHERE
|
|
WR1: '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_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_occurrence
|
|
SUBTYPE OF (annotation_occurrence);
|
|
SELF\styled_item.item : annotation_text_occurrence_item;
|
|
END_ENTITY;
|
|
|
|
ENTITY annotation_curve_occurrence
|
|
SUBTYPE OF (annotation_occurrence);
|
|
SELF\styled_item.item : curve_or_curve_set;
|
|
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 curve_style
|
|
SUBTYPE OF (founded_item);
|
|
name : label;
|
|
curve_font : curve_font_or_scaled_curve_font_select;
|
|
curve_width : size_select;
|
|
curve_colour : colour;
|
|
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 <* SELF.characteristics |
|
|
SIZEOF( QUERY( c2 <* SELF.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 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 character_glyph_font_usage;
|
|
character : generic_character_glyph_symbol;
|
|
font : text_font;
|
|
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(SELF.character_box,
|
|
SELF\representation.context_of_items);
|
|
WR3: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITIVE_LENGTH_MEASURE'
|
|
IN TYPEOF (SELF.box_height);
|
|
END_ENTITY;
|
|
|
|
ENTITY character_glyph_symbol_outline
|
|
SUBTYPE OF (character_glyph_symbol);
|
|
outlines : SET [1:?] OF annotation_fill_area;
|
|
WHERE
|
|
WR1: SELF.outlines <= SELF\representation.items;
|
|
END_ENTITY;
|
|
|
|
ENTITY character_glyph_symbol_stroke
|
|
SUBTYPE OF (character_glyph_symbol);
|
|
strokes : SET [1:?] OF curve;
|
|
WHERE
|
|
WR1: SELF.strokes <= SELF\representation.items;
|
|
END_ENTITY;
|
|
|
|
ENTITY generic_character_glyph_symbol
|
|
ABSTRACT SUPERTYPE
|
|
SUBTYPE OF (symbol_representation);
|
|
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 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 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 applied_approval_assignment
|
|
SUBTYPE OF (approval_assignment);
|
|
items : SET[1:?] OF approval_item;
|
|
END_ENTITY;
|
|
|
|
ENTITY approval;
|
|
status : approval_status;
|
|
level : label;
|
|
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 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 boolean_representation_item
|
|
SUBTYPE OF (representation_item, boolean_literal);
|
|
END_ENTITY;
|
|
|
|
ENTITY date_representation_item
|
|
SUBTYPE OF (representation_item, date);
|
|
END_ENTITY;
|
|
|
|
ENTITY date_time_representation_item
|
|
SUBTYPE OF (representation_item, date_and_time);
|
|
END_ENTITY;
|
|
|
|
ENTITY integer_representation_item
|
|
SUBTYPE OF (representation_item, int_literal);
|
|
END_ENTITY;
|
|
|
|
ENTITY logical_representation_item
|
|
SUBTYPE OF (representation_item, logical_literal);
|
|
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 real_representation_item
|
|
SUBTYPE OF (representation_item, real_literal);
|
|
END_ENTITY;
|
|
|
|
ENTITY boolean_literal
|
|
SUBTYPE OF (simple_Boolean_expression, generic_literal);
|
|
the_value: BOOLEAN;
|
|
END_ENTITY;
|
|
|
|
ENTITY int_literal
|
|
SUBTYPE OF (literal_number);
|
|
SELF\literal_number.the_value: INTEGER;
|
|
END_ENTITY;
|
|
|
|
ENTITY slash_expression
|
|
SUBTYPE OF (binary_numeric_expression);
|
|
END_ENTITY;
|
|
|
|
ENTITY real_literal
|
|
SUBTYPE OF (literal_number);
|
|
SELF\literal_number.the_value: REAL;
|
|
END_ENTITY;
|
|
|
|
ENTITY binary_generic_expression
|
|
ABSTRACT SUPERTYPE
|
|
|
|
SUBTYPE OF(generic_expression);
|
|
operands: LIST [2:2] OF generic_expression;
|
|
END_ENTITY;
|
|
|
|
ENTITY logical_literal
|
|
SUBTYPE OF (generic_literal);
|
|
lit_value : LOGICAL;
|
|
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 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_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_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_intersection_curve
|
|
SUBTYPE of (implicit_planar_curve);
|
|
external_surface : surface;
|
|
END_ENTITY;
|
|
|
|
ENTITY implicit_projected_curve
|
|
SUBTYPE of (implicit_planar_curve);
|
|
external_curve : curve;
|
|
projection_direction : direction;
|
|
END_ENTITY;
|
|
|
|
ENTITY implicit_model_intersection_curve
|
|
SUBTYPE of (implicit_planar_curve);
|
|
intersected_model : surface_or_solid_model;
|
|
END_ENTITY;
|
|
|
|
ENTITY implicit_silhouette_curve
|
|
SUBTYPE of (implicit_planar_curve);
|
|
silhouetted_model : surface_or_solid_model;
|
|
view_direction : direction;
|
|
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 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 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 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 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 rigid_subsketch
|
|
SUBTYPE OF (subsketch);
|
|
END_ENTITY;
|
|
|
|
ENTITY time_interval;
|
|
id : identifier;
|
|
name : label;
|
|
description : OPTIONAL text;
|
|
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_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: NOT (EXISTS(secondary_bound) AND EXISTS(duration));
|
|
WR2: EXISTS(primary_bound) OR EXISTS(secondary_bound);
|
|
END_ENTITY;
|
|
|
|
ENTITY event_occurrence;
|
|
id : identifier;
|
|
name : label;
|
|
description : OPTIONAL text;
|
|
END_ENTITY;
|
|
|
|
ENTITY event_occurrence_relationship;
|
|
name : label;
|
|
description : OPTIONAL text;
|
|
relating_event : event_occurrence;
|
|
related_event : event_occurrence;
|
|
END_ENTITY;
|
|
|
|
ENTITY relative_event_occurrence
|
|
SUBTYPE OF (event_occurrence);
|
|
base_event : event_occurrence;
|
|
offset : time_measure_with_unit;
|
|
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 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_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 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 physical_component
|
|
SUBTYPE OF (assembly_component);
|
|
END_ENTITY;
|
|
|
|
ENTITY thermal_component
|
|
SUBTYPE OF (assembly_component);
|
|
END_ENTITY;
|
|
|
|
ENTITY manifold_solid_brep
|
|
SUBTYPE OF (solid_model);
|
|
outer : closed_shell;
|
|
END_ENTITY;
|
|
|
|
ENTITY brep_with_voids
|
|
SUBTYPE OF (manifold_solid_brep);
|
|
voids : SET [1:?] OF oriented_closed_shell;
|
|
END_ENTITY;
|
|
|
|
ENTITY closed_shell
|
|
SUBTYPE OF (connected_face_set);
|
|
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 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 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_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 evaluated_degenerate_pcurve
|
|
SUBTYPE OF (degenerate_pcurve);
|
|
equivalent_point : cartesian_point;
|
|
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 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 open_shell
|
|
SUBTYPE OF (connected_face_set);
|
|
END_ENTITY;
|
|
|
|
ENTITY product_definition_context_association;
|
|
definition : product_definition;
|
|
frame_of_reference : product_definition_context;
|
|
role : product_definition_context_role;
|
|
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 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_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 shape_aspect_relationship;
|
|
name : label;
|
|
description : OPTIONAL text;
|
|
relating_shape_aspect : shape_aspect;
|
|
related_shape_aspect : shape_aspect;
|
|
DERIVE
|
|
id : identifier := get_id_value(SELF);
|
|
WHERE
|
|
WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1;
|
|
END_ENTITY;
|
|
|
|
ENTITY item_identified_representation_usage;
|
|
name : label;
|
|
description : OPTIONAL text;
|
|
definition : item_identified_representation_usage_definition;
|
|
used_representation : representation;
|
|
identified_item : representation_item;
|
|
WHERE
|
|
WR1: SELF.used_representation IN using_representations(SELF.identified_item);
|
|
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 UNIQUE chained_representation_link;
|
|
DERIVE
|
|
root : representation := nodes[1];
|
|
|
|
SELF\item_identified_representation_usage.used_representation : representation := nodes[HIINDEX(nodes)]; -- leaf : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, an attribute with the new name is in the DERIVE clause
|
|
directed_link : LIST [1:?] OF representation_relationship := get_directed_link(nodes, undirected_link);
|
|
leaf : REPRESENTATION := SELF\item_identified_representation_usage.used_representation; -- USED_REPRESENTATION : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE
|
|
WHERE
|
|
WR1 : root :=: directed_link[1]\representation_relationship.rep_1;
|
|
WR2 : leaf :=: directed_link[HIINDEX(undirected_link)]\representation_relationship.rep_2;
|
|
WR3 : SIZEOF(nodes) :=: SIZEOF(undirected_link) + 1;
|
|
WR4 : (SIZEOF(QUERY(directed_link_element <* directed_link |(root :=: directed_link_element\representation_relationship.rep_1))) +
|
|
SIZEOF(QUERY(directed_link_element <* directed_link |(root :=: directed_link_element\representation_relationship.rep_2)))) = 1;
|
|
WR5 : (SIZEOF(QUERY(directed_link_element <* directed_link |(leaf :=: directed_link_element\representation_relationship.rep_1))) +
|
|
SIZEOF(QUERY(directed_link_element <* directed_link |(leaf :=: directed_link_element\representation_relationship.rep_2)))) = 1;
|
|
WR6 : (SIZEOF(QUERY(directed_link_element <* directed_link |(root :<>: directed_link_element\representation_relationship.rep_1))) +
|
|
SIZEOF(QUERY(directed_link_element <* directed_link |(root :<>: directed_link_element\representation_relationship.rep_2))) +
|
|
SIZEOF(QUERY(directed_link_element <* directed_link |(leaf :<>: directed_link_element\representation_relationship.rep_1))) +
|
|
SIZEOF(QUERY(directed_link_element <* directed_link |(leaf :<>: directed_link_element\representation_relationship.rep_2)))) = 2;
|
|
WR7 : NOT('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF(undirected_link[1])) OR
|
|
(root IN using_representations(undirected_link[1]));
|
|
WR8 : SIZEOF(undirected_link) = SIZEOF(directed_link);
|
|
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 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 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 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 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 simple_string_expression
|
|
ABSTRACT SUPERTYPE OF (ONEOF (
|
|
STRING_LITERAL,
|
|
STRING_VARIABLE))
|
|
|
|
SUBTYPE OF (string_expression, simple_generic_expression);
|
|
END_ENTITY;
|
|
|
|
ENTITY SQL_mappable_defined_function
|
|
ABSTRACT SUPERTYPE
|
|
|
|
SUBTYPE OF (defined_function);
|
|
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 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 elementary_space
|
|
SUBTYPE OF (maths_space, generic_literal);
|
|
space_id : elementary_space_enumerators;
|
|
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 finite_space
|
|
SUBTYPE OF (maths_space, generic_literal);
|
|
members : SET OF maths_value;
|
|
WHERE
|
|
WR1: VALUE_UNIQUE(members);
|
|
WR2: SIZEOF (QUERY (expr <* QUERY (member <* members |
|
|
'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GENERIC_EXPRESSION' IN TYPEOF (member))
|
|
| NOT expression_is_constant(expr))) = 0;
|
|
WR3: no_cyclic_space_reference(SELF, []);
|
|
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 listed_product_space
|
|
SUBTYPE OF (maths_space, generic_literal);
|
|
factors : LIST OF maths_space;
|
|
WHERE
|
|
WR1: SIZEOF (QUERY (space <* factors |
|
|
NOT (expression_is_constant(space)))) = 0;
|
|
WR2: no_cyclic_space_reference(SELF, []);
|
|
WR3: NOT (the_empty_space IN factors);
|
|
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,
|
|
FINITE_SPACE,
|
|
UNIFORM_PRODUCT_SPACE,
|
|
LISTED_PRODUCT_SPACE,
|
|
EXTENDED_TUPLE_SPACE,
|
|
FUNCTION_SPACE))
|
|
SUBTYPE OF (generic_expression);
|
|
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 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 maths_variable
|
|
SUBTYPE OF (generic_variable);
|
|
values_space : maths_space;
|
|
name : label;
|
|
WHERE
|
|
WR1: expression_is_constant(values_space);
|
|
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 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 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 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 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 instance_attribute_reference
|
|
SUBTYPE OF (variable_semantics);
|
|
attribute_name : attribute_identifier;
|
|
owning_instance : representation_item;
|
|
END_ENTITY;
|
|
|
|
ENTITY unbound_variational_parameter_semantics
|
|
SUBTYPE OF (variable_semantics);
|
|
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 generated_finite_numeric_space
|
|
SUBTYPE OF (finite_space);
|
|
start_value : maths_number;
|
|
increment_value : maths_number;
|
|
increment_number : positive_integer;
|
|
DERIVE
|
|
SELF\finite_space.members : SET [2:?] OF maths_number
|
|
:= make_numeric_set(start_value, increment_value, increment_number);
|
|
WHERE
|
|
WR1: increment_value <> 0.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 auxiliary_geometric_representation_item
|
|
SUBTYPE OF (geometric_representation_item,
|
|
variational_representation_item);
|
|
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_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 environment;
|
|
syntactic_representation: generic_variable;
|
|
semantics: variable_semantics;
|
|
END_ENTITY;
|
|
|
|
ENTITY variable_semantics
|
|
ABSTRACT SUPERTYPE;
|
|
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 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 sphere
|
|
SUBTYPE OF (geometric_representation_item);
|
|
radius : positive_length_measure;
|
|
centre : point;
|
|
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 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 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 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 characteristic_data_table_header
|
|
SUBTYPE OF (general_property);
|
|
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_decomposition
|
|
SUBTYPE OF (general_property_relationship);
|
|
END_ENTITY;
|
|
|
|
ENTITY characteristic_type
|
|
SUBTYPE OF (group);
|
|
END_ENTITY;
|
|
|
|
ENTITY null_representation_item
|
|
SUBTYPE OF (representation_item);
|
|
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 row_representation_item
|
|
SUBTYPE OF(compound_representation_item);
|
|
SELF\compound_representation_item.item_element : list_representation_item;
|
|
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 externally_defined_general_property
|
|
SUBTYPE OF (general_property, externally_defined_item);
|
|
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 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 tagged_text_item
|
|
SUBTYPE OF (descriptive_representation_item);
|
|
END_ENTITY;
|
|
|
|
ENTITY tagged_text_format
|
|
SUBTYPE OF (representation_context);
|
|
END_ENTITY;
|
|
|
|
ENTITY uniform_resource_identifier
|
|
SUBTYPE OF (descriptive_representation_item);
|
|
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 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 generic_literal
|
|
ABSTRACT SUPERTYPE
|
|
|
|
SUBTYPE OF (simple_generic_expression);
|
|
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; -- shape_aspect_relationship_representation_association
|
|
|
|
ENTITY representative_shape_representation
|
|
SUBTYPE OF (shape_representation);
|
|
WHERE
|
|
WR1: unique_in_product_definition (SELF) OR unique_in_shape_aspect (SELF);
|
|
END_ENTITY; -- representative_shape_representation
|
|
|
|
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; -- free_kinematic_motion_representation
|
|
|
|
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; -- constrained_kinematic_motion_representation
|
|
|
|
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_sequence
|
|
SUBTYPE OF (representation_item);
|
|
segments : LIST[2:?] OF interpolated_configuration_segment;
|
|
DERIVE
|
|
n_segments : INTEGER := SIZEOF(segments);
|
|
closed_interpolation : LOGICAL := segments[n_segments].interpolation <> discontinuous_interpolation_type;
|
|
configured_mechanism : mechanism_representation := segments[1].state.represented_mechanism;
|
|
WHERE
|
|
WR1: SIZEOF( QUERY(ics <* segments | ics.state.represented_mechanism :<>: configured_mechanism)) = 0;
|
|
END_ENTITY;
|
|
|
|
ENTITY interpolated_configuration_segment
|
|
SUBTYPE OF (founded_item);
|
|
state : mechanism_state_representation;
|
|
t_parameter : parameter_value;
|
|
interpolation : interpolation_type;
|
|
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 item_link_motion_relationship
|
|
SUBTYPE OF (link_motion_relationship);
|
|
SELF\representation_relationship.rep_1 : shape_representation;
|
|
item : geometric_representation_item;
|
|
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 link_motion_representation_along_path
|
|
SUBTYPE OF (representation);
|
|
SELF\representation.items : SET [1:?] OF kinematic_path;
|
|
SELF\representation.context_of_items : geometric_representation_context_with_parameter;
|
|
END_ENTITY;
|
|
|
|
ENTITY geometric_representation_context_with_parameter
|
|
SUBTYPE OF (geometric_representation_context);
|
|
parameter_unit : OPTIONAL unit;
|
|
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;
|
|
-- WR2 - parameters are increasing
|
|
-- WR3 - different end positions
|
|
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_defined_by_curves
|
|
SUBTYPE OF (kinematic_path);
|
|
SELF\kinematic_path.segments : LIST [1:?] OF curve_based_path_with_orientation;
|
|
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 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_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 point_to_point_path
|
|
SUBTYPE OF (path_node);
|
|
DERIVE
|
|
SELF\kinematic_path_segment.transition : transition_code := discontinuous;
|
|
END_ENTITY;
|
|
|
|
ENTITY circular_path
|
|
SUBTYPE OF (path_node);
|
|
via_point : cartesian_point;
|
|
END_ENTITY;
|
|
|
|
ENTITY linear_path
|
|
SUBTYPE OF (path_node);
|
|
DERIVE
|
|
SELF\kinematic_path_segment.transition : transition_code := continuous;
|
|
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 exclusive_product_concept_feature_category
|
|
SUBTYPE OF (product_concept_feature_category);
|
|
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 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 product_class
|
|
SUBTYPE OF (product_concept,characterized_object);
|
|
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 applied_group_assignment
|
|
SUBTYPE OF (group_assignment);
|
|
items : SET[1:?] OF groupable_item;
|
|
END_ENTITY;
|
|
|
|
ENTITY conditional_concept_feature
|
|
SUBTYPE OF (product_concept_feature);
|
|
condition : concept_feature_relationship_with_condition;
|
|
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 concept_feature_operator;
|
|
name : label;
|
|
description : OPTIONAL text;
|
|
END_ENTITY;
|
|
|
|
ENTITY configurable_item
|
|
SUBTYPE OF (configuration_item);
|
|
item_concept_feature : SET[1:?] OF product_concept_feature_association;
|
|
END_ENTITY;
|
|
|
|
ENTITY physical_breakdown_context
|
|
SUBTYPE OF (breakdown_context);
|
|
END_ENTITY;
|
|
|
|
ENTITY physical_element_usage
|
|
SUBTYPE OF (breakdown_element_usage);
|
|
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 product_definition_element_relationship
|
|
SUBTYPE OF (group);
|
|
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 functional_breakdown_context
|
|
SUBTYPE OF (breakdown_context);
|
|
END_ENTITY;
|
|
|
|
ENTITY functional_element_usage
|
|
SUBTYPE OF (breakdown_element_usage);
|
|
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 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 effectivity_context_assignment
|
|
ABSTRACT SUPERTYPE;
|
|
assigned_effectivity_assignment : effectivity_assignment;
|
|
role : effectivity_context_role;
|
|
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 vector
|
|
SUBTYPE OF (geometric_representation_item);
|
|
orientation : direction;
|
|
magnitude : length_measure;
|
|
WHERE
|
|
WR1 : magnitude >= 0.0;
|
|
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 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 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 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 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 half_space_solid
|
|
SUBTYPE OF(geometric_representation_item);
|
|
base_surface : surface;
|
|
agreement_flag : BOOLEAN;
|
|
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 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 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_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 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 degenerate_toroidal_surface
|
|
SUBTYPE OF (toroidal_surface);
|
|
select_outer : BOOLEAN;
|
|
WHERE
|
|
WR1: major_radius < minor_radius;
|
|
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 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 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 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 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_representation_type;
|
|
name : label;
|
|
represented_document : document;
|
|
END_ENTITY;
|
|
|
|
ENTITY external_class_library
|
|
SUBTYPE OF (external_source);
|
|
END_ENTITY;
|
|
|
|
ENTITY externally_defined_class
|
|
SUBTYPE OF (class, externally_defined_item);
|
|
END_ENTITY;
|
|
|
|
ENTITY applied_name_assignment
|
|
SUBTYPE OF (name_assignment);
|
|
item : name_item;
|
|
END_ENTITY;
|
|
|
|
ENTITY pre_defined_item;
|
|
name : label;
|
|
END_ENTITY;
|
|
|
|
ENTITY applied_contract_assignment
|
|
SUBTYPE OF (contract_assignment);
|
|
items : SET[1:?] OF contract_item;
|
|
END_ENTITY;
|
|
|
|
ENTITY contract;
|
|
name : label;
|
|
purpose : text;
|
|
kind : contract_type;
|
|
END_ENTITY;
|
|
|
|
ENTITY contract_relationship;
|
|
id : identifier;
|
|
name : label;
|
|
description : OPTIONAL text;
|
|
relating_contract : contract;
|
|
related_contract : contract;
|
|
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 applied_security_classification_assignment
|
|
SUBTYPE OF (security_classification_assignment);
|
|
items : SET [1:?] OF security_classification_item;
|
|
END_ENTITY;
|
|
|
|
ENTITY applied_action_request_assignment
|
|
SUBTYPE OF (action_request_assignment);
|
|
items : SET [1 : ?] OF action_request_item;
|
|
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 document_product_association;
|
|
name : label;
|
|
description : OPTIONAL text;
|
|
relating_document : document;
|
|
related_product : product_or_formation_or_definition;
|
|
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_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 product_definition_with_associated_documents
|
|
SUBTYPE OF (product_definition);
|
|
documentation_ids : SET [1:?] OF document;
|
|
END_ENTITY;
|
|
|
|
ENTITY applied_time_interval_assignment
|
|
SUBTYPE OF (time_interval_assignment);
|
|
items : SET[0:?] OF time_interval_item;
|
|
END_ENTITY;
|
|
|
|
ENTITY externally_defined_marker
|
|
SUBTYPE OF (externally_defined_symbol, pre_defined_marker);
|
|
END_ENTITY;
|
|
|
|
ENTITY externally_defined_terminator_symbol
|
|
SUBTYPE OF (externally_defined_symbol);
|
|
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_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 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 vector_style
|
|
SUBTYPE OF (curve_style, pre_defined_terminator_symbol);
|
|
END_ENTITY;
|
|
|
|
ENTITY solid_curve_font
|
|
SUBTYPE OF (pre_defined_curve_font);
|
|
END_ENTITY;
|
|
|
|
ENTITY user_defined_curve_font
|
|
SUBTYPE OF (curve_style_font, mapped_item);
|
|
END_ENTITY;
|
|
|
|
ENTITY curve_style_font
|
|
SUBTYPE OF (founded_item);
|
|
name : label;
|
|
pattern_list : LIST [1:?] OF curve_style_font_pattern;
|
|
END_ENTITY;
|
|
|
|
ENTITY draughting_pre_defined_curve_font
|
|
SUBTYPE OF (pre_defined_curve_font);
|
|
WHERE
|
|
WR1: SELF.name IN
|
|
['continuous',
|
|
'chain',
|
|
'chain double dash',
|
|
'dashed',
|
|
'dotted'];
|
|
END_ENTITY;
|
|
|
|
ENTITY point_style
|
|
SUBTYPE OF (founded_item);
|
|
name : label;
|
|
marker : marker_select;
|
|
marker_size : size_select;
|
|
marker_colour : colour;
|
|
END_ENTITY;
|
|
|
|
ENTITY pre_defined_curve_font
|
|
SUBTYPE OF (pre_defined_item);
|
|
END_ENTITY;
|
|
|
|
ENTITY pre_defined_marker
|
|
SUBTYPE OF (pre_defined_item);
|
|
END_ENTITY;
|
|
|
|
ENTITY externally_defined_symbol
|
|
SUBTYPE OF (externally_defined_item);
|
|
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 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 draughting_callout
|
|
SUPERTYPE OF (ONEOF (
|
|
DATUM_FEATURE_CALLOUT,
|
|
DATUM_TARGET_CALLOUT,
|
|
DIMENSION_CURVE_DIRECTED_CALLOUT,
|
|
DRAUGHTING_ELEMENTS,
|
|
GEOMETRICAL_TOLERANCE_CALLOUT,
|
|
LEADER_DIRECTED_CALLOUT,
|
|
PROJECTION_DIRECTED_CALLOUT,
|
|
STRUCTURED_DIMENSION_CALLOUT)
|
|
ANDOR (
|
|
SURFACE_CONDITION_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 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 projection_curve
|
|
SUBTYPE OF (annotation_curve_occurrence);
|
|
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_relationship;
|
|
name : label;
|
|
description : text;
|
|
relating_annotation_occurrence : annotation_occurrence;
|
|
related_annotation_occurrence : annotation_occurrence;
|
|
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 angular_dimension
|
|
SUBTYPE OF (dimension_curve_directed_callout);
|
|
END_ENTITY;
|
|
|
|
ENTITY curve_dimension
|
|
SUBTYPE OF (dimension_curve_directed_callout);
|
|
END_ENTITY;
|
|
|
|
ENTITY datum_feature_callout
|
|
SUBTYPE OF (draughting_callout);
|
|
END_ENTITY;
|
|
|
|
ENTITY datum_target_callout
|
|
SUBTYPE OF (draughting_callout);
|
|
END_ENTITY;
|
|
|
|
ENTITY diameter_dimension
|
|
SUBTYPE OF (dimension_curve_directed_callout);
|
|
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_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 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 geometrical_tolerance_callout
|
|
SUBTYPE OF (draughting_callout);
|
|
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 linear_dimension
|
|
SUBTYPE OF (dimension_curve_directed_callout);
|
|
END_ENTITY;
|
|
|
|
ENTITY ordinate_dimension
|
|
SUBTYPE OF (projection_directed_callout);
|
|
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 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 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 context_dependent_invisibility
|
|
SUBTYPE OF (invisibility);
|
|
presentation_context : invisibility_context;
|
|
END_ENTITY;
|
|
|
|
ENTITY externally_defined_curve_font
|
|
SUBTYPE OF (externally_defined_item);
|
|
END_ENTITY;
|
|
|
|
ENTITY externally_defined_hatch_style
|
|
SUBTYPE OF (externally_defined_item, geometric_representation_item);
|
|
END_ENTITY;
|
|
|
|
ENTITY externally_defined_tile_style
|
|
SUBTYPE OF (externally_defined_item, geometric_representation_item);
|
|
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 <* SELF.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_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_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 symbol_colour;
|
|
colour_of_symbol : colour;
|
|
END_ENTITY;
|
|
|
|
ENTITY symbol_style
|
|
SUBTYPE OF (founded_item);
|
|
name : label;
|
|
style_of_symbol : symbol_style_select;
|
|
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 <* SELF.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_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 composite_text
|
|
SUBTYPE OF (geometric_representation_item);
|
|
collected_text : SET[2:?] of text_or_character;
|
|
WHERE
|
|
WR1: acyclic_composite_text( SELF, SELF.collected_text);
|
|
END_ENTITY;
|
|
|
|
ENTITY composite_text_with_associated_curves
|
|
SUBTYPE OF (composite_text);
|
|
associated_curves : SET[1:?] of curve;
|
|
END_ENTITY;
|
|
|
|
ENTITY defined_symbol
|
|
SUBTYPE OF(geometric_representation_item);
|
|
definition : defined_symbol_select;
|
|
target : symbol_target;
|
|
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 text_literal_with_associated_curves
|
|
SUBTYPE OF (text_literal);
|
|
associated_curves : SET[1:?] of curve;
|
|
END_ENTITY;
|
|
|
|
ENTITY text_reference
|
|
ABSTRACT SUPERTYPE
|
|
SUBTYPE OF(representation_item);
|
|
END_ENTITY;
|
|
|
|
ENTITY presentation_view
|
|
SUBTYPE OF (presentation_representation);
|
|
END_ENTITY;
|
|
|
|
ENTITY presented_item
|
|
ABSTRACT SUPERTYPE;
|
|
END_ENTITY;
|
|
|
|
ENTITY presentation_set;
|
|
INVERSE
|
|
areas : SET [1:?] OF area_in_set FOR in_set;
|
|
END_ENTITY;
|
|
|
|
ENTITY presented_item_representation;
|
|
presentation : presentation_representation_select;
|
|
item : presented_item;
|
|
END_ENTITY;
|
|
|
|
ENTITY external_source_relationship;
|
|
name : label;
|
|
description : OPTIONAL text;
|
|
relating_source : external_source;
|
|
related_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 connected_face_sub_set
|
|
SUBTYPE OF (connected_face_set);
|
|
parent_face_set : connected_face_set;
|
|
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 colour;
|
|
END_ENTITY;
|
|
|
|
ENTITY colour_specification
|
|
SUBTYPE OF (colour);
|
|
name : label;
|
|
END_ENTITY;
|
|
|
|
ENTITY draughting_pre_defined_colour
|
|
SUBTYPE OF (pre_defined_colour);
|
|
WHERE
|
|
WR1: SELF.name IN
|
|
['red',
|
|
'green',
|
|
'blue',
|
|
'yellow',
|
|
'magenta',
|
|
'cyan',
|
|
'black',
|
|
'white'];
|
|
END_ENTITY;
|
|
|
|
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_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 pre_defined_surface_side_style
|
|
SUBTYPE OF (pre_defined_item);
|
|
END_ENTITY;
|
|
|
|
ENTITY pre_defined_tile
|
|
SUBTYPE OF (pre_defined_item);
|
|
END_ENTITY;
|
|
|
|
ENTITY externally_defined_tile
|
|
SUBTYPE OF (externally_defined_item);
|
|
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 <* SELF.styles |
|
|
SIZEOF(QUERY( style2 <* SELF.styles - style1 |
|
|
TYPEOF(style1) = TYPEOF(style2)
|
|
)) > 0
|
|
)) = 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_rendering;
|
|
rendering_method : shading_surface_method;
|
|
surface_colour : colour;
|
|
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(SELF.direction_counts) = 1)
|
|
XOR
|
|
(TYPEOF(SELF.direction_counts[1]) <>
|
|
TYPEOF(SELF.direction_counts[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_usage
|
|
SUBTYPE OF (founded_item);
|
|
side : surface_side;
|
|
style : surface_side_style_select;
|
|
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 presentation_layer_assignment;
|
|
name : label;
|
|
description : text;
|
|
assigned_items : SET [1:?] OF layered_item;
|
|
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 background_colour
|
|
SUBTYPE OF (colour);
|
|
presentation : area_or_view;
|
|
UNIQUE
|
|
UR1: presentation;
|
|
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 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 planar_extent
|
|
SUBTYPE OF (geometric_representation_item);
|
|
size_in_x : length_measure;
|
|
size_in_y : length_measure;
|
|
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 : (* only presentation_views or axis2_placements in
|
|
mechanical_design_shaded_presentation_area *)
|
|
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 : (* only mechanical_design_shaded_presentation_representation
|
|
via camera_image_3d_with_scale or axis2_placements in
|
|
presentation_views *)
|
|
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)) |
|
|
(* search in all presentation_views for axis2_placements and
|
|
mapped_items and for the subtype of mapped_item,
|
|
camera_image_3d_with_scale; the latter shall reference
|
|
a mechanical_design_geometric_presentation_representation;
|
|
the supertype mapped_item shall reference presentation_view. *)
|
|
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: (* Presentation_size shall be a positive rectangle for area and set.
|
|
Check for this presentation_area subtype first. *)
|
|
(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
|
|
(* check secondly for presentation_set, via area_in_set *)
|
|
(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)) |
|
|
(* after having collected all presentation_set, check their sizes *)
|
|
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: (* Drawing space shall be defined in 2D.
|
|
Check for this presentation_area subtype first. *)
|
|
(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
|
|
(* check secondly for presentation_set, via area_in_set *)
|
|
(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)) |
|
|
(* after having collected all presentation_set, check their
|
|
dimension *)
|
|
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 : (* valid types of camera_models
|
|
get for all presentation_areas their presentation_views *)
|
|
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)) |
|
|
(* search in all presentation_views for
|
|
mapped_items and for the subtype of mapped_item,
|
|
camera_image_3d_with_scale; the latter shall reference
|
|
a camera_usage that shall have as its mapping_origin either
|
|
camera_model_d3, camera_model_d3_with_hlhsr, or
|
|
camera_model_with_light_sources. *)
|
|
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; (* mechanical_design_shaded_presentation_area *)
|
|
|
|
ENTITY mechanical_design_shaded_presentation_representation
|
|
SUBTYPE OF (representation);
|
|
SELF\representation.items : SET[1:?] OF mechanical_design_shaded_presentation_representation_items;
|
|
WHERE
|
|
WR1: (* for all mapped_items check that only
|
|
shape_representations and
|
|
mechanical_design_shaded_presentation_representations
|
|
are referenced *)
|
|
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: (* for all styled_item.item check that in case they are
|
|
mapped_items that they are shape_representations *)
|
|
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: (* for all styled_items get their styles via
|
|
presentation_style_assignment.styles and check for valid
|
|
style types *)
|
|
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: (* for all styled_items get those assigned styles that
|
|
are presentation_style_by_contexts and ensure that
|
|
these reference only representation_items and
|
|
representations as valid contexts *)
|
|
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: (* for all styled_items get all assigned point_styles
|
|
and ensure that marker_select, marker_size and
|
|
marker_colour are valid *)
|
|
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: (* for all styled_items get all assigned curve_styles
|
|
and ensure that curve_width, curve_font and
|
|
curve_colour are valid *)
|
|
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: (* for all styled_items get all assigned surface_style_usages
|
|
and ensure that its style is a surface_side_style *)
|
|
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: (* for all styled_items get all assigned surface_style_usages
|
|
and the surface_side_styles that they reference, and ensure
|
|
that the styles referenced by those surface_side_styles
|
|
are among the valid subset *)
|
|
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: (* for all surface_style_fill_areas that are referenced by
|
|
any surface_side_styles ensure that they are valid
|
|
with respect to their colour representation *)
|
|
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: (* for all surface_style_parameter_lines that are referenced by
|
|
any surface_side_styles ensure that they are valid
|
|
with respect to the applied curve_style, which may include
|
|
rendering *)
|
|
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: (* for all surface_style_control_grids that are referenced by
|
|
any surface_side_styles ensure that they are valid
|
|
with respect to the applied curve_style, which may include
|
|
rendering *)
|
|
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: (* for all surface_style_silhouettes that are referenced by
|
|
any surface_side_styles ensure that they are valid
|
|
with respect to the applied curve_style, which may include
|
|
rendering *)
|
|
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: (* for all surface_style_segmentation_curves that are referenced by
|
|
any surface_side_styles ensure that they are valid
|
|
with respect to the applied curve_style, which may include
|
|
rendering *)
|
|
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: (* for all surface_style_boundaries that are referenced by
|
|
any surface_side_styles ensure that they are valid
|
|
with respect to the applied curve_style, which may include
|
|
rendering *)
|
|
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: (* for all surface_style_renderings that are referenced by
|
|
any surface_side_styles ensure that the colour
|
|
representation is valid *)
|
|
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 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 boundary_curve
|
|
SUBTYPE OF (composite_curve_on_surface);
|
|
WHERE
|
|
WR1: SELF\composite_curve.closed_curve;
|
|
END_ENTITY;
|
|
|
|
ENTITY geometric_set
|
|
|
|
SUBTYPE OF (geometric_representation_item);
|
|
elements : SET [1:?] OF geometric_set_select;
|
|
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 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 geometric_curve_set
|
|
SUBTYPE OF (geometric_set);
|
|
WHERE
|
|
WR1: SIZEOF(QUERY(temp <* SELF\geometric_set.elements |
|
|
'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE' IN TYPEOF(temp))) = 0;
|
|
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 week_of_year_and_day_date
|
|
SUBTYPE OF (date);
|
|
week_component : week_in_year_number;
|
|
day_component : OPTIONAL day_in_week_number;
|
|
END_ENTITY;
|
|
|
|
ENTITY year_month
|
|
SUBTYPE OF (date);
|
|
month_component : month_in_year_number;
|
|
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_variable
|
|
ABSTRACT SUPERTYPE
|
|
|
|
SUBTYPE OF (simple_generic_expression);
|
|
INVERSE
|
|
interpretation :
|
|
environment FOR syntactic_representation;
|
|
END_ENTITY;
|
|
|
|
ENTITY multiple_arity_generic_expression
|
|
ABSTRACT SUPERTYPE
|
|
|
|
SUBTYPE OF(generic_expression);
|
|
operands: LIST [2:?] OF generic_expression;
|
|
END_ENTITY;
|
|
|
|
ENTITY simple_generic_expression
|
|
ABSTRACT SUPERTYPE OF (ONEOF (
|
|
GENERIC_LITERAL,
|
|
GENERIC_VARIABLE))
|
|
|
|
SUBTYPE OF (generic_expression);
|
|
END_ENTITY;
|
|
|
|
ENTITY unary_generic_expression
|
|
ABSTRACT SUPERTYPE
|
|
|
|
SUBTYPE OF(generic_expression);
|
|
operand: generic_expression;
|
|
END_ENTITY;
|
|
|
|
ENTITY variable
|
|
ABSTRACT SUPERTYPE OF (ONEOF (
|
|
NUMERIC_VARIABLE,
|
|
BOOLEAN_VARIABLE,
|
|
STRING_VARIABLE))
|
|
|
|
SUBTYPE OF(generic_variable);
|
|
END_ENTITY;
|
|
|
|
ENTITY and_expression
|
|
SUBTYPE OF (multiple_arity_boolean_expression);
|
|
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_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 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_variable
|
|
SUBTYPE OF (simple_Boolean_expression, variable);
|
|
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 defined_function
|
|
ABSTRACT SUPERTYPE OF ((ONEOF (
|
|
NUMERIC_DEFINED_FUNCTION,
|
|
STRING_DEFINED_FUNCTION,
|
|
BOOLEAN_DEFINED_FUNCTION))
|
|
ANDOR
|
|
SQL_MAPPABLE_DEFINED_FUNCTION);
|
|
END_ENTITY;
|
|
|
|
ENTITY div_expression
|
|
SUBTYPE OF (binary_numeric_expression);
|
|
END_ENTITY;
|
|
|
|
ENTITY equals_expression
|
|
SUBTYPE OF (binary_boolean_expression);
|
|
END_ENTITY;
|
|
|
|
ENTITY expression
|
|
ABSTRACT SUPERTYPE OF (ONEOF (
|
|
NUMERIC_EXPRESSION,
|
|
BOOLEAN_EXPRESSION,
|
|
STRING_EXPRESSION))
|
|
|
|
SUBTYPE OF (generic_expression);
|
|
END_ENTITY;
|
|
|
|
ENTITY int_numeric_variable
|
|
SUBTYPE OF (numeric_variable);
|
|
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 minus_expression
|
|
SUBTYPE OF (binary_numeric_expression);
|
|
END_ENTITY;
|
|
|
|
ENTITY mod_expression
|
|
SUBTYPE OF (binary_numeric_expression);
|
|
END_ENTITY;
|
|
|
|
ENTITY mult_expression
|
|
SUBTYPE OF (multiple_arity_numeric_expression);
|
|
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_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 not_expression
|
|
SUBTYPE OF (unary_Boolean_expression);
|
|
SELF\unary_generic_expression.operand: boolean_expression;
|
|
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: LOGICAL := is_int_expr (SELF);
|
|
sql_mappable: LOGICAL := 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 or_expression
|
|
SUBTYPE OF (multiple_arity_boolean_expression);
|
|
END_ENTITY;
|
|
|
|
ENTITY plus_expression
|
|
SUBTYPE OF (multiple_arity_numeric_expression);
|
|
END_ENTITY;
|
|
|
|
ENTITY power_expression
|
|
SUBTYPE OF (binary_numeric_expression);
|
|
END_ENTITY;
|
|
|
|
ENTITY real_numeric_variable
|
|
SUBTYPE OF (numeric_variable);
|
|
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_numeric_expression
|
|
ABSTRACT SUPERTYPE OF (ONEOF (
|
|
LITERAL_NUMBER,
|
|
NUMERIC_VARIABLE))
|
|
|
|
SUBTYPE OF (numeric_expression, simple_generic_expression);
|
|
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_numeric_expression
|
|
ABSTRACT SUPERTYPE
|
|
|
|
SUBTYPE OF (numeric_expression, unary_generic_expression);
|
|
SELF\unary_generic_expression.operand : numeric_expression;
|
|
END_ENTITY;
|
|
|
|
ENTITY xor_expression
|
|
SUBTYPE OF (binary_boolean_expression);
|
|
SELF\binary_generic_expression.operands:
|
|
LIST [2:2] OF boolean_expression;
|
|
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 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 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 -- LK
|
|
kinematic_link_representation_association FOR rep_1;
|
|
END_ENTITY;
|
|
|
|
ENTITY linear_flexible_link_representation
|
|
SUBTYPE OF (kinematic_link_representation);
|
|
END_ENTITY;
|
|
|
|
ENTITY rigid_link_representation
|
|
SUBTYPE OF (kinematic_link_representation);
|
|
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 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 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 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 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
|
|
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_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 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 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 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 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 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 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_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 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_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 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_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_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 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_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 homokinetic_pair
|
|
SUBTYPE OF (universal_pair);
|
|
WHERE
|
|
WR1: NOT EXISTS(SELF.input_skew_angle);
|
|
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_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 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 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 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_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 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 sliding_surface_pair
|
|
SUBTYPE OF (surface_pair);
|
|
END_ENTITY;
|
|
|
|
ENTITY rolling_surface_pair
|
|
SUBTYPE OF (surface_pair);
|
|
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 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_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 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 sliding_curve_pair
|
|
SUBTYPE OF (planar_curve_pair);
|
|
END_ENTITY;
|
|
|
|
ENTITY rolling_curve_pair
|
|
SUBTYPE OF (planar_curve_pair);
|
|
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_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 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_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 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 product_definition_relationship_kinematics
|
|
SUBTYPE OF (property_definition);
|
|
SELF\property_definition.definition : product_definition_relationship;
|
|
UNIQUE
|
|
UR1 : definition;
|
|
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 context_dependent_kinematic_link_representation;
|
|
representation_relation : kinematic_link_representation_association;
|
|
represented_product_relation : product_definition_relationship_kinematics;
|
|
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 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 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 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 revolute_pair_value
|
|
SUBTYPE OF (pair_value);
|
|
SELF\pair_value.applies_to_pair : revolute_pair;
|
|
actual_rotation : plane_angle_measure ;
|
|
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 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 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 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 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 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 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 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 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; (*
|
|
:= convert_plane_angle_for_pair_from_radian
|
|
(SELF\pair_value.applies_to_pair,
|
|
(- actual_displacement /
|
|
SELF\pair_value.applies_to_pair\
|
|
rack_and_pinion_pair.pinion_radius)); *)
|
|
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 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 unconstrained_pair_value
|
|
SUBTYPE OF (pair_value);
|
|
SELF\pair_value.applies_to_pair : unconstrained_pair;
|
|
actual_placement : axis2_placement_3d;
|
|
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_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 rotation_about_direction
|
|
SUBTYPE OF (geometric_representation_item); -- LK
|
|
direction_of_axis : direction;
|
|
rotation_angle : plane_angle_measure;
|
|
WHERE
|
|
WR1: SIZEOF (direction_of_axis.direction_ratios) = 3;
|
|
END_ENTITY;
|
|
|
|
ENTITY edge_based_wireframe_model
|
|
SUBTYPE OF (geometric_representation_item);
|
|
ebwm_boundary : SET [1:?] OF connected_edge_set;
|
|
END_ENTITY;
|
|
|
|
ENTITY face_based_surface_model
|
|
SUBTYPE OF (geometric_representation_item);
|
|
fbsm_faces : SET [1:?] OF connected_face_set;
|
|
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 faceted_brep
|
|
SUBTYPE OF (manifold_solid_brep);
|
|
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 applied_certification_assignment
|
|
SUBTYPE OF (certification_assignment);
|
|
items : SET[1:?] OF certification_item;
|
|
END_ENTITY;
|
|
|
|
ENTITY certification;
|
|
name : label;
|
|
purpose : text;
|
|
kind : certification_type;
|
|
END_ENTITY;
|
|
|
|
ENTITY certification_type;
|
|
description : label;
|
|
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 identification_role;
|
|
name : label;
|
|
description : OPTIONAL text;
|
|
END_ENTITY;
|
|
|
|
ENTITY language
|
|
SUBTYPE OF (group);
|
|
WHERE
|
|
WR1: SELF\group.name <> '';
|
|
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 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 applied_organizational_project_assignment
|
|
SUBTYPE OF (organizational_project_assignment);
|
|
items : SET[1:?] OF project_item;
|
|
END_ENTITY;
|
|
|
|
ENTITY security_classification;
|
|
name : label;
|
|
purpose : text;
|
|
security_level : security_classification_level;
|
|
END_ENTITY;
|
|
|
|
ENTITY security_classification_level;
|
|
name : label;
|
|
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 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 versioned_action_request;
|
|
id : identifier;
|
|
version : 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 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 document_relationship;
|
|
name : label;
|
|
description : OPTIONAL text;
|
|
relating_document : document;
|
|
related_document : document;
|
|
END_ENTITY;
|
|
|
|
ENTITY time_interval_role;
|
|
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 action_directive;
|
|
name : label;
|
|
description : OPTIONAL text;
|
|
analysis : text;
|
|
comment : text;
|
|
requests : SET [1:?] OF versioned_action_request;
|
|
END_ENTITY;
|
|
|
|
ENTITY directed_action
|
|
SUBTYPE OF (executed_action);
|
|
directive : action_directive;
|
|
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 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))))=1;
|
|
WR2: SIZEOF(SELF\draughting_callout.contents) >= 2;
|
|
END_ENTITY;
|
|
|
|
ENTITY draughting_callout_relationship;
|
|
name : label;
|
|
description : text;
|
|
relating_draughting_callout : draughting_callout;
|
|
related_draughting_callout : draughting_callout;
|
|
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_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 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))))=1;
|
|
WR2: SIZEOF(SELF\draughting_callout.contents) >=2;
|
|
END_ENTITY;
|
|
|
|
ENTITY curve_style_rendering;
|
|
rendering_method : shading_curve_method;
|
|
rendering_properties : surface_rendering_properties;
|
|
END_ENTITY;
|
|
|
|
ENTITY surface_rendering_properties;
|
|
rendered_colour : colour;
|
|
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_with_properties
|
|
SUBTYPE OF (surface_style_rendering);
|
|
properties : SET [1:2] OF rendering_properties_select;
|
|
WHERE
|
|
WR1: (HIINDEX(SELF.properties) = 1)
|
|
XOR
|
|
(TYPEOF(SELF.properties[1]) <> TYPEOF(SELF.properties[2]));
|
|
END_ENTITY;
|
|
|
|
ENTITY surface_style_transparent;
|
|
transparency : REAL;
|
|
WHERE
|
|
WR1: {0.0 <= transparency <= 1.0};
|
|
END_ENTITY;
|
|
|
|
ENTITY outer_boundary_curve
|
|
SUBTYPE OF (boundary_curve);
|
|
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 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 vertex_shell
|
|
SUBTYPE OF (topological_representation_item);
|
|
vertex_shell_extent : vertex_loop;
|
|
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 abs_function
|
|
SUBTYPE OF (unary_function_call);
|
|
END_ENTITY;
|
|
|
|
ENTITY acos_function
|
|
SUBTYPE OF (unary_function_call);
|
|
END_ENTITY;
|
|
|
|
ENTITY asin_function
|
|
SUBTYPE OF (unary_function_call);
|
|
END_ENTITY;
|
|
|
|
ENTITY atan_function
|
|
SUBTYPE OF (binary_function_call);
|
|
END_ENTITY;
|
|
|
|
ENTITY cos_function
|
|
SUBTYPE OF (unary_function_call);
|
|
END_ENTITY;
|
|
|
|
ENTITY exp_function
|
|
SUBTYPE OF (unary_function_call);
|
|
END_ENTITY;
|
|
|
|
ENTITY integer_defined_function
|
|
ABSTRACT SUPERTYPE
|
|
|
|
SUBTYPE OF (numeric_defined_function);
|
|
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 maximum_function
|
|
SUBTYPE OF (multiple_arity_function_call);
|
|
END_ENTITY;
|
|
|
|
ENTITY minimum_function
|
|
SUBTYPE OF (multiple_arity_function_call);
|
|
END_ENTITY;
|
|
|
|
ENTITY minus_function
|
|
SUBTYPE OF (unary_function_call);
|
|
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 real_defined_function
|
|
ABSTRACT SUPERTYPE
|
|
|
|
SUBTYPE OF (numeric_defined_function);
|
|
END_ENTITY ;
|
|
|
|
ENTITY sin_function
|
|
SUBTYPE OF (unary_function_call);
|
|
END_ENTITY;
|
|
|
|
ENTITY square_root_function
|
|
SUBTYPE OF (unary_function_call);
|
|
END_ENTITY;
|
|
|
|
ENTITY tan_function
|
|
SUBTYPE OF (unary_function_call);
|
|
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 int_value_function
|
|
SUBTYPE OF (value_function);
|
|
END_ENTITY;
|
|
|
|
ENTITY length_function
|
|
SUBTYPE OF (numeric_expression, unary_generic_expression);
|
|
SELF\unary_generic_expression.operand: string_expression;
|
|
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 value_function
|
|
SUPERTYPE OF (
|
|
INT_VALUE_FUNCTION)
|
|
|
|
SUBTYPE OF (numeric_expression, unary_generic_expression);
|
|
SELF\unary_generic_expression.operand: string_expression;
|
|
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_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_tree_structure
|
|
SUBTYPE OF (kinematic_topology_directed_structure);
|
|
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_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_loop
|
|
SUBTYPE OF (edge_loop);
|
|
SELF\path.edge_list : LIST [1:?] OF UNIQUE oriented_joint;
|
|
END_ENTITY;
|
|
|
|
ENTITY oriented_joint
|
|
SUBTYPE OF (oriented_edge);
|
|
SELF\oriented_edge.edge_element : kinematic_joint;
|
|
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 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; -- LK
|
|
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 attribute_value_assignment
|
|
ABSTRACT SUPERTYPE;
|
|
attribute_name : label;
|
|
attribute_value : attribute_type;
|
|
role : attribute_value_role;
|
|
END_ENTITY;
|
|
|
|
ENTITY applied_event_occurrence_assignment
|
|
SUBTYPE OF (event_occurrence_assignment);
|
|
items : SET[1:?] OF event_occurrence_item;
|
|
END_ENTITY;
|
|
|
|
ENTITY event_occurrence_assignment
|
|
ABSTRACT SUPERTYPE;
|
|
assigned_event_occurrence : event_occurrence;
|
|
role : event_occurrence_role;
|
|
END_ENTITY;
|
|
|
|
ENTITY organizational_project_assignment
|
|
ABSTRACT SUPERTYPE;
|
|
assigned_organizational_project : organizational_project;
|
|
role : organizational_project_role;
|
|
END_ENTITY;
|
|
|
|
ENTITY organizational_project_role;
|
|
name : label;
|
|
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_relationship;
|
|
name : label;
|
|
description : OPTIONAL text;
|
|
relating_organizational_project : organizational_project;
|
|
related_organizational_project : organizational_project;
|
|
END_ENTITY;
|
|
|
|
ENTITY founded_item
|
|
SUPERTYPE OF (ONEOF(
|
|
|
|
|
|
character_glyph_style_outline,
|
|
character_glyph_style_stroke,
|
|
curve_style,
|
|
curve_style_font,
|
|
curve_style_font_and_scaling,
|
|
curve_style_font_pattern,
|
|
|
|
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 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 binary_literal
|
|
SUBTYPE OF (generic_literal);
|
|
lit_value : BINARY;
|
|
END_ENTITY;
|
|
|
|
ENTITY maths_enum_literal
|
|
SUBTYPE OF (generic_literal);
|
|
lit_value : maths_enum_atom;
|
|
END_ENTITY;
|
|
|
|
ENTITY real_tuple_literal
|
|
SUBTYPE OF (generic_literal);
|
|
lit_value : LIST [1:?] OF REAL;
|
|
END_ENTITY;
|
|
|
|
ENTITY integer_tuple_literal
|
|
SUBTYPE OF (generic_literal);
|
|
lit_value : LIST [1:?] OF INTEGER;
|
|
END_ENTITY;
|
|
|
|
ENTITY atom_based_literal
|
|
SUBTYPE OF (generic_literal);
|
|
lit_value : atom_based_value;
|
|
END_ENTITY;
|
|
|
|
ENTITY maths_tuple_literal
|
|
SUBTYPE OF (generic_literal);
|
|
lit_value : LIST OF maths_value;
|
|
END_ENTITY;
|
|
|
|
ENTITY extended_tuple_space
|
|
SUBTYPE OF (maths_space, generic_literal);
|
|
base : product_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 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 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 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 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 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 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 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 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 elementary_function
|
|
SUBTYPE OF (maths_function, generic_literal);
|
|
func_id : elementary_function_enumerators;
|
|
END_ENTITY;
|
|
|
|
ENTITY restriction_function
|
|
SUBTYPE OF (maths_function, unary_generic_expression);
|
|
SELF\unary_generic_expression.operand : maths_space;
|
|
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 explicit_table_function
|
|
ABSTRACT SUPERTYPE OF (ONEOF (
|
|
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 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 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 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 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 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 complex_number_literal
|
|
SUBTYPE OF (generic_literal);
|
|
real_part : REAL;
|
|
imag_part : REAL;
|
|
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 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 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 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_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 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 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 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 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 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 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_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 volume
|
|
|
|
SUBTYPE OF (geometric_representation_item);
|
|
WHERE
|
|
WR1 : SELF\geometric_representation_item.dim = 3;
|
|
END_ENTITY;
|
|
|
|
ENTITY application_defined_function
|
|
SUBTYPE OF (maths_function);
|
|
explicit_domain : tuple_space;
|
|
explicit_range : tuple_space;
|
|
parameters : LIST OF maths_value;
|
|
WHERE
|
|
WR1: expression_is_constant(explicit_domain);
|
|
WR2: expression_is_constant(explicit_range);
|
|
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 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 linearized_table_function
|
|
|
|
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 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 imported_point_function
|
|
SUBTYPE OF (maths_function, generic_literal);
|
|
geometry : point;
|
|
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 action_resource_type;
|
|
name : label;
|
|
END_ENTITY;
|
|
|
|
ENTITY action_method_role;
|
|
name : label;
|
|
description : OPTIONAL text;
|
|
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 runout_zone_orientation;
|
|
angle : plane_angle_measure_with_unit;
|
|
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])),
|
|
SELF.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 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 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 indirectly_selected_elements
|
|
SUBTYPE OF (user_selected_elements);
|
|
indirectly_picked_items : SET[1:?] OF representation_item;
|
|
END_ENTITY;
|
|
|
|
ENTITY user_selected_elements
|
|
SUBTYPE OF (representation_item);
|
|
picked_items : SET[1:?] OF representation_item;
|
|
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 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 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 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_depression
|
|
ABSTRACT SUPERTYPE OF (
|
|
SOLID_WITH_THROUGH_DEPRESSION
|
|
ANDOR ONEOF (
|
|
SOLID_WITH_HOLE,
|
|
SOLID_WITH_POCKET,
|
|
SOLID_WITH_SLOT,
|
|
SOLID_WITH_GROOVE))
|
|
SUBTYPE OF (modified_solid_with_placed_configuration);
|
|
depth : positive_length_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_slot
|
|
ABSTRACT SUPERTYPE OF ((ONEOF (
|
|
SOLID_WITH_TRAPEZOIDAL_SECTION_SLOT,
|
|
SOLID_WITH_TEE_SECTION_SLOT))
|
|
AND (ONEOF (
|
|
SOLID_WITH_STRAIGHT_SLOT,
|
|
SOLID_WITH_CURVED_SLOT)))
|
|
SUBTYPE OF (solid_with_depression);
|
|
slot_width : positive_length_measure;
|
|
closed_ends : LIST[2:2] OF LOGICAL;
|
|
end_exit_faces : LIST[2:2] OF SET[0:?] OF face_surface;
|
|
WHERE
|
|
WR1: NOT(('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SOLID_WITH_THROUGH_DEPRESSION' IN
|
|
TYPEOF(SELF)) AND (closed_ends = [FALSE,FALSE]));
|
|
WR2: NOT(((closed_ends[1] = TRUE) AND (SIZEOF(end_exit_faces[1]) <> 0))
|
|
OR ((closed_ends[2] = TRUE) AND (SIZEOF(end_exit_faces[2]) <> 0)));
|
|
END_ENTITY;
|
|
|
|
ENTITY solid_with_hole
|
|
ABSTRACT SUPERTYPE OF (
|
|
SOLID_WITH_STEPPED_ROUND_HOLE)
|
|
SUBTYPE OF (solid_with_depression);
|
|
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_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 concept_feature_relationship_with_condition
|
|
SUBTYPE OF (concept_feature_relationship);
|
|
conditional_operator : concept_feature_operator;
|
|
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 effectivity_context_role;
|
|
name : label;
|
|
description : OPTIONAL text;
|
|
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 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 document_usage_constraint;
|
|
source : document;
|
|
subject_element : label;
|
|
subject_element_value : text;
|
|
END_ENTITY;
|
|
|
|
ENTITY one_direction_repeat_factor
|
|
SUBTYPE OF (geometric_representation_item);
|
|
repeat_factor : vector;
|
|
END_ENTITY;
|
|
|
|
ENTITY two_direction_repeat_factor
|
|
SUBTYPE OF (one_direction_repeat_factor);
|
|
second_repeat_factor : vector;
|
|
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 attribute_value_role;
|
|
name : label;
|
|
description : OPTIONAL text;
|
|
END_ENTITY;
|
|
|
|
ENTITY event_occurrence_role;
|
|
name : label;
|
|
description : OPTIONAL text;
|
|
END_ENTITY;
|
|
|
|
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_is_1d_array
|
|
|
|
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 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 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 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_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 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.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));
|
|
|
|
('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.HALF_SPACE_2D' IN TYPEOF(input\csg_solid_2d.tree_root_expression)) : RETURN(TRUE);
|
|
|
|
OTHERWISE : RETURN(FALSE);
|
|
END_CASE;
|
|
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 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 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 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 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.0) OR (mag_v2 = 0.0)) THEN
|
|
theta := 0.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 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_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 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 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_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 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_product_definition_relationship (relation : product_definition_relationship; relatives : SET [1:?] OF product_definition; specific_relation : STRING):BOOLEAN;
|
|
LOCAL
|
|
x : SET OF product_definition_relationship;
|
|
END_LOCAL;
|
|
|
|
IF relation.relating_product_definition IN relatives THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
x := QUERY(pd <* bag_to_set(USEDIN(relation.relating_product_definition, '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 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 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;
|
|
-- Find the set of representation_items or founded_items
|
|
-- in which item is used directly.
|
|
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 the set of next_items is not empty;
|
|
IF SIZEOF(next_items) > 0 THEN
|
|
-- For each element in the set, find the using_items recursively
|
|
REPEAT i := 1 TO HIINDEX(next_items);
|
|
-- Check for loop in data model, i.e. one of the next_items
|
|
-- occurred earlier in the set of check_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 the set of representation_items or founded_items
|
|
-- in which the input item is used directly and indirectly.
|
|
RETURN (result_items);
|
|
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
|
|
(* For a composite_curve_on_surface the basis_surface is the intersection
|
|
of the basis_surfaces of all the segments. *)
|
|
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 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 list_to_array(lis : LIST [0:?] OF GENERIC : T;
|
|
low,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 make_array_of_array(lis : LIST[1:?] OF LIST [1:?] OF GENERIC : T;
|
|
low1, u1, low2, 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 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 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 constraints_rectangular_composite_surface
|
|
(s : rectangular_composite_surface) : BOOLEAN;
|
|
|
|
(* Check the surface types *)
|
|
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 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
|
|
*)
|
|
IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ELEMENTARY_SURFACE' IN TYPEOF(surf) THEN
|
|
RETURN(TRUE);
|
|
ELSE
|
|
|
|
(* a swept_surface shall have a valid sweeping curve
|
|
*)
|
|
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
|
|
|
|
(* an offset_surface shall not self-intersect and shall
|
|
reference a valid surface
|
|
*)
|
|
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
|
|
|
|
(* a surface_replica shall have a valid parent surface
|
|
*)
|
|
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
|
|
|
|
(* a b_spline_surface shall not self-intersect
|
|
*)
|
|
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 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
|
|
*)
|
|
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
|
|
|
|
(* conics and lines are valid curve types
|
|
*)
|
|
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
|
|
|
|
(* a curve_replica shall reference a valid curve
|
|
*)
|
|
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
|
|
|
|
(* an offset_curve_3d shall not self-intersect and
|
|
shall reference a valid curve; a polyline is not a
|
|
valid basis_curve
|
|
*)
|
|
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
|
|
|
|
(* a pcurve shall reference a valid curve and a valid
|
|
basis_surface
|
|
*)
|
|
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
|
|
|
|
(* a surface_curve references a curve_3d and one or
|
|
two pcurves or one or two surfaces or one of
|
|
each; all of these references shall be valid
|
|
*)
|
|
IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_CURVE' IN TYPEOF(cv) THEN
|
|
|
|
(* if the curve reference is correct, check also the rest
|
|
*)
|
|
IF msf_curve_check(cv\surface_curve.curve_3d) THEN
|
|
REPEAT i := 1 TO SIZEOF
|
|
(cv\surface_curve.associated_geometry);
|
|
|
|
(* do for one or two associated_geometrys:
|
|
*)
|
|
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
|
|
|
|
(* a polyline shall have at least 3 points
|
|
*)
|
|
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 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;
|
|
-- Find the representations in which the item is used and add to the
|
|
-- results set.
|
|
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;
|
|
-- Find all representation_items or founded_items
|
|
-- by which item is referenced directly or indirectly.
|
|
intermediate_items := using_items(item,[]);
|
|
-- If the set of intermediate items is not empty;
|
|
IF SIZEOF(intermediate_items) > 0 THEN
|
|
-- For each element in the set, add the
|
|
-- representations of that element.
|
|
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 the set of representation in which the input item is
|
|
-- used directly and indirectly (through intervening
|
|
-- representation_items or founded items).
|
|
RETURN (results);
|
|
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_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 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 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 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 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;
|
|
|
|
-- STEP-1
|
|
-- collect all shape_data_quality_inspection_criterion_report instances,
|
|
-- all shape_data_quality_inspection_instance_report_item instances, and
|
|
-- instance_report_item_with_extreme_instances instances
|
|
-- associated with the given shape_data_quality_criterion
|
|
-- via shape_data_quality_inspection_result.
|
|
|
|
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 there is no report, then return true.
|
|
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;
|
|
|
|
-- When reports exist, then perform the following checking process.
|
|
-- Check representative_measured_value of
|
|
-- shape_data_quality_inspection_criterion_report
|
|
REPEAT i:= 1 TO SIZEOF(sdcr);
|
|
IF(NOT(type_string IN
|
|
TYPEOF(sdcr[i].representative_measured_value))) THEN
|
|
RETURN(FALSE);
|
|
END_IF;
|
|
END_REPEAT;
|
|
|
|
-- Check measured_value of shape_data_quality_inspection_
|
|
-- instance_report_item
|
|
REPEAT i:= 1 TO SIZEOF(sdii);
|
|
IF(NOT(type_string IN
|
|
TYPEOF(sdii[i].measured_value))) THEN
|
|
RETURN(FALSE);
|
|
END_IF;
|
|
END_REPEAT;
|
|
|
|
-- Check measured_value of extreme_instances of
|
|
-- instance_report_item_with_extreme_instance
|
|
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 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;
|
|
|
|
-- STEP-1
|
|
-- collect all shape_data_quality_inspection_instance_report_item
|
|
-- instances associated with the given shape_data_quality_criterion
|
|
-- via shape_data_quality_inspection_result and
|
|
-- shape_data_quality_inspection_instance_report
|
|
|
|
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;
|
|
|
|
-- STEP-2
|
|
-- check if the types of inspected_elements of the collected
|
|
-- instances are exactly coincident with the type names in the
|
|
-- type list given as an input argument of this function.
|
|
|
|
-- If there is no instance_report_item, then return true.
|
|
IF(SIZEOF(sdiri) = 0) THEN
|
|
RETURN(TRUE);
|
|
END_IF;
|
|
|
|
-- When reports exist, then perform the following checking process.
|
|
REPEAT i:= 1 TO SIZEOF(sdiri);
|
|
-- If the size of inspected_elements is not equal to the size of
|
|
-- type_list, then return false.
|
|
IF(SIZEOF(sdiri[i].inspected_elements) <>
|
|
SIZEOF(type_list)) THEN
|
|
RETURN(FALSE);
|
|
END_IF;
|
|
-- check all elements in the type_list
|
|
-- for each element of inspected_elements.
|
|
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;
|
|
|
|
-- STEP-1
|
|
-- collect all instance_report_item_with_extreme_instances instances
|
|
-- associated with the given shape_data_quality_criterion
|
|
-- via shape_data_quality_inspection_result and
|
|
-- shape_data_quality_inspection_instance_report.
|
|
|
|
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;
|
|
|
|
-- STEP-2
|
|
-- check if the types of locations_of_extreme_value attributes
|
|
-- of all extreme_instances attributes of the collected instances are
|
|
-- exactly coincident with the type names in the type list given as an
|
|
-- input argument of this function.
|
|
|
|
-- If there is no instance report, then return true.
|
|
IF(SIZEOF(sdei) = 0) THEN
|
|
RETURN(TRUE);
|
|
END_IF;
|
|
|
|
-- If the type_list is empty and
|
|
-- instance_report_item_with_extreme_instances exists, then return false.
|
|
IF((SIZEOF(type_list) = 0) AND (SIZEOF(sdei) <> 0)) THEN
|
|
RETURN(FALSE);
|
|
END_IF;
|
|
|
|
-- When report_items exist, then perform the following checking process.
|
|
REPEAT i:= 1 TO SIZEOF(sdei);
|
|
REPEAT j:= 1 TO SIZEOF(sdei[i].extreme_instances);
|
|
-- If the size of locations_of_extreme_value is not equal to
|
|
-- the size of type_list, then return false.
|
|
IF(SIZEOF(sdei[i].extreme_instances[j].
|
|
locations_of_extreme_value) <>
|
|
SIZEOF(type_list)) THEN
|
|
RETURN(FALSE);
|
|
END_IF;
|
|
t_type_list := type_list;
|
|
-- check all elements of the type_list
|
|
-- for each element of locations_of_extreme_value.
|
|
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_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;
|
|
-- STEP-1
|
|
-- collect types of range attribute of shape_measurement_accuracy
|
|
-- referred from shape_data_quality_criterion_and_accuracy_association
|
|
-- that refers to given shape_data_quality_criterion.
|
|
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;
|
|
|
|
-- STEP-2
|
|
-- check whether the collected types include all the type names
|
|
-- in the type list given as an input argument of this function
|
|
-- and they do not include any other type names.
|
|
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;
|
|
|
|
-- STEP-3
|
|
-- collect types of range attribute of shape_measurement_accuracy
|
|
-- referred from shape_inspection_result_accuracy_association
|
|
-- that refers to shape_data_quality_inspection_result
|
|
-- for the given shape_data_quality_criterion.
|
|
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;
|
|
|
|
-- STEP-4
|
|
-- check whether the collected types include all the type
|
|
-- names in the type list given as an input argument of
|
|
-- this function and they do not include any other type names.
|
|
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 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 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;
|
|
|
|
-- find shape_definition_representations
|
|
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));
|
|
|
|
-- find product_definition_shape & product_definitions
|
|
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 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;
|
|
-- find extreme_instances
|
|
exti := exti +
|
|
bag_to_set( USEDIN(item,
|
|
'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' +
|
|
'EXTREME_INSTANCE.'+
|
|
'LOCATIONS_OF_EXTREME_VALUE'));
|
|
|
|
-- find instance_report_item_with_extreme_instances
|
|
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;
|
|
|
|
-- find shape_data_quality_inspection_instance_report
|
|
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;
|
|
|
|
-- find shape_data_quality_inspection_result_representation
|
|
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;
|
|
|
|
-- find shape_data_quality_inspected_shape_and_result_relationship
|
|
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;
|
|
|
|
-- find shape_representation
|
|
REPEAT i := 1 TO HIINDEX (sdisr);
|
|
results := results + sdisr[i].rep_1;
|
|
END_REPEAT;
|
|
|
|
RETURN (results);
|
|
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 ([ ]); -- in this case the subtype shall not contain
|
|
-- any variable (see IP1 in generic_expression)
|
|
END_FUNCTION; -- used_variables
|
|
|
|
FUNCTION compatible_spaces(sp1, sp2 : maths_space) : BOOLEAN;
|
|
LOCAL
|
|
types1 : SET OF STRING := stripped_typeof (sp1);
|
|
types2 : SET OF STRING := stripped_typeof (sp2);
|
|
lgcl : LOGICAL := UNKNOWN;
|
|
m, n : INTEGER;
|
|
s1, 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;
|
|
-- Should be unreachable.
|
|
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;
|
|
-- Should be unreachable.
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
IF subspace_of_es(sp1,es_integers) THEN -- Note that sp1 finite already handled.
|
|
IF subspace_of_es(sp2,es_integers) THEN -- Note that sp2 finite already handled.
|
|
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 -- Note that sp1 finite already handled.
|
|
IF subspace_of_es(sp2,es_reals) THEN -- Note that sp2 finite already handled.
|
|
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 -- Note sp1 finite already handled.
|
|
IF subspace_of_es(sp2,es_complex_numbers) THEN -- Note sp2 finite already handled.
|
|
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;
|
|
-- Should be unreachable.
|
|
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;
|
|
-- Should be unreachable.
|
|
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;
|
|
-- Should be unreachable.
|
|
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;
|
|
-- Should be unreachable.
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
-- Should be unreachable.
|
|
RETURN (TRUE);
|
|
END_FUNCTION; -- compatible_spaces
|
|
|
|
FUNCTION stripped_typeof(arg : GENERIC:G) : SET OF STRING;
|
|
LOCAL
|
|
types : SET OF STRING := TYPEOF (arg);
|
|
stypes : SET OF STRING := [];
|
|
n : INTEGER := LENGTH (schema_prefix);
|
|
END_LOCAL;
|
|
REPEAT i := 1 TO SIZEOF (types);
|
|
IF types[i][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; -- stripped_typeof
|
|
|
|
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; -- fedex
|
|
|
|
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, cum : LOGICAL;
|
|
vspc, 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); -- The centre has no direction.
|
|
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);
|
|
-- cum := cum AND member_of (fedex (v, i), sspc);
|
|
-- See note above for explanation of fedex()
|
|
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]);
|
|
-- cum := cum AND member_of (fedex (v, i), factors[i]);
|
|
-- See note above for explanation of fedex()
|
|
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));
|
|
-- cum := cum AND member_of (fedex (v, i), factor_space (sspc, i));
|
|
-- See note above for explanation of fedex()
|
|
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;
|
|
-- Should be unreachable
|
|
RETURN (UNKNOWN);
|
|
END_FUNCTION; -- member_of
|
|
|
|
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; -- simplify_maths_value
|
|
|
|
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; -- restore_unary
|
|
FUNCTION restore_binary(expr : binary_generic_expression;
|
|
opd1, opd2 : generic_expression) : generic_expression;
|
|
expr.operands[1] := opd1;
|
|
expr.operands[2] := opd2;
|
|
RETURN (expr);
|
|
END_FUNCTION; -- restore_binary
|
|
FUNCTION restore_mulary(expr : multiple_arity_generic_expression;
|
|
ops : LIST OF generic_expression) : generic_expression;
|
|
expr.operands := ops;
|
|
RETURN (expr);
|
|
END_FUNCTION; -- restore_mulary
|
|
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; -- make_number_literal;
|
|
LOCAL
|
|
types : SET OF STRING := stripped_typeof (expr);
|
|
v1, v2 : maths_value;
|
|
vlist : LIST OF maths_value := [];
|
|
op1, op2 : generic_expression;
|
|
oplist : LIST OF generic_expression := [];
|
|
opnds : LIST [2:?] OF generic_expression;
|
|
n, m : INTEGER;
|
|
finfun : maths_function_select;
|
|
boo : BOOLEAN;
|
|
str : STRING;
|
|
nmb : NUMBER;
|
|
END_LOCAL;
|
|
-- Unwrap the elementary kinds of literals
|
|
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); -- No simpler expression available
|
|
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;
|
|
-- Simplify one special class of literals
|
|
IF 'MATHS_SPACE' IN types THEN
|
|
RETURN (simplify_maths_space(expr));
|
|
END_IF;
|
|
-- Simplify one special kind of expression
|
|
IF 'FUNCTION_APPLICATION' IN types THEN
|
|
RETURN (simplify_function_application(expr));
|
|
END_IF;
|
|
-- Separate and simplify the operands
|
|
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;
|
|
-- Simplify the one kind of maths_function which derives its operands.
|
|
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;
|
|
-- Simplify individual kinds of expressions. It is not necessary to cover all cases.
|
|
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 (?); -- Unreachable
|
|
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;
|
|
-- No special simplification defined, return same with simplified operands.
|
|
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;
|
|
-- Should be unreachable, but for safety, return unsimplified expression.
|
|
RETURN (expr);
|
|
END_FUNCTION; -- simplify_generic_expression
|
|
|
|
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; -- make_int_literal
|
|
|
|
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; -- make_real_literal
|
|
|
|
FUNCTION convert_to_maths_value(val : GENERIC:G) : maths_value;
|
|
LOCAL
|
|
types : SET OF STRING := TYPEOF (val);
|
|
ival : maths_integer;
|
|
rval : maths_real;
|
|
nval : maths_number;
|
|
tfval : maths_boolean;
|
|
lval : maths_logical;
|
|
sval : maths_string;
|
|
bval : maths_binary;
|
|
tval : maths_tuple := the_empty_maths_tuple;
|
|
mval : maths_value;
|
|
END_LOCAL;
|
|
IF (schema_prefix + 'MATHS_VALUE') IN types THEN RETURN (val); END_IF;
|
|
IF 'INTEGER' IN types THEN ival := val; RETURN (ival); END_IF;
|
|
IF 'REAL' IN types THEN rval := val; RETURN (rval); END_IF;
|
|
IF 'NUMBER' IN types THEN nval := val; RETURN (nval); END_IF;
|
|
IF 'BOOLEAN' IN types THEN tfval := val; RETURN (tfval); END_IF;
|
|
IF 'LOGICAL' IN types THEN lval := val; RETURN (lval); END_IF;
|
|
IF 'STRING' IN types THEN sval := val; RETURN (sval); END_IF;
|
|
IF 'BINARY' IN types THEN bval := val; RETURN (bval); END_IF;
|
|
IF 'LIST' IN types THEN
|
|
REPEAT i := 1 TO SIZEOF (val);
|
|
mval := convert_to_maths_value (val[i]);
|
|
IF NOT EXISTS (mval) THEN RETURN (?); END_IF;
|
|
INSERT (tval, mval, i-1);
|
|
END_REPEAT;
|
|
RETURN (tval);
|
|
END_IF;
|
|
RETURN (?);
|
|
END_FUNCTION; -- convert_to_maths_value
|
|
|
|
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, zmin, 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; -- simplify_maths_space
|
|
|
|
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; -- make_finite_integer_interval
|
|
|
|
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; -- make_finite_space
|
|
|
|
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; -- make_uniform_product_space
|
|
|
|
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; -- make_listed_product_space
|
|
|
|
FUNCTION expression_is_constant(expr : generic_expression) : BOOLEAN;
|
|
RETURN (bool(SIZEOF (free_variables_of (expr)) = 0));
|
|
END_FUNCTION; -- expression_is_constant
|
|
|
|
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; -- bool
|
|
|
|
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;
|
|
-- In this case the subtype shall not contain any variable (see IP1 in
|
|
-- generic_expression).
|
|
RETURN (result);
|
|
END_FUNCTION; -- free_variables_of
|
|
|
|
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;
|
|
-- spc contains no references to other spaces
|
|
RETURN (TRUE);
|
|
END_FUNCTION; -- no_cyclic_space_reference
|
|
|
|
FUNCTION make_extended_tuple_space(base : product_space;
|
|
extender : maths_space) : extended_tuple_space;
|
|
RETURN (extended_tuple_space (base, extender)
|
|
|| maths_space ()
|
|
|| generic_expression()
|
|
|| generic_literal ()
|
|
|| simple_generic_expression() );
|
|
END_FUNCTION; -- make_extended_tuple_space
|
|
|
|
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;
|
|
-- Should be unreachable.
|
|
RETURN (?);
|
|
END_FUNCTION; -- any_space_satisfies
|
|
|
|
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; -- make_function_space
|
|
|
|
FUNCTION simplify_function_application(expr : function_application) : maths_value;
|
|
FUNCTION ctmv(x : GENERIC:G) : maths_value;
|
|
RETURN (convert_to_maths_value(x));
|
|
END_FUNCTION; -- local abbreviation for convert_to_maths_value function
|
|
PROCEDURE parts( c : complex_number_literal;
|
|
VAR x, y : REAL);
|
|
x := c.real_part; y := c.imag_part;
|
|
END_PROCEDURE; -- parts
|
|
FUNCTION makec(x, y : REAL) : complex_number_literal;
|
|
RETURN (make_complex_number_literal(x,y));
|
|
END_FUNCTION; -- local abbreviation for make_complex_number_literal 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; -- good_t
|
|
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, v1, v2, v3 : maths_value;
|
|
vlist : LIST OF maths_value := [];
|
|
gexpr : generic_expression;
|
|
pairs : SET [1:?] OF LIST [2:2] OF maths_value;
|
|
boo : BOOLEAN;
|
|
lgc, cum : LOGICAL;
|
|
j, k, n : INTEGER;
|
|
p, q, r, s, t, u : REAL;
|
|
str, st2 : STRING;
|
|
bin, bi2 : BINARY;
|
|
tpl, 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_if_i : combined with ef_if
|
|
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_if_r : combined with ef_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_if_c : combined with ef_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_if_s : combined with ef_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_if_b : combined with ef_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 : -- This can have multiple outputs, but the expression only
|
|
-- denotes the first.
|
|
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_if_t : combined with ef_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 : -- (mem + vlist) effectively converts list to set
|
|
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; -- simplify_function_application
|
|
|
|
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; -- convert_to_maths_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;
|
|
-- Unreachable, as there is no other possible value for input_repack.
|
|
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;
|
|
-- Unreachable, as no other subtypes of maths_function are permissible without
|
|
-- first modifying this function to account for them.
|
|
RETURN (?);
|
|
END_FUNCTION; -- derive_function_domain
|
|
|
|
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;
|
|
-- An ambiguity in ISO 10303-11:1994 pages 99-101 leaves the result of the following
|
|
-- three lines ambiguous in those cases where an operand is simultaneously a member
|
|
-- of the base type and the aggregate type.
|
|
-- REPEAT i := 1 TO SIZEOF (pairs);
|
|
-- result := result + pairs[i][1];
|
|
-- END_REPEAT;
|
|
-- The next line unions an empty set and the desired list to get the desired set.
|
|
result := result + list_selected_components (pairs, 1);
|
|
RETURN (one_tuples_of (make_finite_space (result)));
|
|
END_FUNCTION; -- derive_finite_function_domain
|
|
|
|
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; -- list_selected_components
|
|
|
|
FUNCTION one_tuples_of(spc : maths_space) : tuple_space;
|
|
RETURN (make_uniform_product_space (spc, 1));
|
|
END_FUNCTION; -- one_tuples_of
|
|
|
|
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; -- domain_from
|
|
|
|
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; -- no_cyclic_domain_reference
|
|
|
|
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; -- convert_to_operands_prcmfn
|
|
|
|
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; -- parallel_composed_function_domain_check
|
|
|
|
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; -- parallel_composed_function_composability_check
|
|
|
|
FUNCTION assoc_product_space(ts1, ts2 : tuple_space) : tuple_space;
|
|
LOCAL
|
|
types1 : SET OF STRING := stripped_typeof (ts1);
|
|
types2 : SET OF STRING := stripped_typeof (ts2);
|
|
up1, up2 : uniform_product_space := make_uniform_product_space(the_reals,1);
|
|
lp1, lp2, lps : listed_product_space := the_zero_tuple_space;
|
|
et1, et2, ets : extended_tuple_space := the_tuples;
|
|
use_up1, use_up2, use_lp1, use_lp2 : BOOLEAN;
|
|
factors : LIST OF maths_space := [];
|
|
tspace : tuple_space;
|
|
END_LOCAL;
|
|
-- Identify type of first operand
|
|
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
|
|
-- Unreachable when this function was written.
|
|
RETURN (?);
|
|
END_IF;
|
|
et1 := ts1; use_up1 := false; use_lp1 := false;
|
|
END_IF;
|
|
END_IF;
|
|
-- Identify type of second operand
|
|
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
|
|
-- Unreachable when this function was written.
|
|
RETURN (?);
|
|
END_IF;
|
|
et2 := ts2; use_up2 := false; use_lp2 := false;
|
|
END_IF;
|
|
END_IF;
|
|
-- Construction for each combination of cases
|
|
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
|
|
-- Avoid compiler confusion by breaking into two lines.
|
|
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
|
|
-- Avoid compiler confusion by breaking into two lines.
|
|
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
|
|
-- No subtype is available to represent this cartesian product.
|
|
RETURN (?);
|
|
END_IF;
|
|
ELSE
|
|
IF use_lp2 THEN
|
|
factors := lp2.factors;
|
|
REPEAT i := 1 TO SIZEOF (factors);
|
|
IF et1.extender <> factors[i] THEN
|
|
-- No subtype available to represent this cartesian product.
|
|
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
|
|
-- Next line may assign indeterminate (?) to tspace.
|
|
tspace := assoc_product_space(et1, et2.base);
|
|
ELSE
|
|
-- No subtype available to represent this cartesian product.
|
|
RETURN (?);
|
|
END_IF;
|
|
END_IF;
|
|
END_IF;
|
|
END_IF;
|
|
END_IF;
|
|
RETURN (tspace);
|
|
END_FUNCTION; -- assoc_product_space
|
|
|
|
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; -- make_elementary_space
|
|
|
|
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; -- derive_elementary_function_domain
|
|
|
|
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; -- make_real_interval_from_min
|
|
|
|
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; -- make_finite_real_interval
|
|
|
|
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
|
|
-- In the case of an extended_tuple_space, the minimum dimension is returned.
|
|
RETURN (space_dimension (tspace\extended_tuple_space.base));
|
|
END_IF;
|
|
-- Should be unreachable
|
|
RETURN (?);
|
|
END_FUNCTION; -- space_dimension
|
|
|
|
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]);
|
|
-- This path could return the indeterminate value if the list is empty.
|
|
-- This is the correct result for this case.
|
|
END_IF;
|
|
IF (schema_prefix + 'EXTENDED_TUPLE_SPACE') IN typenames THEN
|
|
RETURN (factor1 (tspace\extended_tuple_space.base));
|
|
END_IF;
|
|
-- Should not be reachable.
|
|
RETURN (?);
|
|
END_FUNCTION; -- factor1
|
|
|
|
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; -- repackage
|
|
|
|
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; -- shape_of_array
|
|
|
|
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;
|
|
-- Should not be reachable.
|
|
RETURN (?);
|
|
END_FUNCTION; -- factor_space
|
|
|
|
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_is_array
|
|
|
|
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; -- composable_sequence
|
|
|
|
FUNCTION function_is_2d_table(func : maths_function) : BOOLEAN;
|
|
LOCAL
|
|
temp : maths_space;
|
|
pspace : product_space;
|
|
itvl1, 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_is_2d_table
|
|
|
|
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; -- subspace_of_es
|
|
|
|
FUNCTION es_subspace_of_es(es1, 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; -- es_subspace_of_es
|
|
|
|
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;
|
|
-- Must be a generic_expression which doesn't simplify and which is not a
|
|
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 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 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 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 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; -- has_values_space
|
|
|
|
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; -- space_is_continuum
|
|
|
|
FUNCTION subspace_of(space1, 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, cum : LOGICAL;
|
|
es_val : elementary_space_enumerators;
|
|
bnd1, bnd2 : REAL;
|
|
n : INTEGER;
|
|
sp1, sp2 : maths_space;
|
|
prgn1, 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;
|
|
-- Note that the cases (spc2=the_generics) and (spc1=spc2) have been handled.
|
|
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;
|
|
-- Should be unreachable.
|
|
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;
|
|
-- Should be unreachable
|
|
RETURN (UNKNOWN);
|
|
END_FUNCTION; -- subspace_of
|
|
|
|
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; -- min_exists
|
|
|
|
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; -- real_min
|
|
|
|
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; -- max_exists
|
|
|
|
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; -- min_included
|
|
|
|
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; -- real_max
|
|
|
|
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; -- max_included
|
|
|
|
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;
|
|
-- Determine whether a real is strictly within a real interval
|
|
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;
|
|
-- Include direction in minmax collection
|
|
PROCEDURE angle_minmax( ab, a : REAL;
|
|
a_in : BOOLEAN;
|
|
VAR amin, amax : REAL;
|
|
VAR amin_in, 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;
|
|
-- Include distance in max collection
|
|
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;
|
|
-- Include distance in min collection
|
|
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, yitv : real_interval;
|
|
is_xmin, is_xmax, is_ymin, is_ymax : BOOLEAN;
|
|
xmin, xmax, ymin, ymax, xc, yc : REAL := 0.0;
|
|
xmin_in, xmax_in, ymin_in, ymax_in : BOOLEAN := FALSE;
|
|
rmin, rmax : REAL := -1.0;
|
|
amin : REAL := 4.0;
|
|
amax : REAL := -4.0;
|
|
rmax_exists, outside : BOOLEAN := TRUE;
|
|
rmin_in, rmax_in, amin_in, amax_in : BOOLEAN := FALSE;
|
|
ab, a, r : REAL := 0.0;
|
|
incl : BOOLEAN;
|
|
ritv : real_interval;
|
|
aitv : finite_real_interval;
|
|
minclo, maxclo : open_closed := open;
|
|
END_LOCAL;
|
|
IF NOT EXISTS (crgn) OR NOT EXISTS (centre) THEN RETURN (?); END_IF;
|
|
-- Extract elementary input information
|
|
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;
|
|
-- Identify base direction with respect to which all relevant directions lie
|
|
-- within +/- 0.5*PI, or that the centre lies properly inside crgn.
|
|
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 (?); -- No enclosing polar region exists (requires whole plane)
|
|
END_IF;
|
|
-- Identify any closest point on a side but not a corner.
|
|
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 -- Consider lower left corner
|
|
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 -- Centre at lower left corner
|
|
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 -- Consider points near (xmin, -infinity)
|
|
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 -- Consider points near (xmin, +infinity)
|
|
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 -- Consider lower right corner
|
|
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 -- Centre at lower right corner
|
|
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 -- Consider points near (+infinity, ymin)
|
|
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 -- Consider points near (-infinity, ymin)
|
|
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 -- Consider upper right corner
|
|
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 -- Centre at lower left corner
|
|
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 -- Consider points near (xmax, +infinity)
|
|
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 -- Consider points near (xmax, -infinity)
|
|
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 -- Consider upper left corner
|
|
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 -- Centre at lower right corner
|
|
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 -- Consider points near (-infinity, ymax)
|
|
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 -- Consider points near (+infinity, ymax)
|
|
angle_minmax(ab,0.0,(yc=ymax) AND ymax_in,amin,amax,amin_in,amax_in);
|
|
END_IF;
|
|
END_IF;
|
|
IF outside THEN -- Change direction origin from ab back to zero
|
|
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; -- enclose_cregion_in_pregion
|
|
|
|
FUNCTION atan2(y, 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; -- atan2
|
|
|
|
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; -- make_polar_complex_number_region
|
|
|
|
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
|
|
-- a+2.0*PI > aitv.min automatically!
|
|
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, yc, xmin, xmax, ymin, ymax : REAL := 0.0;
|
|
ritv, xitv, yitv : real_interval;
|
|
aitv : finite_real_interval;
|
|
xmin_exists, xmax_exists, ymin_exists, ymax_exists : BOOLEAN;
|
|
xmin_in, xmax_in, ymin_in, ymax_in : BOOLEAN := FALSE;
|
|
a, r : REAL := 0.0;
|
|
a_in : BOOLEAN := FALSE;
|
|
min_clo, max_clo : open_closed := open;
|
|
END_LOCAL;
|
|
IF NOT EXISTS (prgn) THEN RETURN (?); END_IF;
|
|
-- Extract elementary input data
|
|
xc := prgn.centre.real_part;
|
|
yc := prgn.centre.imag_part;
|
|
ritv := prgn.distance_constraint;
|
|
aitv := prgn.direction_constraint;
|
|
-- Determine xmin data
|
|
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;
|
|
-- Determine xmax data
|
|
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;
|
|
-- Determine ymin data
|
|
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;
|
|
-- Determine ymax data
|
|
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;
|
|
-- Construct result
|
|
IF NOT (xmin_exists OR xmax_exists OR ymin_exists OR ymax_exists) THEN
|
|
RETURN (?); -- No finite boundaries exist
|
|
END_IF;
|
|
-- Construct real_constraint
|
|
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;
|
|
-- Construct imag_constraint
|
|
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;
|
|
-- Construct cartesian region
|
|
RETURN (make_cartesian_complex_number_region(xitv,yitv));
|
|
END_FUNCTION; -- enclose_pregion_in_cregion
|
|
|
|
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; -- make_real_interval_to_max
|
|
|
|
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; -- make_cartesian_complex_number_region
|
|
|
|
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;
|
|
-- Find proper limits for direction interval
|
|
PROCEDURE angle_range(VAR amin, 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;
|
|
-- Determine whether a direction is strictly within a direction interval
|
|
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;
|
|
-- Find min and max and related inclusion booleans among four candidates,
|
|
-- using a base direction chosen to ensure the algebraic comparisons are valid.
|
|
PROCEDURE find_aminmax( ab,a0,a1,a2,a3 : REAL;
|
|
in0,in1,in2,in3 : BOOLEAN;
|
|
VAR amin,amax : REAL;
|
|
VAR amin_in,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, ritv : real_interval;
|
|
aitp, aitv : finite_real_interval;
|
|
xp, yp, xc, yc, rmax, rmin, amin, amax, rc, acp, apc : REAL := 0.0;
|
|
rmax_in, rmin_in, amin_in, amax_in : BOOLEAN := FALSE;
|
|
rmxp, rmnp, x, y, r, a, ab, r0, a0, r1, a1, r2, a2, r3, a3 : REAL := 0.0;
|
|
in0, in1, in2, in3, inn : BOOLEAN := FALSE;
|
|
minclo, maxclo : open_closed := open;
|
|
END_LOCAL;
|
|
-- Extract elementary input information
|
|
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);
|
|
-- Analyse cases by existence of max distance and direction limits
|
|
IF max_exists(ritp) THEN
|
|
rmxp := real_max(ritp);
|
|
IF aitp.max - aitp.min = 2.0*PI THEN
|
|
-- annulus or disk, with or without slot or puncture
|
|
inn := NOT max_included(aitp); -- slot exists;
|
|
a := angle(aitp.min); -- slot direction
|
|
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
|
|
-- slotted case
|
|
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 -- in the slot
|
|
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 -- Special cases when aligned with slot
|
|
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 -- direction range < 2*PI
|
|
-- Compute data for corners with respect to xc,yc
|
|
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;
|
|
-- Find rmax
|
|
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;
|
|
-- Find rmin
|
|
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 -- use nearest point on line segment
|
|
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 -- try nearest point on line segment
|
|
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;
|
|
-- Find amin and amax, initially with respect to base direction ab.
|
|
IF rc >= rmxp THEN -- outside outer circle
|
|
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)); -- reference direction
|
|
find_aminmax(ab,a0,a1,a2,a3,in0,in1,in2,in3,amin,amax,amin_in,amax_in);
|
|
ELSE
|
|
-- Using base direction midway in prgn, compute all directions using
|
|
-- values which ensure a3 < a2 and a0 < a1 algebraically.
|
|
ab := angle(0.5*(aitp.min+aitp.max)); -- reference direction
|
|
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
|
|
-- Cannot see out
|
|
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 -- Not max_exists(ritp)
|
|
IF (rc > rmnp) AND strictly_in(apc,aitp) THEN
|
|
RETURN (?); -- No pregion exists. (Would require whole plane.)
|
|
END_IF;
|
|
IF aitp.max - aitp.min = 2.0*PI THEN
|
|
-- complement of disk, with or without slot
|
|
a := angle(aitp.min); -- slot direction
|
|
IF rc > rmnp THEN -- already excluded if not aligned with slot
|
|
IF max_included(aitp) THEN
|
|
RETURN (?); -- No pregion exists. (Would require whole plane.)
|
|
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 -- Special cases when aligned with slot
|
|
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 -- direction range < 2*PI
|
|
-- Compute data for corners with respect to xc,yc (two at infinity)
|
|
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;
|
|
-- Find rmin
|
|
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 -- use nearest point on aitp.min ray
|
|
rmin := rc*SIN(ABS(a)); rmin_in := min_included(aitp);
|
|
END_IF;
|
|
a := apc-aitp.max;
|
|
r := rc*COS(a);
|
|
IF rmnp < r THEN -- try nearest point on aitp.max ray
|
|
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;
|
|
-- Find amin and amax
|
|
ab := angle(0.5*(aitp.min+aitp.max)); -- reference direction
|
|
IF rc > rmnp THEN
|
|
find_aminmax(ab,a0,a1,a2,a3,in0,in1,in2,in3,amin,amax,amin_in,amax_in);
|
|
ELSE
|
|
-- Using base direction midway in prgn, compute all directions using
|
|
-- values which ensure a3 < a2 and a0 < a1 algebraically.
|
|
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
|
|
-- Cannot see out
|
|
amin := -PI; amin_in := FALSE;
|
|
amax := PI; amax_in := TRUE;
|
|
IF (rmin = 0.0) AND rmin_in THEN
|
|
RETURN (?); -- No pregion exists. (Would require whole plane.)
|
|
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);
|
|
-- Construct polar region
|
|
RETURN (make_polar_complex_number_region(centre,ritv,aitv));
|
|
END_FUNCTION; -- enclose_pregion_in_pregion
|
|
|
|
FUNCTION equal_maths_spaces(spc1, spc2 : maths_space) : LOGICAL;
|
|
LOCAL
|
|
spc1types : SET OF STRING := stripped_typeof(spc1);
|
|
spc2types : SET OF STRING := stripped_typeof(spc2);
|
|
set1, set2 : SET OF maths_value;
|
|
cum : LOGICAL := TRUE;
|
|
base : maths_space;
|
|
expnt : INTEGER;
|
|
factors : LIST OF maths_space;
|
|
factors2 : LIST OF maths_space;
|
|
fs1, fs2 : function_space;
|
|
cum2 : LOGICAL;
|
|
END_LOCAL;
|
|
IF spc1 = spc2 THEN RETURN (TRUE); END_IF;
|
|
-- Consider cases where it is not yet certain that spc1 <> spc2.
|
|
IF 'FINITE_SPACE' IN spc1types THEN
|
|
set1 := spc1\finite_space.members;
|
|
IF 'FINITE_SPACE' IN spc2types THEN
|
|
-- Members may have different but equivalent representations and in
|
|
-- different orders. May also have disguised repeats in same set of members.
|
|
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
|
|
-- Quadrants and half spaces have two representations
|
|
RETURN (equal_cregion_pregion(spc1,spc2));
|
|
END_IF;
|
|
IF ('POLAR_COMPLEX_NUMBER_REGION' IN spc1types) AND
|
|
('CARTESIAN_COMPLEX_NUMBER_REGION' IN spc2types) THEN
|
|
-- Quadrants and half spaces have two representations
|
|
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
|
|
-- Safety check. Should be unreachable.
|
|
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;
|
|
-- Remaining cases too complex.
|
|
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
|
|
-- Safety check. Should be unreachable.
|
|
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;
|
|
-- Remaining cases too complex.
|
|
RETURN (UNKNOWN);
|
|
END_IF;
|
|
cum := cum AND equal_maths_spaces(fs1.range_argument,fs2.range_argument);
|
|
RETURN (cum);
|
|
END_IF;
|
|
RETURN (FALSE);
|
|
END_FUNCTION; -- equal_maths_spaces
|
|
|
|
FUNCTION equal_cregion_pregion(crgn : cartesian_complex_number_region;
|
|
prgn : polar_complex_number_region) : LOGICAL;
|
|
LOCAL
|
|
arng, amin, xc, yc : REAL;
|
|
aitv, xitv, 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 -- quadrant to upper right
|
|
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 -- quadrant to upper left
|
|
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 -- quadrant to lower left
|
|
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 -- quadrant to lower right
|
|
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 -- upper half space
|
|
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 -- left half space
|
|
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 -- lower half space
|
|
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 -- right half space
|
|
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; -- equal_cregion_pregion
|
|
|
|
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; -- space_is_singleton
|
|
|
|
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; -- singleton_member_of
|
|
|
|
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; -- definite_integral_expr_check
|
|
|
|
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 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_is_table
|
|
|
|
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; -- compare_basis_and_coef
|
|
|
|
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 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; -- partial_derivative_check
|
|
|
|
FUNCTION derive_definite_integral_domain(igrl : definite_integral_function)
|
|
: tuple_space;
|
|
|
|
-- Internal utility function:
|
|
FUNCTION process_product_space(spc : product_space;
|
|
idx, 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; -- process_product_space
|
|
|
|
-- Resume body of derive_definite_integral_domain 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; -- derive_definite_integral_domain
|
|
|
|
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; -- definite_integral_check
|
|
|
|
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; -- remove_first
|
|
|
|
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, 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;
|
|
-- Unreachable, as no other subtypes of explicit_table_function are permissible
|
|
-- without first modifying this function to account for them.
|
|
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;
|
|
-- Unreachable, as no other subtypes of maths_function are permissible without
|
|
-- first modifying this function to account for them.
|
|
RETURN (?);
|
|
END_FUNCTION; -- derive_function_range
|
|
|
|
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;
|
|
-- An ambiguity in ISO 10303-11:1994 pages 99-101 leaves the result of the following
|
|
-- three lines ambiguous in those cases where an operand is simultaneously a member
|
|
-- of the base type and the aggregate type.
|
|
-- REPEAT i := 1 TO SIZEOF (pairs);
|
|
-- result := result + pairs[i][2];
|
|
-- END_REPEAT;
|
|
-- The next line unions an empty set and the desired list to get the desired set.
|
|
result := result + list_selected_components (pairs, 2);
|
|
RETURN (one_tuples_of (make_finite_space (result)));
|
|
END_FUNCTION; -- derive_finite_function_range
|
|
|
|
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; -- derive_elementary_function_range
|
|
|
|
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 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_is_1d_table
|
|
|
|
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);
|
|
-- A consequence of WR1 of basic_sparse_matrix is that here we need only
|
|
-- consider the case that mthspc is a finite integer interval and is the only
|
|
-- factor space of 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])));
|
|
-- The index function is evaluated at (base+shape[i]) when determining the
|
|
-- upper search bound for entries of the last row or column, respectively.
|
|
END_FUNCTION; -- check_sparse_index_domain;
|
|
|
|
FUNCTION check_sparse_index_to_loc(index_range, loc_domain : tuple_space) : BOOLEAN;
|
|
LOCAL
|
|
temp : maths_space;
|
|
idx_rng_itvl, 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; -- check_sparse_index_to_loc
|
|
|
|
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; -- check_sparse_loc_range;
|
|
|
|
FUNCTION extract_factors(tspace : tuple_space;
|
|
m, 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; -- extract_factors
|
|
|
|
FUNCTION dimension_of(item : geometric_representation_item) :
|
|
dimension_count;
|
|
LOCAL
|
|
x : SET OF representation;
|
|
y : representation_context;
|
|
dim : dimension_count;
|
|
END_LOCAL;
|
|
-- For cartesian_point, direction, or vector dimension is determined by
|
|
-- counting components.
|
|
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;
|
|
-- For all other types of geometric_representation_item dim is obtained
|
|
-- via context.
|
|
-- Find the set of representation in which the item is used.
|
|
|
|
x := using_representations(item);
|
|
|
|
-- Determines the dimension_count of the
|
|
-- geometric_representation_context. Note that the
|
|
-- RULE compatible_dimension ensures that the context_of_items
|
|
-- is of type geometric_representation_context and has
|
|
-- the same dimension_count for all values of x.
|
|
-- The SET x is non-empty for legal instances since this is required by WR1 of
|
|
-- representation_item.
|
|
IF (SIZEOF(x) > 0) THEN
|
|
y := x[1].context_of_items;
|
|
dim := y\geometric_representation_context.coordinate_space_dimension;
|
|
RETURN (dim);
|
|
ELSE
|
|
RETURN(?);
|
|
-- mark error by returning indeterminate result
|
|
END_IF;
|
|
|
|
|
|
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; -- make_elementary_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; -- convert_to_operands
|
|
|
|
FUNCTION convert_to_operand(val : maths_value) : generic_expression;
|
|
LOCAL
|
|
types : SET OF STRING := stripped_typeof (val);
|
|
END_LOCAL;
|
|
-- Use intermediate variables of appropriate declared types to help the compilers.
|
|
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;
|
|
-- Should be unreachable
|
|
RETURN (?);
|
|
END_FUNCTION; -- convert_to_operand
|
|
|
|
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;
|
|
-- Should be unreachable
|
|
RETURN (?);
|
|
END_FUNCTION; -- convert_to_literal
|
|
|
|
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; -- make_boolean_literal
|
|
|
|
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; -- make_string_literal
|
|
|
|
FUNCTION make_logical_literal(lit_value : LOGICAL) : logical_literal;
|
|
RETURN (logical_literal (lit_value)
|
|
|| generic_literal()
|
|
|| simple_generic_expression()
|
|
|| generic_expression() );
|
|
END_FUNCTION; -- make_logical_literal
|
|
|
|
FUNCTION make_binary_literal(lit_value : BINARY) : binary_literal;
|
|
RETURN (binary_literal (lit_value)
|
|
|| generic_literal()
|
|
|| simple_generic_expression()
|
|
|| generic_expression() );
|
|
END_FUNCTION; -- make_binary_literal
|
|
|
|
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; -- make_maths_enum_literal
|
|
|
|
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; -- make_atom_based_literal
|
|
|
|
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; -- make_maths_tuple_literal
|
|
|
|
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); -- Should be unreachable
|
|
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_applicability
|
|
|
|
FUNCTION make_complex_number_literal(rpart, ipart : REAL) : complex_number_literal;
|
|
RETURN (complex_number_literal (rpart, ipart)
|
|
|| generic_literal()
|
|
|| simple_generic_expression()
|
|
|| generic_expression() );
|
|
END_FUNCTION; -- make_complex_number_literal
|
|
|
|
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)) -- derived
|
|
|| generic_expression() );
|
|
END_FUNCTION; -- make_function_application
|
|
|
|
FUNCTION equal_maths_values(val1, val2 : maths_value) : LOGICAL;
|
|
FUNCTION mem_of_vs(val1, 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; -- mem_of_vs
|
|
LOCAL
|
|
types1, types2 : SET OF STRING;
|
|
list1, 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; -- equal_maths_values
|
|
|
|
FUNCTION equal_maths_functions(fun1, 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;
|
|
-- A lot of further analysis is possible, but not required.
|
|
RETURN (UNKNOWN);
|
|
END_FUNCTION; -- equal_maths_functions
|
|
|
|
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, 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;
|
|
-- Variables subject to a quantifier do not participate in this kind of
|
|
-- substitution process.
|
|
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);
|
|
-- This technique will not work on subtypes of quantifier_expression
|
|
-- which derive their operands from other attributes!
|
|
END_IF;
|
|
END_REPEAT;
|
|
RETURN (expr); -- operands modified!
|
|
END_IF;
|
|
IF 'UNARY_GENERIC_EXPRESSION' IN types THEN
|
|
op1 := expr\unary_generic_expression.operand;
|
|
expr\unary_generic_expression.operand := substitute(op1, vars, vals);
|
|
-- This technique will not work on subtypes of unary_generic_expression
|
|
-- which derive their operands from other attributes!
|
|
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);
|
|
-- This technique will not work on subtypes of binary_generic_expression
|
|
-- which derive their operands from other attributes!
|
|
END_IF;
|
|
IF 'PARALLEL_COMPOSED_FUNCTION' IN types THEN
|
|
-- Subtype of multiple_arity_generic_expression which derives its operands.
|
|
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);
|
|
-- This technique will not work on subtypes of multiple_arity_generic_
|
|
-- expression which derive their operands from other attributes!
|
|
END_REPEAT;
|
|
END_IF;
|
|
RETURN (expr);
|
|
END_FUNCTION; -- substitute
|
|
|
|
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)) ); -- derived
|
|
END_FUNCTION; -- make_parallel_composed_function
|
|
|
|
FUNCTION compatible_es_values(esval1, esval2 : elementary_space_enumerators) : BOOLEAN;
|
|
LOCAL
|
|
esval1_is_numeric, 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;
|
|
-- All other cases are incompatible
|
|
RETURN (FALSE);
|
|
END_FUNCTION; -- compatible_es_values
|
|
|
|
FUNCTION compatible_intervals(sp1, sp2 : maths_space) : BOOLEAN;
|
|
LOCAL
|
|
amin, 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; -- compatible_intervals
|
|
|
|
FUNCTION compatible_complex_number_regions(sp1, sp2 : maths_space) : BOOLEAN;
|
|
LOCAL
|
|
typenames : SET OF string := stripped_typeof (sp1);
|
|
crgn1, crgn2 : cartesian_complex_number_region;
|
|
prgn1, prgn2, prgn1c2, prgn2c1 : polar_complex_number_region;
|
|
sp1_is_crgn, 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
|
|
-- Improper usage: Default response is to assume compatibility.
|
|
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
|
|
-- Improper usage: Default response is to assume compatibility.
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
END_IF;
|
|
IF sp1_is_crgn AND sp2_is_crgn THEN
|
|
-- two cartesian regions
|
|
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
|
|
-- two polar regions with common centre
|
|
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;
|
|
-- Deal with direction ambiguity by 2 pi.
|
|
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;
|
|
-- Make do with imperfect tests for remaining cases.
|
|
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;
|
|
-- Two polar regions with different centres
|
|
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; -- compatible_complex_number_regions
|
|
|
|
FUNCTION item_in_context
|
|
(item : representation_item;
|
|
cntxt : representation_context) : BOOLEAN;
|
|
LOCAL
|
|
y : BAG OF representation_item;
|
|
END_LOCAL;
|
|
-- If there is one or more representation using both the item
|
|
-- and cntxt return true.
|
|
IF SIZEOF(USEDIN(item,'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION.ITEMS')
|
|
* cntxt.representations_in_context) > 0 THEN
|
|
RETURN (TRUE);
|
|
-- Determine the bag of representation_items that reference
|
|
-- item
|
|
ELSE y := QUERY(z <* USEDIN (item , '') |
|
|
'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_ITEM' IN TYPEOF(z));
|
|
-- Ensure that the bag is not empty
|
|
IF SIZEOF(y) > 0 THEN
|
|
-- For each element in the bag
|
|
REPEAT i := 1 TO HIINDEX(y);
|
|
-- Check to see it is an item in the input cntxt.
|
|
IF item_in_context(y[i], cntxt) THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
END_REPEAT;
|
|
END_IF;
|
|
END_IF;
|
|
-- Return false when all possible branches have been checked
|
|
-- with no success.
|
|
RETURN (FALSE);
|
|
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 := ?;
|
|
(* When function is called with invalid data a NULL result is returned *)
|
|
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 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 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 build_axes(axis, ref_direction : direction) :
|
|
LIST [3:3] OF direction;
|
|
LOCAL
|
|
d1, 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 first_proj_axis(z_axis, 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 cross_product (arg1, arg2 : direction) : vector;
|
|
LOCAL
|
|
mag : REAL;
|
|
res : direction;
|
|
v1,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 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 dot_product(arg1, arg2 : direction) : REAL;
|
|
LOCAL
|
|
scalar : REAL;
|
|
vec1, vec2: direction;
|
|
ndim : INTEGER;
|
|
END_LOCAL;
|
|
|
|
IF NOT EXISTS (arg1) OR NOT EXISTS (arg2) THEN
|
|
scalar := ?;
|
|
(* When function is called with invalid data an indeterminate result
|
|
is returned *)
|
|
ELSE
|
|
IF (arg1.dim <> arg2.dim) THEN
|
|
scalar := ?;
|
|
(* When function is called with invalid data an indeterminate result
|
|
is returned *)
|
|
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 vector_difference(arg1, arg2 : vector_or_direction) : vector;
|
|
LOCAL
|
|
result : vector;
|
|
res, vec1, vec2 : direction;
|
|
mag, mag1, 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 base_axis(dim : INTEGER; axis1, axis2, axis3 : direction) :
|
|
LIST [2:3] OF
|
|
direction;
|
|
LOCAL
|
|
u : LIST [2:3] OF direction;
|
|
factor : REAL;
|
|
d1, 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 second_proj_axis(z_axis, x_axis, 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 acyclic_mapped_representation
|
|
(mi : mapped_item) : BOOLEAN;
|
|
LOCAL
|
|
rms : SET OF representation_map;
|
|
mis : SET OF mapped_item;
|
|
rs1, rs2 : SET OF representation;
|
|
END_LOCAL;
|
|
|
|
rs1 := using_representations(mi);
|
|
rs2 := [];
|
|
-- loop as long as there are elements in rs1
|
|
REPEAT WHILE SIZEOF(rs1) > 0;
|
|
REPEAT i := 1 TO HIINDEX(rs1);
|
|
-- Determine the set of representation_map that reference the parent_set
|
|
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);
|
|
-- check mis members for instance equal with mi. If so then there is a cycle
|
|
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 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 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 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 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 boolean_choose (b : boolean;
|
|
choice1, choice2 : generic : item) : generic : item;
|
|
|
|
IF b THEN
|
|
RETURN (choice1);
|
|
ELSE
|
|
RETURN (choice2);
|
|
END_IF;
|
|
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 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;
|
|
-- find the representations in which the item is used
|
|
-- and which is referenced from the representation_map
|
|
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
|
|
-- find the set of representation_map in which the local_results are used
|
|
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;
|
|
-- find the set of mapped_item
|
|
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 same manner
|
|
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 assembly_leaf
|
|
(item: product_definition) : BOOLEAN;
|
|
LOCAL
|
|
local_relation: SET OF assembly_component_usage := [];
|
|
local_relation2: BAG OF assembly_component_usage := [];
|
|
END_LOCAL;
|
|
-- extraction of related assembly_component_relationships --
|
|
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 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 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;
|
|
|
|
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],nodes[i+1]), (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],nodes[i+1]), (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],nodes[i+1]), (i - 1));
|
|
ELSE
|
|
RETURN(?);
|
|
END_IF;
|
|
END;
|
|
|
|
OTHERWISE : RETURN(?);
|
|
END_CASE;
|
|
END_REPEAT;
|
|
RETURN(directed_link);
|
|
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);
|
|
(* Return FALSE if the parent is the same curve_replica, otherwise,
|
|
call function again with the parents own parent_curve. *)
|
|
ELSE
|
|
RETURN(acyclic_curve_replica(rep,
|
|
parent\curve_replica.parent_curve));
|
|
END_IF;
|
|
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);
|
|
(* Return FALSE if the parent is the same point_replica, otherwise,
|
|
call function again with the parents own parent_pt. *)
|
|
ELSE RETURN(acyclic_point_replica(rep, parent\point_replica.parent_pt));
|
|
END_IF;
|
|
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);
|
|
(* Return FALSE if the parent is the same surface_replica, otherwise,
|
|
call function again with the parents own parent_surface. *)
|
|
ELSE RETURN(acyclic_surface_replica(rep,
|
|
parent\surface_replica.parent_surface));
|
|
END_IF;
|
|
END_FUNCTION;
|
|
|
|
FUNCTION check_text_alignment (ct : composite_text) : BOOLEAN;
|
|
|
|
LOCAL
|
|
a : SET OF text_alignment := [];
|
|
END_LOCAL;
|
|
|
|
-- create a set of all the alignments
|
|
REPEAT i := 1 TO HIINDEX (ct.collected_text);
|
|
a := a + [ct.collected_text[i]\text_literal.alignment];
|
|
END_REPEAT;
|
|
|
|
-- if there is more than one element in the set
|
|
-- then not all alignments were the same
|
|
RETURN (SIZEOF(a) = 1);
|
|
END_FUNCTION;
|
|
|
|
FUNCTION check_text_font (ct : composite_text) : BOOLEAN;
|
|
|
|
LOCAL
|
|
f : SET OF font_select := [];
|
|
END_LOCAL;
|
|
|
|
-- build a set of all the fonts
|
|
REPEAT i := 1 TO HIINDEX (ct.collected_text);
|
|
f := f + [ct.collected_text[i]\text_literal.font];
|
|
END_REPEAT;
|
|
|
|
-- if there is more than one element in the set
|
|
-- then not all fonts were the same
|
|
RETURN (SIZEOF(f) <= 1);
|
|
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 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 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 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 advanced_face_properties (testface : face) : BOOLEAN;
|
|
(* 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 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 validate_countersink_radii
|
|
(cskhole : solid_with_stepped_round_hole_and_conical_transitions)
|
|
: BOOLEAN;
|
|
|
|
LOCAL
|
|
i,j : INTEGER;
|
|
n : INTEGER := 1 +
|
|
cskhole\solid_with_stepped_round_hole.segments;
|
|
smaller, larger : positive_length_measure;
|
|
END_LOCAL;
|
|
|
|
REPEAT i := 1 TO SIZEOF(cskhole.conical_transitions);
|
|
|
|
-- First check whether transition i applies to the entry of the hole or
|
|
-- the exit of a through hole - those cases only need to be checked for
|
|
-- the sign of the cone apex angle.
|
|
|
|
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
|
|
|
|
-- For all remaining transitions, check that the cone base radius
|
|
-- lies in the range of validity.
|
|
|
|
|
|
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 check_continuous_edges (edges : LIST OF UNIQUE edge_curve)
|
|
: BOOLEAN;
|
|
|
|
LOCAL
|
|
i : INTEGER;
|
|
next_vertex : vertex;
|
|
END_LOCAL;
|
|
|
|
-- first check whether there is only one edge in the list: in this
|
|
-- case there is no connectivity to be checked.
|
|
|
|
IF (SIZEOF(edges) = 1)
|
|
THEN RETURN(TRUE);
|
|
END_IF;
|
|
|
|
-- otherwise, establish the matching vertices of edges 1 and 2 in
|
|
-- the list, and determine the vertex of edge 2 to which edge 3,
|
|
-- must be connected, if there are more than two edges in the list.
|
|
|
|
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); -- no match between any vertices of edges 1 and 2
|
|
END_IF;
|
|
END_IF;
|
|
|
|
-- exit if there are only two edges and they are connected
|
|
|
|
IF (SIZEOF(edges) = 2)
|
|
THEN RETURN(TRUE);
|
|
END_IF;
|
|
|
|
-- otherwise, check that any remaining edges are connected in list order.
|
|
|
|
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); -- no match is found.
|
|
END_IF;
|
|
END_IF;
|
|
END_REPEAT;
|
|
RETURN(TRUE); -- all edges have now been successfully checked.
|
|
|
|
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 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 the curve is a trimmed_curve
|
|
IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TRIMMED_CURVE')
|
|
IN TYPEOF (crv)) THEN
|
|
-- if a line, parabola, or hyperbola is being trimmed, then valid
|
|
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);
|
|
-- otherwise, recursively check basis_curve
|
|
ELSE RETURN (valid_basis_curve_in_2d_wireframe
|
|
(crv\trimmed_curve.basis_curve));
|
|
END_IF;
|
|
ELSE
|
|
-- recursively check the offset_curve basis curve
|
|
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
|
|
-- recursively check the curve_replica parent curve
|
|
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
|
|
-- recursively check the composite_curve segments
|
|
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 get_plane_of_implicit_geometry
|
|
(ps : positioned_sketch) : plane;
|
|
|
|
LOCAL
|
|
sb : sketch_basis_select := ps.sketch_basis;
|
|
result : plane := ?;
|
|
END_LOCAL;
|
|
|
|
-- determine plane of implicit geometry from the underlying entity data
|
|
-- type of its owning instance of positioned_sketch_representation. If
|
|
-- the sketch basis is of type planar_curve_select then the planarity
|
|
-- of the curve is guaranteed by a WHERE rule on the SELECT type of that
|
|
-- name.
|
|
|
|
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) -- case of one basis surface
|
|
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 -- case of two basis surfaces
|
|
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 := ?;
|
|
-- both basis surfaces are planes, their intersection curve
|
|
-- is a line, and no unique plane is defined
|
|
ELSE -- only one of the two basis surfaces is a plane
|
|
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_relative_direction_2points
|
|
(cp1, cp2 : cartesian_point) : direction;
|
|
|
|
LOCAL
|
|
d1, d2, d3, magnitude : REAL;
|
|
result : direction := ?;
|
|
END_LOCAL;
|
|
|
|
-- check that input points are three-dimensional
|
|
|
|
IF ((cp1.dim <> 3) OR (cp2.dim <> 3)) THEN
|
|
RETURN(result);
|
|
ELSE
|
|
|
|
-- construct components of vector and compute its magnitude
|
|
|
|
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); -- direction is indeterminate in this case
|
|
END_IF;
|
|
result := dummy_gri || direction([d1, d2, d3]);
|
|
END;
|
|
END_IF;
|
|
RETURN(result);
|
|
|
|
END_FUNCTION;
|
|
|
|
FUNCTION check_curve_planarity (checked_curve: curve) : BOOLEAN;
|
|
|
|
LOCAL
|
|
crv : curve := checked_curve;
|
|
i,j : INTEGER;
|
|
result : BOOLEAN := FALSE;
|
|
END_LOCAL;
|
|
|
|
-- Determine whether the curve lies on a plane, according to its type
|
|
|
|
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 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 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 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 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 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 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 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 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 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 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 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);
|
|
(* A surface model is composed of OPEN_ and CLOSED_SHELLs. *)
|
|
END_IF;
|
|
END_REPEAT;
|
|
RETURN(result);
|
|
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 is_int_expr (arg: numeric_expression) : LOGICAL;
|
|
|
|
LOCAL
|
|
i: INTEGER := 0;
|
|
END_LOCAL;
|
|
|
|
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; -- is_int_expr
|
|
|
|
FUNCTION make_numeric_set(start, 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 invalidate_vrep_item(item : representation_item)
|
|
: BOOLEAN;
|
|
|
|
LOCAL
|
|
reps : SET[1:?] OF representation := using_representations(item);
|
|
ri : 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); -- parameter not attached to an instance attribute
|
|
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;
|
|
ri := QUERY(q <* reps[i]\representation.items |
|
|
'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FREE_FORM_CONSTRAINT' IN TYPEOF(q));
|
|
IF SIZEOF(QUERY(r <* ri |
|
|
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);
|
|
--next line is previous
|
|
-- IF (reps <> using_representations(item\fixed_instance_attribute_set.fixed_attributes[i]))
|
|
--is this intent?
|
|
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;
|
|
ri := QUERY(q <* reps[i]\representation.items |
|
|
'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXPLICIT_GEOMETRIC_CONSTRAINT' IN TYPEOF(q));
|
|
IF SIZEOF(QUERY(r <* ri |
|
|
item IN r\explicit_geometric_constraint.reference_elements)) = 0
|
|
THEN
|
|
RETURN(TRUE);
|
|
END_IF;
|
|
END_REPEAT;
|
|
END;
|
|
END_IF;
|
|
|
|
RETURN(FALSE); -- no invalid cases have been found
|
|
|
|
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;
|
|
|
|
-- check that indentifier starts with a letter
|
|
|
|
IF NOT (attid[1] IN letters) THEN
|
|
id_valid := FALSE;
|
|
END_IF;
|
|
|
|
-- check that no invalid characters occur subsequently
|
|
|
|
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 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;
|
|
-- find shape_definition_representations
|
|
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);
|
|
-- find shape_aspects
|
|
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 find_representative_shape_representation_of_product_definition
|
|
(item:product_definition) : shape_representation;
|
|
LOCAL
|
|
local_s_r: SET OF shape_representation := [];
|
|
END_LOCAL;
|
|
-- find representative_shape_representation of the product_definition
|
|
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_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;
|
|
-- find product_definition_shape representing the product_definiton
|
|
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);
|
|
-- find shape_definition_representations refereing to the local_p_d_s
|
|
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 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 find_representative_shape_representation_of_shape_aspect
|
|
(item:shape_aspect) : shape_representation;
|
|
LOCAL
|
|
local_s_r: SET OF shape_representation := [];
|
|
END_LOCAL;
|
|
-- find representative_shape_representation of the shape_aspect
|
|
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_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;
|
|
-- find property_definition representing the shape_aspect
|
|
local_p_d := bag_to_set (USEDIN (item,
|
|
'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION'));
|
|
-- find shape_definition_representations refereing to the local_p_d
|
|
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 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;
|
|
|
|
-- Is constituent root ? --
|
|
IF ((SIZEOF (constituent) = 1) AND assembly_root (constituent[1]))
|
|
THEN RETURN ([constituent [1]]);
|
|
-- ERROR constituent is vacant --
|
|
ELSE IF (SIZEOF (constituent) = 0 ) THEN RETURN ([]);
|
|
|
|
-- extraction of related assembly_component_relationships --
|
|
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
|
|
-- extraction of a set of parents --
|
|
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 ([]);
|
|
-- try again --
|
|
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 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 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;
|
|
-- find product_definitions represented by the input
|
|
-- representative_shape_representation
|
|
local_p_d := using_product_definition_of_shape_representation (item);
|
|
-- ERROR
|
|
IF (SIZEOF (local_p_d) <> 1) THEN RETURN (FALSE);
|
|
ELSE
|
|
-- find shape_representation representing the product_definitions
|
|
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;
|
|
-- find shape_aspects represented by the input
|
|
-- representative_shape_representation
|
|
local_s_a := using_shape_aspect_of_shape_representation (item);
|
|
-- ERROR
|
|
IF (SIZEOF (local_s_a) <> 1) THEN RETURN (FALSE);
|
|
ELSE
|
|
-- find shape_representation representing the shape_aspect
|
|
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 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 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
|
|
*)
|
|
IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ELEMENTARY_SURFACE' IN TYPEOF(surf) THEN
|
|
RETURN(TRUE);
|
|
ELSE
|
|
|
|
(* a swept_surface shall have a valid sweeping curve
|
|
*)
|
|
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
|
|
|
|
(* an offset_surface shall not self-intersect and shall
|
|
reference a valid surface
|
|
*)
|
|
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
|
|
|
|
(* a surface_replica shall have a valid parent surface
|
|
*)
|
|
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
|
|
|
|
(* a b_spline_surface shall not self-intersect
|
|
*)
|
|
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
|
|
*)
|
|
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
|
|
|
|
(* 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
|
|
|
|
(* conics and lines are valid curve types
|
|
*)
|
|
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
|
|
|
|
(* a curve_replica shall reference a valid curve
|
|
*)
|
|
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
|
|
|
|
(* an offset_curve_3d shall not self-intersect and
|
|
shall reference a valid curve; a polyline is not a
|
|
valid basis_curve
|
|
*)
|
|
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
|
|
|
|
(* a pcurve shall reference a valid curve and a valid
|
|
basis_surface
|
|
*)
|
|
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
|
|
|
|
(* a surface_curve references a curve_3d and one or
|
|
two pcurves or one or two surfaces or one of
|
|
each; all of these references shall be valid
|
|
*)
|
|
IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_CURVE' IN TYPEOF(cv) THEN
|
|
|
|
(* if the curve reference is correct, check also the rest
|
|
*)
|
|
IF nmsf_curve_check(cv\surface_curve.curve_3d) THEN
|
|
REPEAT i := 1 TO SIZEOF
|
|
(cv\surface_curve.associated_geometry);
|
|
|
|
(* do for one or two associated_geometrys:
|
|
*)
|
|
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
|
|
|
|
(* a polyline shall have at least 3 points
|
|
*)
|
|
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 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);
|
|
(* Return FALSE if the parent is the same solid_replica, otherwise,
|
|
call function again with the parents own parent_solid. *)
|
|
ELSE RETURN(acyclic_solid_replica(rep,
|
|
parent\solid_replica.parent_solid));
|
|
END_IF;
|
|
END_FUNCTION;
|
|
|
|
FUNCTION constraints_param_b_spline(degree, up_knots, up_cp : INTEGER;
|
|
knot_mult : LIST OF INTEGER;
|
|
knots : LIST OF parameter_value) : BOOLEAN;
|
|
LOCAL
|
|
result : BOOLEAN := TRUE;
|
|
k, 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_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 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 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_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_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 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 is_acyclic (arg: generic_expression): BOOLEAN;
|
|
RETURN (acyclic (arg, []));
|
|
END_FUNCTION ; -- is_acyclic
|
|
|
|
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; -- acyclic
|
|
|
|
FUNCTION is_SQL_mappable (arg: expression) : LOGICAL;
|
|
|
|
LOCAL
|
|
i: INTEGER;
|
|
END_LOCAL;
|
|
|
|
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; -- is_SQL_mappable
|
|
|
|
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 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_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 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 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 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;
|
|
*)
|
|
RETURN (?);
|
|
END_FUNCTION;
|
|
|
|
FUNCTION convert_spatial_to_ypr_rotation (pair : kinematic_pair;
|
|
rotation : spatial_rotation)
|
|
: ypr_rotation;
|
|
LOCAL
|
|
axis : direction;
|
|
angle : plane_angle_measure; -- rotation angle in application
|
|
-- specific units
|
|
conv_angle : plane_angle_measure; -- rotation angle in radians
|
|
ya, pa, ra : plane_angle_measure; -- yaw, pitch, and roll angle
|
|
ucf : REAL; -- unit conversion factor
|
|
dx, dy, dz : REAL; -- components of direction vector
|
|
s_a, c_a : REAL; -- sine and cosine of rotation angle
|
|
rotmat : ARRAY [1 : 3] OF
|
|
ARRAY [1 : 3] OF REAL; -- rotation matrix
|
|
cm1 : REAL;
|
|
s_y, c_y : REAL;
|
|
s_r, c_r : REAL;
|
|
END_LOCAL;
|
|
|
|
-- If rotation is already a ypr_rotation, return it immediately
|
|
IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.YPR_ROTATION' IN TYPEOF (rotation) THEN
|
|
RETURN (rotation);
|
|
END_IF;
|
|
|
|
-- rotation is a rotation_about_direction
|
|
|
|
axis := normalise (rotation\rotation_about_direction.direction_of_axis);
|
|
angle := rotation\rotation_about_direction.rotation_angle;
|
|
|
|
-- a zero rotation is converted trivially
|
|
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];
|
|
|
|
-- provide angle measured in radian
|
|
|
|
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);
|
|
|
|
-- axis parallel either to x-axis or to z-axis?
|
|
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
|
|
-- axis parallel to x-axis - use x-axis as roll axis
|
|
IF (dx > 0.0) THEN
|
|
RETURN ([0.0, 0.0, ya]);
|
|
ELSE
|
|
RETURN ([0.0, 0.0, ra]);
|
|
END_IF;
|
|
ELSE
|
|
-- axis parallel to z-axis - use z-axis as yaw axis
|
|
IF (dz > 0.0) THEN
|
|
RETURN ([ya, 0.0, 0.0]);
|
|
ELSE
|
|
RETURN ([ra, 0.0, 0.0]);
|
|
END_IF;
|
|
END_IF;
|
|
END_IF;
|
|
|
|
-- axis parallel to y-axis - use y-axis as pitch axis
|
|
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;
|
|
|
|
-- axis not parallel to any axis of coordinate system
|
|
-- compute rotation matrix
|
|
|
|
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 ] ];
|
|
|
|
-- rotmat[1][3] equals SIN (pitch_angle)
|
|
IF (ABS (rotmat[1][3]) = 1.0) THEN
|
|
-- |pa| = PI/2
|
|
BEGIN
|
|
IF (rotmat[1][3] = 1.0) THEN
|
|
pa := 0.5 * PI;
|
|
ELSE
|
|
pa := -0.5 * PI;
|
|
END_IF;
|
|
|
|
-- In this case, only the sum or difference of roll and yaw angles
|
|
-- is relevant and can be evaluated from the matrix.
|
|
-- According to IP `rectangular pitch angle' for ypr_rotation,
|
|
|
|
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 ypr_index (ypr : ypr_enumeration) : INTEGER;
|
|
CASE ypr OF
|
|
yaw : RETURN (1);
|
|
pitch : RETURN (2);
|
|
roll : RETURN (3);
|
|
END_CASE;
|
|
RETURN (?);
|
|
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);
|
|
(* A wireframe model is composed of WIRE_ and VERTEX_SHELLs *)
|
|
END_IF;
|
|
END_REPEAT;
|
|
RETURN(result);
|
|
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; --the selection control is not specified then the quantity shall be a qualified_representation_item or a value_range
|
|
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 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
|
|
-- item invalid if item does not belong to the types that may have a class_system
|
|
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
|
|
-- item invalid if item does not belong to the types that may have a characterized_class
|
|
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 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 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 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.items) TO HIINDEX(aia.items);
|
|
item:= aia.items[i];
|
|
IF (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXTERNALLY_DEFINED_GENERAL_PROPERTY']*TYPEOF(item))=0) THEN
|
|
-- item invalid if item does not belong to versionable types
|
|
RETURN(FALSE);
|
|
END_IF;
|
|
END_REPEAT;
|
|
RETURN(TRUE);
|
|
ELSE -- case where aia does not convey a version id
|
|
RETURN(TRUE);
|
|
END_IF;
|
|
END_FUNCTION;
|
|
|
|
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 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'
|
|
)) > 0)
|
|
)) > 0;
|
|
|
|
END_RULE;
|
|
|
|
RULE component_class_for_assembly_select FOR
|
|
(composite_assembly_sequence_definition,
|
|
next_assembly_usage_occurrence,
|
|
product_related_product_category);
|
|
LOCAL
|
|
i,j,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 ply_reference FOR
|
|
(ply_laminate_sequence_definition,
|
|
next_assembly_usage_occurrence,
|
|
product_related_product_category);
|
|
LOCAL
|
|
i,j,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 compatible_dimension FOR
|
|
(cartesian_point,
|
|
direction,
|
|
representation_context,
|
|
geometric_representation_context);
|
|
WHERE
|
|
|
|
-- ensure that the count of coordinates of each cartesian_point
|
|
-- matches the coordinate_space_dimension of each geometric_context in
|
|
-- which it is geometrically founded
|
|
WR1: SIZEOF(QUERY(x <* cartesian_point| SIZEOF(QUERY
|
|
(y <* geometric_representation_context | item_in_context(x,y) AND
|
|
(HIINDEX(x.coordinates) <> y.coordinate_space_dimension))) > 0 )) =0;
|
|
|
|
-- ensure that the count of direction_ratios of each direction
|
|
-- matches the coordinate_space_dimension of each geometric_context in
|
|
-- which it is geometrically founded
|
|
WR2: SIZEOF(QUERY(x <* direction | SIZEOF( QUERY
|
|
(y <* geometric_representation_context | item_in_context(x,y) AND
|
|
(HIINDEX(x.direction_ratios) <> y.coordinate_space_dimension)))
|
|
> 0 )) = 0;
|
|
END_RULE;
|
|
|
|
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 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 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 transition_feature_life_cycle FOR
|
|
(transition_feature);
|
|
WHERE
|
|
WR1: SIZEOF (QUERY (tf <* transition_feature |
|
|
NOT (tf.of_shape.definition.frame_of_reference.life_cycle_stage =
|
|
'manufacturing planning'))) = 0;
|
|
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 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 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_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_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 draughting_model_items_constraint FOR (draughting_model);
|
|
WHERE
|
|
-- logic - there should be 0 items, which are annotation_occurrences and which are not draughting_annotation_occurrences
|
|
WR1: SIZEOF(QUERY(dm <* draughting_model |
|
|
NOT(SIZEOF(QUERY(it1 <* dm\representation.items |
|
|
(('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_OCCURRENCE' IN TYPEOF(it1))
|
|
AND
|
|
NOT('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DRAUGHTING_ANNOTATION_OCCURRENCE' IN TYPEOF(it1)))
|
|
)) = 0)
|
|
)) = 0;
|
|
WR2: SIZEOF(QUERY(dm <* draughting_model |
|
|
NOT(SIZEOF(QUERY(it1 <* dm\representation.items |
|
|
(('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_CALLOUT' IN TYPEOF(it1))
|
|
AND
|
|
NOT('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_ELEMENTS' IN TYPEOF(it1)))
|
|
)) = 0)
|
|
)) = 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 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 tolerance_zone_form_name_constraint for (tolerance_zone_form);
|
|
LOCAL
|
|
names : SET OF STRING :=
|
|
[ 'within a circle',
|
|
'between two concentric circles',
|
|
'between two equidistant curves',
|
|
'within a cylinder',
|
|
'between two coaxial cylinders',
|
|
'between two equidistant surfaces',
|
|
'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 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 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 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 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' ) ); --tt found real problem here
|
|
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 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 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_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 unique_dimensional_location_constraint for (product_definition_shape, dimensional_location);
|
|
LOCAL
|
|
ssa : SET OF shape_aspect := [];
|
|
bdl : BAG OF dimensional_location := [];
|
|
pass : BOOLEAN := TRUE;
|
|
END_LOCAL;
|
|
REPEAT i := 1 TO SIZEOF (product_definition_shape) WHILE pass;
|
|
bdl := [];
|
|
ssa := bag_to_set(USEDIN(product_definition_shape[i], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_ASPECT.' + 'OF_SHAPE'));
|
|
REPEAT i := 1 to SIZEOF (dimensional_location) WHILE pass;
|
|
IF (dimensional_location[i]\shape_aspect_relationship.relating_shape_aspect IN ssa) AND
|
|
(dimensional_location[i]\shape_aspect_relationship.name <> '') THEN
|
|
bdl := bdl + dimensional_location[i];
|
|
END_IF;
|
|
END_REPEAT;
|
|
IF (SIZEOF(bag_to_set(bdl)) <> SIZEOF(bdl)) THEN pass := FALSE;
|
|
END_IF;
|
|
END_REPEAT;
|
|
WHERE
|
|
WR1 : pass;
|
|
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 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 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_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 machining_feature_life_cycle FOR
|
|
(instanced_feature);
|
|
WHERE
|
|
WR1: SIZEOF (QUERY (mf <* instanced_feature |
|
|
NOT (mf.of_shape.definition.frame_of_reference.life_cycle_stage =
|
|
'manufacturing planning'))) = 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 unique_shape_aspect_constraint for (product_definition_shape, shape_aspect);
|
|
LOCAL
|
|
bsa : BAG OF shape_aspect := [];
|
|
pass : BOOLEAN := TRUE;
|
|
END_LOCAL;
|
|
REPEAT i := 1 TO SIZEOF (product_definition_shape) WHILE pass;
|
|
bsa := QUERY(sa <* USEDIN(product_definition_shape[i], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_ASPECT.' + 'OF_SHAPE') | sa\shape_aspect.name <> '');
|
|
IF (SIZEOF(bag_to_set(bsa)) <> SIZEOF(bsa)) THEN pass := FALSE;
|
|
END_IF;
|
|
END_REPEAT;
|
|
WHERE
|
|
WR1 : pass;
|
|
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 ply_stock_material_select FOR
|
|
(product_related_product_category,
|
|
make_from_usage_option);
|
|
LOCAL
|
|
i,j,k,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 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 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 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_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_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 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 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 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 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 machining_feature_definition_constraints FOR (feature_definition);
|
|
LOCAL
|
|
mfds : SET OF feature_definition := [];
|
|
END_LOCAL;
|
|
mfds := QUERY(temp <* feature_definition | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MACHINING_FEATURE_DEFINITION' IN TYPEOF (temp) );
|
|
WHERE
|
|
WR1: SIZEOF(QUERY( mfd <* mfds | NOT (SIZEOF(QUERY( pdr <*
|
|
get_property_definition_representations (mfd) |
|
|
'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS'
|
|
IN TYPEOF ( pdr.used_representation ) ) ) <=1 ) ) ) = 0;
|
|
WR2: SIZEOF(QUERY( mfd <* mfds | NOT (SIZEOF (QUERY (pd <* USEDIN (mfd,
|
|
'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 ) ) ) = 0;
|
|
WR3: SIZEOF(QUERY( mfd <* mfds | NOT ((NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROUND_HOLE',
|
|
'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOSS',
|
|
'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OUTSIDE_PROFILE',
|
|
'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REMOVAL_VOLUME',
|
|
'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FLAT_FACE',
|
|
'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POCKET',
|
|
'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROTRUSION',
|
|
'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RIB_TOP',
|
|
'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROUNDED_END',
|
|
'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SLOT',
|
|
'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STEP'] * TYPEOF(mfds)) = 1)) OR
|
|
((SIZEOF(QUERY(pdr <* get_property_definition_representations (mfd) |
|
|
( '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)) ) ) ) = 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 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_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 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 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 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;
|
|
|
|
(* E2: SUBTYPE_CONSTRAINT representation_item_subtypes FOR REPRESENTATION_ITEM; *)
|
|
|
|
(* E2: SUBTYPE_CONSTRAINT currency_subtypes FOR CURRENCY; *)
|
|
|
|
(* E2: SUBTYPE_CONSTRAINT cm_group_assignment_subtypes FOR GROUP_ASSIGNMENT; *)
|
|
|
|
(* E2: SUBTYPE_CONSTRAINT pos_compound_representation_item_subtypes FOR COMPOUND_REPRESENTATION_ITEM; *)
|
|
|
|
(* E2: SUBTYPE_CONSTRAINT cm_group_subtypes FOR GROUP; *)
|
|
|
|
(* E2: SUBTYPE_CONSTRAINT pos_product_definition_subtypes FOR PRODUCT_DEFINITION; *)
|
|
|
|
(* E2: SUBTYPE_CONSTRAINT primitive_2d_subtypes FOR PRIMITIVE_2D; *)
|
|
|
|
(* E2: SUBTYPE_CONSTRAINT c_compound_representation_item_subtypes FOR COMPOUND_REPRESENTATION_ITEM; *)
|
|
|
|
(* E2: SUBTYPE_CONSTRAINT des_draughting_callout_subtypes FOR DRAUGHTING_CALLOUT; *)
|
|
|
|
(* E2: SUBTYPE_CONSTRAINT machining_feature_definition_subtypes FOR FEATURE_DEFINITION; *)
|
|
|
|
(* E2: SUBTYPE_CONSTRAINT aa_representation_item_subtypes FOR REPRESENTATION_ITEM; *)
|
|
|
|
(* E2: SUBTYPE_CONSTRAINT ttr_descriptive_representation_item_subtypes FOR DESCRIPTIVE_REPRESENTATION_ITEM; *)
|
|
|
|
(*** 2003=>1994 conversion: insert a rule to control if instances are legal according to USE/REF clauses ***)
|
|
|
|
RULE validate_dependently_instantiable_entity_data_types FOR
|
|
(abstracted_expression_function,action_method_role,action_resource_type,application_defined_function,atom_based_literal,attribute_value_role,b_spline_basis,b_spline_function,basic_sparse_matrix,binary_literal,camera_model_d2,cartesian_complex_number_region,cartesian_transformation_operator,complex_number_literal,concept_feature_relationship,concept_feature_relationship_with_condition,constant_function,definite_integral_expression,definite_integral_function,document_usage_constraint,edge_blended_solid,effectivity_context_role,elementary_function,event_occurrence_role,explicit_procedural_representation_item_relationship,explicit_table_function,expression_denoted_function,extended_tuple_space,externally_listed_data,finite_function,founded_item,function_application,function_space,general_linear_function,homogeneous_linear_function,imported_curve_function,imported_point_function,imported_surface_function,imported_volume_function,indirectly_selected_elements,integer_tuple_literal,linearized_table_function,listed_data,local_time,maths_enum_literal,maths_function,maths_tuple_literal,modified_solid_with_placed_configuration,one_direction_repeat_factor,oriented_open_shell,oriented_path,parallel_composed_function,partial_derivative_expression,partial_derivative_function,polar_complex_number_region,procedural_representation,procedural_representation_sequence,product_definition_effectivity,quantifier_expression,rationalize_function,real_tuple_literal,reindexed_array_function,repackaging_function,restriction_function,runout_zone_orientation,selector_function,series_composed_function,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,view_volume,volume --<list this first and all subsequent relevant referencedentity data types here>
|
|
);
|
|
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 + abstracted_expression_function + action_method_role + action_resource_type + application_defined_function + atom_based_literal + attribute_value_role + b_spline_basis + b_spline_function + basic_sparse_matrix + binary_literal + camera_model_d2 + cartesian_complex_number_region + cartesian_transformation_operator + complex_number_literal + concept_feature_relationship + concept_feature_relationship_with_condition + constant_function + definite_integral_expression + definite_integral_function + document_usage_constraint + edge_blended_solid + effectivity_context_role + elementary_function + event_occurrence_role + explicit_procedural_representation_item_relationship + explicit_table_function + expression_denoted_function + extended_tuple_space + externally_listed_data + finite_function + founded_item + function_application + function_space + general_linear_function + homogeneous_linear_function + imported_curve_function + imported_point_function + imported_surface_function + imported_volume_function + indirectly_selected_elements + integer_tuple_literal + linearized_table_function + listed_data + local_time + maths_enum_literal + maths_function + maths_tuple_literal + modified_solid_with_placed_configuration + one_direction_repeat_factor + oriented_open_shell + oriented_path + parallel_composed_function + partial_derivative_expression + partial_derivative_function + polar_complex_number_region + procedural_representation + procedural_representation_sequence + product_definition_effectivity + quantifier_expression + rationalize_function + real_tuple_literal + reindexed_array_function + repackaging_function + restriction_function + runout_zone_orientation + selector_function + series_composed_function + 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 + view_volume + volume;--<make a union of all implicit populations of the FOR-clause>
|
|
number_of_input_instances := SIZEOF(all_instances);
|
|
(* Collect all type strings of all FOR instances into one set. *)
|
|
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;
|
|
|
|
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);
|
|
(* Add the declared type of bag_of_referring_instances to the set of
|
|
types of the REFERENCEd instances for the subset comparison later.
|
|
*)
|
|
set_of_input_types := set_of_input_types + 'GENERIC';
|
|
REPEAT i:=1 TO number_of_input_instances;
|
|
(* Determine all references to the current input instance. *)
|
|
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;
|
|
(* Determine the type strings of the current referencing instance.
|
|
*)
|
|
set_of_types := TYPEOF(bag_of_referring_instances[j]);
|
|
(* If the referencing instance is of one of the types of the
|
|
only dependently instantiable select items, the current input
|
|
instance may still be invalidly instantiated.
|
|
Otherwise it is OK, and the next input instance is tested.
|
|
*)
|
|
IF set_of_types <= set_of_input_types THEN -- subset operator
|
|
(* The referring instance is of one of the restricted types.
|
|
However, it may itself be referred to by a valid instance;
|
|
then also the current instance would be valid.
|
|
Thus, call this function recursively with the referring
|
|
instance as input.
|
|
To avoid an infinite loop in case a set of instances
|
|
reference each other in a closed loop, test first whether
|
|
the current referencing instance is in the list of
|
|
previously processed chain members.
|
|
*)
|
|
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; -- dependently instantiated; next input instance
|
|
ELSE
|
|
(* Not dependently instantiated: go to next referring
|
|
instance. *)
|
|
SKIP;
|
|
END_IF;
|
|
END_IF;
|
|
ELSE
|
|
dependently_instantiated_flag := true;
|
|
ESCAPE; -- dependently instantiated; take next input instance
|
|
END_IF;
|
|
END_REPEAT;
|
|
IF NOT dependently_instantiated_flag THEN
|
|
RETURN(false);
|
|
END_IF;
|
|
ELSE
|
|
RETURN(false); -- not referenced at all => invalidly instantiated
|
|
END_IF;
|
|
END_REPEAT;
|
|
ELSE
|
|
RETURN(false); -- no input
|
|
END_IF;
|
|
|
|
RETURN(true);
|
|
END_FUNCTION; -- end dependently_instantiated
|
|
|
|
|
|
|
|
END_SCHEMA;
|
|
|