Application module: Physical unit 2D design view ISO/TS 10303-1724:2018-11(E)
© ISO

Cover page
Table of contents
Copyright
Foreword
Introduction
1 Scope
2 Normative references
3 Terms, definitions and abbreviated terms
    3.1 Terms and definitions
    3.2 Abbreviated terms

4 Information requirements
   4.1 Required AM ARMs
   4.2 ARM entity definitions
   4.3 ARM function definitions
   4.4 ARM rule definitions
5 Module interpreted model
   5.1 Mapping specification
   5.2 MIM EXPRESS short listing
     5.2.1 MIM entity definition
     5.2.2 MIM function definition

A MIM short names
B Information object registration
C ARM EXPRESS-G   EXPRESS-G
D MIM EXPRESS-G   EXPRESS-G
E Computer interpretable listings
F Change history
Bibliography
Index

(*
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