*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.
Data type: varname
motion_label
The descriptive label of the motion pair.
Data type: label
JOINT|MARKERS
Type of motion applied to a joint or two markers.
Data type: keyword
joint_name
The joint pair to which the motion pair is applied.
Data type: CylJointPair, RevJointPair, or TransJointPair
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.
Data type: MarkerPair
j_marker_name
The second of two marker pairs for which displacement is being controlled.
Data type: MarkerPair
direction
The direction of the constraint.
Data type: X, Y, Z, B1, B2, or B3

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

*BeginMdl()

*DefineAnalysis()

*DefineSystem()

Properties

Table 1.
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).