Application module: Layered interconnect simple template | ISO/TS 10303-1718:2018-11(E) © ISO |
(*
ISO/TC 184/SC 4/WG 12 N9457 - ISO/TS 10303-1718 Layered interconnect simple template - EXPRESS ARM
Supersedes
ISO/TC 184/SC 4/WG 12 N8176
*)
SCHEMA Layered_interconnect_simple_template_arm;
USE FROM
Layered_2d_shape_arm;
-- ISO/TS 10303-1693
USE FROM
Fill_area_style_arm;
-- ISO/TS 10303-1672
USE FROM
Fabrication_technology_arm;
-- ISO/TS 10303-1670
USE FROM
Text_representation_arm;
-- ISO/TS 10303-1750
USE FROM
Part_template_shape_with_parameters_arm;
-- ISO/TS 10303-1720
REFERENCE FROM
Requirement_decomposition_arm -- ISO/TS 10303-1740
(get_rvd);
REFERENCE FROM
Support_resource_arm -- ISO/TS 10303-1800
(bag_to_set);
TYPE land_connection_zone_class =
ENUMERATION
OF
(surface_point_class,
edge_area_class,
edge_curve_class,
edge_point_class,
surface_area_class);
END_TYPE;
TYPE land_template_terminal_class =
ENUMERATION
OF
(surface_point_class,
edge_area_class,
edge_curve_class,
edge_point_class,
surface_area_class);
END_TYPE;
TYPE list_external_identification_item =
SELECT
BASED_ON
external_identification_item
WITH
(Land_physical_template);
END_TYPE;
TYPE list_requirement_assignment_item =
SELECT
BASED_ON
requirement_assignment_item
WITH
(Electrical_isolation_removal_template);
END_TYPE;
TYPE list_usage_concept =
SELECT
BASED_ON
usage_concept
WITH
(Land_template_terminal);
END_TYPE;
TYPE measure_orientation =
ENUMERATION
OF
(reversed,
normal);
END_TYPE;
TYPE ptswp_ptsm_definition =
SELECT
(Via_template,
Component_termination_passage_template);
END_TYPE;
TYPE ptswp_template_shape_model_context =
ENUMERATION
OF
(drilled_passage_context,
finished_passage_context,
unknown_context);
END_TYPE;
ENTITY Blind_passage_template
SUBTYPE OF (Unsupported_passage_template);
bottom_distance_from_datum_reference : Dimensional_location;
datum_reference_layer : Stratum_technology_occurrence;
datum_reference_side : Stratum_technology_occurrence_link;
of_measure_orientation : measure_orientation;
END_ENTITY;
ENTITY Closed_path_area_with_parameters
SUBTYPE OF (Path_area_with_parameters);
SELF\Path_area_with_parameters.centreline : closed_curve;
SELF\Path_area_with_parameters.parameters : Closed_curve_style_parameters;
END_ENTITY;
ENTITY Component_termination_passage_template
SUBTYPE OF (Continuous_template, Inter_stratum_feature_template);
SELF\Inter_stratum_feature_template.of_passage_technology : Default_component_termination_passage_definition;
INVERSE
access_mechanisms : SET[2:?] OF Component_termination_passage_template_terminal FOR associated_definition;
END_ENTITY;
ENTITY Component_termination_passage_template_interface_terminal
SUBTYPE OF (Component_termination_passage_template_terminal);
END_ENTITY;
ENTITY Component_termination_passage_template_join_terminal
SUBTYPE OF (Component_termination_passage_template_terminal);
disallowed_inter_stratum_extent :
OPTIONAL
SET[1:?] OF Stratum_technology_occurrence_link;
END_ENTITY;
ENTITY Component_termination_passage_template_terminal
ABSTRACT SUPERTYPE
OF (ONEOF (Component_termination_passage_template_interface_terminal,
Component_termination_passage_template_join_terminal))
SUBTYPE OF (General_part_feature);
SELF\Shape_element.associated_definition : Component_termination_passage_template;
connection_area :
OPTIONAL
SET[1:?] OF Connection_zone_in_layout_template;
UNIQUE
UR1: SELF\Shape_element.element_name, associated_definition;
WHERE
WR1: NOT EXISTS(SELF\Shape_element.description);
END_ENTITY;
ENTITY Connection_zone_in_layout_template
SUBTYPE OF (Connection_zone, Instanced_feature);
SELF\Shape_element.associated_definition : Template_definition;
connection_zone_category :
OPTIONAL
SET[1:?] OF land_connection_zone_class;
END_ENTITY;
ENTITY Continuous_template
SUBTYPE OF (Geometric_template);
WHERE
WR1: SIZEOF(QUERY(s <* SELF\Geometric_template.shapes |
NOT
(SIZEOF(['CONSTRUCTIVE_SOLID_GEOMETRY_2D_ARM.SINGLE_AREA_CSG_2D_MODEL'] * TYPEOF(s))
= 1)
)) = 0;
END_ENTITY;
ENTITY Counterbore_passage_template
SUBTYPE OF (Unsupported_passage_template);
smaller_passage : Unsupported_passage_template;
larger_passage : Blind_passage_template;
END_ENTITY;
ENTITY Countersunk_passage_template
SUBTYPE OF (Unsupported_passage_template);
constant_diameter_passage : Unsupported_passage_template;
tapered_passage : Blind_passage_template;
END_ENTITY;
ENTITY Default_attachment_size_based_land_physical_template
SUBTYPE OF (Land_physical_template, Shape_element);
DERIVE
SELF\Shape_element.associated_definition : Default_attachment_size_based_land_physical_template := SELF;
SELF\Shape_element.element_name : STRING := '';
SELF\Shape_element.product_definitional : BOOLEAN := TRUE;
INVERSE
interface_access_mechanisms : SET[1:?] OF Land_template_interface_terminal FOR associated_definition;
WHERE
WR1: NOT (SIZEOF(interface_access_mechanisms[1].connection_area) > 0) OR
('minimum attachment region size' IN
list_get_zone_name(interface_access_mechanisms[1].connection_area));
WR2: NOT (SIZEOF(interface_access_mechanisms[1].connection_area) > 1) OR
(SIZEOF(['maximum attachment region size','heel area', 'toe area'] *
list_get_zone_name(interface_access_mechanisms[1].connection_area)) = 1);
WR3: NOT (SIZEOF(interface_access_mechanisms[1].connection_area) > 2) OR
(SIZEOF(['maximum attachment region size','heel area', 'toe area'] *
list_get_zone_name(interface_access_mechanisms[1].connection_area)) = 2);
WR4: NOT (SIZEOF(interface_access_mechanisms[1].connection_area) > 3) OR
(SIZEOF(['maximum attachment region size','heel area', 'toe area'] *
list_get_zone_name(interface_access_mechanisms[1].connection_area)) = 3);
WR5: SIZEOF(interface_access_mechanisms) = 1;
END_ENTITY;
ENTITY Default_passage_based_land_physical_template
ABSTRACT SUPERTYPE
OF (ONEOF (Default_plated_passage_based_land_physical_template,
Default_unsupported_passage_based_land_physical_template))
SUBTYPE OF (Land_physical_template);
of_passage_technology : Passage_technology;
END_ENTITY;
ENTITY Default_plated_passage_based_land_physical_template
SUBTYPE OF (Default_passage_based_land_physical_template);
WHERE
WR1: SELF\Default_passage_based_land_physical_template.of_passage_technology.plated_passage = TRUE;
WR2: NOT('FABRICATION_TECHNOLOGY_ARM.DEFAULT_VIA_DEFINITION' IN TYPEOF(SELF\Default_passage_based_land_physical_template.of_passage_technology))
OR
(SIZEOF(QUERY(ltjt <* SELF\Land_physical_template.access_mechanisms | NOT('LAYERED_INTERCONNECT_SIMPLE_TEMPLATE_ARM.LAND_TEMPLATE_JOIN_TERMINAL'
IN TYPEOF(ltjt)))) = 0);
END_ENTITY;
ENTITY Default_trace_template
SUBTYPE OF (Trace_template);
of_stratum_technology : Stratum_technology;
END_ENTITY;
ENTITY Default_unsupported_passage_based_land_physical_template
SUBTYPE OF (Default_passage_based_land_physical_template);
SELF\Default_passage_based_land_physical_template.of_passage_technology : Default_unsupported_passage_definition;
END_ENTITY;
ENTITY Electrical_isolation_removal_template
SUBTYPE OF (Material_removal_feature_template);
DERIVE
electrical_isolation_spacing_requirement : SET[0:?] OF Requirement_view_definition := get_rvd(SELF, 'electrical requirement');
WHERE
WR1: SIZEOF(QUERY(eisr <* electrical_isolation_spacing_requirement |
NOT('INTERCONNECT_PHYSICAL_REQUIREMENT_ALLOCATION_ARM.ELECTRICAL_ISOLATION_REQUIREMENT'
IN TYPEOF(eisr)) )) =0;
WR2: SIZEOF(QUERY(s <* SELF\Geometric_template.shapes |
('LAYERED_INTERCONNECT_SIMPLE_TEMPLATE_ARM.PLANAR_CLOSED_PATH_SHAPE_MODEL_WITH_PARAMETERS' IN TYPEOF(s)))) = 0;
WR3: SIZEOF(QUERY(s <* SELF\Geometric_template.shapes |
NOT ('CONSTRUCTIVE_SOLID_GEOMETRY_2D_ARM.SINGLE_BOUNDARY_CSG_2D_MODEL' IN TYPEOF(s)))) = 0;
END_ENTITY;
ENTITY Fill_area_template
SUBTYPE OF (Parametric_template);
outer_boundary_style : Closed_curve_style_parameters;
inner_boundary_style : Closed_curve_style_parameters;
END_ENTITY;
ENTITY Hatch_area_template
SUBTYPE OF (Fill_area_template);
fill_boundary_style : Curve_style_parameters_with_ends;
hatch_pattern : SET[1:4] OF Hatch_line_element;
min_feature :
OPTIONAL
Length_data_element;
END_ENTITY;
ENTITY Hatch_line_element
SUBTYPE OF (Detailed_geometric_model_element);
hatch_line : Line;
offset : Length_data_element;
END_ENTITY;
ENTITY Inter_stratum_feature_edge_segment_template
SUBTYPE OF (Inter_stratum_feature_template);
composed_edge : Inter_stratum_feature_edge_template;
start_vertex : Edge_segment_vertex;
end_vertex : Edge_segment_vertex;
reference_path : Trimmed_curve;
WHERE
WR1: EXISTS(reference_path.start_point) AND
EXISTS(reference_path.end_point);
WR2: start_vertex :<>: end_vertex;
END_ENTITY;
ENTITY Inter_stratum_feature_edge_template
SUBTYPE OF (Inter_stratum_feature_template);
INVERSE
edges : SET[2:?] OF Inter_stratum_feature_edge_segment_template FOR composed_edge;
END_ENTITY;
ENTITY Inter_stratum_feature_template
SUPERTYPE OF
(ONEOF (Component_termination_passage_template,
Via_template,
Unsupported_passage_template,
Inter_stratum_feature_edge_segment_template,
Inter_stratum_feature_edge_template))
SUBTYPE OF (Geometric_template);
of_passage_technology : Passage_technology;
WHERE
WR1: NOT EXISTS(SELF\Product_view_definition.name);
END_ENTITY;
ENTITY Land_physical_template
SUPERTYPE OF
(ONEOF (Default_passage_based_land_physical_template,
Default_attachment_size_based_land_physical_template))
SUBTYPE OF (Stratum_feature_template);
INVERSE
access_mechanisms : SET[1:?] OF Land_template_terminal FOR associated_definition;
pre_defined_classification_code : SET[0:1] OF External_source_identification FOR item;
WHERE
WR1: SIZEOF(QUERY(ltjt <* access_mechanisms | ('LAYERED_INTERCONNECT_SIMPLE_TEMPLATE_ARM.LAND_TEMPLATE_JOIN_TERMINAL' IN TYPEOF(ltjt))))
> 0;
WR2: SIZEOF(QUERY(s <* SELF\Geometric_template.shapes |
NOT ('CONSTRUCTIVE_SOLID_GEOMETRY_2D_ARM.SINGLE_AREA_CSG_2D_MODEL' IN TYPEOF(s)))) = 0;
WR3: SIZEOF(SELF\Geometric_template.shapes) > 0;
END_ENTITY;
ENTITY Land_template_interface_terminal
SUBTYPE OF (Land_template_terminal);
SELF\Shape_element.associated_definition : Default_attachment_size_based_land_physical_template;
END_ENTITY;
ENTITY Land_template_join_terminal
SUBTYPE OF (Land_template_terminal);
END_ENTITY;
ENTITY Land_template_terminal
ABSTRACT SUPERTYPE
OF (ONEOF (Land_template_join_terminal,
Land_template_interface_terminal))
SUBTYPE OF (General_part_feature);
SELF\Shape_element.associated_definition : Land_physical_template;
connection_area :
OPTIONAL
SET[1:?] OF Connection_zone_in_layout_template;
terminal_category :
OPTIONAL
land_template_terminal_class;
UNIQUE
UR1: SELF\Shape_element.element_name, associated_definition;
WHERE
WR1: NOT (EXISTS(connection_area)) OR NOT EXISTS(terminal_category);
WR2: NOT EXISTS(SELF\Shape_element.description);
WR3: SIZEOF(QUERY(ca <* connection_area |
NOT(associated_definition = ca\Shape_element.associated_definition)
)) = 0;
END_ENTITY;
ENTITY Material_removal_feature_template
SUBTYPE OF (Single_stratum_continuous_template);
WHERE
WR1: NOT EXISTS(SELF\Product_view_definition.name);
WR2: SIZEOF(SELF\Geometric_template.shapes) > 0;
END_ENTITY;
ENTITY Parametric_template
ABSTRACT SUPERTYPE
OF (ONEOF (Fill_area_template,
Teardrop_template,
Trace_template))
SUBTYPE OF (Template_definition);
END_ENTITY;
ENTITY Part_string_template
SUBTYPE OF (Template_definition);
string_alignment : text_alignment;
END_ENTITY;
ENTITY Part_text_template
SUBTYPE OF (Template_definition);
of_character : Character_glyph_symbol;
WHERE
WR1: SIZEOF(['CONSTRUCTIVE_SOLID_GEOMETRY_3D_ARM.CSG_MODEL', 'LAYERED_INTERCONNECT_SIMPLE_TEMPLATE_ARM.SOLID_CHARACTER_GLYPH_2D_SYMBOL']
*
TYPEOF(of_character)) = 1;
END_ENTITY;
ENTITY Planar_closed_path_shape_model_with_parameters
SUBTYPE OF (Planar_path_shape_model_with_parameters);
WHERE
WR1: SIZEOF(QUERY(it <* SELF\Representation.items |
('LAYERED_INTERCONNECT_SIMPLE_TEMPLATE_ARM.CLOSED_PATH_AREA_WITH_PARAMETERS' IN TYPEOF(it))
)) = 1;
END_ENTITY;
ENTITY Planar_path_shape_model_with_parameters
SUBTYPE OF (Single_area_csg_2d_model);
WHERE
WR1: SIZEOF(QUERY(it <* SELF\Representation.items |
('EXTENDED_BASIC_GEOMETRY_ARM.AXIS_PLACEMENT_2D' IN TYPEOF(it))
)) = 1;
WR2: SIZEOF(QUERY(it <* SELF\Representation.items |
('CONSTRUCTIVE_SOLID_GEOMETRY_2D_ARM.PATH_AREA_WITH_PARAMETERS' IN TYPEOF(it))
)) = 1;
WR3: SIZEOF(SELF\Representation.items) = 2;
END_ENTITY;
ENTITY Plated_passage_template_shape_model
SUBTYPE OF (Part_template_shape_model);
SELF\Part_template_shape_model.shape_characterized_definition : SET[1:?] OF ptswp_ptsm_definition;
data_qualification : ptswp_template_shape_model_context;
DERIVE
template : Geometric_template := shape_characterized_definition[1];
WHERE
WR1: SIZEOF(QUERY(scd <* shape_characterized_definition |
NOT(scd\Inter_stratum_feature_template.of_passage_technology\Passage_technology.plated_passage)
)) = 0;
WR2: SIZEOF(QUERY(scd <* shape_characterized_definition |
NOT(TYPEOF(scd) = TYPEOF(template))
)) = 0;
END_ENTITY;
ENTITY Single_stratum_continuous_template
ABSTRACT SUPERTYPE
OF (ONEOF (Stratum_feature_template,
Material_removal_feature_template))
SUBTYPE OF (Continuous_template, Single_stratum_template);
END_ENTITY;
ENTITY Single_stratum_template
ABSTRACT SUPERTYPE
SUBTYPE OF (Template_definition);
END_ENTITY;
ENTITY Snowball_template
SUBTYPE OF (Teardrop_template);
snowball_start_distance : Length_data_element;
snowball_end_distance :
OPTIONAL
Length_data_element;
snowball_initial_spacing :
OPTIONAL
Length_data_element;
snowball_end_spacing :
OPTIONAL
Length_data_element;
snowball_initial_radius : Length_data_element;
snowball_end_radius :
OPTIONAL
Length_data_element;
snowball_quantity_per_trace : INTEGER;
WHERE
WR1: NOT (snowball_quantity_per_trace > 1) OR (EXISTS(snowball_initial_spacing) AND EXISTS(snowball_end_spacing) AND EXISTS(snowball_end_distance)
AND EXISTS(snowball_end_radius));
WR2: (SIZEOF(USEDIN(SELF,'PART_TEMPLATE_SHAPE_WITH_PARAMETERS_ARM.PART_TEMPLATE_SHAPE_MODEL.' + 'SHAPE_CHARACTERIZED_DEFINITION'))
= 0);
WR3: NOT EXISTS(SELF\Product_view_definition.additional_characterization);
END_ENTITY;
ENTITY Solid_character_glyph_2d_symbol
SUBTYPE OF (Character_glyph_symbol, Csg_2d_model);
END_ENTITY;
ENTITY Stratum_feature_template
SUPERTYPE OF
(Land_physical_template)
SUBTYPE OF (Single_stratum_continuous_template);
WHERE
WR1: NOT EXISTS(SELF\Product_view_definition.name);
END_ENTITY;
ENTITY Teardrop_by_angle_template
SUBTYPE OF (Teardrop_template);
teardrop_angle : Angle_data_element;
WHERE
WR1: (SIZEOF(USEDIN(SELF,'PART_TEMPLATE_SHAPE_WITH_PARAMETERS_ARM.PART_TEMPLATE_SHAPE_MODEL.' + 'SHAPE_CHARACTERIZED_DEFINITION'))
= 0);
WR2: NOT EXISTS(SELF\Product_view_definition.additional_characterization);
END_ENTITY;
ENTITY Teardrop_by_length_template
SUBTYPE OF (Teardrop_template);
teardrop_taper_start_distance : Length_data_element;
teardrop_taper_end_distance : Length_data_element;
WHERE
WR1: (SIZEOF(USEDIN(SELF,'PART_TEMPLATE_SHAPE_WITH_PARAMETERS_ARM.PART_TEMPLATE_SHAPE_MODEL.' + 'SHAPE_CHARACTERIZED_DEFINITION'))
= 0);
WR2: NOT EXISTS(SELF\Product_view_definition.additional_characterization);
END_ENTITY;
ENTITY Teardrop_template
SUPERTYPE OF
(ONEOF (Snowball_template,
Teardrop_by_angle_template,
Teardrop_by_length_template))
SUBTYPE OF (Parametric_template, Single_stratum_template);
WHERE
WR1: (SIZEOF(['LAYERED_INTERCONNECT_SIMPLE_TEMPLATE_ARM.SNOWBALL_TEMPLATE',
'LAYERED_INTERCONNECT_SIMPLE_TEMPLATE_ARM.TEARDROP_BY_ANGLE_TEMPLATE',
'LAYERED_INTERCONNECT_SIMPLE_TEMPLATE_ARM.TEARDROP_BY_LENGTH_TEMPLATE'] * TYPEOF(SELF)) = 1) XOR
('PRODUCT_VIEW_DEFINITION_REFERENCE_ARM.PRODUCT_VIEW_DEFINITION_REFERENCE' IN TYPEOF(SELF));
END_ENTITY;
ENTITY Tile_area_template
SUBTYPE OF (Fill_area_template);
fill_template : Single_stratum_template;
start_placement : Axis_placement_2d;
first_repeat_factor : Vector;
second_repeat_factor : Vector;
END_ENTITY;
ENTITY Trace_template
SUPERTYPE OF
(Default_trace_template)
SUBTYPE OF (Parametric_template);
trace_style : Curve_style_parameters;
WHERE
WR1: NOT EXISTS(SELF\Product_view_definition.name);
END_ENTITY;
ENTITY Unsupported_passage_template
SUPERTYPE OF
(ONEOF (Counterbore_passage_template,
Countersunk_passage_template,
Blind_passage_template))
SUBTYPE OF (Continuous_template, Inter_stratum_feature_template);
SELF\Inter_stratum_feature_template.of_passage_technology : Default_unsupported_passage_definition;
END_ENTITY;
ENTITY Via_template
SUBTYPE OF (Continuous_template, Inter_stratum_feature_template);
SELF\Inter_stratum_feature_template.of_passage_technology : Default_via_definition;
INVERSE
access_mechanisms : SET[0:?] OF Via_template_terminal FOR associated_definition;
END_ENTITY;
ENTITY Via_template_terminal
SUBTYPE OF (General_part_feature);
SELF\Shape_element.associated_definition : Via_template;
disallowed_inter_stratum_extent :
OPTIONAL
SET[1:?] OF Stratum_technology_occurrence_link;
connection_area :
OPTIONAL
SET[1:?] OF Connection_zone_in_layout_template;
UNIQUE
UR1: SELF\Shape_element.element_name, associated_definition;
WHERE
WR1: NOT EXISTS(SELF\Shape_element.description);
END_ENTITY;
SUBTYPE_CONSTRAINT lisp_shape_element_subtypes FOR Shape_element;
ONEOF (Non_feature_shape_element,
Edge_segment_vertex);
END_SUBTYPE_CONSTRAINT;
SUBTYPE_CONSTRAINT list_shape_feature_subtypes FOR General_part_feature;
ONEOF (Via_template_terminal,
Component_termination_passage_template_terminal,
Land_template_terminal);
END_SUBTYPE_CONSTRAINT;
SUBTYPE_CONSTRAINT list_template_definition_subtypes FOR Template_definition;
ONEOF (Geometric_template,
Parametric_template,
Part_string_template,
Part_text_template,
Single_stratum_template,
Stratum_stack_model);
END_SUBTYPE_CONSTRAINT;
RULE unique_land_physical_template FOR
(Land_physical_template);
LOCAL esi : BAG OF External_source_identification := []; iid : BAG OF String := []; itype : BAG OF String := []; END_LOCAL; REPEAT i := 1 to SIZEOF(Land_physical_template) by 1; esi := esi + Land_physical_template[i].pre_defined_classification_code[1]; iid := iid + Land_physical_template[i].pre_defined_classification_code[1]\External_source_identification.source_id; itype := itype + Land_physical_template[i].pre_defined_classification_code[1]\External_source_identification.source_type; END_REPEAT;
WHERE
WR1: (SIZEOF(esi) = SIZEOF(bag_to_set(esi))) AND
(SIZEOF(iid) = SIZEOF(bag_to_set(iid))) AND
(1 = SIZEOF(bag_to_set(itype)));
END_RULE;
FUNCTION list_get_zone_name
(input : SET[0:?] OF Connection_zone_in_layout_template) : SET[0:?] OF STRING;
LOCAL s : SET OF STRING := []; END_LOCAL; REPEAT i := 1 TO SIZEOF(input) BY 1; s := s + input[i]\Characterizable_object.name; END_REPEAT; RETURN(s);
END_FUNCTION;
END_SCHEMA; -- Layered_interconnect_simple_template_arm
© ISO 2018 — All rights reserved