FUNCTION gbsf_check_surface
(* SCHEMA integrated_cnc_schema; *)
FUNCTION gbsf_check_surface (
sf : surface
) : BOOLEAN;
IF ('INTEGRATED_CNC_SCHEMA.B_SPLINE_SURFACE' IN TYPEOF(sf)) AND (sf\
b_spline_surface.self_intersect = FALSE) OR (sf\b_spline_surface.
self_intersect = UNKNOWN) THEN
RETURN (TRUE);
ELSE
IF SIZEOF([ 'INTEGRATED_CNC_SCHEMA.SPHERICAL_SURFACE',
'INTEGRATED_CNC_SCHEMA.TOROIDAL_SURFACE',
'INTEGRATED_CNC_SCHEMA.CURVE_BOUNDED_SURFACE',
'INTEGRATED_CNC_SCHEMA.RECTANGULAR_TRIMMED_SURFACE' ] * TYPEOF(sf))
= 1 THEN
RETURN (TRUE);
ELSE
IF ('INTEGRATED_CNC_SCHEMA.OFFSET_SURFACE' IN TYPEOF(sf)) AND (sf\
offset_surface.self_intersect = FALSE) OR (sf\offset_surface.
self_intersect = UNKNOWN) THEN
RETURN (gbsf_check_surface(sf\offset_surface.basis_surface));
ELSE
IF 'INTEGRATED_CNC_SCHEMA.RECTANGULAR_COMPOSITE_SURFACE' IN
TYPEOF(sf) THEN
REPEAT i := 1 TO SIZEOF(sf\rectangular_composite_surface.
segments);
REPEAT j := 1 TO SIZEOF(sf\rectangular_composite_surface.
segments[i]);
IF NOT gbsf_check_surface(sf\rectangular_composite_surface.
segments[i][j].parent_surface) THEN
RETURN (FALSE);
END_IF;
END_REPEAT;
END_REPEAT;
RETURN (TRUE);
ELSE
IF 'INTEGRATED_CNC_SCHEMA.SURFACE_REPLICA' IN TYPEOF(sf) THEN
RETURN (gbsf_check_surface(sf\surface_replica.parent_surface)
);
ELSE
IF 'INTEGRATED_CNC_SCHEMA.SURFACE_OF_REVOLUTION' IN TYPEOF(sf
) THEN
RETURN (gbsf_check_curve(sf\swept_surface.swept_curve));
END_IF;
END_IF;
END_IF;
END_IF;
END_IF;
END_IF;
RETURN (FALSE);
END_FUNCTION; -- 10303-507: aic_geometrically_bounded_surface
Referenced By
Defintion gbsf_check_surface is references by the following definitions:
[Top Level Definitions] Generated by STEP ToolsTM EXPRESS to HTML Converter
on 2010-01-12T10:42:25-02:00