ГОСТ Р ИС0 10303-509—2009
- polyline;
- surface_curvo (рекурсивно).
Один экземпляр в множестве элементов item из definitional_representation, на который ссылается
объект p_curve через reference_to_curve. должен быть одного из следующих типов:
- b_spline_curve;
- conic;
- curve_replica (рекурсивно);
- line;
- polyline.
Объект curve_3d из surface_curve должен быть одного из следующих типов:
- b_spline_curve:
- conic;
- curve_replica (рекурсивно):
- line;
- offset_curve_3d (рекурсивно);
- polyline:
- surface_curve (рекурсивно).
Объекты pcurve и surface_curve ссылаются на объекты surface. Функция msf_surface_check вызы
ваетсядля проверкидопустимости этихобъектов surface. Объект manifold_surface_shape_representation
требуеттаких же ограничений надопустимые ссылки на объект surface для объектов pcurve и surface_curve.
которые определены в И С 010303-42.
Допустимый объект polyline должен содержать, по крайней мере, три объекта cartesian_point.
Атрибут selfJntersect для би-сплайновых и смещенных геометрических объектов должен иметь зна
чение FALSE или UNKNOWN.
Данная функция возвращает значение TRUE, если типы всех ссылочных геометрических объектов
принадлежат к области определения объекта manifold_surface_shapo_ropresontation, а также если все
ограничения выполнены, в противном случае функция возвращает значение FALSE.
П р и м е ч а н и е — Данная функция не проверяет правильность ссылок относительно требований,
установленных в ИСО 10303-42. Проверяются только дополнительные требования, относящиеся к области опре
деления объекта manifold_surface_shape_representation.
EXPRESS-спецификация:
*)
FUNCTION msf_curve_check (cv:reprosentationjtem): BOOLEAN:
(* Данная функция проверяетдопустимость кривой в контексте модели односвязной поверхности. Объек ты
representation_item являются допустимым входным аргументом данной функции, однако предпола
гается. что они являются объектами типа curve; в противном случаеданная функция возвращает значе ние
«FALSE.
*)
(* сложные подтипы объекта curve, которыеодновременно являются и объектом bounded_curve и одним из
объектов conic. curve_replica. line или offsot_curve_3d. являются недопустимыми
*)
IF SIZEOF ([’AIC_MANIFOLD_SURFACE.BOUNDED_CURVE\
•AIC_MANIFOLD_SURFACE.CONIC\
AIC_MANIFOLD_SURFACE.CURVE_REPLICA’.’AIC_MANIFOLD_SURFACE.LINE\
’AIC_MANIFOLD_SURFACE.OFFSET_CURVE_3D’) *TYPEOF (cv)) > 1THEN
RETURN(FALSE);
ENDJF;
(* объекты b_spline_curve недолжны самопересекаться
*)
F (CAIC_MANIFOLD_SURFACE.B_SPLINE_CURVE INTYPEOF (cv)) AND
(cv\b_spline_curve.selfJntersect = FALSE)OR
(cv\b_spline_curve.self_intersect = UNKNOWN)) THEN
RETURN (TRUE);
11