Application module: Fabrication joint | ISO/TS 10303-1668:2018-11(E) © ISO |
(*
ISO/TC 184/SC 4/WG 12 N9422 - ISO/TS 10303-1668 Fabrication joint - EXPRESS ARM
Supersedes
ISO/TC 184/SC 4/WG 12 N8241
*)
SCHEMA Fabrication_joint_arm;
USE FROM
Land_arm;
-- ISO/TS 10303-1692
USE FROM
Layered_interconnect_module_with_printed_component_design_arm;
-- ISO/TS 10303-1700
REFERENCE FROM
Support_resource_arm -- ISO/TS 10303-1800
(bag_to_set);
TYPE fabricated_feature_select =
SELECT
(Component_termination_passage_join_terminal,
Conductive_interconnect_element_terminal,
Embedded_physical_component_terminal,
Land_join_terminal,
Printed_component_join_terminal,
Via_terminal);
END_TYPE;
ENTITY Connection_zone_based_fabrication_joint
SUBTYPE OF (Fabrication_joint);
zone_1 : Connection_zone_in_design_view;
zone_2 : Connection_zone_in_design_view;
WHERE
WR1: zone_1 :<>: zone_2;
END_ENTITY;
ENTITY Fabrication_joint
SUBTYPE OF (Component_feature_joint);
SELF\Component_feature_joint.feature_1 RENAMED fabrication_feature_1 : fabricated_feature_select;
SELF\Component_feature_joint.feature_2 RENAMED fabrication_feature_2 : fabricated_feature_select;
auxiliary_joint_material :
OPTIONAL
Stratum_feature_template_component;
SELF\Shape_element.associated_definition : Layered_interconnect_module_design_view;
WHERE
WR1: fabrication_feature_1 <> fabrication_feature_2;
WR2: TYPEOF(fabrication_feature_1) <> TYPEOF(auxiliary_joint_material);
WR3: TYPEOF(fabrication_feature_2) <> TYPEOF(auxiliary_joint_material);
END_ENTITY;
ENTITY Passage_terminal_based_fabrication_joint_link;
associated_terminal : fabricated_feature_select;
precedent_point : Fabrication_joint;
subsequent_point : Fabrication_joint;
UNIQUE
UR1: associated_terminal, precedent_point, subsequent_point;
WHERE
WR1: precedent_point <> subsequent_point;
WR2: precedent_point.fabrication_feature_2 = associated_terminal;
WR3: subsequent_point.fabrication_feature_1 = associated_terminal;
WR4: SIZEOF(TYPEOF(associated_terminal) *
['LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.' +
'COMPONENT_TERMINATION_PASSAGE_JOIN_TERMINAL',
'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.' +
'VIA_TERMINAL']) = 1;
WR5: acyclic_passage_terminal_based_fabrication_joint_link (SELF,
[subsequent_point],
'FABRICATION_JOINT_ARM.PASSAGE_TERMINAL_BASED_FABRICATION_JOINT_LINK');
END_ENTITY;
FUNCTION acyclic_passage_terminal_based_fabrication_joint_link
(relation : Passage_terminal_based_fabrication_joint_link; relatives : SET[1:?] OF Fabrication_joint; specific_relation : STRING) : BOOLEAN;
LOCAL x : SET OF Passage_terminal_based_fabrication_joint_link; END_LOCAL; IF relation.precedent_point IN relatives THEN RETURN (FALSE); END_IF; x := QUERY(pd <* bag_to_set(USEDIN(relation.precedent_point, 'FABRICATION_JOINT_ARM.' + 'PASSAGE_TERMINAL_BASED_FABRICATION_JOINT_LINK.' + 'SUBSEQUENT_POINT')) | specific_relation IN TYPEOF(pd)); REPEAT i := 1 TO HIINDEX(x); IF NOT acyclic_passage_terminal_based_fabrication_joint_link(x[i], relatives + relation.precedent_point, specific_relation) THEN RETURN (FALSE); END_IF; END_REPEAT; RETURN (TRUE);
END_FUNCTION;
END_SCHEMA; -- Fabrication_joint_arm
© ISO 2018 — All rights reserved