Application module: Layout macro definition | ISO/TS 10303-1701:2018-11(E) © ISO |
This clause specifies the information requirements for the Layout macro definition 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 Layout_macro_definition_arm schema and identifies the necessary external references.
EXPRESS specification:
*)
SCHEMA Layout_macro_definition_arm;
(*
The following EXPRESS interface statement specifies the elements imported from the ARM of another application module.
EXPRESS specification:
*)
USE FROM
Fabrication_joint_arm;
--
ISO/TS 10303-1668
(*
NOTE 1 The schemas referenced above are specified in the following part of ISO 10303:
Fabrication_joint_arm ISO/TS 10303-1668
NOTE 2 See Annex C, Figures C.1and C.2 for a graphical representation of this schema.
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.
A Layout_macro_component is a type of Printed_component. A Layout_macro_component uses a Layout_macro_floor_plan_template as the usage definition for the shape of the unexpanded macro in the design. The design definition is the contents of the macro to be expanded. A Layout_macro_component may be exchanged as part of a recursive layout definition. A Layout_macro_component itself generates no Stratum_features since it is not expanded. A Layout_macro_component does inherit terminals from the Printed_component. These terminals are used in the floor planning layout process. These terminals may be on any layer necessary in the design.
NOTE The recursive definition must end on a Laminate_component that is not a Layout_macro_component.
EXPRESS specification:
*)
ENTITY Layout_macro_component
SUBTYPE OF (Printed_component);
design_definition : Layout_macro_definition;
SELF\Printed_component.derived_from : Layout_macro_floor_plan_template;
END_ENTITY;
(*
Attribute definitions:
design_definition: specifies a role of the Layout_macro_definition for the Layout_macro_component.
derived_from: an attribute inherited from the Printed_component shall be redeclared as the Layout_macro_floor_plan_template for the Layout_macro_component.
A Layout_macro_definition is a type of Layered_interconnect_module_design_view. A Layout_macro_definition is a design view of an interconnect structure that is intended to be reused as a structure rather than as a component. A Layout_macro_definition may be an aggregation of Stratum. A Layout_macro_definition may be an aggregation of Layout_macro_component A Layout_macro_definition shall not be used as a component in a physical assembly.
EXAMPLE A Layout_macro_definition may be used as part of a recursive definition or subroutine layout.
EXPRESS specification:
*)
ENTITY Layout_macro_definition
SUBTYPE OF (Layered_interconnect_module_design_view);
floor_layout_view : Layout_macro_floor_plan_template;
WHERE
WR1: NOT (EXISTS(SELF\Part_design_view.usage_view));
WR2: SIZEOF(USEDIN(SELF, 'PRODUCT_OCCURRENCE_ARM.DEFINITION_BASED_PRODUCT_OCCURRENCE.DERIVED_FROM')) = 0;
END_ENTITY;
(*
Attribute definitions:
floor_layout_view: specifies the Layout_macro_floor_plan_template for the Layout_macro_definition as a layout template for the floor planning layout. This template shall provide the terminal definitions for the Layout_macro_definition and a shape for the floor planning layout to enable the layout design without instantiating the design details of the Layout_macro_definition itself.
NOTE The floor_layout_view is a replacement for the usage_view that would be inherited from the Layered_interconnect_module_design_view.
Formal propositions:
WR1: Layout_macro_definition.usage_view (this is an inherited attribute from Part_design_view) shall not exist.
WR2: A Layout_macro_definition shall not be referenced in the role of derived_from of Definition_based_product_occurrence.
A Layout_macro_definition_terminal_to_usage_terminal_assignment is the association between the Printed_part_template_terminal and one of several fabricated features. The purpose for this assignment is to link the product data in the macro definition to the floor planning usage view to support a recursive definition. The Layout_macro_definition_terminal_to_usage_terminal_assignment shall be referenced by one Layout_macro_floor_plan_template.
NOTE 1 In a recursive definition, both a macro definition and the macro interface declaration that is the Layout_macro_floor_plan_template are archived together, with this relationship populated as necessary to provide linkages between the fabricated features in the macro definition and the features in the planning view. Without this linkage populated, there is no way to traverse the recursive definition so as to successfully resolve the terminals at each level of recursion.
NOTE 2 This facility is used to support transport of CAD data where geometric subroutines that include layer data and terminal data are defined.
EXPRESS specification:
*)
ENTITY Layout_macro_definition_terminal_to_usage_terminal_assignment;
defined_template_feature : Printed_part_template_terminal;
assigned_design_object : fabricated_feature_select;
WHERE
WR1: SIZEOF(USEDIN(SELF,
'LAYOUT_MACRO_DEFINITION_ARM.LAYOUT_MACRO_FLOOR_PLAN_TEMPLATE.ACCESS_MAPS')) = 1;
END_ENTITY;
(*
Attribute definitions:
defined_template_feature: specifies a role of the Printed_part_template_terminal for the Layout_macro_definition_terminal_to_usage_terminal_assignment.
assigned_design_object: specifies the fabricated_feature_select for the Layout_macro_definition_terminal_to_usage_terminal_assignment.
Formal propositions:
WR1: The Layout_macro_definition_terminal_to_usage_terminal_assignment shall be referenced by one Layout_macro_floor_plan_template as access_maps.
A Layout_macro_floor_plan_template is a type of Printed_part_template. A Layout_macro_floor_plan_template is part of a recursive definition or a geometric subroutine. A Layout_macro_floor_plan_template provides a layout shape and a set of terminal definitions for floor planning and layout purposes. The application compiler will replace the layout shape provided by this application object with the detailed definition specified by the Layout_macro_definition referenced by the macro_definition attribute.
NOTE 1 An occurrence of this object is a Layout_macro_component that is instantiated during floor planning layout during the design process for the interconnect substrate.
NOTE 2 The shape of the Layout_macro_floor_plan_template should encompass the shape of the macro definition.
EXPRESS specification:
*)
ENTITY Layout_macro_floor_plan_template
SUBTYPE OF (Printed_part_template);
access_maps : SET[1:?] OF Layout_macro_definition_terminal_to_usage_terminal_assignment;
INVERSE
macro_definition : SET[0:1] OF Layout_macro_definition FOR floor_layout_view;
WHERE
WR1: SIZEOF(TYPEOF(SELF) - TYPEOF(SELF\Layout_macro_floor_plan_template || SELF\Printed_part_template || SELF\Template_definition
|| SELF\Part_view_definition || SELF\Product_view_definition)) = 0;
END_ENTITY;
(*
Attribute definitions:
access_maps: specifies the Layout_macro_definition_terminal_to_usage_terminal_assignment that relates the Printed_part_template_terminal that is an access_mechanisms inherited from the Printed_part_template with the fabrication features in the detailed definition. There shall be one or more Layout_macro_definition_terminal_to_usage_terminal_assignment for a Layout_macro_floor_plan_template.
macro_definition: an inverse relationship that specifies that the existence of the Layout_macro_floor_plan_template is dependent on the existence of the Layout_macro_definition that specifies the Layout_macro_floor_plan_template as a floor_layout_view. There shall be zero or one Layout_macro_definition for a Layout_macro_floor_plan_template.
Formal propositions:
WR1: A Layout_macro_floor_plan_template shall not be in a complex instance with any other subtype of Product_view_definition.
This subclause specifies the ARM subtype constraints for this module. Each subtype constraint places constraints on the possible super-type / subtype instantiations. The ARM subtype constraints and definitions are specified below.
The printed_component_subtypes constraint specifies a constraint that applies to instances of Printed_component and enforces the rule that its subtypes Layout_macro_component and Printed_connector_component are exclusive.
EXPRESS specification:
*)
SUBTYPE_CONSTRAINT printed_component_subtypes FOR Printed_component;
ONEOF (Layout_macro_component,
Printed_connector_component);
END_SUBTYPE_CONSTRAINT;
(*
The printed_part_template_subtypes constraint specifies a constraint that applies to instances of Printed_part_template and enforces the rule that its subtypes Basic_multi_stratum_printed_part_template, Layout_macro_floor_plan_template, Printed_connector_template and Structured_printed_part_template are exclusive.
EXPRESS specification:
*)
SUBTYPE_CONSTRAINT printed_part_template_subtypes FOR Printed_part_template;
ONEOF (Basic_multi_stratum_printed_part_template,
Layout_macro_floor_plan_template,
Printed_connector_template,
Structured_printed_part_template);
END_SUBTYPE_CONSTRAINT;
(*
*)
END_SCHEMA; -- Layout_macro_definition_arm
(*
© ISO 2018 — All rights reserved