ГОСТ Р ИС0 10303-509—2009
- elementarysurface;
- offset_surface (рекурсивно);
- surface_replica (рекурсивно);
- swept_surfaco
П р и м е ч а н и е — Данная функция применяется рекурсивно к типам объектов, помеченных соответству
ющим образом в приведенном выше списке, чтобы проверить их ссылки на допустимые реализации.
Объекты swopt_surface ссылается на объекты curve. Функция msf_curve_check вызывается для
проверки допустимости этихобъектов curve. Объект manifold_surface_shape_representation требует та
ких же ограничений на допустимые ссылки на изогнутые кривые, которые определены в И С 010303-42. Все
объекты curve, относящиеся к области определения объекта manifold_surface_shape_ropresentation,
допустимы как объекты swept_surface.swept_curve.
Атрибут selfJntersect для би-сплайновых и смещенных геометрических объектов должен иметь зна
чение FALSE или UNKNOWN.
Данная функция возвращает значение TRUE, если типы всех ссылочных геометрических объектов
принадлежат кобласти определения объекта manifold_surface_shape_representation и все ограничения
выполнены, в противном случав функция возвращает значение FALSE.
П р и м е ч а н и е — Данная функция не проверяет правильность ссылок с учетом требований ИСО 10303-42.
Проверяются только дополнительные требования, которые предъявляются в области применения объекта
manifold_surface_shape_representation.
EXPRESS-слецификация
*)
FUNCTION msf_surface_check (surf: surface): BOOLEAN;
(* Данная функция проверяетдопустимость объекта surface в контексте модели односвязной поверхности.
*)
(* объекты elementary_surface являются допустимыми типами объекта surface
*)
IF ’AIC_MANIFOLD_SURFACE.ELEMENTARY_SURFACE‘ IN TYPEOF(surf) THEN
RETURN (TRUE);
ELSE
(* объект swept_surfaceдолжен иметь допустимую изогнутую кривую
*>
IF ’AIC_MANIFOLD_SURFACE.SWEPT_SURFACE’ IN TYPEOF (surf) THEN
RETURN (msf_curve_check(surf\swept_surface.swept_cutve));
ELSE
(* объект offset_surface недолжен самопересекаться и должен ссылаться на допустимый объект
surface
*)
IF (("AIC_MANIFOLD_SURFACE.OFFSET_SURFACE" INTYPEOF (surf))AND
(surf\offset_surface.self_intersect = FALSE) OR
(surf\offset_surface.selfJntersect = UNKNOWN)) THEN
RETURN (msf_surface_check (surf\offset_surface.basis_surface));
ELSE
(• объект surface_replica должен иметьдопустимый порождающий объект surface
*)
IF ’AIC_MANIFOLD_SURFACE.SURFACE_REPLICA’ IN TYPEOF (surf)THEN
RETURN (msf_surface_check (surf\surface_replica.parent_surface));
ELSE
(* объект b_spline_surface недолжен самопересекаться
*)
IF ((’AIC_MANIFOLD_SURFACE.B_SPLINE_SURFACE’ INTYPEOF (surf)) AND
(surf\b_spline_surface.selfJntersect = FALSE) OR
(surf\b_spline_surface.selfJntersect = UNKNOWN)) THEN
14