FUNCTION basis_curve_check

(* SCHEMA associative_draughting; *)
  FUNCTION basis_curve_check(
               cv: curve
      ): BOOLEAN;
    IF ('ASSOCIATIVE_DRAUGHTING.B_SPLINE_CURVE' IN TYPEOF(cv)) AND (cv\
        b_spline_curve.self_intersect = FALSE) THEN
      RETURN(TRUE);
    ELSE
      IF SIZEOF(['ASSOCIATIVE_DRAUGHTING.BOUNDED_CURVE',
          'ASSOCIATIVE_DRAUGHTING.CONIC','ASSOCIATIVE_DRAUGHTING.LINE'] * 
          TYPEOF(cv)) = 1 THEN
        RETURN(TRUE);
      ELSE
        IF SIZEOF(['ASSOCIATIVE_DRAUGHTING.BOUNDED_CURVE',
            'ASSOCIATIVE_DRAUGHTING.CURVE_REPLICA'] * TYPEOF(cv)) = 1 THEN
          RETURN(basis_curve_check(cv\curve_replica.parent_curve));
        ELSE
          IF (SIZEOF(['ASSOCIATIVE_DRAUGHTING.BOUNDED_CURVE',
              'ASSOCIATIVE_DRAUGHTING.OFFSET_CURVE_3D'] * TYPEOF(cv)) = 1) 
              AND (cv\offset_curve_3d.self_intersect = FALSE) THEN
            RETURN(basis_curve_check(cv\offset_curve_3d.basis_curve));
          ELSE
            IF SIZEOF(['ASSOCIATIVE_DRAUGHTING.BOUNDED_CURVE',
                'ASSOCIATIVE_DRAUGHTING.PCURVE'] * TYPEOF(cv)) = 1 THEN
              RETURN(basis_curve_check(cv\pcurve.reference_to_curve\
                  representation.items[1]) AND basis_surface_check(cv\
                  pcurve.basis_surface));
            ELSE
              IF SIZEOF(['ASSOCIATIVE_DRAUGHTING.BOUNDED_CURVE',
                  'ASSOCIATIVE_DRAUGHTING.SURFACE_CURVE'] * TYPEOF(cv)) = 1
                   THEN
                IF basis_curve_check(cv\surface_curve.curve_3d) THEN
                  REPEAT i := 1 TO SIZEOF(cv\surface_curve.
                      associated_geometry) BY 1;
                    IF 'ASSOCIATIVE_DRAUGHTING.SURFACE' IN TYPEOF(cv\
                        surface_curve.associated_geometry[i]) THEN
                      IF NOT basis_surface_check(cv\surface_curve.
                          associated_geometry[i]) THEN
                        RETURN(FALSE);
                      END_IF;
                    ELSE
                      IF 'ASSOCIATIVE_DRAUGHTING.PCURVE' IN TYPEOF(cv\
                          surface_curve.associated_geometry[i]) THEN
                        IF NOT basis_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 'ASSOCIATIVE_DRAUGHTING.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;
    RETURN(FALSE);

  END_FUNCTION; -- basis_curve_check

Referenced By

Defintion basis_curve_check is references by the following definitions:
DefinitionType
 basis_surface_check FUNCTION
 manifold_surface_shape_representation ENTITY


[Top Level Definitions] [Exit]

Generated by STEP Tools® EXPRESS to HTML Converter
2012-03-27T17:14:12-04:00