Application module: Printed physical layout template ISO/TS 10303-1737:2021(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 type definitions
   4.3 ARM entity definitions
   4.4 ARM subtype constraint definition
   4.5 ARM function definitions
5 Module interpreted model
   5.1 Mapping specification
   5.2 MIM EXPRESS short listing
     5.2.1 MIM type definition
     5.2.2 MIM entity definitions
     5.2.3 MIM subtype constraint 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 Printed physical layout template 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 Printed_physical_layout_template_arm schema and identifies the necessary external references.

Templates used to support detailed circuit analysis include Printed_part_template, Printed_part_template_terminal and Functional_usage_view_to_printed_part_template_terminal_assignment. Generic structures are used to permit arbitrary mapping to and from specific CAD and CAE environments.

Templates used to describe primitive geometric shapes such as rectangular areas include Basic_multi_stratum_printed_part_template and Single_stratum_printed_part_template.

Templates used for domain specific functionality include Non_conductive_cross_section_template, Printed_connector_template, Printed_connector_template_terminal_relationship, Printed_part_template_interface_terminal, Printed_part_template_connected_terminals_definition and Printed_tiebar_template.

Templates used to support boundary element method representation of microwave structures include Printed_part_cross_section_template and Printed_part_cross_section_template_terminal.

Template terminals may be classified in accordance with CAD/CAE requirements including the most common abstraction of a point on a surface, proceeding to the more complex model of an area on a surface, proceeding to a curve segment formed by the intersection of the top surface and the cross section, and finally ending at an area that is part of the cross section of the material. Voids are not permitted in the area representations.

EXAMPLE 1   An offset stripline differential pair may be represented simply by the Printed_part_template with no specific dielectric construction details provided. In this case an assumption is made that there is only one dielectric material on a layer.

EXAMPLE 2   A more complete definition of the stripline in the previous example may include an Analytical_model_application so as to support behavioural simulation with computer algebra systems. The model would be based on more detailed knowledge than that captured in the model to ensure needed accuracy.

EXAMPLE 3   A more complex definition of the stripline in the first example may include population of Printed_part_cross_section_template, Printed_part_cross_section_template_terminal to permit a post processor to automatically derive microwave properties based on geometric properties and material properties. The advantage to this is that the user can separately manage the geometric and material properties in a model.

EXAMPLE 4   A digital design CAD system may support a point on a surface terminal idealization by referencing the class of surface_point or may choose to offer additional flexibility in connections by referencing surface_area if it exploits area intersection concepts rather than point to point intersection concepts.

NOTE 1   A CAD system may reference more than one terminal class in a design.

NOTE 2   Usage guides and exchange agreements to specify needed approximations may be necessary when exchanging data between CAD systems with support for disjoint terminal classes.

EXAMPLE 5   A specific approximation of the area, say the centroid, will be needed when post-processing a data set from a CAD system that uses a surface_area terminal class to the equivalent approximation afforded by a CAD system that uses a surface_point class. When going in the other direction, additional information will be needed to specify the area data needed by the surface_area terminal class and this information would typically be handled by a mapping application using external data.

NOTE 3   Future editions of this part of ISO 10303 may incorporate standard mappings between the terminal classes, depending on consensus industrial requirements.

EXPRESS specification:

*)
SCHEMA Printed_physical_layout_template_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 Functional_usage_view_arm;    --  ISO/TS 10303-1705

USE FROM Layered_interconnect_complex_template_arm;    --  ISO/TS 10303-1716

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:

Functional_usage_view_arm ISO/TS 10303-1705
Layered_interconnect_complex_template_arm ISO/TS 10303-1716
Support_resource_arm ISO/TS 10303-1800

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

4.2 ARM type definitions

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

4.2.1 pplt_usage_concept   EXPRESS-G

The pplt_usage_concept type is an extension of the usage_concept type. It adds the data type Printed_part_template_terminal to the list of alternate data types.

EXPRESS specification:

*)
TYPE pplt_usage_concept = SELECT BASED_ON usage_concept WITH
   (Printed_part_template_terminal);
END_TYPE;
(*

4.2.2 printed_part_template_terminal_class   EXPRESS-G

A printed_part_template_terminal_class lists the classes of the printed part template terminal.

EXPRESS specification:

*)
TYPE printed_part_template_terminal_class = ENUMERATION OF
   (curve_edge_segment,
    surface_point,
    area_edge_segment,
    surface_area);
END_TYPE;
(*

Enumerated item definitions:

curve_edge_segment: specifies the type of the printed part template terminal to be curve edge segment;

surface_point: specifies the type of the printed part template terminal to be surface point;

area_edge_segment: specifies the type of the printed part template terminal to be an area edge segment;

surface_area: specifies the type of the printed part template terminal to be a surface area;

4.3 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.3.1 Basic_multi_stratum_printed_part_template   EXPRESS-GMapping table

A Basic_multi_stratum_printed_part_template is a type of Printed_part_template where the shape on all stratum is a simple continuous shape.

EXPRESS specification:

*)
ENTITY Basic_multi_stratum_printed_part_template
  SUBTYPE OF (Printed_part_template);
  material_stack : Library_stack_model;
  reference_template : Stratum_feature_template;
END_ENTITY;
(*

Attribute definitions:

material_stack: specifies the role of the Library_stack_model for the Basic_multi_stratum_printed_part_template.

reference_template: specifies the role of the Stratum_feature_template for the Basic_multi_stratum_printed_part_template.

4.3.2 Functional_usage_view_to_printed_part_template_terminal_assignment   EXPRESS-GMapping table

A Functional_usage_view_to_printed_part_template_terminal_assignment is the association between a functional terminal definition and a terminal of a Printed_part_template.

EXAMPLE    It is permissible for one functional_usage_view_terminal to be assigned to more than one physical_usage_view_terminal, for example, VCC.

EXPRESS specification:

*)
ENTITY Functional_usage_view_to_printed_part_template_terminal_assignment;
  physical_usage_view_terminal : Printed_part_template_terminal;
  functional_usage_view_terminal : Scalar_terminal_definition;
UNIQUE
  UR1: functional_usage_view_terminal, physical_usage_view_terminal;
END_ENTITY;
(*

Attribute definitions:

physical_usage_view_terminal: specifies the role of the Printed_part_template_terminal for the Functional_usage_view_to_printed_part_template_terminal_assignment.

functional_usage_view_terminal: specifies the role of the Scalar_terminal_definition for the Functional_usage_view_to_printed_part_template_terminal_assignment.

Formal propositions:

UR1: The combination of functional_usage_view_terminal and physical_usage_view_terminal shall be unique within a population of Functional_usage_view_to_printed_part_template_terminal_assignments.

4.3.3 Multi_stratum_printed_part_template   EXPRESS-GMapping table

A Multi_stratum_printed_part_template is a type of Multi_stratum_structured_template and a type of Structured_printed_part_template.

EXPRESS specification:

*)
ENTITY Multi_stratum_printed_part_template
  SUBTYPE OF (Structured_printed_part_template, Multi_stratum_structured_template);
