Application module: Assembly component placement requirements | ISO/TS 10303-1634:2018-11(E) © ISO |
This clause specifies the information requirements for the Assembly component placement requirements 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 Assembly_component_placement_requirements_arm schema and identifies the necessary external references.
EXPRESS specification:
*)
SCHEMA Assembly_component_placement_requirements_arm;
(*
The following EXPRESS interface statements specify the elements imported from the ARMs of other application modules.
EXPRESS specification:
*)
USE FROM
Assembly_module_with_interconnect_component_arm;
--
ISO/TS 10303-1643
REFERENCE FROM
Requirement_decomposition_arm
--
ISO/TS 10303-1740
(get_rvd);
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:
Assembly_module_with_interconnect_component_arm ISO/TS 10303-1643 Requirement_decomposition_arm ISO/TS 10303-1740 Support_resource_arm ISO/TS 10303-1800
NOTE 2 See Annex C, Figures C.1, C.2and C.3 for a graphical representation of this schema.
This subclause specifies the ARM types for this application module. The ARM types and definitions are specified below.
The acpr_requirement_assignment_item type is an extension of the requirement_assignment_item type. It adds the data types restriction_basis_item, and Placement_group_requirement_definition to the list of alternate data types.
EXPRESS specification:
*)
TYPE
acpr_requirement_assignment_item =
SELECT
BASED_ON
requirement_assignment_item
WITH
(restriction_basis_item,
Placement_group_requirement_definition);
END_TYPE;
(*
The assembly_component_or_component_feature type allows for the designation of the data types Assembly_component, and Component_feature.
EXPRESS specification:
*)
TYPE
assembly_component_or_component_feature =
SELECT
(Assembly_component,
Component_feature);
END_TYPE;
(*
EXPRESS specification:
*)
TYPE
assembly_product_design_object_category =
EXTENSIBLE
ENUMERATION
OF
(assembly_component_category,
assembly_module_component_category,
assembly_module_component_terminal_category,
assembly_module_macro_component_category,
assembly_module_macro_component_join_terminal_category,
bare_die_component_category,
bare_die_component_terminal_category,
buried_via_category,
cable_component_category,
component_feature_category,
component_termination_passage_category,
conductive_interconnect_element_with_pre_defined_transitions_category,
cutout_category,
cutout_edge_segment_category,
dielectric_material_passage_category,
embedded_physical_component_terminal_category,
fiducial_category,
fill_area_category,
inter_stratum_feature_category,
interconnect_component_interface_terminal_category,
interconnect_component_join_terminal_category,
interconnect_module_component_category,
interconnect_module_component_stratum_based_terminal_category,
interconnect_module_component_surface_feature_category,
interconnect_module_component_terminal_category,
interconnect_module_edge_category,
interconnect_module_edge_segment_category,
interconnect_module_macro_component_category,
interconnect_module_macro_component_join_terminal_category,
interface_access_material_removal_laminate_component_category,
interface_access_stratum_feature_template_component_category,
interface_component_category,
interfacial_connection_category,
internal_probe_access_area_category,
laminate_component_category,
minimally_defined_component_terminal_category,
packaged_component_category,
packaged_component_join_terminal_category,
packaged_connector_component_category,
packaged_connector_component_interface_terminal_category,
physical_component_category,
plated_passage_or_unsupported_passage_category,
routed_interconnect_component_category,
routed_physical_component_category,
stratum_feature_category,
via_category);
END_TYPE;
(*
Enumerated item definitions:
assembly_component_category: specifies that an instance that in this category is an implementation of the assembly component;
assembly_module_component_category: specifies that an instance that in this category is an implementation of the assembly module component;
assembly_module_component_terminal_category: specifies that an instance that is in this category is an implementation of the assembly module component terminal;
assembly_module_macro_component_category: specifies that an instance that is in this category is an implementation of the assembly module macro component;
assembly_module_macro_component_join_terminal_category: specifies that an instance that is in this category is an implementation of the assembly module macro component join terminal;
bare_die_component_category: specifies that an instance that is in this category is an implementation of the bare die component;
bare_die_component_terminal_category: specifies that an instance that is in this category is an implementation of the bare die component terminal;
buried_via_category: specifies that an instance that is in this category is an implementation of the buried via;
cable_component_category: specifies that an instance that is in this category is an implementation of the cable component;
component_feature_category: specifies that an instance that is in this category is an implementation of the component feature;
component_termination_passage_category: specifies that an instance that is in this category is an implementation of the component termination passage;
conductive_interconnect_element_with_pre_defined_transitions_category: specifies that an instance that is in this category is an implementation of the conductive interconnect element with pre defined transitions;
cutout_category: specifies that an instance that is in this category is an implementation of the cutout;
cutout_edge_segment_category: specifies that an instance that is in this category is an implementation of the cutout edge segment;
dielectric_material_passage_category: specifies that an instance that is in this category is an implementation of the dielectric material passage;
embedded_physical_component_terminal_category: specifies that an instance that is in this category is an implementation of the embedded physical component terminal;
fiducial_category: specifies that an instance that is in this category is an implementation of the fiducial;
fill_area_category: specifies that an instance that is in this category is an implementation of the fill area;
inter_stratum_feature_category: specifies that an instance that is in this category is an implementation of the inter stratum feature;
interconnect_component_interface_terminal_category: specifies that an instance that is in this category is an implementation of the interconnect component interface terminal;
interconnect_component_join_terminal_category: specifies that an instance that is in this category is an implementation of the interconnect component join terminal;
interconnect_module_component_category: specifies that an instance that is in this category is an implementation of the interconnect module component;
interconnect_module_component_stratum_based_terminal_category: specifies that an instance that is in this category is an implementation of the interconnect module component stratum based terminal;
interconnect_module_component_surface_feature_category: specifies that an instance that is in this category is an implementation of the interconnect module component surface feature;
interconnect_module_component_terminal_category: specifies that an instance that is in this category is an implementation of the interconnect module component terminal;
interconnect_module_edge_category: specifies that an instance that is in this category is an implementation of the interconnect module edge;
interconnect_module_edge_segment_category: specifies that an instance that is in this category is an implementation of the interconnect module edge segment;
interconnect_module_macro_component_category: specifies that an instance that is in this category is an implementation of the interconnect module macro component;
interconnect_module_macro_component_join_terminal_category: specifies that an instance that is in this category is an implementation of the interconnect module macro component join terminal;
interface_access_material_removal_laminate_component_category: specifies that an instance that is in this category is an implementation of the interface access material removal feature;
interface_access_stratum_feature_template_component_category: specifies that an instance that is in this category is an implementation of the interface access stratum feature template component;
interface_component_category: specifies that an instance that is in this category is an implementation of the interface component;
interfacial_connection_category: specifies that an instance that is in this category is an implementation of the interfacial connection;
internal_probe_access_area_category: specifies that an instance that is in this category is an implementation of the internal probe access area;
laminate_component_category: specifies that an instance that is in this category is an implementation of the laminate component;
minimally_defined_component_terminal_category: specifies that an instance that is in this category is an implementation of the minimally defined component terminal;
packaged_component_category: specifies that an instance that is in this category is an implementation of the packaged component;
packaged_component_join_terminal_category: specifies that an instance that is in this category is an implementation of the packaged component join terminal;
packaged_connector_component_category: specifies that an instance that is in this category is an implementation of the packaged connector component;
packaged_connector_component_interface_terminal_category: specifies that an instance that is in this category is an implementation of the packaged connector component interface terminal;
physical_component_category: specifies that an instance that is in this category is an implementation of the physical component;
plated_passage_or_unsupported_passage_category: specifies that an instance that is in this category is an implementation of the plated passage or unsupported passage;
routed_interconnect_component_category: specifies that an instance that is in this category is an implementation of the routed interconnect component;
routed_physical_component_category: specifies that an instance that is in this category is an implementation of the routed physical component;
stratum_feature_category: specifies that an instance that is in this category is an implementation of the stratum feature;
via_category: specifies that an instance that is in this category is an implementation of the via;
The assembly_product_design_object_category_or_group type allows for the designation of the data types assembly_product_design_object_category, and Group.
EXPRESS specification:
*)
TYPE
assembly_product_design_object_category_or_group =
SELECT
(assembly_product_design_object_category,
Group);
END_TYPE;
(*
EXPRESS specification:
*)
TYPE
assembly_spacing_type =
EXTENSIBLE
ENUMERATION
OF
(nearest_boundary,
centroid,
furthest_boundary);
END_TYPE;
(*
Enumerated item definitions:
nearest_boundary: specifies that spacing is measured between nearest boundaries of the design items indicated;
centroid: specifies that spacing is measured between centroids of the design items indicated;
furthest_boundary: specifies that spacing is measured between furthest boundaries of the design items indicated;
The restriction_basis_item type is an extensible list of alternate data types that allows for the designation of the data types Predefined_requirement_view_definition, and Part_feature.
NOTE The list of entity data types may be extended in application modules that use the constructs of this module.
EXPRESS specification:
*)
TYPE
restriction_basis_item =
EXTENSIBLE
GENERIC_ENTITY
SELECT
(Predefined_requirement_view_definition,
Part_feature);
END_TYPE;
(*
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.
EXPRESS specification:
*)
ENTITY Assembly_group_spacing_requirement
SUBTYPE OF (Predefined_requirement_view_definition);
dependent_group : Placement_group_requirement_definition;
of_spacing_type : assembly_spacing_type;
reference_group : Placement_group_requirement_definition;
SELF\Predefined_requirement_view_definition.required_characteristic : Length_tolerance_characteristic;
END_ENTITY;
(*
Attribute definitions:
dependent_group: specifies one role of the Placement_group_requirement_definition for the Assembly_group_spacing_requirement.
of_spacing_type: specifies the assembly_spacing_type for the Assembly_group_spacing_requirement. The of_spacing_type is either a centroid, a nearest_boundary, or a furthest_boundary for the Assembly_group_spacing_requirement.
reference_group: specifies one role of the Placement_group_requirement_definition for the Assembly_group_spacing_requirement.
required_characteristic: an attribute inherited from the Predefined_requirement_view_definition supertype that specifies the role of the Length_tolerance_characteristic for the Assembly_group_spacing_requirement.
EXAMPLE 1 The category assembly_module_component_feature is a category that all members of Component_feature in the context of assembly design shall belong to.
EXAMPLE 2 If only some of the Component_features are to be constrained, a group would be established against which the spacing requirements would be levied, and members of the Application object would be explicitly assigned to the group.
EXPRESS specification:
*)
ENTITY Assembly_spacing_requirement
SUBTYPE OF (Predefined_requirement_view_definition);
reference_design_object_category : assembly_product_design_object_category_or_group;
dependent_design_object_category : assembly_product_design_object_category_or_group;
SELF\Predefined_requirement_view_definition.required_characteristic : Length_tolerance_characteristic;
of_spacing_type : assembly_spacing_type;
END_ENTITY;
(*
Attribute definitions:
reference_design_object_category: specifies the role of the assembly_product_design_object_category_or_group for the Assembly_spacing_requirement.
dependent_design_object_category: specifies the role of the assembly_product_design_object_category_or_group for the Assembly_spacing_requirement.
required_characteristic: an attribute inherited from the Predefined_requirement_view_definition supertype that specifies the role of the Length_tolerance_characteristic for the Assembly_spacing_requirement.
of_spacing_type: specifies the role of the assembly_spacing_type for the Assembly_spacing_requirement. The of_spacing_type is either a centroid, a nearest_boundary, or a furthest_boundary for the Assembly_spacing_requirement.
EXPRESS specification:
*)
ENTITY Component_group_assignment;
associated_group : Placement_group_requirement_definition;
assigned_component : assembly_component_or_component_feature;
END_ENTITY;
(*
Attribute definitions:
associated_group: specifies the role of the Placement_group_requirement_definition for the Component_group_assignment.
assigned_component: specifies the assembly_component_or_component_feature for the Component_group_assignment.
EXPRESS specification:
*)
ENTITY Component_placement_restriction_assignment;
maximum_negative_component_height :
OPTIONAL
Length_tolerance_characteristic;
maximum_positive_component_height :
OPTIONAL
Length_tolerance_characteristic;
area :
OPTIONAL
Mounting_restriction_area;
volume :
OPTIONAL
Mounting_restriction_volume;
requirement : Item_restricted_requirement;
components_permitted : BOOLEAN;
mounting_clearance :
OPTIONAL
Length_tolerance_characteristic;
WHERE
WR1: EXISTS(area) OR EXISTS(volume);
END_ENTITY;
(*
Attribute definitions:
maximum_negative_component_height: specifies the largest Length_tolerance_characteristic in the negative direction from that Datum, for which the Component_placement_restriction_assignment is made. The value of this attribute need not be specified.
EXAMPLE 1 An example of the maximum_negative_component_height attribute is a printed circuit assembly with through-hole components, where the maximum lead protrusion dimension is given. That dimension is the maximum_negative_component_height. Another example of the maximum_negative_component_height attribute is a printed circuit assembly with surface mounted components on both sides. The maximum_negative_component_height attribute is the distance between the established datum and the maximum material condition of the vertical dimension of the highest surface mount component on the secondary side of the printed circuit assembly.
maximum_positive_component_height: specifies the largest Length_tolerance_characteristic in the positive direction from the Datum, for which the Component_placement_restriction_assignment is made. The value of this attribute need not be specified.
EXAMPLE 2 An example of the maximum_positive_component_height attribute is a printed circuit assembly where the maximum component height in the positive direction relative to a datum is given. This dimension pertains to the fit of the printed circuit assembly in its next assembly. That dimension is the maximum_positive_component_height.
area: specifies the role of the Mounting_restriction_area for the Component_placement_restriction_assignment. The area is an area on an Interconnect_module_component. The value of this attribute need not be specified.
volume: specifies the role of the Mounting_restriction_volume for the Component_placement_restriction_assignment. The volume is in the context of the assembly. The value of this attribute need not be specified.
requirement: specifies the role of the Item_restricted_requirement for the Component_placement_restriction_assignment.
components_permitted: specifies whether or not there is a restriction upon placement of components in an area or volume for the Component_placement_restriction_assignment. The value of TRUE states that components are permitted only within the equivalent volume specified either by the volume directly or by the area and associated parameters; the value of FALSE states that components are not permitted to be placed in the defined area or volume. The inclusion of this Application Object in a design model is a statement that a specific requirement exists for a specific subset of the point domain in the geometric context in the physical design. The components_permitted shall cause the Component_placement_restriction_assignment to be in the role of keepin when the value is TRUE and Component_placement_restriction_assignment to be in the role of keepout when the value is FALSE.
mounting_clearance: specifies the Length_tolerance_characteristic for which the Component_placement_restriction_assignment is made. The value of this attribute need not be specified.
NOTE The mounting_clearance relates to the distance between the bottom of the component body and the substrate onto which the component is assembled. It does not refer to the component terminals.
Formal propositions:
WR1: At least one of area or volume shall be provided.
Informal propositions:
IP1: The direction of negative measurement is antiparallel to the normal of the surface of the Interconnect_module_component specified by area.mounting_surface.
IP2: The direction of positive measurement is parallel to the normal of the surface of the Interconnect_module_component specified by area.mounting_surface.
IP3: The location of the Datum for the mounting_clearance shall be on the same side of the Interconnect_module_component as that specified by area.mounting_surface.
An Item_restricted_requirement is a type of Predefined_requirement_view_definition. The Item_restricted_requirement provides the ability for a design organization to track the dependency of a requirement on a specific design object.
EXAMPLE Thermal requirements may, for example, be dependent on the processor module or the drive motor.
EXPRESS specification:
*)
ENTITY Item_restricted_requirement
SUBTYPE OF (Predefined_requirement_view_definition);
basis : restriction_basis_item;
WHERE
WR1: SELF :<>: basis;
END_ENTITY;
(*
Attribute definitions:
basis: specifies the role of the restriction_basis_item for the Item_restricted_requirement. The basis is the reference design object for the requirement.
Formal propositions:
WR1: A member of Item_restricted_requirement shall not reference itself with the basis attribute.
EXPRESS specification:
*)
ENTITY Mounting_restriction_area
SUBTYPE OF (Non_feature_shape_element);
mounting_surface : Interconnect_module_component_surface_feature;
SELF\Non_feature_shape_element.associated_definition : Assembly_module_design_view;
WHERE
WR1: (SIZEOF(SELF\Non_feature_shape_element.element_shape) = 0) OR
(SIZEOF(QUERY(es <* SELF\Non_feature_shape_element.element_shape |
NOT ('CONSTRUCTION_GEOMETRY_ARM.CONSTRUCTIVE_GEOMETRY' IN TYPEOF(es))
)) = 0);
END_ENTITY;
(*
Attribute definitions:
mounting_surface: specifies the role of the Interconnect_module_component_surface_feature for the Mounting_restriction_area. The type of surface is determined by the definition of the Interconnect_module_component_surface_feature specified by mounting_surface. The mounting_surface conveys design intent to identify the component that implements the connectivity prescribed by the relevant member of Physical_connectivity_definition.
associated_definition: specifies the role of the Assembly_module_design_view for the Mounting_restriction_area.
Formal propositions:
WR1: If element_shape inherited from Non_feature_shape_element is provided, then it shall be a Constructive_geometry.
EXPRESS specification:
*)
ENTITY Mounting_restriction_volume
SUBTYPE OF (Non_feature_shape_element);
mounting_surface : Interconnect_module_component_surface_feature;
SELF\Non_feature_shape_element.associated_definition : Assembly_module_design_view;
INVERSE
volume : Non_feature_shape_model FOR associated_element;
END_ENTITY;
(*
Attribute definitions:
mounting_surface: specifies the role of the Interconnect_module_component_surface_feature for the Mounting_restriction_volume. The type of surface is determined by the definition of the Interconnect_module_component_surface_feature specified by mounting_surface. The mounting_surface conveys design intent to identify the component that implements the connectivity prescribed by the relevant member of Physical_connectivity_definition.
associated_definition: specifies the role of the Assembly_module_design_view for the Mounting_restriction_volume.
volume: specifies an inverse relationship that specifies that the existence of the Mounting_restriction_volume is dependent on the existence of the Non_feature_shape_model that specifies the Mounting_restriction_volume as its associated_element.
EXPRESS specification:
*)
ENTITY Placement_group_area_assignment;
placed_group : Placement_group_requirement_definition;
area : Mounting_restriction_area;
END_ENTITY;
(*
Attribute definitions:
placed_group: specifies the role of the Placement_group_requirement_definition for the Placement_group_area_assignment.
area: specifies the role of the Mounting_restriction_area for the Placement_group_area_assignment.
A Placement_group_requirement_definition is a type of Requirement_view_definition. A Placement_group_requirement_definition is a group composed of Assembly_component that are associated with each other for this purpose by the Component_group_assignment, in order to meet some specific placement requirement. The placement is assigned through the Placement_group_area_assignment object, and does not indicate the explicit geometric relationship of the Assembly_components to each other, only that they are all to be placed within an area.
EXAMPLE 1 An example of a Placement_group_requirement_definition is the collection of Assembly_components necessary to satisfy the functional requirement for a power supply.
EXAMPLE 2 An example of a Placement_group_requirement_definition is the collection of Assembly_components necessary to satisfy the functional requirement for a digital signal processor.
EXAMPLE 3 An example of a Placement_group_requirement_definition is the collection of Assembly_components with a case temperature greater than 55 degrees Centigrade. The associated area would be a rectangle all of whose inner points are within 6 cm of the cooling unit.
EXPRESS specification:
*)
ENTITY Placement_group_requirement_definition
SUBTYPE OF (Requirement_view_definition);
design_specific_usage : STRING;
DERIVE
requirement_relationship : SET[0:?] OF Requirement_view_definition_relationship := bag_to_set((QUERY(rvdr <* USEDIN (SELF, 'REQUIREMENT_VIEW_DEFINITION_RELATIONSHIP_ARM.'+
'REQUIREMENT_VIEW_DEFINITION_RELATIONSHIP.PRIMARY') | (rvdr.relation_type = 'derived_from'))));
requirement : SET[0:?] OF Requirement_view_definition := get_acpr_rvd(requirement_relationship);
INVERSE
composition : SET[1:?] OF Component_group_assignment FOR associated_group;
WHERE
WR1: EXISTS (requirement) AND (SIZEOF(requirement) >= 1);
WR2: NOT EXISTS (SELF\Product_view_definition.name);
END_ENTITY;
(*
Attribute definitions:
design_specific_usage: specifies the name of the Placement_group_requirement_definition.
requirement_relationship: a derived attribute that collects the associated Requirement_view_definition_relationship in the role primary with the relation_type 'derived from'.
requirement: specifies the role of the Requirement_view_definition for the Placement_group_requirement_definition.
composition: specifies an inverse relationship that specifies that the existence of the Placement_group_requirement_definition is dependent on the existence of the Component_group_assignment that specifies the Placement_group_requirement_definition as its associated_group.
Formal propositions:
WR1: the requirement shall exist and it's size shall be at least one.
WR2: The name shall not be populated.
EXPRESS specification:
*)
ENTITY Placement_group_volume_assignment;
placed_group : Placement_group_requirement_definition;
volume : Mounting_restriction_volume;
END_ENTITY;
(*
Attribute definitions:
placed_group: specifies the role of the Placement_group_requirement_definition for the Placement_group_volume_assignment.
volume: specifies the role of the Mounting_restriction_volume for the Placement_group_volume_assignment.
This subclause specifies the ARM subtype constraint for this module. The subtype constraint places a constraint on the possible super-type / subtype instantiations. The ARM subtype constraint and definition is specified below.
The acpr_predefined_requirement_view_definition_subtypes constraint specifies a constraint that applies to instances of Predefined_requirement_view_definition and enforces the rule that its subtypes Assembly_spacing_requirement, Assembly_group_spacing_requirement and Item_restricted_requirement are exclusive.
EXPRESS specification:
*)
SUBTYPE_CONSTRAINT acpr_predefined_requirement_view_definition_subtypes FOR Predefined_requirement_view_definition;
ONEOF (Assembly_spacing_requirement,
Assembly_group_spacing_requirement,
Item_restricted_requirement);
END_SUBTYPE_CONSTRAINT;
(*
This subclause specifies the ARM function for this module. The ARM function and definition is specified below.
EXPRESS specification:
*)
FUNCTION get_acpr_rvd (input : SET[0:?] OF Requirement_view_definition_relationship) : SET[0:?] OF Requirement_view_definition;
LOCAL rvd : SET[0:?] OF Requirement_view_definition := []; --this gives us access to the information base END_LOCAL; -- iterate over input REPEAT i := 1 to SIZEOF(input) by 1; rvd := rvd + input[i]\requirement_view_definition_relationship.secondary; END_REPEAT; RETURN(rvd);
END_FUNCTION;
(*
Argument definitions:
input: the specified set of Requirement_view_definition_relationship.
*)
END_SCHEMA; -- Assembly_component_placement_requirements_arm
(*
© ISO 2018 — All rights reserved