FUNCTION nmsf_curve_check
(* SCHEMA ship_moulded_form_schema; *)
FUNCTION nmsf_curve_check(
cv: representation_item
): BOOLEAN;
IF SIZEOF(['SHIP_MOULDED_FORM_SCHEMA.BOUNDED_CURVE',
'SHIP_MOULDED_FORM_SCHEMA.CONIC',
'SHIP_MOULDED_FORM_SCHEMA.CURVE_REPLICA',
'SHIP_MOULDED_FORM_SCHEMA.LINE',
'SHIP_MOULDED_FORM_SCHEMA.OFFSET_CURVE_3D'] * TYPEOF(cv)) > 1 THEN
RETURN(FALSE);
ELSE
IF (('SHIP_MOULDED_FORM_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 SIZEOF(['SHIP_MOULDED_FORM_SCHEMA.CONIC',
'SHIP_MOULDED_FORM_SCHEMA.LINE'] * TYPEOF(cv)) = 1 THEN
RETURN(TRUE);
ELSE
IF 'SHIP_MOULDED_FORM_SCHEMA.CURVE_REPLICA' IN TYPEOF(cv) THEN
RETURN(nmsf_curve_check(cv\curve_replica.parent_curve));
ELSE
IF ('SHIP_MOULDED_FORM_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 (
'SHIP_MOULDED_FORM_SCHEMA.POLYLINE' IN TYPEOF(cv\
offset_curve_3d.basis_curve))) THEN
RETURN(nmsf_curve_check(cv\offset_curve_3d.basis_curve));
ELSE
IF 'SHIP_MOULDED_FORM_SCHEMA.PCURVE' IN TYPEOF(cv) THEN
RETURN(nmsf_curve_check(cv\pcurve.reference_to_curve\
representation.items[1]) AND nmsf_surface_check(cv\
pcurve.basis_surface));
ELSE
IF 'SHIP_MOULDED_FORM_SCHEMA.SURFACE_CURVE' IN TYPEOF(cv)
THEN
IF nmsf_curve_check(cv\surface_curve.curve_3d) THEN
REPEAT i := 1 TO SIZEOF(cv\surface_curve.
associated_geometry) BY 1;
IF 'SHIP_MOULDED_FORM_SCHEMA.SURFACE' IN TYPEOF(cv\
surface_curve.associated_geometry[i]) THEN
IF NOT nmsf_surface_check(cv\surface_curve.
associated_geometry[i]) THEN
RETURN(FALSE);
END_IF;
ELSE
IF 'SHIP_MOULDED_FORM_SCHEMA.PCURVE' IN TYPEOF(cv\
surface_curve.associated_geometry[i]) THEN
IF NOT nmsf_curve_check(cv\surface_curve.
associated_geometry[i]) THEN
RETURN(FALSE);
END_IF;
END_IF;
END_IF;
END_REPEAT;
RETURN(TRUE);
END_IF;
ELSE
IF 'SHIP_MOULDED_FORM_SCHEMA.POLYLINE' IN TYPEOF(cv)
THEN
IF SIZEOF(cv\polyline.points) >= 3 THEN
RETURN(TRUE);
END_IF;
END_IF;
END_IF;
END_IF;
END_IF;
END_IF;
END_IF;
END_IF;
END_IF;
RETURN(FALSE);
END_FUNCTION; -- nmsf_curve_check
Referenced By
Defintion nmsf_curve_check is references by the following definitions:
[Top Level Definitions] [Exit]Generated by STEP Tools® EXPRESS to HTML Converter
2012-03-27T17:16:47-04:00