ГОСТ Р ИС010303-507—2009
Объект surface_of_revolution ссылается на объект curve. Функция gbsf_check_curve вызывается
для проверки допустимости объекта curve. Объект geometrically_bounded_surface_shape_representation
требуетвыполнения ограничений надопустимые пологиекривые всоответствиисИС010303-42. Все объекты
curve, принадлежащие к области определения объекта geometrically_bounded_surface_shape_repre-
sentation. являютсядопустимыми объектами swept_curve.
Атрибут self-intersectдля би-сплайновых и смещенных геометрических форм должен иметь значе
ние FALSE или UNKNOWN.
Данная функция возвращает результат TRUE, если типы всех ссылочных геометрических объектов
принадлежат к области определения объекта geometrically_bounded_surface_shape_representation и
все ограничения выполнены, в противном случаефункция возвращает результат FALSE.
Примечания
1Данная функция не проверяет корректность ссылок относительно ИСО 10303-42. который требует, напри
мер. чтобы объекты segment из rectangular_composite_surface относились к типу surface_patch и чтобы объек
ты bounded_surface были их порождающими поверхностями. Это ограничение не проверяется данной функцией.
Проверяются только дополнительные требования, обусловленные областью определения объекта geometrical-
ly_bounded_surface_shape_representation.
2 Данная функция применяется рекурсивно для проверки ссылок на объекты входного а рту(лента surface
на допустимость реализации.
EXPRESS-спецификация:
*)
FUNCTION gbsf_check_surface (sf: surface): BOOLEAN:
(* Даннаяфункция проверяет допустимость поверхности в контексте модели геометрически ограничен
ных поверхностей.
*)
(* объект b_spline_surface недолжен содержатьсамопересечений)
*)
IF ({’AIC_GEOMETRICALLY_BOUNDED_SURFACE.B_SPLINE_SURFACE’
INTYPEOF (sf)) AND
(sf\b_spline_surface.selfJntersect = FALSE) OR
(sf\b_spline_surface.selfJntersect = UNKNOWN))
THEN
RETURN (TRUE):
ELSE
(* объекты spherical_surface и toroidai_surfaceявляются допустимыми: кроме того, объекты curveJioun-
ded_surface и rectangular_trimmed_surface ограничены поопределению ипоэтомуявляютсядопус
тимыми
*)
IF SIZEOF ([’A!C_GEOMETRICALLY_BOUNDED_SURFACE.SPHERICAL_SURFACE\
■AIC_GEOMETRICALLY_BOUNDED_SURFACE.TOROIDAL_SURFACE’.
■AIC_GEOMETRICALLY_BOUNDED_SURFACE.CURVE_BOUNDED_SURFACE\
•AIC_GEOMETRICALLY_BOUNDED_SURFACE.RECTANGULAR_TRIMMED_SURFACEl
* TYPEOF (sf)) = 1THEN RETURN (TRUE);
ELSE
(* объектoffset_curve_3d недолженсодержать самопересечений и должен ссылаться надопусти
мую поверхность
*)
IF ((’AIC_GEOMETRICALLY_BOUNDED_SURFACE.OFFSET_SURFACE’
IN TYPEOF(sf)) AND
(sftoffset_surface.selfJntersect = FALSE) OR
(sf\offset_surface.selfJntersect = UNKNOWN))
THEN
RETURN (gbsf_check_surface (sf\offset_surface.basis_surface));
14