ГОСТ Р ИСО 10303-203-2003
IF "CONFlG_CONTROL_DESIGN.CURVE_REPLICA‘ IN TYPEOF(crv) THEN
RETURN (valid_wirclrame_edge_curvc(crv\curve_rcplica.parent_curYe));
ELSE
IF ’CONFIG_CONTROL_DESIGN.OFFSET_CURVE_3D’ IN TYPEOF(crv) THEN
RETU’ RN (valid_wireframc_edge_curvc(crv\oflset_curve_3d.
basis_curvc));
END_1F ;
E N D JF ;
E N D JF ;
RETURN (FALSE) ;
ENDFUNCTION; - - valid_wircframe_cdgc_curvc
FUNCTION valid_wircframe_vertcx_point(pnt: point): BOOLEAN;
IF ‘CONFIG_CONTROL_DESIGN.CARTESIAN_POINT‘ IN TYPEOF (pnt) THEN
RETURN (TRUE) ;
ELSE
IF ’CONFIGjTONTROLJ>ESIGN.POINT_REPLICA’ IN TYPEOF(pnt) THEN
RETURN (valid_wireframc_vertex_point(pnt\point_replica.parcnt pt)):
END_IF;
E N D JF ;
RETURN (FALSE) :
END FUNCTION; - - valid_wircframe_vcitcx_point
FUNCTION vcctor_diftcrcnce(argl, arg2: vcctor_or_dircclion
): vector;
LOCAL
ndimINTEGER;
mag2
REAL:
magiREAL;
magREAL;
res direction;
vecldirection:
vcc2 direction;
resultvector;
END_LOCAL ;
IF (NOT EXISTS (argl)) OR (NOT EXlSTS(arg2)) OR (argl.dim < > arg2.dim)
THEN RETURN (?) ;
ELSE
BEGIN
IF CONFIG_CONTROL_DESIGN.VECTOR’ IN TYPEOF(argl) THEN
magiargl.magnitude ;
vecl:= argl.orientation;
ELSE
magi:= 1;
vecl:= argl;
E N D JF :
IF *CONFIG_CONTROL_DESIGN.VECTOR’ IN TYPEOF <atg2> THEN
mag2:= arg2.magnitude:
vcc2:= arg2.orientation;
ELSE
mag2:= I ;
vcc2:=■arg2;
E N D JF;
vecl :■*normalisc(vecl);
vec2 := normalisc(vec2);
ndim:= SIZEOF(vccI.direct ion_ratios);
mag:= 0;
res:= dummy_gri 11direction!vecl.dircction_ratios);
REPEAT i г- I TO ntiim BY 1;
res.direction_ratios|i| ;■» (magi * vccl.direct»on_ratios|i|) + (
207