ГОСТ РИСО 10303-508— 2009
(*объектcurve_replica должен ссылаться надопустимый объектcurve
*)
IF’AIC_NON_MANIFOLD_SURFACE.CURVE_REPLICA’ INTYPEOF{cv) THEN
RETURN (nmsf_curve_check(cv\curve_repl»ca.parent_curve));
ELSE
(* объектoffset_curve_3d недолжен самопересекаться идолженссылаться надопустимые
объекты curve; объект polyline не является допустимым объектом basis_curve
*)
IF (fAIC_NON_MANIFOLD_SURFACE.OFFSET_CURVE_3D’ INTYPEOF (cv))
AND
((cv\offset_curve_3d.setfJntersect= FALSE) OR
(cv\offset_curve_3d.self_intersect =UNKNOWN))
AND
(NOTCAIC_NON_MANIFOLD_SURFACE.POLYLINE’ INTYPEOF
(cv\offset_curve_3d.basis_curve)))) THEN
RETURN (nmsf_curve check(cv\offset_curve_3d.basis_curve));
ELSE
(*объект pcurveдолжен ссылаться надопустимые объекты curve иbasis_surface
*)
IF ’AIC_NON_MANIFOLD_SURFACE.PCURVE’ INTYPEOF(cv)THEN
RETURN ({nmsf_curve_check
(cv\pcurve.reference_to_curve\representation,items[ 1]))
AND
(nmsf_surface_check(cv\pcurve.basis_surface)));
ELSE
(*объект surface_curveссылается наобъектcurve_3d и наодин или два объекта pcurve.
или на один или два объекта surface, или на один из них;
все ссылки должны бытьдопустимыми
*>
IF ’AIC_NON_MANIFOLD_SURFACE.SURFACE_CURVE’INTYPEOF(cv) THEN
(*если ссылка наобъектcurve правильна, то проверяются также остальные
*)
IFnmsf_curve check(cv\surface_curve.curve_3d)THEN
REPEAT i :*1 TO SIZEOF
(cv\surface_curve.associated_geometry);
(‘ выполняется для одного или двухобъектов
assodated_geometry;
Ф)
IF’AIC_NON_MANIFOLD_SURFACE.SURFACE’ IN
TYPEOF (cv\surface_curve.assoriated_geometry[i]) THEN
IFNOTnmsf_surface_check
(cv\surface_curve.associated_geometryfi])THEN
RETURN(FALSE);
END_IF;
ELSE
IF ,AIC_NON_MANIFOLD_SURFACE.PCURVE’ INTYPEOF
(cv\surface_curve.associated_geometry[i])THEN
IF NOT nmsf_curve_check
(cv\su rface_curve.associated_geometry[i])THEN
RETURN(FALSE);
END F;
ENDJF;
ENDJF;
END_REPEAT;
RETURN(TRUE);
13