END_ENTITY;
(*

4.3.4 Non_conductive_cross_section_template   EXPRESS-GMapping table

A Non_conductive_cross_section_template is a type of Template_definition where the material in the cross-section is non conductive.

EXPRESS specification:

*)
ENTITY Non_conductive_cross_section_template
  SUBTYPE OF (Template_definition);
  template_technology : OPTIONAL SET[1:?] OF Stratum_technology;
  nominal_width : Length_data_element;
WHERE
  WR1: NOT EXISTS(SELF\Product_view_definition.name);
END_ENTITY;
(*

Attribute definitions:

template_technology: specifies the Stratum_technology for the Non_conductive_cross_section_template. There shall be one or more Stratum_technologies for a template_technology. The value of this attribute need not be specified.

nominal_width: specifies the Length_data_element for the Non_conductive_cross_section_template.

Formal propositions:

WR1: The name shall not be populated.

4.3.5 Printed_connector_template   EXPRESS-GMapping table

A Printed_connector_template is a type of Printed_part_template that contains contacts, each of whose function is to act as a short from an Printed_part_template_interface_terminal to the related Printed_part_template_join_terminal. Each contact corresponds to one member of characterized_connector_terminal_relationship. The contact shall be a Template_definition and the geometric relationship of the shape of the contact to the shape of the Printed_connector_template shall be established by a member of Usage_concept_usage_relationship.

EXAMPLE 1   Figure 1 illustrates a template and associated parameters for one contact of a printed connector. Specific parameter values and explicit geometry will be provided for individual technology based contacts.



Figure 1 —  Single contact of a Printed_connector_template

Figure 1 —  Single contact of a Printed_connector_template

EXAMPLE 2   Figure 2 illustrates a detail of a layout drawing that shows an instance of the Printed_connector_template.



Figure 2 —  Printed connector component and associated terminals

Figure 2 —  Printed connector component and associated terminals

NOTE 1   It is redundant to have a separate functional definition that merely specifies shorts for any type of connector in this part of ISO 10303, because the functional definition of a short is included in the definition of the connector. That is, a functional definition that worries about shorts is not a functional definition. It is appropriate to define the location of required shorts in the physical definition since the location is a physical property.

NOTE 2   There may be multiple simulation models associated with a connector in this part of ISO 10303. The explicit method of defining the connector functionality does not prohibit having multiple simulation models. This explicit method is for the purpose of supporting the standardized structural definition of connectivity.

EXPRESS specification:

*)
ENTITY Printed_connector_template
  SUBTYPE OF (Printed_part_template);
INVERSE
  characterized_connector_terminal_relationship : SET[1:?] OF Printed_connector_template_terminal_relationship FOR connector;
END_ENTITY;
(*

Attribute definitions:

characterized_connector_terminal_relationship: an inverse relationship that specifies that the existence of the Printed_connector_template is dependent on the existence of the Printed_connector_template_terminal_relationship that specifies the Printed_connector_template as its connector. There shall be one or more Printed_connector_template_terminal_relationships for a Printed_connector_template.

4.3.6 Printed_connector_template_terminal_relationship   EXPRESS-GMapping table

A Printed_connector_template_terminal_relationship is the definition of the connection between a Printed_part_template_interface_terminal and a Printed_part_template_join_terminal for one contact of a Printed_connector_template.

NOTE 1   An occurrence of Printed_connector_template_terminal_relationship is only required at the Part model level in the Standard. A Printed_connector_component that references a Printed_connector_template has the visibility of this functional requirement by virtue of a mandatory inverse relationship to the Printed_connector_template_terminal_relationship on the Printed_connector_template.

NOTE 2   A Printed_connector_template_terminal_relationship is the actual specification of the short referred to in Printed_connector_template.

EXPRESS specification:

*)
ENTITY Printed_connector_template_terminal_relationship;
  join_terminal : Printed_part_template_join_terminal;
  interface_terminal : Printed_part_template_interface_terminal;
  connector : Printed_connector_template;
UNIQUE
  UR1: join_terminal;
WHERE
  WR1: join_terminal\Shape_element.associated_definition :=: connector;
  WR2: interface_terminal\Printed_part_template_interface_terminal.associated_definition :=: connector;
END_ENTITY;
(*

Attribute definitions:

join_terminal: specifies the role of the Printed_part_template_join_terminal for the Printed_connector_template_terminal_relationship.

interface_terminal: specifies the role of the Printed_part_template_interface_terminal for the Printed_connector_template_terminal_relationship.

connector: specifies the role of the Printed_connector_template for the Printed_connector_template_terminal_relationship.

Formal propositions:

UR1: The join_terminal shall be unique within a population of Printed_connector_template_terminal_relationships.

WR1: The connector shall be the same member of Printed_connector_template as the member of Printed_part_template referenced by the associated_definition> attribute join_terminal inherits from the Printed_part_template_terminal.

NOTE    The connector attribute enforces the subtype constraint.

WR2: The connector shall be the same member of Printed_connector_template as the member of Printed_connector_template referenced by the associated_definition attribute of interface_terminal.

4.3.7 Printed_part_cross_section_template   EXPRESS-GMapping table

A Printed_part_cross_section_template is a type of Printed_part_template that describes a cross-sectional view of a transmission line unit element including dielectric, metallic and geometric properties. The template structure is a directed acyclic graph whose leaf elements are Printed_part_template_material. The graph may not be a tree since it is possible to reuse a member of Printed_part_template_material. A Printed_part_cross_section_template provides a binding between a set of simulation models of the template and the structural model. The simulation model set may be used to form a specification of the allowed maximum and minimum variation of the behaviour of the transmission line in time and/or frequency.

NOTE 1   Models that need the finite element approach may be exchanged using ISO 10303-209. In that case the Trace_template should be used with the ISO 10303-209 model linked to the Trace_template using the design to analysis model linkage available in that part of ISO 10303.

NOTE 2   The material structure represented by a Printed_part_cross_section_template is not required to be a direct map of the layer stackup created by a generic layer based design tool.

NOTE 3   The shape properties of the rectangular element are defined in the Printed_part_template_material Application object.

NOTE 4   The start and end vertices provide a capability to record the length of the unit element defined for simulation and characterization purposes. It is not intended to be used as definitional in the design.

NOTE 5   The examples in this section are intended only to illustrate model structure and capabilities and are not design process recommendations.

EXAMPLE 1   Figure 3 illustrates an example instance diagram of the rectangular element model used for a section of an offset transmission line. The bottom dielectric rectangular element in the instance diagram will actually be implemented in the design with two dielectric layers with the same electrical properties and one metallic layer if the design is defined in a tool that adheres to the generic industry standard layered CAD model. The two metallic elements marked "+" and "-" are two applications of the same Printed_part_template_material.



Figure 3 —  Printed_part_cross_section_template model structure

Figure 3 —  Printed_part_cross_section_template model structure

EXAMPLE 2   Figure 4 illustrates the cross-section view using a layered design model. The parameters included in the illustration would originate in the Stratum_technology stratum_thickness attribute and in the Curve_style_parameters curve_width attribute. These attributes would be made accessible to an application using Schema_based_model_parameter or Datum_difference_based_model_parameter in a complex instance with Schema_based_model_parameter for the associated Analytical_model_application and will be assigned specific values through Parameter_assignment and associated Analytical_model_application application objects. The Datum_difference_based_model_parameter used without Schema_based_model_parameter would be used in the case where a source geometric model that was in compliance with this part of ISO 10303 included the datums illustrated. For example, the variable 'h', the dielectric thickness, in case a would be represented as a Datum_difference_based_model_parameter where the relevant datums are the two horizontal lines visually associated with it.



Figure 4 —  Layered model representation

Figure 4 —  Layered model representation

EXPRESS specification:

*)
ENTITY Printed_part_cross_section_template
  SUBTYPE OF (Printed_part_template);
  horizontal_material_link : OPTIONAL SET[1:?] OF Printed_part_template_material_link;
  vertical_material_link : OPTIONAL SET[1:?] OF Printed_part_template_material_link;
  transmission_line_model : Analytical_model_definition;
  maximum_transmission_line_characteristic : OPTIONAL SET[1:?] OF Analytical_model_application;
  minimum_transmission_line_characteristic : OPTIONAL SET[1:?] OF Analytical_model_application;
  width : Length_tolerance_characteristic;
  unit_length : Length_data_element;
