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

4 Information requirements

This clause specifies the information requirements for the Physical unit 2D design view application module. The information requirements are specified as the Application Reference Model (ARM) of this application module.

NOTE 1  A graphical representation of the information requirements is given in Annex C.

NOTE 2  The mapping specification is specified in 5.1. It shows how the information requirements are met by using common resources and constructs defined or imported in the MIM schema of this application module.

This clause defines the information requirements to which implementations shall conform using the EXPRESS language as defined in ISO 10303-11. The following begins the Physical_unit_2d_design_view_arm schema and identifies the necessary external references.

EXPRESS specification:

*)
SCHEMA Physical_unit_2d_design_view_arm;
(*

4.1 Required AM ARMs

The following EXPRESS interface statements specify the elements imported from the ARMs of other application modules.

EXPRESS specification:

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

NOTE 1   The schemas referenced above are specified in the following part of ISO 10303:

Part_template_shape_with_parameters_arm ISO/TS 10303-1720
Physical_unit_2d_shape_arm ISO/TS 10303-1726
Physical_unit_design_view_arm ISO/TS 10303-1728
Support_resource_arm ISO/TS 10303-1800

NOTE 2   See Annex C, Figures C.1and C.2 for a graphical representation of this schema.

4.2 ARM entity definitions

This subclause specifies the ARM entities for this module. Each ARM application entity is an atomic element that embodies a unique application concept and contains attributes specifying the data elements of the entity. The ARM entities and definitions are specified below.

4.2.1 Assembly_component_2d_shape_model   EXPRESS-GMapping table

An Assembly_component_2d_shape_model is a type of Planar_projected_shape_model. An Assembly_component_2d_shape_model is the two-dimensional shape of an Assembly_component.

NOTE 1   The shape is defined by the Physical_unit_planar_shape_model, or by the equivalent for Template_definition, referenced by the location transformation in Component_2d_location.

NOTE 2   For the case where the Assembly_component is a Laminate_component that contributes to a Stratum_feature, the final shape of the Stratum_feature is the result of a calculation dependent on all the contributions to that Stratum_feature by the one or more Laminate_component that contribute to that Stratum_feature.

EXPRESS specification:

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

Attribute definitions:

shape_characterized_component: specifies a role of the Assembly_component for the Assembly_component_2d_shape_model. There shall be one or more Assembly_component for each shape_characterized_component.

equivalent_reference_shape_model: specifies the reference shape model for the present AO. The equivalent_reference_shape_model is to be provided only if the type of the shape representation of the assembly is different from the type of the shape representation of the part and establishes an equivalency relationship between the shape representation of the part and that of the assembly.

Formal propositions:

WR1: No more than one equivalent_reference_shape_model shall be provided.

Informal propositions:

IP1: If the type of the shape representation of the part is the same as that of the assembly the equivalent_reference_shape_model shall not be provided.

4.2.2 Component_2d_location   EXPRESS-GMapping table

A Component_2d_location is a type of Contextual_shape_representation and a type of Geometric_composition_with_operator_transformation. The Component_2d_location is the placement location, including orientation and mirroring, specified by a combination of description characteristics, substrate surface identification, and two-dimensional transformation. Mirroring shall not be applied to the location of the substrate in the assembly. Mirroring applied to components shall indicate that the components are mounted on the surface of the substrate opposite to the primary surface. This application object is applicable when there is only one substrate in the assembly. If there are more substrates in the assembly one of the subtypes of this application object shall be used to indicate which substrate participates in the assembly relationship. Mirroring shall not be applied to Laminate_component. Support for mirroring option is mandatory for Footprint_occurrence to support components mounted on the bottom surface. Mirroring in that case is only related to the geometric information on the individual stratum for Footprint_occurrence and Padstack_occurrence. Mirroring is not involved in the relative location of Land in the vertical stack. That arrangement will not be modified by the mirror operation and must be adjusted if necessary in the pre-processor. The transformation matrix value of +1.0 shall indicate primary surface mounted component (un-mirrored). The transformation matrix value of -1.0 shall indicate secondary surface mounted component (mirrored). A mirror requirement to mirror about the local Y axis indicates that values on the Y axis are invariant, while values on the X axis are assigned the negative of the original value.

EXAMPLE 1   A point at (X = 3,Y = 2) would be at (X = -3,Y = 2) after being mirrored.

NOTE 1   This standard does not support a "mounting style" attribute. The components that are altered from their normal mounting arrangement (e.g., "upside down mounting style") are considered to be Altered_packaged_part in the context of this standard if the normal mounting arrangement is available and a relationship to that normal mounting arrangement is desired.

NOTE 2   Subtypes of this application object includes sufficient information to accurately determine machine parameters for reliable installation of a component on an interconnect substrate in the case of multiple substrates in the design. The use of this application object should be reserved for locating substrates that are not themselves attached to another component in the design definition from the source CAD system.

NOTE 3   A Footprint_occurrence may be for a surface whether or not there are actually components in the assembly. It is an expression of the design intent behind the creation of the Footprint_occurrence.

NOTE 4   A Padstack_occurrence may also be mirrored to communicate the intent that the shape information is different for the bottom versus top arrangement.

EXPRESS specification:

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

Attribute definitions:

placement_fixed: specifies whether or not the Component_2d_location is fixed in the design. A value of TRUE indicates that the Component_2d_location is fixed; a value of FALSE indicates that the Component_2d_location is not fixed.

transformation: specifies a role of the Cartesian_transformation_2d for the Component_2d_location.

assembly_model: specifies the Physical_unit_planar_shape_model for the Component_2d_location.

component_model: specifies the Geometric_model for the Component_2d_location.

component: specifies the Next_assembly_usage for the Component_2d_location. The Next_assembly_usage specifies the actual component being placed.

substrate_location: an attribute is evaluated with function substrate_in_assembly using this Component_2d_location as an argument.

the_context: specifies the Geometric_coordinate_space that is context_of_items of assembly_model.

shape_representing_relationship: a redeclared attribute from supertype that always evaluates to self.

relation_type: specifies the string value equal to 'component 2d location'.

Formal propositions:

WR1: The component shall exist.

WR2: If TYPEOF component_model includes Assembly_component_2d_shape_model then the component is included in component_model.shape_characterized_component.

WR3: If TYPEOF component_model includes Physical_unit_shape_model then the Product_view_definition referenced by component_model.shape_characterized_definition is the Product_view_definition referenced by derived_from attribute of the Assembly_component referenced by component.

WR4: If TYPEOF component_model includes Part_template_shape_model then the Product_view_definition referenced by component_model.shape_characterized_definition is the Product_view_definition referenced by derived_from attribute of the Assembly_component referenced by component.

Informal propositions:

IP1: Mirroring shall be only about the local Y axis, which "local Y axis" is defined as a): being parallel to the Y axis of the current coordinate system and b): intersecting the Cartesian_point which is in the role of translation for this Component_2d_location.

