ГОСТ Р ИСО 10303-41—2022
Примечания
1 Алгоритм функции приведен в Е.2 (приложение Е).
2 Данная функция не используется в настоящей схеме. Определение функции приведено потому, что в дру
гих объединенных ресурсах стандартов серии ИСО 10303 и в прикладных протоколах, в которых используется
представляющий отношение между аспектами формы объект shape_aspect_relationship, используется правило,
обращающееся к настоящей функции.
EXPRESS-специФикация:
*)
FUNCTION acyclic_shape_aspect_relationship (relation :
shape_aspect_relationship; relatives :SET[1:?] OF shape_aspect;
specific_relation :STRING) :BOOLEAN;
LOCAL
x :SET OF shape_aspect_relationship;
ENDJLOCAL;
IF relation.relating_shape_aspect IN relatives THEN
RETURN (FALSE);
END_IF;
x := QUERY(sa <*
bag_to_set(USEDIN(relation.relating_shape_aspect,
’PRODUCT_PROPERTY_DEFINITION_SCHEMA.’ +
’SHAPE_ASPECT_RELATIONSHIP.’+ ’RELATED_SHAPE_ASPECT’)) |
specific_relation IN TYPEOF(sa));
REPEAT i := 1 TO HIINDEX(x);
IF NOT acyclic_shape_aspect_relationship(x[i], relatives +
relation.relating_shape_aspect, specific_relation) THEN
RETURN (FALSE);
END_IF;
END_REPEAT;
RETURN (TRUE);
END_FUNCTION;
(*
Определения параметров:
relation — (входной) проверяемый экземпляр представляющего отношение между аспектами
формы объекта shape_aspect_relationship;
relatives — (входной) набор представляющих аспекты формы объектов action_directive. Функция
проверяет, есть ли среди данного набора экземпляры, играющие роль атрибута relating_shape_aspect
объекта shape_aspect_ relationship, играющего роль параметра relation;
specific_relation — (входной) полное квалифицированное наименование подтипа представляю
щего отношение между аспектами формы объекта shape_aspect_relationship.
22.5.5Функция get_root_shape_aspect
Функция get_root_shape_aspect возвращает объект product_definition_ shape, представляющий
форму определения изделия, в которой аспект формы, представленный входным объектом shape_as-
pect, является обозначающим аспектом.
EXPRESS-специФикация:
*)
FUNCTION get_root_shape_aspect (current : shape_aspect) :
product_definition_shape;
REPEAT
WHILE (’PRODUCT_DEFINITION_SCHEMA.CONSTITUENT_SHAPE_ASPECT’
IN TYPEOF(current));
current := current.parent;
END_REPEAT;
RETURN (current.of_shape);
END_FUNCTION;
(*
245