FUNCTION get_round_holes_for_composite_hole
(sar_instance_set : SET [0:?] OF shape_aspect_relationship) : SET [0:?] OF round_hole;
LOCAL rh_set : SET OF round_hole := []; pdr_set : SET OF property_definition_representation; pdr_set1 : SET OF property_definition_representation; ri_set : SET OF representation_item; END_LOCAL;
REPEAT i:=1 TO HIINDEX (sar_instance_set); IF (SIZEOF (['AUTOMOTIVE_DESIGN.INSTANCED_FEATURE' , 'AUTOMOTIVE_DESIGN.ROUND_HOLE'] * TYPEOF (sar_instance_set[i].related_shape_aspect)) >= 2) THEN rh_set := rh_set + sar_instance_set[i].related_shape_aspect; END_IF; IF ('AUTOMOTIVE_DESIGN.PLACED_FEATURE' IN TYPEOF (sar_instance_set[i])) THEN pdr_set := get_shape_aspect_property_definition_representations (sar_instance_set[i].related_shape_aspect); REPEAT j:=1 TO HIINDEX(pdr_set); IF ((pdr_set[j].used_representation.name = 'feature definition placement') AND ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION' IN TYPEOF (pdr_set[j].used_representation))) THEN ri_set := pdr_set[j].used_representation.items; REPEAT k:=1 TO HIINDEX(ri_set); IF (('AUTOMOTIVE_DESIGN.MAPPED_ITEM' IN TYPEOF (ri_set[k])) AND ('AUTOMOTIVE_DESIGN.'+ 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(ri_set[k]\mapped_item.mapping_source. mapped_representation))) THEN pdr_set1 := bag_to_set (USEDIN(ri_set[k]\mapped_item.mapping_source.mapped_representation , 'AUTOMOTIVE_DESIGN.PROPERTY_DEFINITION_REPRESENTATION.'+ 'USED_REPRESENTATION')); REPEAT l:=1 TO HIINDEX(pdr_set1); IF ('AUTOMOTIVE_DESIGN.ROUND_HOLE' IN TYPEOF (pdr_set1[l].definition.definition)) THEN rh_set := rh_set + pdr_set1[l].definition.definition; END_IF; END_REPEAT; END_IF; END_REPEAT; END_IF; END_REPEAT; END_IF; END_REPEAT;
RETURN (rh_set); END_FUNCTION; -- get_round_holes_for_composite_hole
|