INVERSE
  SELF\Printed_part_template.access_mechanisms : SET[1:?] OF Printed_part_cross_section_template_terminal FOR associated_definition;
WHERE
  WR1: SIZEOF(QUERY(hml <* horizontal_material_link | NOT (hml.precedent_material\Shape_element.element_name IN ['right']))) = 0;
  WR2: SIZEOF(QUERY(hml <* horizontal_material_link | NOT (hml.subsequent_material\Shape_element.element_name IN ['left']))) = 0;
  WR3: SIZEOF(QUERY(hml <* vertical_material_link | NOT (hml.precedent_material\Shape_element.element_name IN ['bottom']))) = 0;
  WR4: SIZEOF(QUERY(hml <* vertical_material_link | NOT (hml.precedent_material\Shape_element.element_name IN ['top']))) = 0;
  WR5: SIZEOF(QUERY(hml <* horizontal_material_link | (SIZEOF(QUERY(vml <* vertical_material_link | (vml :=: hml) )) > 0) )) = 0;
  WR6: NOT EXISTS(SELF\Product_view_definition.name);
  WR7: EXISTS(horizontal_material_link) OR EXISTS(vertical_material_link);
  WR8: NOT ('PRINTED_PHYSICAL_LAYOUT_TEMPLATE_ARM.PRINTED_CONNECTOR_TEMPLATE' IN TYPEOF(SELF));
END_ENTITY;
(*

Attribute definitions:

horizontal_material_link: specifies the role of the Printed_part_template_material_link for the Printed_part_cross_section_template. There shall exist one or more Printed_part_template_material_links for the Printed_part_cross_section_template. The value of this attribute need not be specified.

vertical_material_link: specifies the role of the Printed_part_template_material_link for the Printed_part_cross_section_template. There shall exist one or more Printed_part_template_material_links for the Printed_part_cross_section_template. The value of this attribute need not be specified.

transmission_line_model: specifies the role of the Analytical_model_definition for the Printed_part_cross_section_template.

maximum_transmission_line_characteristic: specifies the role of the Analytical_model_application for the Printed_part_cross_section_template. There shall exist one or more Analytical_model_applications for the Printed_part_cross_section_template. The value of this attribute need not be specified.

minimum_transmission_line_characteristic: specifies the role of the Analytical_model_application for the Printed_part_cross_section_template. There shall exist one or more Analytical_model_applications for the Printed_part_cross_section_template. The value of this attribute need not be specified.

width: specifies the maximum overall lateral Length_tolerance_characteristic dimension through all the material of the Printed_part_cross_section_template.

unit_length: specifies the role of the Length_data_element for the Printed_part_cross_section_template.

access_mechanisms: an inverse relationship that specifies that the existence of the Printed_part_cross_section_template is dependent on the existence of the Printed_part_cross_section_template_terminal that specifies the Printed_part_cross_section_template as its associated_definition. There shall be one or more Printed_part_cross_section_template_terminals for the Printed_part_cross_section_template.

Formal propositions:

WR1: Each horizontal link shall have a right boundary.

WR2: Each horizontal link shall have a left boundary.

WR3: Each vertical link shall have a bottom boundary.

WR4: Each vertical link shall have a top boundary.

WR5: No member of vertical_material_link may be a member of horizontal_material_link.

WR6: The name shall not be populated.

WR7: At least one of vertical_material_link or horizontal_material_link shall exist

WR8: A Printed_part_cross_section_template shall not be a Printed_connector_template.

4.3.8 Printed_part_cross_section_template_terminal   EXPRESS-GMapping table

A Printed_part_cross_section_template_terminal is a type of Printed_part_template_terminal that is the terminal of the Printed_part_cross_section_template. The terminal provides the ability to identify the location of the application of a member of Printed_part_template_material in the context of a member of Printed_part_cross_section_template. The instantiation of the transmission line in the design model would include terminals which would reference a member of Printed_part_cross_section_template_terminal. This reference will permit an application to connect the DC ports of the transmission line to the conductors in the layout design as necessary.

NOTE    The description includes references to metallic elements for clarity. The actual energy or information transfer mechanism is dependent on the material selected for the connectivity function in the layout design.

EXAMPLE 1   Figure 3 illustrates an example instance diagram of the rectangular element model used for a section of an offset transmission line. The rectangle marked with a "+" is a conductor which is an application of Printed_part_template_material in the context of the transmission line model. It is identified in that context by a member of Printed_part_cross_section_template_terminal.

EXPRESS specification:

*)
ENTITY Printed_part_cross_section_template_terminal
  SUBTYPE OF (Printed_part_template_terminal);
  SELF\Shape_element.associated_definition : Printed_part_cross_section_template;
  material_to_left_of_terminal : OPTIONAL Printed_part_template_material_link;
  material_to_right_of_terminal : OPTIONAL Printed_part_template_material_link;
  material_to_top_of_terminal : OPTIONAL Printed_part_template_material_link;
  material_to_bottom_of_terminal : OPTIONAL Printed_part_template_material_link;
UNIQUE
  UR1: associated_definition, material_to_left_of_terminal, material_to_right_of_terminal, material_to_top_of_terminal, material_to_bottom_of_terminal;
