ГОСТ Р ИСО 10303-203-2003
poly loop tvpc : LOGICAL:
EN D _LO C A L ;
IF SIZEO F(I) < * I TH EN RETU RN (FA LSE):
END_IF;
p o ly jo o p ty p e’C O N FIG _C O N T R O L _D E SlG N .PO L Y _L O O P‘ IN T Y P E O F (l|l|);
REPEAT i2 TO SIZEO F(I) BY 1;
IF C C 0 N F IG _ C 0 N T R 0 L _ D E S 1 G N .P 0 L Y _ L 0 0 P ’ IN T Y PE O F (l|i|)) < >
poly_Ioop_tvpc T H EN R E TU R N (TR IJE):
ENDJF;
E N D _R E PE A T ;
RETU RN (FA LSE) :
E N D _FU N C T IO N ; - - m i.\cd_loop_typc_sct
FUNCTION msb_shdls(brcp: manifoId_soIkl_brcp
): SET |!:?| OF closcd_shcll;
IF SIZEOF (QUERY ( msbtypc <* TYPEOF(brcp) | (msbtype LIKE
’*BREP_WITH_VOIDS’) )) >= l THEN
RETURN(brcp\brcp_with_voids.vi>ids + brcp.outer);
ELSE
RETURN (|brcp.outcr|) ;
ENDJF:
END_FUNCT10N; - - msb_shclls
FUNCTION msf_curvc_check(cv: cunc): BOOLEAN:
IF SIZEOF (|‘CONFIG_CONTROL_DESIGN.BOUNDED_CURVE".
‘CONFIG_CONTROL_DESIGN.CONIC\
’CONFIG_CONTROL_DESIGN.CURVE_REPLICA‘.
*CONFIG_CONTROL_DESIGN.LINE*,
CONFIG_CONTROL_DESIGN.OFFSET_CURVE_3D’l • TYPEOF(cv)) > I THEN
RETURN(FALSE) ;
ELSE
IF ((‘CONFIG_CONTROL_DESIGN.B_SPLINE_CURVE‘ IN TYPEOF(cv)) AND (cv\
b_splinc_curvc.sclf_intcrs«:l = FALSE)) OR (cv\b_spline_curvc.
sclljnicrsect •= UNKNOWN) THEN RETURN (TRUE):
ELSE
IF SIZEOF((’CONFlG_CONTROL DESIGN.CONIC* ,
‘CONFIG_CONTROL_DESIGN.LINE‘) * TYPEOF(cv>) = 1THEN
RETURN (TRUE);
ELSE
IF ’CONFIG_CONTROL_DESIGN.CURVE_REPL.ICA’ IN TYPEOF(cv) THEN
RETURN(msf_curvc_chc*:k(cv\curvc_rcplica.piircnt_ciirve)):
ELSE
IF ( CONFIG_CONTROL_DESIGN.OFFSET_CURVE_3D‘ IN TYPEOF(cv)) AND
((cv\oflscl_curvc_3d.sclf_intcnicct - FALSE) OR (cv\
oHset_curvc_3d^clf_inlcrscct * UNKNOWN)) AND (NOT (
CONFIG_CONTROL_DESIGN.POLYLINE-
IN TYPEOF(cv.basis curvc))) THEN
RETURN(msf_cimc_chcck(cv\oftsct_curvc_3<l.basis_curvc)) :
ELSE
IF ‘C0NFIG_C0NTR0L_DES1GN.PCURVE‘ IN TYPEOF(cv) THEN
RETURN (msf_curve_chcck(cv\pcurvc.rcferencc_to_curvc\
rcprcscntation.itcms| 1|) AND msf_surfacc_chcck(cv\
pcurve.basis surface));
ELSE
IF ‘CONFIG_CONTROL_DESIGN.SURFACE_CURVE‘ IN TYPEOF(cv)
THEN
IF msf_curvc_chcck(cv\surfacc_curvc.curvc_3d) THEN
REPEAT i :■ l TO SIZEOF(cv\surfacc_curve.
associatcd_gcometry) BY I:
IF ’CONFIG_CO.NTROL_DESIGN.SURFACE* IN TYPEOF(cv\
197