RULE representation_item_for_transformation_to_parent

(* SCHEMA ship_moulded_form_schema; *)
  RULE representation_item_for_transformation_to_parent FOR (
             applied_classification_assignment);

    LOCAL
      t3_set     : SET OF representation := [];
      t4_set     : SET OF representation_map := [];
      t1_set     : SET OF property_definition := [];
      t5_set     : SET OF mapped_item := [];
      c_a_set    : SET OF applied_classification_assignment := [];
      arg_list   : LIST OF STRING := ['local coordinate system position in global coordinate system','local coordinate system position in parent local coordinate system','local coordinate system position in parent local coordinate system with position reference'];
      violation1 : LOGICAL := FALSE;
      violation2 : LOGICAL := FALSE;
      t2_set     : SET OF property_definition_representation := [];
    END_LOCAL;
    c_a_set := QUERY ( i <* applied_classification_assignment | (i.
        assigned_class.name = 'local co ordinate system') );
    REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
      REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
        t1_set := t1_set + c_a_set[i].items[j];
      END_REPEAT;
    END_REPEAT;
    REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation1;
      t2_set := bag_to_set(USEDIN(t1_set[i],'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION'));
      violation1 := NOT (SIZEOF(QUERY ( t2_inst <* t2_set | (t2_inst.
          used_representation.name = 'local axis representation') )) = 1);
      t3_set := t3_set + t2_set[i].used_representation;
    END_REPEAT;
    REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation1;
      t4_set := bag_to_set(USEDIN(t3_set[i],'SHIP_MOULDED_FORM_SCHEMA.REPRESENTATION_MAP.MAPPED_REPRESENTATION'));
    END_REPEAT;
    REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation1;
      t5_set := bag_to_set(USEDIN(t4_set[i],
          'SHIP_MOULDED_FORM_SCHEMA.MAPPED_ITEM.MAPPING_SOURCE'));
      REPEAT j := 1 TO 3 BY 1 WHILE NOT violation2;
        violation2 := NOT (SIZEOF(QUERY ( t2_inst <* t5_set | (t2_inst.
            name = arg_list[j]) )) = 1);
      END_REPEAT;
    END_REPEAT;

  WHERE
    wr1: (NOT violation1);
    wr2: (NOT violation2);

  END_RULE; -- representation_item_for_transformation_to_parent

[Top Level Definitions] [Exit]

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