WHERE
  WR1: (SELF\Printed_part_template_terminal.connection_zone_category = curve_edge_segment) OR (SELF\Printed_part_template_terminal.connection_zone_category = area_edge_segment);
  WR2: NOT (EXISTS(material_to_left_of_terminal) AND EXISTS(material_to_right_of_terminal)) OR (material_to_left_of_terminal :<>: material_to_right_of_terminal);
  WR3: NOT (EXISTS(material_to_left_of_terminal) AND EXISTS(material_to_top_of_terminal)) OR (material_to_left_of_terminal :<>: material_to_top_of_terminal);
  WR4: NOT (EXISTS(material_to_left_of_terminal) AND EXISTS(material_to_bottom_of_terminal)) OR (material_to_left_of_terminal :<>: material_to_bottom_of_terminal);
  WR5: NOT (EXISTS(material_to_right_of_terminal) AND EXISTS(material_to_top_of_terminal)) OR (material_to_right_of_terminal :<>: material_to_top_of_terminal);
  WR6: NOT (EXISTS(material_to_right_of_terminal) AND EXISTS(material_to_bottom_of_terminal)) OR (material_to_right_of_terminal :<>: material_to_bottom_of_terminal);
  WR7: NOT (EXISTS(material_to_top_of_terminal) AND EXISTS(material_to_bottom_of_terminal)) OR (material_to_top_of_terminal :<>: material_to_bottom_of_terminal);
  WR8: NOT EXISTS(material_to_left_of_terminal) OR (material_to_left_of_terminal\Printed_part_template_material_link.precedent_material\Shape_element.element_name = 'right');
  WR9: NOT EXISTS(material_to_right_of_terminal) OR (material_to_right_of_terminal\Printed_part_template_material_link.subsequent_material\Shape_element.element_name = 'left');
  WR10: NOT EXISTS(material_to_bottom_of_terminal) OR (material_to_bottom_of_terminal\Printed_part_template_material_link.subsequent_material\Shape_element.element_name = 'top');
  WR11: NOT EXISTS(material_to_top_of_terminal) OR (material_to_top_of_terminal\Printed_part_template_material_link.precedent_material\Shape_element.element_name = 'bottom');
END_ENTITY;
(*

Attribute definitions:

associated_definition: an inherited attribute that shall have a value of type Printed_part_cross_section_template.

material_to_left_of_terminal: specifies the role of the Printed_part_template_material_link for the Printed_part_cross_section_template_terminal. The value of this attribute need not be specified.

material_to_right_of_terminal: specifies the role of the Printed_part_template_material_link for the Printed_part_cross_section_template_terminal. The value of this attribute need not be specified.

material_to_top_of_terminal: specifies the role of the Printed_part_template_material_link for the Printed_part_cross_section_template_terminal. The value of this attribute need not be specified.

material_to_bottom_of_terminal: specifies the role of the Printed_part_template_material_link for the Printed_part_cross_section_template_terminal. The value of this attribute need not be specified.

Formal propositions:

UR1: The combination of associated_definition, material_to_left_of_terminal, material_to_right_of_terminal, material_to_top_of_terminal, and material_to_bottom_of_terminal shall be unique within a population of the Printed_part_cross_section_template_terminals.

WR1: The connection_zone_category inherited from Printed_part_template_terminal shall be curve_edge_segment or area_edge_segment.

WR2: The material_to_left_of_terminal shall not be the material_to_right_of_terminal.

WR3: The material_to_left_of_terminal shall not be the material_to_top_of_terminal.

WR4: The material_to_left_of_terminal shall not be the material_to_bottom_of_terminal.

WR5: The material_to_right_of_terminal shall not be the material_to_top_of_terminal.

WR6: The material_to_right_of_terminal shall not be the material_to_bottom_of_terminal.

WR7: The material_to_top_of_terminal shall not be the material_to_bottom_of_terminal.

WR8: If material_to_left_of_terminal exists then element_name shall be 'right'.

WR9: If material_to_right_of_terminal exists then element_name shall be 'left'.

WR10: If material_to_bottom_of_terminal exists then element_name shall be 'top'.

WR11: If material_to_top_of_terminal exists then element_name shall be 'bottom'.

4.3.9 Printed_part_template   EXPRESS-GMapping table

A Printed_part_template is a type of Template_definition that has a specified function. Material may be discontiguous in a Printed_part_template. Each Printed_part_template is either a Basic_multi_stratum_printed_part_template or a Structured_printed_part_template, or a Printed_part_cross_section_template, or a Printed_connector_template, or a Basic_multi_stratum_printed_part_template and a Printed_connector_template, or a Structured_printed_part_template and a Printed_connector_template, or a Printed_part_cross_section_template and a Printed_connector_template.

NOTE 1   An occurrence of this object is a Printed_component that is realized during the manufacturing process for the printed circuit board.

NOTE 2   The functionality realized in an occurrence of a Printed part is determined by the shape of the occurrence and the material constituting the occurrence.

EXAMPLE    Figure 5 illustrates shape data associated with single layer printed part. This part of ISO 10303 supports complex, specific purpose, multi-layer printed part exchange using the design reuse concept with the Layered_interconnect_module_design_view being a design view that contains the elaboration of the part in the design. Individual elements of the part design on a layer basis would be related to individual elements in the design being created using the Component_feature_to_physical_usage_view_assignment.



Figure 5 —  Printed_part_template

Figure 5 —  Printed_part_template

EXPRESS specification:

*)
ENTITY Printed_part_template
  ABSTRACT SUPERTYPE OF (ONEOF (Basic_multi_stratum_printed_part_template,
                                Structured_printed_part_template,
                                Printed_part_cross_section_template)
                        ANDOR Printed_connector_template)
  SUBTYPE OF (Template_definition);
  implemented_function : OPTIONAL Functional_unit_usage_view;
INVERSE
  access_mechanisms : SET[1:?] OF Printed_part_template_terminal FOR associated_definition;
WHERE
  WR1: NOT EXISTS(SELF\Product_view_definition.name);
END_ENTITY;
(*

Attribute definitions:

implemented_function: specifies the role of the Functional_unit_usage_view for the Printed_part_template. The value of this attribute need not be specified.

access_mechanisms: an inverse relationship that specifies that the existence of the Printed_part_template is dependent on the existence of the Printed_part_template_terminal that specifies the Printed_part_template as its associated_definition. There shall be one or more Printed_part_template_terminals for the Printed_part_template.

Formal propositions:

WR1: The category associated with a member of Printed_part_template shall be 'printed part' unless the Printed_part_template is a Layout_macro_floor_plan_template.

Informal propositions:

IP1: The function this member of Printed_part_template implements shall be the associated function for the functional terminals mapped to the terminals of this member of Printed_part_template.

IP2: The Printed_part_template will have two product categories populated: one for the Template_definition and one for the Printed_part_template. There is no conflict between these two categories.

4.3.10 Printed_part_template_connected_terminals_definition   EXPRESS-GMapping table

A Printed_part_template_connected_terminals_definition is the association between two or more Printed_part_template_terminal that are connected.

EXPRESS specification:

*)
ENTITY Printed_part_template_connected_terminals_definition;
  name : STRING;
  connected_terminals : SET[2:?] OF Printed_part_template_terminal;
