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:
[Top Level Definitions] [Exit]Generated by STEP Tools® EXPRESS to HTML Converter
2012-03-27T17:16:12-04:00