Application module: Physical unit 3D design view | ISO/TS 10303-1725:2018-11(E) © ISO |
(*
ISO/TC 184/SC 4/WG 12 N9390 - ISO/TS 10303-1725 Physical unit 3D design view - EXPRESS ARM
Supersedes
ISO/TC 184/SC 4/WG 12 N8203
*)
SCHEMA Physical_unit_3d_design_view_arm;
USE FROM
Layered_3d_shape_arm;
-- ISO/TS 10303-1694
USE FROM
Part_template_shape_with_parameters_arm;
-- ISO/TS 10303-1720
USE FROM
Physical_unit_design_view_arm;
-- ISO/TS 10303-1728
USE FROM
Solid_model_arm;
-- ISO/TS 10303-1793
REFERENCE FROM
Support_resource_arm -- ISO/TS 10303-1800
(bag_to_set);
ENTITY Assembly_component_3d_shape_model
SUBTYPE OF (Geometric_model);
shape_characterized_component : SET[1:?] OF Assembly_component;
DERIVE
equivalent_reference_shape_model : SET[0:1] OF Geometric_model_relationship := bag_to_set(QUERY( gmr <* USEDIN(SELF, 'GEOMETRIC_MODEL_RELATIONSHIP_ARM.GEOMETRIC_MODEL_RELATIONSHIP.REP_2') |
(gmr\Representation_relationship.relation_type = 'equivalent reference shape model')));
WHERE
WR1: NOT EXISTS(SELF\Representation.name);
WR2: SIZEOF(equivalent_reference_shape_model) < 2;
END_ENTITY;
ENTITY Component_3d_location
SUBTYPE OF (Contextual_shape_representation, Geometric_composition_with_operator_transformation);
SELF\Geometric_relationship_with_operator_transformation.transformation : Cartesian_transformation_3d;
placement_fixed : BOOLEAN;
SELF\Geometric_model_relationship.rep_1 RENAMED component_model : Assembly_component_3d_shape_model;
SELF\Geometric_model_relationship.rep_2 RENAMED assembly_model : Physical_unit_3d_shape_model;
DERIVE
component : Next_assembly_usage := SELF\Contextual_shape_representation.product_context;
the_context : Geometric_coordinate_space := assembly_model\Geometric_model.context_of_items;
SELF\Contextual_shape_representation.shape_representing_relationship : Geometric_model_relationship := SELF;
SELF\Representation_relationship.relation_type : label := 'component 3d location';
WHERE
WR1: EXISTS (component);
WR2: NOT('PHYSICAL_UNIT_3D_DESIGN_VIEW_ARM.ASSEMBLY_COMPONENT_3D_SHAPE_MODEL' IN TYPEOF(component_model)) OR
(component\Product_occurrence_definition_relationship.related_view IN component_model\Assembly_component_3d_shape_model.shape_characterized_component);
WR3: NOT('PHYSICAL_UNIT_SHAPE_WITH_PARAMETERS_ARM.PHYSICAL_UNIT_SHAPE_MODEL' IN TYPEOF(component_model)) OR
(component_model\Physical_unit_shape_model.shape_characterized_definition :=:
component\Product_occurrence_definition_relationship.related_view\Definition_based_product_occurrence.derived_from);
WR4: NOT('PART_TEMPLATE_SHAPE_WITH_PARAMETERS_ARM.PART_TEMPLATE_SHAPE_MODEL' IN TYPEOF(component_model)) OR
(component\Product_occurrence_definition_relationship.related_view\Definition_based_product_occurrence.derived_from IN
component_model\Part_template_shape_model.shape_characterized_definition);
END_ENTITY;
RULE unique_assembly_component_3d_shape_model FOR
(Assembly_component_3d_shape_model);
LOCAL ac : BAG OF Assembly_component := []; END_LOCAL; REPEAT i := 1 to SIZEOF(Assembly_component_3d_shape_model) by 1; ac := ac + Assembly_component_3d_shape_model[i].shape_characterized_component; END_REPEAT;
WHERE
WR1: SIZEOF(ac) = SIZEOF(bag_to_set(ac));
END_RULE;
RULE unique_physical_unit_3d_shape_model_for_part_design_and_usage_view FOR
(Part_design_view, Part_usage_view);
WHERE
WR1: SIZEOF(QUERY (pdv <* Part_design_view | (SIZEOF (QUERY (pu3dsm1 <*
USEDIN (pdv,'PHYSICAL_UNIT_SHAPE_WITH_PARAMETERS_ARM.PHYSICAL_UNIT_SHAPE_MODEL.SHAPE_CHARACTERIZED_DEFINITION') |
('PHYSICAL_UNIT_2D_SHAPE_ARM.PHYSICAL_UNIT_PLANAR_SHAPE_MODEL' IN TYPEOF
(pu3dsm1)) AND (SIZEOF (QUERY (pu3dsm2 <* USEDIN
(pdv,'PHYSICAL_UNIT_SHAPE_WITH_PARAMETERS_ARM.PHYSICAL_UNIT_SHAPE_MODEL.SHAPE_CHARACTERIZED_DEFINITION') |
('PHYSICAL_UNIT_2D_SHAPE_ARM.PHYSICAL_UNIT_PLANAR_SHAPE_MODEL' IN TYPEOF
(pu3dsm2)) AND (pu3dsm1 = pu3dsm2))) > 1))) > 0))) = 0;
WR2: SIZEOF(QUERY (puv <* Part_usage_view |
(SIZEOF (QUERY (pu3dsm1 <* USEDIN
(puv,'PHYSICAL_UNIT_SHAPE_WITH_PARAMETERS_ARM.PHYSICAL_UNIT_SHAPE_MODEL.SHAPE_CHARACTERIZED_DEFINITION') |
('PHYSICAL_UNIT_2D_SHAPE_ARM.PHYSICAL_UNIT_PLANAR_SHAPE_MODEL' IN TYPEOF
(pu3dsm1)) AND (SIZEOF (QUERY (pu3dsm2 <* USEDIN
(puv,'PHYSICAL_UNIT_SHAPE_WITH_PARAMETERS_ARM.PHYSICAL_UNIT_SHAPE_MODEL.SHAPE_CHARACTERIZED_DEFINITION') |
('PHYSICAL_UNIT_2D_SHAPE_ARM.PHYSICAL_UNIT_PLANAR_SHAPE_MODEL' IN TYPEOF
(pu3dsm2)) AND (pu3dsm1 = pu3dsm2))) > 1))) > 0))) = 0;
END_RULE;
END_SCHEMA; -- Physical_unit_3d_design_view_arm
© ISO 2018 — All rights reserved