FUNCTION valid_basis_curve_in_2d_wireframe
(* SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; *)
FUNCTION valid_basis_curve_in_2d_wireframe
(crv: curve) : BOOLEAN;
-- check for valid basic curve types
IF SIZEOF (['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYLINE',
'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE',
'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ELLIPSE',
'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCLE'] *
TYPEOF (crv)) = 1
THEN RETURN (TRUE);
ELSE
-- if the curve is a trimmed_curve
IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TRIMMED_CURVE')
IN TYPEOF (crv)) THEN
-- if a line, parabola, or hyperbola is being trimmed, then valid
IF SIZEOF (['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE',
'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PARABOLA',
'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.HYPERBOLA'] *
TYPEOF(crv\trimmed_curve.basis_curve)) = 1
THEN RETURN (TRUE);
-- otherwise, recursively check basis_curve
ELSE RETURN (valid_basis_curve_in_2d_wireframe
(crv\trimmed_curve.basis_curve));
END_IF;
ELSE
-- recursively check the offset_curve basis curve
IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OFFSET_CURVE_2D')
IN TYPEOF (crv))
THEN RETURN (valid_basis_curve_in_2d_wireframe
(crv\offset_curve_2d.basis_curve));
ELSE
-- recursively check the curve_replica parent curve
IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_REPLICA')
IN TYPEOF (crv))
THEN RETURN (valid_basis_curve_in_2d_wireframe
(crv\curve_replica.parent_curve));
ELSE
-- recursively check the composite_curve segments
IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_CURVE')
IN TYPEOF (crv)) THEN
RETURN (SIZEOF (QUERY (ccs <* crv\composite_curve.segments |
NOT (valid_basis_curve_in_2d_wireframe
(ccs.parent_curve)))) = 0);
END_IF;
END_IF;
END_IF;
END_IF;
END_IF;
RETURN (FALSE);
END_FUNCTION;
Referenced By
Defintion valid_basis_curve_in_2d_wireframe is references by the following definitions:
[Top Level Definitions] [Exit]Generated by STEP Tools® EXPRESS to HTML Converter
2012-03-27T17:20:10-04:00