ГОС! Р ИСО 10303-203-2003
IF lcap_year(date.yrar_componcnt) THEN
RETIJRMO <* datc.day_component) AND
(datc.day component <=■ 29));
ELSE
RETURNS I <» datc.day_component) AND
(date.dav_componcnt28));
EN D JF ;
END;
OTHERWISE : RETLRN(TRUE) ;
END_CASE ;
END_FUNCTION; - - valid_calcndar_datc
FUNCTION valid_geomclncally_bounded_wf curvc(crv: curve): BOOLEAN;
IF S12E0F <[‘C’ON FIG_CONTROL_DESIGN.POLYLINE’,
CON FIG_CONTROL_DESIGN.B_SPLINE_CURVE*,
*CONFIG_CONTROL_DESIGN.ELLIPSE*. CONFIG_CONTROL_DESIGN.ClRCLE’| *
TYPEOF(crv)) - 1THEN RETURN(TRL’E);
ELSE
IF CONFIG_CONTROL_DESIGN.TRIMMED_CURVE* IN TYPEOF(crv) THEN
IF SIZEOF ([‘CONFIG_CONTROL_DESIGN.LINE* ,
‘CON FIG_CONTROL_DESICiN.PARABOLA* ,
*CONFlG_CONTROL_DESIGN.HYPERBOLA*| • TYPEOF (crv\tnmmed_curvc.
basis_curvc)) - 1 THEN RETURN(TRUE);
ELSE
RETURN (valid_geomclrically_boundcd_wf_curvc(crv\trimmed_curve.
basis curvc));
END_IF;
ELSE
IF *CONFIG_CONTROL_DESIGN.OFFSET_CURVE_3D‘ IN TYPEOF(crv) THEN
RETURN (validj?eomctrically_bound<:d_wf_curvc(crv\o№>ct_t4irvc_3d.
basis_curvc));
ELSE
IF *CONFIG_CONTROL_DESIGN.CURVE_REPLIC’A* IN TYPEOF(crv) THEN
RETURN (valid_gcomctrically_bounded_\vf_curvc(crv\curvc_replica.
parent_curve)) :
ELSE
IF CONFIG_CONTROL_DESIGN.COMPOSITE_CURVE* IN TYPEOF(crv)
THEN
RETURN (SIZEOF(QUERY ( ccs <* crv\compositc_curvc.segmcnts |
(NOT valid_gcomctrically_boundcd_wf_curve(ccs.
parent curve)) )) = 0);
ENDJF;
END_IF ;
E N D JF ;
ENDJF;
E N D JF ;
RETURN (FALSE) ;
END_FUNCTION; - - valid_gcometrically_bounded_wf_curve
FUNCTION valid_geomctncallv_bounded_wf_point(pnt: point): BOOLEAN;
IF *CONFIG_CONTROL_DESIGN.CARTESIAN_POINT* IN TYPEOF(pnt) THEN
RETURN (TRUE):
ELSE
IF *CONF1G_C0NTROL_DESIGN.POINT_ON_CURVE* IN TYPEOF(pnt) THEN
RETURN (valid_gcomctrically_bounded_wf_curve(pnt\point_on_curvc.
basis curve)) ;
ELSE
IF ’CONFIG_CONTROL_DESIGN.POINT_REPL.ICA’ IN TYPEOF(pnt) THEN
RETU RN (valid_gccmetncally_bmindcd_svf_point(pnt\point_rcplica.
parcnt_pt));
204