EXAMPLE 2   A point at (X = 3, Y = 2) would be at (X = -3, Y = 2) after being transformed using the Component_2d_location if no rotation were applied and no translation were applied, but mirroring were applied.

NOTE 5   Typically the transformation matrix is the result of applying the ordered sequence of "rotate, mirror, translate" operations to an identity matrix. Placing translate last in the sequence satisfies the requirement that mirroring shall be about a local axis.

IP2: The determinant of the transformation matrix shall have a value of -1.0 or +1.0.

NOTE 6   In a received file the value of the determinant may not be exactly 1.0 or -1.0 due to roundoff error. Since these are the only two allowed values, standard techniques to deal with the error are easily applied.

4.3 ARM function definitions

This subclause specifies the ARM functions for this module. The ARM functions and definitions are specified below.

4.3.1 pu2dv_has_shape

The pu2dv_has_shape function checks if the Assembly_component specified by the input is represented by a Geometric_model. It returns True if the input is represented by at least one Geometric_model. It returns False otherwise.

EXPRESS specification:

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

Argument definitions:

input: the specified Assembly_component.

4.3.2 pu2dv_typeof

The pu2dv_typeof function returns a set of string that result from applying the TYPEOF function defined in ISO 10303-11 to the first member of Assembly_component_2d_shape_model that references the Assembly_component specified by the input in the role of shape_characterized_component when there is exactly one member of Assembly_component_2d_shape_model referencing the input. The function returns UNKNOWN if there are no Assembly_component_2d_shape_model referencing the input or if there are more than one Assembly_component_2d_shape_model referencing the input.

EXPRESS specification:

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

Argument definitions:

input: the specified Assembly_component.

4.3.3 substrate_in_assembly

The substrate_in_assembly function checks if the Component_2d_location specified by the c2dl is the location of a substrate in an assembly.

It returns True if the c2dl is the location of a substrate in an assembly.

It returns False otherwise.

EXPRESS specification:

*)
FUNCTION substrate_in_assembly (c2dl : Component_2d_location) : BOOLEAN;
RETURN(TRUE);
END_FUNCTION;
(*

Argument definitions:

c2dl: the specified Component_2d_location.

4.4 ARM rule definitions

This subclause specifies the ARM rules for this module. The ARM rules and definitions are specified below.

4.4.1 unique_assembly_component_2d_shape_model

The unique_assembly_component_2d_shape_model rule constrains the population of Assembly_component_2d_shape_models, so that there shall be no more than one Assembly_component_2d_shape_model for each Assembly_component.

EXPRESS specification:

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

Argument definitions:

Assembly_component_2d_shape_model : the set of all instances of Assembly_component_2d_shape_model.

Formal propositions:

WR1: There shall be no more than one Assembly_component_2d_shape_model for each Assembly_component.

4.4.2 unique_physical_unit_planar_shape_model_for_part_design_and_usage_view

The unique_physical_unit_planar_shape_model_for_part_design_and_usage_view rule constrains the shape of Part_design_view and Part_usage_view, so that no more than one Physical_unit_planar_shape_model with a specific set of attribute values may reference a member of Part_design_view and no more than one Physical_unit_planar_shape_model with a specific set of attribute values may reference a member of Part_usage_view.

NOTE    Because the set of attributes is being compared, the value equality operator is used rather than the instance equality operator.

EXPRESS specification:

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

Argument definitions:

Part_design_view : the set of all instances of Part_design_view.

Part_usage_view : the set of all instances of Part_usage_view.

Formal propositions:

WR1: No more than one Physical_unit_planar_shape_model with a specific set of attribute values may reference a member of Part_design_view

WR2: No more than one Physical_unit_planar_shape_model with a specific set of attribute values may reference a member of Part_usage_view.



*)
END_SCHEMA;  -- Physical_unit_2d_design_view_arm
(*


© ISO 2018 — All rights reserved