ГОСТ Р ИСО 10303-508— 2009
- line;
- polyline.
Объект curve_3d изsurface_curvo должен быть одногоизследующихтипов:
-b_spline_curve;
-conic;
- curvo_replica (рекурсивно):
- line;
-offset_curve_3d (рекурсивно):
- polyline;
-surface_curve (рекурсивно).
Объектыpcurveиsurface_curveссылаютсянаобъектыsurface.Функция
nmsf_surface_checkвызывается для проверки допустимости этих объектов surface. Объект
non_manifold_surface_shape_representation требует таких же ограничений на допустимые ссылки на
объектsurface для объектов pcurve иsurface_curve. которые определены в ИСО 10303-42.
Допустимый объект polyline должен содержать, покрайней мере, три объекта cartesian_point.
Атрибут selfJntersoctдля би-сплайновых исмещенныхгеометрических объектовдолжен иметь зна
чение FALSE или UNKNOWN.
Данная функция возвращает значение TRUE, если типы всех ссылочных геометрических объектов
принадлежат к области определения объекта non_manifold_surface_shape_representation и если все
ограничения выполнены, в противном случаефункция возвращает значение FALSE.
П р и м е ч а н и е — Данная функция не проверяет правильность ссыпок относительно требований,
установленных в ИСО 10303-42. Проверяются только дополнительные требования, относящиеся к области опре
деления обьекта non_manifold_surface_shape_representation.
EXPRESS-слоцификация:
‘)
FUNCTION nmsf_curve_check (cv:representationjtem):BOOLEAN;
(* Данная функция проверяет допустимость кривой в контексте модели многосвязной поверхности.
Объекты representationjtem являются допустимым входнымаргументом, однако предполагается,
чтоони являются объектами типа curve; в противном случае, данная функция возвращает
значение FALSE.
‘)
(‘ сложныеподтипы объектаcurve, которые одновременно являются иобъектом bounded_curve иодним
изобъектовconic, curve_replica. line илиoffset_curve_3d, являются недопустимыми
*)
IF SIZEOF ([’AIC_NON_MANIFOLD_SURFACE.BOUNDED_CURVE’.
’ AIC_NON_MANIFOLD_SURFACE.CONIC\
’ AIC_NON_MANIFOLD_SURFACE.CURVEJREPLICA’.
’ AIC_NON_MANIFOLD_SURFACE.LINE\
’ AIC„NON_MANIFOLD_SURFACE.OFFSET_CURVE_3DVTYPEOF(cv))> 1
THEN RETURN(FALSE);
ELSE
(* объекты b_spline_curve недолжны самопересекаться
*)
IF (CAIC_NON_MANIFOLD_SURFACE.B_SPLINE_CURVE* IN TYPEOF (cv)) AND
(cv\b_spline_curve.self_intersect = FALSE) OR
(cv\b_spline_curve.selfjntersect = UNKNOWN))
THEN RETURN (TRUE);
ELSE
(*объекты conic иline являютсядопустимыми типамиобъекта curve
*)
IF SIZEOF ([’AIC„NON_MANIFOLD_SURFACE.CONIC’I
•AIC_NON_MANIFOLD_SURFACE.LINET* TYPEOF (cv)) = 1THEN
RETURN(TRUE);
ELSE
12