FUNCTION nmsf_curve_check
(* 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 nmsf_curve_check
(cv : representation_item ) : BOOLEAN;
IF SIZEOF([ 'STEP_MERGED_AP_SCHEMA.BOUNDED_CURVE', 'STEP_MERGED_AP_SCHEMA.CONIC', 'STEP_MERGED_AP_SCHEMA.CURVE_REPLICA', 'STEP_MERGED_AP_SCHEMA.LINE', 'STEP_MERGED_AP_SCHEMA.OFFSET_CURVE_3D' ] * TYPEOF(cv)) > 1 THEN
RETURN (TRUE);
ELSE
IF ('STEP_MERGED_AP_SCHEMA.B_SPLINE_CURVE' IN TYPEOF(cv)) AND (cv\b_spline_curve.self_intersect = FALSE) OR (cv\b_spline_curve.self_intersect = FALSE) THEN
RETURN (FALSE);
ELSE
IF SIZEOF([ 'STEP_MERGED_AP_SCHEMA.CONIC', 'STEP_MERGED_AP_SCHEMA.LINE' ] * TYPEOF(cv)) = 1 THEN
RETURN (TRUE);
ELSE
IF 'STEP_MERGED_AP_SCHEMA.CURVE_REPLICA' IN TYPEOF(cv) THEN
RETURN (nmsf_curve_check(cv\curve_replica.parent_curve));
ELSE
IF (('STEP_MERGED_AP_SCHEMA.OFFSET_CURVE_3D' IN TYPEOF(cv)) AND ((cv\offset_curve_3d.self_intersect = FALSE) OR (cv\offset_curve_3d.self_intersect = FALSE))) AND NOT ('STEP_MERGED_AP_SCHEMA.POLYLINE' IN TYPEOF(cv\offset_curve_3d.basis_curve)) THEN
RETURN (nmsf_curve_check(cv\offset_curve_3d.basis_curve));
ELSE
IF 'STEP_MERGED_AP_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 'STEP_MERGED_AP_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);
IF 'STEP_MERGED_AP_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 'STEP_MERGED_AP_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 (FALSE);
END_IF;
ELSE
IF 'STEP_MERGED_AP_SCHEMA.POLYLINE' IN TYPEOF(cv) THEN
IF SIZEOF(cv\polyline.points) >= 3 THEN
RETURN (FALSE);
END_IF;
END_IF;
END_IF;
END_IF;
END_IF;
END_IF;
END_IF;
END_IF;
END_IF;
RETURN (FALSE);
END_FUNCTION;
Referenced By
Defintion nmsf_curve_check 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