FUNCTION suitably_based_mechanism

(* SCHEMA AUTOMOTIVE_DESIGN; *)
 
FUNCTION suitably_based_mechanism(mbp : mechanism_base_placement; mech : 
  mechanism) : BOOLEAN;
LOCAL
  kprop : kinematic_property_definition;
  kgrep : kinematic_ground_representation;
  klrep : kinematic_link_representation;
  klnk : kinematic_link;
  kjnts :  BAG  OF kinematic_joint;
  nmechs :  BAG  OF mechanism;
  nmbps :  BAG  OF mechanism_base_placement;
END_LOCAL;
  kprop := mech.containing_property;
  IF 'AUTOMOTIVE_DESIGN.KINEMATIC_GROUND_REPRESENTATION' IN TYPEOF(mbp\
  representation_relationship.rep_1) THEN
    kgrep := mbp\representation_relationship.rep_1;
    IF kgrep.property\property_definition_representation.definition :=: kprop
     THEN
      RETURN (TRUE);
    ELSE
      RETURN (FALSE);
    END_IF;
  ELSE
    klrep := mbp\representation_relationship.rep_1;
    klnk := klrep.link_representation_relation.topological_aspects;
    kjnts := USEDIN(klnk, 'AUTOMOTIVE_DESIGN.KINEMATIC_JOINT.FIRST_LINK') + 
    USEDIN(klnk, 'AUTOMOTIVE_DESIGN.KINEMATIC_JOINT.SECOND_LINK');
    nmechs := USEDIN(kjnts[1].structure, 
    'AUTOMOTIVE_DESIGN.MECHANISM.STRUCTURE_DEFINITION');
    IF nmechs[1] :=: mech THEN
      RETURN (FALSE);
    ELSE
      IF nmechs[1].containing_property :<>: kprop THEN
        RETURN (FALSE);
      ELSE
        nmbps := USEDIN(nmechs[1], 
        'AUTOMOTIVE_DESIGN.MECHANISM_BASE_PLACEMENT.BASE_OF_MECHANISM');
        IF SIZEOF(nmbps) = 0 THEN
          RETURN (FALSE);
        ELSE
          RETURN (suitably_based_mechanism(nmbps[1], mech));
        END_IF;
      END_IF;
    END_IF;
  END_IF;
END_FUNCTION; -- 10303-105: kinematic_structure_schema

Referenced By

Defintion suitably_based_mechanism is references by the following definitions:
DefinitionType
 mechanism_base_placement ENTITY


[Top Level Definitions] [Exit]

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