ГОСТ Р ИСО 10303-507—2009
*)
IF (CAIC_GEOMETRICALLY_BOUNDED_SURFACE.OFFSET_CURVE_3D’
INTYPEOF (cv))
AND
((cvVoffset_curve_3d.selfJntersect = FALSE) OR
(cv\offset_curve_3d.selfJntersect = UNKNOWN))
AND
(NOT(’AIC_GEOMETRICALLY_BOUNDED_SURFACE.POLYLINE’
INTYPEOF (cv\offSGt_curve_3d.basis_curve))))THEN RETURN
(gbsf_check_curve(c\Aoffset_curveJ3d.basis_curve));
ELSE
(* объект
pcurvGдолженссылаться надопустимуюкривую и на допустимый объект basis_surface
*>
IF ’AIC_GEOMETRICALLY_BOUNDED_SURFACE.PCURVE’
INTYPEOF(cv) THEN RETURN ((gbsf_cbeck_curve
(cv\pcurve.referenceJo_curve\representation.items[1]))
AND
(gbsf_check_surface (cv\pcurve.basis_surface)));
ELSE
(* полилиниядолжна содержать не менее трех точек
*)
IF ’AIC_GEOMETRICALLY_BOUNDED_SURFACE.POLYLINE’
INTYPEOF(cv) THEN
IF (SIZEOF (cv\polyline.points) > = 3)
THEN RETURN (TRUE);
ENDJF;
ELSE
(*объект surface_curveссылается
на
объект curve_3d и
на
одинилидва объекта pcurve, или
на один илидва объекта surface, или
на
один объект каждого из указанных типов; все
ссылки должныбытьдопустимыми
*)
IF ’AIC_GEOMETRICALLY_BOUNDED_SURFACE.SURFACE_CURVE’
INTYPEOF(cv) THEN
(*если ссылка наобъектcurve правильная, то проверить остальные
*)
IF gbsf_cbeck_curve (cv\surface_curve.curve_3d) THEN
REPEAT i ; = 1TO SIZEOF
(cv\surface_curve.assodated_geometry);
(*выполнитьдля одного илидвух объектов assodated_geometry.
*)
IF ’AIC_GEOMETRICALLY_BOUNDED_SURFACE.SURFACE’ INTYPEOF
(cv\surface_curve.associated_geometry [i])THEN
IF NOT gbsf_check_surface
(cv\surface_curve.assodated_geometry (i))THEN
RETURN (FALSE);
ENDJF;
ELSE
IF ’AIC_GEOMETRICALLY_BOUNDED_SURFACE.PCURVE’INTYPEOF
(cv\surface_curve.associated_geometry[i])THEN
IF NOT gbsf_check_curve
(cv\surface_curve.associated_geometry [i]) THEN
RETURN(FALSE);
12