RULE component_class_for_assembly_select

(* SCHEMA structural_analysis_design; *)
  RULE component_class_for_assembly_select FOR (
             composite_assembly_sequence_definition, 
             next_assembly_usage_occurrence, 
             product_related_product_category);

    LOCAL
      i     : INTEGER;
      j     : INTEGER;
      k     : INTEGER;
      nnauo : INTEGER;
      dkuhr : LOGICAL;
      rp    : product;
      nprpc : INTEGER;
    END_LOCAL;
    dkuhr := TRUE;
    REPEAT i := LOINDEX(composite_assembly_sequence_definition) TO 
        HIINDEX(composite_assembly_sequence_definition) BY 1;
      nnauo := 0;
      REPEAT j := LOINDEX(next_assembly_usage_occurrence) TO HIINDEX(
          next_assembly_usage_occurrence) BY 1;
        IF composite_assembly_sequence_definition[i] = 
            next_assembly_usage_occurrence[j].relating_product_definition
             THEN
          rp := next_assembly_usage_occurrence[j].
              related_product_definition.formation.of_product;
          nprpc := 0;
          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 ['ply',
                'ply laminate','filament laminate','processed core',
                'composite assembly']) THEN
              nprpc := nprpc + 1;
            END_IF;
          END_REPEAT;
          IF nprpc = 1 THEN
            nnauo := nnauo + 1;
          ELSE
            dkuhr := FALSE;
            ESCAPE;
          END_IF;
        END_IF;
      END_REPEAT;
      IF dkuhr = FALSE THEN
        ESCAPE;
      END_IF;
      IF nnauo = 0 THEN
        dkuhr := FALSE;
        ESCAPE;
      END_IF;
    END_REPEAT;

  WHERE
    wr1: dkuhr;

  END_RULE; -- component_class_for_assembly_select

[Top Level Definitions] [Exit]

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