DERIVE
  scope : Printed_part_template := connected_terminals[1].associated_definition;
UNIQUE
  UR1: name, scope;
WHERE
  WR1: SIZEOF(QUERY(t <* connected_terminals | t.associated_definition :<>: scope)) = 0;
END_ENTITY;
(*

Attribute definitions:

name: the words by which the Printed_part_template_connected_terminals_definition is known.

connected_terminals: specifies the Printed_part_template_terminal for the Printed_part_template_connected_terminals_definition. There shall be two or more Printed_part_template_terminals for the Printed_part_template_connected_terminals_definition.

scope: specifies the Printed_part_template for the Printed_part_template_connected_terminals_definition.

Formal propositions:

UR1: The combination of name and scope shall be unique within a population of Printed_part_template_connected_terminals_definitions.

WR1: All members of connected_terminals shall have scope in role of associated_definition.

4.3.11 Printed_part_template_interface_terminal   EXPRESS-GMapping table

A Printed_part_template_interface_terminal is a type of Printed_part_template_terminal, an occurrence of which is an external access to the printed circuit board of which it is a component.

EXPRESS specification:

*)
ENTITY Printed_part_template_interface_terminal
  SUBTYPE OF (Printed_part_template_terminal);
  SELF\Shape_element.associated_definition : Printed_connector_template;
INVERSE
  external_connector_function : SET[1:?] OF Printed_connector_template_terminal_relationship FOR interface_terminal;
END_ENTITY;
(*

Attribute definitions:

associated_definition: an attribute inherited from the Printed_part_template_terminal shall be redeclared as the Printed_connector_template for the Printed_part_template_interface_terminal.

external_connector_function: specifies an inverse relationship that specifies that the existence of the Printed_part_template_interface_terminal is dependent on the existence of the Printed_connector_template_terminal_relationship that specifies the Printed_part_template_interface_terminal as its interface_terminal. There shall be one or more Printed_connector_template_terminal_relationships for a particular Printed_part_template_interface_terminal.

4.3.12 Printed_part_template_join_terminal   EXPRESS-GMapping table

A Printed_part_template_join_terminal is a type of Printed_part_template_terminal an occurrence of which provides access to the functionality of the Printed_part_template from within a printed circuit board.

NOTE    Join is a concept that explicitly states the purpose is for completing the network connections internal to a physical design.

EXPRESS specification:

*)
ENTITY Printed_part_template_join_terminal
  SUBTYPE OF (Printed_part_template_terminal);
INVERSE
  internal_connector_function : SET[0:1] OF Printed_connector_template_terminal_relationship FOR join_terminal;
END_ENTITY;
(*

Attribute definitions:

internal_connector_function: specifies an inverse relationship that specifies that the existence of the Printed_part_template_join_terminal is dependent on the existence of the Printed_connector_template_terminal_relationship that specifies the Printed_part_template_join_terminal as its join_terminal. There shall be one or more Printed_connector_template_terminal_relationships for a particular Printed_part_template_join_terminal.

4.3.13 Printed_part_template_material   EXPRESS-GMapping table

A Printed_part_template_material is an extension to stratum technology that adds a width specification to support the structural definition of a transmission line model provided by Printed_part_cross_section_template.

NOTE    The thickness of the Printed_part_template_material may cause one Printed_part_template_material to correspond to several layers in the stackup model.

EXPRESS specification:

*)
ENTITY Printed_part_template_material;
  width : Length_tolerance_characteristic;
  required_material : Stratum_technology;
INVERSE
  boundary : SET[0:4] OF Template_material_cross_section_boundary FOR associated_definition2;
WHERE
  WR1: SIZEOF(QUERY(temp <* (USEDIN(SELF, 'PRINTED_PHYSICAL_LAYOUT_TEMPLATE_ARM.TEMPLATE_MATERIAL_CROSS_SECTION_BOUNDARY.' + 'ASSOCIATED_DEFINITION2')) | temp\Shape_element.element_name = 'top')) <= 1;
  WR2: SIZEOF(QUERY(temp <* (USEDIN(SELF, 'PRINTED_PHYSICAL_LAYOUT_TEMPLATE_ARM.TEMPLATE_MATERIAL_CROSS_SECTION_BOUNDARY.' + 'ASSOCIATED_DEFINITION2')) | temp\Shape_element.element_name = 'bottom')) <= 1;
  WR3: SIZEOF(QUERY(temp <* (USEDIN(SELF, 'PRINTED_PHYSICAL_LAYOUT_TEMPLATE_ARM.TEMPLATE_MATERIAL_CROSS_SECTION_BOUNDARY.' + 'ASSOCIATED_DEFINITION2')) | temp\Shape_element.element_name = 'left')) <= 1;
  WR4: SIZEOF(QUERY(temp <* (USEDIN(SELF, 'PRINTED_PHYSICAL_LAYOUT_TEMPLATE_ARM.TEMPLATE_MATERIAL_CROSS_SECTION_BOUNDARY.' + 'ASSOCIATED_DEFINITION2')) | temp\Shape_element.element_name = 'right')) <= 1;
END_ENTITY;
(*

Attribute definitions:

width: specifies the maximum Length_tolerance_characteristic for the width of the Printed_part_template_material.

required_material: specifies the role of the Stratum_technology for the Printed_part_template_material.

boundary: an inverse relationship that specifies that the existence of the Printed_part_template_material is dependent on the existence of the Template_material_cross_section_boundary that specifies the Printed_part_template_material as its associated_definition. There shall be no more than four Template_material_cross_section_boundaries for a particular Printed_part_template_material.

Formal propositions:

WR1: There shall be no more than one Template_material_cross_section_boundary refering Printed_part_template_material as associated_definition and having element_name set to 'top'.

WR2: There shall be no more than one Template_material_cross_section_boundary refering Printed_part_template_material as associated_definition and having element_name set to 'bottom'.

WR3: There shall be no more than one Template_material_cross_section_boundary refering Printed_part_template_material as associated_definition and having element_name set to 'left'.

WR4: There shall be no more than one Template_material_cross_section_boundary refering Printed_part_template_material as associated_definition and having element_name set to 'right'.

4.3.14 Printed_part_template_material_link   EXPRESS-GMapping table

A Printed_part_template_material_link is a link that establishes an adjacency relationship between two material boundaries in the cross section view of a template. The link is directed, and helps to compose an unambiguous boundary element based definition of a cross section. The link is an edge in the directed acyclic graph of the cross section template. Multiple links may reference the same Printed_part_template_material because it is the link whose uniqueness properties are controlled in Printed_part_cross_section_template and in Printed_part_cross_section_template_terminal.

EXPRESS specification:

*)
ENTITY Printed_part_template_material_link;
  precedent_material : Template_material_cross_section_boundary;
  subsequent_material : Template_material_cross_section_boundary;
