(* SCHEMA step_ship_schema; *)
-- ONLY IN AP218
RULE hull_cross_section_result_for_representation_item FOR (
representation, representation_item, group,
applied_classification_assignment);
LOCAL
violation : LOGICAL := FALSE;
c_a_set : SET OF applied_classification_assignment := [];
arg_list : LIST OF STRING := [
'actual first moment horizontal',
'actual first moment vertical',
'actual inertia cross','actual inertia horizontal',
'actual inertia torsion','actual inertia vertical',
'actual neutral axis position horizontal',
'actual neutral axis position vertical',
'actual section area',
'actual section modulus bottom',
'actual section modulus coaming',
'actual section modulus deck',
'actual stress bottom','actual stress coaming',
'actual stress deck',
'actual twist centre horizontal',
'actual twist centre vertical',
'direction largest inertia',
'direction least inertia','max moment',
'max shear force','meter weight','min moment',
'min shear force',
'required section modulus bottom',
'required section modulus coaming',
'required section modulus deck',
'required stress bottom','required stress coaming',
'required stress deck'];
classed_rep_set : SET OF representation := [];
END_LOCAL;
c_a_set := QUERY ( i <* applied_classification_assignment | (i.
assigned_class.name = 'hull cross section result') );
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
classed_rep_set := classed_rep_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(classed_rep_set) BY 1 WHILE NOT violation;
REPEAT j := 1 TO HIINDEX(arg_list) BY 1 WHILE NOT violation;
violation := SIZEOF(QUERY ( rep_item <* classed_rep_set[i].items
| (rep_item.name = arg_list[j]) )) <> 1;
END_REPEAT;
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE;
Generated by STEP ToolsTM EXPRESS to HTML Converter
on 2007-09-24T12:42:21-04:00