FUNCTION gbsf_check_curve
(* SCHEMA integrated_cnc_schema; *)
FUNCTION gbsf_check_curve (
cv : representation_item
) : BOOLEAN;
IF SIZEOF([ 'INTEGRATED_CNC_SCHEMA.BOUNDED_CURVE',
'INTEGRATED_CNC_SCHEMA.CONIC', 'INTEGRATED_CNC_SCHEMA.CURVE_REPLICA',
'INTEGRATED_CNC_SCHEMA.LINE',
'INTEGRATED_CNC_SCHEMA.OFFSET_CURVE_3D' ] * TYPEOF(cv)) > 1 THEN
RETURN (FALSE);
END_IF;
IF SIZEOF([ 'INTEGRATED_CNC_SCHEMA.CIRCLE',
'INTEGRATED_CNC_SCHEMA.ELLIPSE',
'INTEGRATED_CNC_SCHEMA.TRIMMED_CURVE' ] * TYPEOF(cv)) = 1 THEN
RETURN (TRUE);
ELSE
IF ('INTEGRATED_CNC_SCHEMA.B_SPLINE_CURVE' IN TYPEOF(cv)) AND (cv\
b_spline_curve.self_intersect = FALSE) OR (cv\b_spline_curve.
self_intersect = UNKNOWN) THEN
RETURN (TRUE);
ELSE
IF ('INTEGRATED_CNC_SCHEMA.COMPOSITE_CURVE' IN TYPEOF(cv)) AND (cv\
composite_curve.self_intersect = FALSE) OR (cv\composite_curve.
self_intersect = UNKNOWN) THEN
RETURN (SIZEOF(QUERY (seg <* cv\composite_curve.segments| NOT
gbsf_check_curve(seg.parent_curve))) = 0);
ELSE
IF 'INTEGRATED_CNC_SCHEMA.CURVE_REPLICA' IN TYPEOF(cv) THEN
RETURN (gbsf_check_curve(cv\curve_replica.parent_curve));
ELSE
IF (('INTEGRATED_CNC_SCHEMA.OFFSET_CURVE_3D' IN TYPEOF(cv)) AND
((cv\offset_curve_3d.self_intersect = FALSE) OR (cv\
offset_curve_3d.self_intersect = UNKNOWN))) AND NOT (
'INTEGRATED_CNC_SCHEMA.POLYLINE' IN TYPEOF(cv\offset_curve_3d
.basis_curve)) THEN
RETURN (gbsf_check_curve(cv\offset_curve_3d.basis_curve));
ELSE
IF 'INTEGRATED_CNC_SCHEMA.PCURVE' IN TYPEOF(cv) THEN
RETURN (gbsf_check_curve(cv\pcurve.reference_to_curve\
representation.items[1]) AND gbsf_check_surface(cv\pcurve
.basis_surface));
ELSE
IF 'INTEGRATED_CNC_SCHEMA.POLYLINE' IN TYPEOF(cv) THEN
IF SIZEOF(cv\polyline.points) >= 3 THEN
RETURN (TRUE);
END_IF;
ELSE
IF 'INTEGRATED_CNC_SCHEMA.SURFACE_CURVE' IN TYPEOF(cv)
THEN
IF gbsf_check_curve(cv\surface_curve.curve_3d) THEN
REPEAT i := 1 TO SIZEOF(cv\surface_curve.
associated_geometry);
IF 'INTEGRATED_CNC_SCHEMA.SURFACE' IN TYPEOF(cv\
surface_curve.associated_geometry[i]) THEN
IF NOT gbsf_check_surface(cv\surface_curve.
associated_geometry[i]) THEN
RETURN (FALSE);
END_IF;
ELSE
IF 'INTEGRATED_CNC_SCHEMA.PCURVE' IN TYPEOF(cv\
surface_curve.associated_geometry[i]) THEN
IF NOT gbsf_check_curve(cv\surface_curve.
associated_geometry[i]) THEN
RETURN (FALSE);
END_IF;
END_IF;
END_IF;
END_REPEAT;
RETURN (TRUE);
END_IF;
END_IF;
END_IF;
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_curve 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