UNIQUE
  UR1: precedent_material, subsequent_material;
WHERE
  WR1: precedent_material :<>: subsequent_material;
  WR2: precedent_material\Shape_element.element_name IN ['bottom', 'right'];
  WR3: subsequent_material\Shape_element.element_name IN ['top', 'left'];
  WR4: NOT((precedent_material\Shape_element.element_name IN ['bottom']) XOR (subsequent_material\Shape_element.element_name IN ['top']));
  WR5: NOT((precedent_material\Shape_element.element_name IN ['right']) XOR (subsequent_material\Shape_element.element_name IN ['left']));
  WR6: acyclic_printed_part_template_material_link(SELF, [subsequent_material], 'PRINTED_PHYSICAL_LAYOUT_TEMPLATE_ARM.PRINTED_PART_TEMPLATE_MATERIAL_LINK');
END_ENTITY;
(*

Attribute definitions:

precedent_material: specifies the role of the Template_material_cross_section_boundary for the Printed_part_template_material_link.

subsequent_material: specifies the role of the Template_material_cross_section_boundary for the Printed_part_template_material_link.

Formal propositions:

UR1: The combination of precedent_material and subsequent_material shall be unique within a population of Printed_part_template_material_links.

WR1: The precedent_material shall not be the subsequent_material.

WR2: The name attribute inherited from Shape_element for the precedent_material shall be one of "bottom" or "right".

WR3: The name attribute inherited from Shape_element for the subsequent_material shall be one "top" or "left".

WR4: The precedent name shall be 'bottom' if and only if the subsequent name is 'top'.

WR5: The precedent name shall be 'right' if and only if the subsequent name is 'left'.

WR6: The graph of instances of the Application Object Printed_part_template_material_link shall not contain a cycle.

4.3.15 Printed_part_template_terminal   EXPRESS-GMapping table

A Printed_part_template_terminal is a type of Shape_element. A Printed_part_template_terminal is a Printed_part_template_interface_terminal or a Printed_part_template_join_terminal, or a Printed_part_cross_section_template_terminal, or a Structured_printed_part_template_terminal, or a Printed_part_template_interface_terminal and a Printed_part_cross_section_template_terminal, or a Printed_part_template_interface_terminal and a Structured_printed_part_template_terminal, or a Printed_part_template_join_terminal and a Printed_part_cross_section_template_terminal, or a Printed_part_template_join_terminal and a Structured_printed_part_template_terminal, or a Printed_part_cross_section_template_terminal and a Structured_printed_part_template_terminal, or a Printed_part_template_interface_terminal and a Printed_part_cross_section_template_terminal, and a Structured_printed_part_template_terminal, or a Printed_part_template_join_terminal and a Printed_part_cross_section_template_terminal and a Structured_printed_part_template_terminal. A Printed_part_template_terminal is a terminal of a Printed_part_template.

EXPRESS specification:

*)
ENTITY Printed_part_template_terminal
  ABSTRACT SUPERTYPE OF ((ONEOF (Printed_part_template_join_terminal,
                                 Printed_part_template_interface_terminal)
                        ANDOR Printed_part_cross_section_template_terminal)
                       ANDOR Structured_printed_part_template_terminal)
  SUBTYPE OF (General_part_feature);
  SELF\Shape_element.associated_definition : Printed_part_template;
  connection_zone_category : printed_part_template_terminal_class;
  connection_area : OPTIONAL SET[1:?] OF Connection_zone_in_layout_template;
INVERSE
  connection_requirement : SET[0:1] OF Printed_part_template_connected_terminals_definition FOR connected_terminals;
  functional_usage_view_terminal : SET[0:1] OF Functional_usage_view_to_printed_part_template_terminal_assignment FOR physical_usage_view_terminal;
UNIQUE
  UR1: SELF\Shape_element.element_name, associated_definition;
WHERE
  WR1: NOT EXISTS(SELF\Shape_element.description);
END_ENTITY;
(*

Attribute definitions:

associated_definition: specifies the role of the Printed_part_template for the Printed_part_template_terminal.

connection_zone_category: specifies the geometric classification for the connection zone of the Printed_part_template_terminal. The connection zone may either an area_edge_segment, a curve_edge_segment, a surface_area, or a surface_point.

connection_area: the role of Connection_zone_in_layout_template for the Printed_part_template_terminal. There may be one or more Connection_zone_in_layout_template for a Printed_part_template_terminal. The value of this attribute need not be specified if the source system does not contain the data. If the source system contains the data, then the connection_area shall be provided.

connection_requirement: an inverse relationship that specifies that the existence of the Printed_part_template_terminal is dependent on the existence of the Printed_part_template_connected_terminals_definition that specifies the Printed_part_template_terminal as its connected_terminals. There shall be no more than one Printed_part_template_connected_terminals_definition for a Printed_part_template_terminal.

functional_usage_view_terminal: an inverse relationship that specifies the Functional_usage_view_to_printed_part_template_terminal_assignment that specifies the Printed_part_template_terminal as its physical_usage_view_terminal. There shall be no more than one Functional_usage_view_to_printed_part_template_terminal_assignment for a Printed_part_template_terminal.

Formal propositions:

UR1: The combination of element_name and associated_definition shall be unique within a population of Printed_part_template_terminals.

WR1: The description shall not be populated.

4.3.16 Printed_tiebar_template   EXPRESS-GMapping table

A Printed_tiebar_template is a type of Structured_printed_part_template included to support an implementation of a connection between otherwise disjoint networks in a layout. A Printed_tiebar_template provides a flexible structure to support common use cases including metallic short implemented as part of the interconnect substrate fabrication, provision for external wire to be applied during assembly, definition of the actual layer that the metallic short shall be implemented on.

EXPRESS specification:

*)
ENTITY Printed_tiebar_template
  SUBTYPE OF (Structured_printed_part_template);
DERIVE
  terminal_location : SET[0:?] OF Axis_placement_2d := pplt_get_tl_ap2d(SELF);
  passage_component_location : SET[0:?] OF Axis_placement_2d := pplt_get_pcl_ap2d(SELF);
  tiebar_shape_model : SET[0:?] OF Geometric_model := pplt_get_gm(SELF);
