Application module: Physical unit 2D design view | ISO/TS 10303-1724:2018-11(E) © ISO |
(*
ISO/TC 184/SC 4/WG 12 N9623 - ISO/TS 10303-1724 Physical unit 2D design view - EXPRESS ARM
Supersedes
ISO/TC 184/SC 4/WG 12 N8200
*)
SCHEMA Physical_unit_2d_design_view_arm;
USE FROM
Part_template_shape_with_parameters_arm;
-- ISO/TS 10303-1720
USE FROM
Physical_unit_2d_shape_arm;
-- ISO/TS 10303-1726
USE FROM
Physical_unit_design_view_arm;
-- ISO/TS 10303-1728
REFERENCE FROM
Support_resource_arm -- ISO/TS 10303-1800
(bag_to_set);
ENTITY Assembly_component_2d_shape_model
SUBTYPE OF (Planar_projected_shape_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: SIZEOF(equivalent_reference_shape_model) < 2;
END_ENTITY;
ENTITY Component_2d_location
SUBTYPE OF (Contextual_shape_representation, Geometric_composition_with_operator_transformation);
placement_fixed : BOOLEAN;
SELF\Geometric_relationship_with_operator_transformation.transformation : Cartesian_transformation_2d;
SELF\Geometric_model_relationship.rep_2 RENAMED assembly_model : Physical_unit_planar_shape_model;
SELF\Geometric_model_relationship.rep_1 RENAMED component_model : Geometric_model;
DERIVE
component : Next_assembly_usage := SELF\Contextual_shape_representation.product_context;
substrate_location : BOOLEAN := substrate_in_assembly(SELF);
the_context : Geometric_coordinate_space := assembly_model\Representation.context_of_items;
SELF\Contextual_shape_representation.shape_representing_relationship : Geometric_model_relationship := SELF;
SELF\Representation_relationship.relation_type : label := 'component 2d location';
WHERE
WR1: EXISTS (component);
WR2: NOT('PHYSICAL_UNIT_2D_DESIGN_VIEW_ARM.ASSEMBLY_COMPONENT_2D_SHAPE_MODEL' IN TYPEOF(component_model)) OR
(component\Product_occurrence_definition_relationship.related_view IN component_model\Assembly_component_2d_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_2d_shape_model FOR
(Assembly_component_2d_shape_model);
LOCAL ac : BAG OF Assembly_component := []; pass : BOOLEAN := TRUE; END_LOCAL; REPEAT i := 1 to SIZEOF(Assembly_component_2d_shape_model) by 1; ac := ac + Assembly_component_2d_shape_model[i].shape_characterized_component; END_REPEAT;
WHERE
WR1: SIZEOF(ac) = SIZEOF(bag_to_set(ac));
END_RULE;
RULE unique_physical_unit_planar_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 (pupsm1 <* 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
(pupsm1)) AND (SIZEOF (QUERY (pupsm2 <* 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 (pupsm2)) AND (pupsm1 = pupsm2))) > 1)
)) > 0) )) = 0;
WR2: SIZEOF(QUERY (puv <* Part_usage_view | (SIZEOF (QUERY (pupsm1 <*
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 (pupsm1)) AND
(SIZEOF (QUERY (pupsm2 <* 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 (pupsm2)) AND
(pupsm1 = pupsm2))) > 1) )) > 0) )) = 0;
END_RULE;
FUNCTION pu2dv_has_shape
(input : Assembly_component) : BOOLEAN;
LOCAL ac2ds : BAG OF Assembly_component_2d_shape_model := USEDIN(input,'PHYSICAL_UNIT_2D_DESIGN_VIEW_ARM.ASSEMBLY_COMPONENT_2D_SHAPE_MODEL.SHAPE_CHARACTERIZED_COMPONENT'); END_LOCAL; RETURN(SIZEOF(ac2ds) > 0);
END_FUNCTION;
FUNCTION pu2dv_typeof
(input : Assembly_component) : SET[0:?] OF STRING;
LOCAL ac2ds : BAG OF Assembly_component_2d_shape_model := USEDIN(input,'PHYSICAL_UNIT_2D_DESIGN_VIEW_ARM.ASSEMBLY_COMPONENT_2D_SHAPE_MODEL.SHAPE_CHARACTERIZED_COMPONENT'); END_LOCAL; IF SIZEOF(ac2ds) > 1 THEN RETURN(?); END_IF; RETURN(TYPEOF(ac2ds[1]));
END_FUNCTION;
FUNCTION substrate_in_assembly
(c2dl : Component_2d_location) : BOOLEAN;
RETURN(TRUE);
END_FUNCTION;
END_SCHEMA; -- Physical_unit_2d_design_view_arm
© ISO 2018 — All rights reserved