FUNCTION suitably_based_mechanism
(* SCHEMA step_merged_ap_schema; *)
-- IN AP214
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 'STEP_MERGED_AP_SCHEMA.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, 'STEP_MERGED_AP_SCHEMA.KINEMATIC_JOINT.FIRST_LINK') + USEDIN(klnk, 'STEP_MERGED_AP_SCHEMA.KINEMATIC_JOINT.SECOND_LINK');
nmechs := USEDIN(kjnts[1].structure, 'STEP_MERGED_AP_SCHEMA.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], 'STEP_MERGED_AP_SCHEMA.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;
Referenced By
Defintion suitably_based_mechanism is references by the following definitions:
[Top Level Definitions] [Exit]Generated by STEP Tools® EXPRESS to HTML Converter
2024-09-06T14:00:33-04:00