WHERE
  WR1: SIZEOF(['PRINTED_PHYSICAL_LAYOUT_TEMPLATE_ARM.PRINTED_CONNECTOR_TEMPLATE', 'PRINTED_PHYSICAL_LAYOUT_TEMPLATE_ARM.NON_CONDUCTIVE_CROSS_SECTION_TEMPLATE', 'PRINTED_PHYSICAL_LAYOUT_TEMPLATE_ARM.PRINTED_PART_CROSS_SECTION_TEMPLATE'] * TYPEOF(SELF)) = 0;
  WR2: SIZEOF(QUERY(am <* SELF\Printed_part_template.access_mechanisms | NOT('PRINTED_PHYSICAL_LAYOUT_TEMPLATE_ARM.PRINTED_PART_TEMPLATE_JOIN_TERMINAL' IN TYPEOF(am)) )) = 0;
  WR3: (SIZEOF(passage_component_location) = 0) OR (SIZEOF(QUERY(pcl <* passage_component_location | (SIZEOF(QUERY(tsm <* tiebar_shape_model | (ap2d_geometrically_in_tiebar(pcl,tsm)))) > 0) )) = SIZEOF(passage_component_location));
  WR4: SIZEOF(QUERY(t <* SELF\Structured_template.templates | 'LAYERED_INTERCONNECT_SIMPLE_TEMPLATE_ARM.STRATUM_FEATURE_TEMPLATE' IN TYPEOF(t\Template_location_in_structured_template.template))) > 0;
  WR5: SIZEOF(QUERY(spptt <* SELF\Printed_part_template.access_mechanisms | NOT(SIZEOF(USEDIN(spptt,'PRINTED_PHYSICAL_LAYOUT_TEMPLATE_ARM.' + 'PRINTED_PART_TEMPLATE_CONNECTED_TERMINALS_DEFINITION.CONNECTED_TERMINALS')) = 1) )) = 0;
  WR6: SIZEOF(QUERY(spptt1 <* SELF\Printed_part_template.access_mechanisms | NOT(SIZEOF(QUERY(spptt2 <* SELF\Printed_part_template.access_mechanisms | (bag_to_set(USEDIN(spptt1,'PRINTED_PHYSICAL_LAYOUT_TEMPLATE_ARM.' + 'PRINTED_PART_TEMPLATE_CONNECTED_TERMINALS_DEFINITION.CONNECTED_TERMINALS')) = bag_to_set(USEDIN(spptt2,'PRINTED_PHYSICAL_LAYOUT_TEMPLATE_ARM.' + 'PRINTED_PART_TEMPLATE_CONNECTED_TERMINALS_DEFINITION.CONNECTED_TERMINALS'))))) = SIZEOF(SELF\Printed_part_template.access_mechanisms)))) = 0;
  WR7: SIZEOF(QUERY(tl <* terminal_location | (SIZEOF(QUERY(pcl <* passage_component_location | ((tl :=: pcl) OR (SIZEOF(QUERY(tsm <* tiebar_shape_model | (ap2d_geometrically_in_tiebar(tl,tsm)))) > 0)))) > 0) )) = SIZEOF(terminal_location);
END_ENTITY;
(*

Attribute definitions:

terminal_location: specifies the role of the Axis_placement_2d for the Printed_tiebar_template. There shall exist zero or more Axis_placement_2d for the Printed_tiebar_template.

passage_component_location: specifies the role of the Axis_placement_2d for the Printed_tiebar_template. There shall exist zero or more Axis_placement_2d for the Printed_tiebar_template.

tiebar_shape_model: specifies the role of the Geometric_model for the Printed_tiebar_template. There shall exist zero or more Geometric_models for the Printed_tiebar_template.

Formal propositions:

WR1: A Printed_tiebar_template shall not be a Printed_connector_template, nor shall it be a Non_conductive_cross_section_template, nor shall it be a Printed_part_cross_section_template.

WR2: Only members of Printed_part_template_join_terminal shall be included in the aggregate access_mechanisms inherited from Printed_part_template.

WR3: If at least one passage is provided, then for each passage, the location of that passage in the template shall be inside at least one tiebar component shape.

WR4: There shall be at least one member of Stratum_feature_template helping to compose a member of this AO.

WR5: Each member of access_mechanisms shall be referenced by exactly one member of Printed_part_template_connected_terminals_definition in the role of connected_terminals.

WR6: Each member of access_mechanisms shall reference the same member of Printed_part_template_connected_terminals_definition in the role of connected_terminals.

WR7: For each terminal, the location of that terminal in the template shall be the location of a passage or shall be inside at least one tiebar component shape.

4.3.17 Single_stratum_printed_part_template   EXPRESS-GMapping table

A Single_stratum_printed_part_template is a type of Single_stratum_structured_template and a type of Structured_printed_part_template.

EXPRESS specification:

*)
ENTITY Single_stratum_printed_part_template
  SUBTYPE OF (Structured_printed_part_template, Single_stratum_structured_template);
END_ENTITY;
(*

4.3.18 Structured_printed_part_template   EXPRESS-GMapping table

A Structured_printed_part_template is a type of Printed_part_template and a type of Structured_template. A Structured_printed_part_template is either a Single_stratum_printed_part_template or a Multi_stratum_printed_part_template.

EXPRESS specification:

*)
ENTITY Structured_printed_part_template
  ABSTRACT SUPERTYPE OF (ONEOF (Single_stratum_printed_part_template,
                                Multi_stratum_printed_part_template))
  SUBTYPE OF (Printed_part_template, Structured_template);
WHERE
  WR1: SIZEOF(QUERY(t <* access_mechanisms | NOT ('PRINTED_PHYSICAL_LAYOUT_TEMPLATE_ARM.STRUCTURED_PRINTED_PART_TEMPLATE_TERMINAL' IN TYPEOF(t)))) = 0;
  WR2: SIZEOF(QUERY(t <* SELF\Structured_template.templates | 'LAYERED_INTERCONNECT_COMPLEX_TEMPLATE_ARM.STRUCTURED_TEMPLATE' IN TYPEOF(t.template))) = 0;
END_ENTITY;
(*

Formal propositions:

WR1: All members of access_mechanisms shall be of type Structured_printed_part_template_terminal.

WR2: The Structured_printed_part_template shall not be composed of Structured_templates.

4.3.19 Structured_printed_part_template_terminal   EXPRESS-GMapping table

A Structured_printed_part_template_terminal is a type of Printed_part_template_terminal specialized to support the structure imposed by the Structured_printed_part_template.

EXPRESS specification:

*)
ENTITY Structured_printed_part_template_terminal
  SUBTYPE OF (Printed_part_template_terminal);
  SELF\Shape_element.associated_definition : Structured_printed_part_template;
  associated_composition_relationship : Template_location_in_structured_template;
