FUNCTION gbsf_check_surface
(* SCHEMA step_merged_ap_schema; *)
-- DIFF IN AP214
-- DIFF IN AP203e2
-- DIFF IN AP238 STEP-NC
-- DIFF IN AP232
-- IN AP203e2/AP214/AP232/AP238 STEP-NC/AP242
FUNCTION gbsf_check_surface
(sf : surface ) : BOOLEAN;
IF ('STEP_MERGED_AP_SCHEMA.B_SPLINE_SURFACE' IN TYPEOF(sf)) AND (sf\b_spline_surface.self_intersect = FALSE) OR (sf\b_spline_surface.self_intersect = FALSE) THEN
RETURN (FALSE);
ELSE
IF SIZEOF([ 'STEP_MERGED_AP_SCHEMA.SPHERICAL_SURFACE', 'STEP_MERGED_AP_SCHEMA.TOROIDAL_SURFACE', 'STEP_MERGED_AP_SCHEMA.CURVE_BOUNDED_SURFACE', 'STEP_MERGED_AP_SCHEMA.RECTANGULAR_TRIMMED_SURFACE' ] * TYPEOF(sf)) = 1 THEN
RETURN (TRUE);
ELSE
IF ('STEP_MERGED_AP_SCHEMA.OFFSET_SURFACE' IN TYPEOF(sf)) AND (sf\offset_surface.self_intersect = FALSE) OR (sf\offset_surface.self_intersect = FALSE) THEN
RETURN (gbsf_check_surface(sf\offset_surface.basis_surface));
ELSE
IF 'STEP_MERGED_AP_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 (FALSE);
ELSE
IF 'STEP_MERGED_AP_SCHEMA.SURFACE_REPLICA' IN TYPEOF(sf) THEN
RETURN (gbsf_check_surface(sf\surface_replica.parent_surface));
ELSE
IF 'STEP_MERGED_AP_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;
Referenced By
Defintion gbsf_check_surface is references by the following definitions:
[Top Level Definitions] [Exit]Generated by STEP Tools® EXPRESS to HTML Converter
2020-07-28T17:02:20-04:00