*MotionPair()
Applies a motion pair to a joint pair or constrains the motion between two marker pairs.
Syntax
*MotionPair(motion_name,"motion_label",JOINT, joint_name, TRANS|ROT) OR *MotionPair(motion_name,"motion_label",MARKERS, i_marker_name, j_marker_name, direction)
Arguments
- motion_name
- The variable name of the motion pair.
- motion_label
- The descriptive label of the motion pair.
- JOINT|MARKERS
- Type of motion applied to a joint or two markers.
- joint_name
- The joint pair to which the motion pair is applied.
- TRANS|ROT
- This argument indicates whether the motion is applied to the translational or rotational degree of freedom when using a cylindrical joint pair.
- i_marker_name
- The first of two marker pairs for which displacement is being controlled.
- j_marker_name
- The second of two marker pairs for which displacement is being controlled.
- direction
- The direction of the constraint.
Example
*RevJointPair(j_crank_piv, "Crank pivot",
b_crank,
B_Ground,
p_crank_pivot,
p_crank_pivot_axis)
*MotionPair(crnk_rot, "Crank rotation",
JOINT, j_crank_piv)
*SetMotion(crank_rot, LEFT, DISP, 0.0)
*Motion(motion_0, "Motion 0", MARKERS, marker_5, marker_6, B2)
Context
Properties
Property | Returns Data Type | Description |
---|---|---|
l | Motion | Left motion. |
label | string | The descriptive label of the motion pair. |
r | Motion | Right motion. |
state | boolean | Control state (TRUE or FALSE). |
varname | string | The variable name of the motion pair. |
id | long integer | The solver ID of the motion. |
jt | CylJointPair, RevJointPair, or TransJointPair | The joint pair to which the motion pair is applied. |
im | MarkerPair | The first of two marker pairs for which displacements are being controlled. |
jm | MarkerPair | The second of two marker pairs for which displacement is being controlled. |
direction | string | The direction of the constraint. |
type | The type of motion specified: DISP, VEL, or ACCL | |
value | string | The value or solver expression for the motion. |
Comments
A *MotionPair() statement can be specified for any revolute, translational, or cylindrical joint pair. However, a motion pair cannot be specified for a joint pair in compliant mode.
The TRANS|ROT flag is required only when a motion pair is applied to a cylindrical joint pair.
If no *SetMotion() statement is present, the displacement of the joint pair is set to zero.
The individual markers of a *MotionPair() can be referred to as motion.l (left marker) and motion.r (right marker).