WHERE
  WR1: associated_composition_relationship\Template_location_in_structured_template.assembly :=: associated_definition;
  WR2: TYPEOF(SELF) <> ['PRINTED_PHYSICAL_LAYOUT_TEMPLATE_ARM.STRUCTURED_PRINTED_PART_TEMPLATE_TERMINAL', 'PRINTED_PHYSICAL_LAYOUT_TEMPLATE_ARM.PRINTED_PART_TEMPLATE_TERMINAL', 'FEATURE_AND_CONNECTION_ZONE_ARM.DEFINITIONAL_SHAPE_ELEMENT', 'SHAPE_PROPERTY_ASSIGNMENT_ARM.SHAPE_ELEMENT'];
END_ENTITY;
(*

Attribute definitions:

associated_definition: an attribute inherited from the Printed_part_template_terminal shall be redeclared as the Structured_printed_part_template for the Structured_printed_part_template_terminal.

associated_composition_relationship: specifies the role of the Template_location_in_structured_template for the Structured_printed_part_template_terminal.

Formal propositions:

WR1: The assembly of associated_composition_relationship shall be same instance as associated_definition.

WR2: The Structured_printed_part_template_terminal shall only be instantiated as a complex with other entity.

4.3.20 Template_material_cross_section_boundary   EXPRESS-GMapping table

A Template_material_cross_section_boundary is a type of Non_feature_shape_element that provides pre-classified boundary elements for the structural definition of a transmission line model provided by Printed_part_cross_section_template..

EXPRESS specification:

*)
ENTITY Template_material_cross_section_boundary
  SUBTYPE OF (Non_feature_shape_element);
  associated_definition2 : Printed_part_template_material;
UNIQUE
  UR1: associated_definition2, SELF\Shape_element.element_name;
WHERE
  WR1: SELF\Shape_element.element_name IN ['top', 'bottom', 'left', 'right'];
END_ENTITY;
(*

Attribute definitions:

associated_definition2: specifies the Printed_part_template_material for the Template_material_cross_section_boundary.

Formal propositions:

UR1: The combination of associated_definition and element_name shall be unique within a population of Template_material_cross_section_boundarys.

WR1: The element_name shall be one of "top", "bottom", "left", or "right".

4.4 ARM subtype constraint definition

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.

4.4.1 pplt_template_definition_subtypes   EXPRESS-GMapping table

The pplt_template_definition_subtypes constraint specifies a constraint that applies to instances of Template_definition and enforces the rule that its subtypes Printed_part_template and Non_conductive_cross_section_template are exclusive.

EXPRESS specification:

*)
SUBTYPE_CONSTRAINT pplt_template_definition_subtypes FOR Template_definition;
  ONEOF (Printed_part_template,
         Non_conductive_cross_section_template);
END_SUBTYPE_CONSTRAINT;
(*

4.5 ARM function definitions

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

4.5.1 acyclic_printed_part_template_material_link

The acyclic_printed_part_template_material_link function determines whether the graph of instances of the Application Object type Printed_part_template_material_link that contains relation as one of its links contains a cycle. This function may be used to evaluate Printed_part_template_material_link or any of it's subtypes.

EXPRESS specification:

*)
FUNCTION acyclic_printed_part_template_material_link (relation : Printed_part_template_material_link; relatives : SET[1:?] OF Template_material_cross_section_boundary; specific_relation : STRING) : BOOLEAN;
LOCAL
     x : SET OF Printed_part_template_material_link := [];
  END_LOCAL;

    IF relation.precedent_material IN relatives THEN
      RETURN (FALSE);
    END_IF;
    x := QUERY(pd <* bag_to_set(USEDIN(relation.precedent_material,
      'PRINTED_PHYSICAL_LAYOUT_TEMPLATE_ARM.' +
      'PRINTED_PART_TEMPLATE_MATERIAL_LINK.' +
      'SUBSEQUENT_MATERIAL')) | specific_relation IN TYPEOF(pd));
    REPEAT i := 1 TO HIINDEX(x);
      IF NOT acyclic_printed_part_template_material_link(x[i], relatives +
        relation.precedent_material, specific_relation) THEN
        RETURN (FALSE);
      END_IF;
    END_REPEAT;
    RETURN (TRUE);
END_FUNCTION;
(*

Argument definitions:

relation: the specified Printed_part_template_material_link.

relatives: the set of Template_material_cross_section_boundaries.

specific_relation: the specified STRING.

4.5.2 ap2d_geometrically_in_tiebar

The ap2d_geometrically_in_tiebar function calculates whether the Axis_placement_2d is inside the Geometric_model provided. It is assumed that the Geometric_model is a Polygon.

EXPRESS specification:

*)
FUNCTION ap2d_geometrically_in_tiebar (input_1 : Axis_placement_2d; input_2 : Geometric_model) : LOGICAL;
RETURN(TRUE);
END_FUNCTION;
(*

Argument definitions:

input_1: the specified Axis_placement_2d.

input_2: the specified Geometric_model.

4.5.3 pplt_get_gm

The pplt_get_gm function returns a set of Geometric_models that are the result of transforming each Geometric_model into the Printed_tiebar_template shape model using the Template_location_in_structured_template_transform. Each of the transformed models is a model for one of the set of Stratum_feature_template that help to compose the Printed_tiebar_template using the Template_location_in_structured_template.

EXPRESS specification:

*)
FUNCTION pplt_get_gm (input : Printed_tiebar_template) : SET[0:?] OF Geometric_model;
LOCAL
	  gm : SET OF Geometric_model := [];  --this gives us access to the information base
    END_LOCAL;
	RETURN(gm);
END_FUNCTION;
(*

Argument definitions:

input: the specified Printed_tiebar_template.

4.5.4 pplt_get_pcl_ap2d

The pplt_get_pcl_ap2d function returns the set of Axis_placement_2d that are transforming passage templates into the Printed_tiebar_template.

EXPRESS specification:

*)
FUNCTION pplt_get_pcl_ap2d (input : Printed_tiebar_template) : SET[0:?] OF Axis_placement_2d;
LOCAL
	  ap2d : SET OF Axis_placement_2d := [];  --this gives us access to the information base
    END_LOCAL;
	RETURN(ap2d);
END_FUNCTION;
(*

Argument definitions:

input: the specified Printed_tiebar_template.

4.5.5 pplt_get_tl_ap2d

The pplt_get_tl_ap2d function returns the set of Axis_placement_2d that are transforming templates into the Printed_tiebar_template where the template location is used in the role of associated_composition_relationship for the Structured_printed_part_template_terminal that act as access_mechanisms for the Printed_tiebar_template that is the input.

EXPRESS specification:

*)
FUNCTION pplt_get_tl_ap2d (input : Printed_tiebar_template) : SET[0:?] OF Axis_placement_2d;
LOCAL
	  ap2d : SET OF Axis_placement_2d := [];  --this gives us access to the information base
    END_LOCAL;
	RETURN(ap2d);
END_FUNCTION;
(*

Argument definitions:

input: the specified Printed_tiebar_template.



*)
END_SCHEMA;  -- Printed_physical_layout_template_arm
(*


© ISO 2021 — All rights reserved