RULE ply_stock_material_select

(* SCHEMA structural_analysis_design; *)
  RULE ply_stock_material_select FOR (product_related_product_category, 
             make_from_usage_option);

    LOCAL
      i     : INTEGER;
      j     : INTEGER;
      k     : INTEGER;
      dkuhr : LOGICAL;
      kp    : INTEGER;
      rp    : product;
      nprpc : INTEGER;
      nmfuo : INTEGER;
    END_LOCAL;
    dkuhr := TRUE;
    REPEAT kp := LOINDEX(product_related_product_category) TO HIINDEX(
        product_related_product_category) BY 1;
      IF product_related_product_category[kp].name = 'ply' THEN
        REPEAT i := LOINDEX(product_related_product_category[kp].products)
             TO HIINDEX(product_related_product_category[kp].products) BY 1;
          nmfuo := 0;
          REPEAT j := LOINDEX(make_from_usage_option) TO HIINDEX(
              make_from_usage_option) BY 1;
            IF product_related_product_category[kp].products[i] = 
                make_from_usage_option[j].relating_product_definition.
                formation.of_product THEN
              rp := make_from_usage_option[j].related_product_definition.
                  formation.of_product;
              REPEAT k := LOINDEX(product_related_product_category) TO 
                  HIINDEX(product_related_product_category) BY 1;
                IF (rp IN product_related_product_category[k].products) 
                    AND (product_related_product_category[k].name IN [
                    'isotropic material','filament assembly',
                    'discontinuous fiber assembly']) THEN
                  nprpc := nprpc + 1;
                END_IF;
              END_REPEAT;
              IF nprpc = 1 THEN
                nmfuo := nmfuo + 1;
              ELSE
                dkuhr := FALSE;
                ESCAPE;
              END_IF;
            END_IF;
          END_REPEAT;
          IF dkuhr = FALSE THEN
            ESCAPE;
          END_IF;
          IF nmfuo <> 1 THEN
            dkuhr := FALSE;
            ESCAPE;
          END_IF;
        END_REPEAT;
      END_IF;
    END_REPEAT;

  WHERE
    wr1: dkuhr;

  END_RULE; -- ply_stock_material_select

[Top Level Definitions] [Exit]

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