MAXScript Language Reference > 3ds Max Objects > Animation Controllers > Controller Types > Matrix3 Controllers >

# IK_ControllerMatrix3Controller : Matrix3Controller

Value > MAXWrapper > Controllers > Matrix3Controller > IK_ControllerMatrix3Controller

| Animation Controllers - Quick Navigation

The functions described in this topic provide access to some of the Inverse Kinematics (IK) parameters of the IK controller. The IK controller is typically used by the Bones system in 3ds Max. You cannot create a Bones system using MAXScript in 3ds Max 3, but these methods provide access to the IK controller for existing Bones systems. An IK system actually consists of two types of controllers - the master IK controller and slave IK controllers. The slave IK controllers are used as the transform controller for all nodes in the IK system, and the master IK controller controls the individual slave IK controllers.

All the IK-related methods are in the ik structure and are associated with a parameter in the Motion panel, IK Controller Parameters rollout. These functions return undefined if executed on an object whose controller is not an IK controller. The controller actually being accessed in these methods is the master IK controller. Accessing the IK controller for any object in the IK system accesses the same master IK controller.

Note

The following ik structure methods are still present, but not applicable in 3ds Max 4 and higher.

Getting/setting via these methods return a value of 'undefined':

GetRotThreshold

SetRotThreshold

GetPosThreshold

SetPosThreshold

GetIterations

SetIterations

    ik.GetPosThreshold <node>
    ik.SetPosThreshold <node> <float>

Get and set the Position threshold value for the specified object.

    ik.GetRotThreshold <node>
    ik.SetPosThreshold <node> <float>

Get and set the Rotation threshold value for the specified object.

    ik.GetIterations <node>
    ik.SetIterations <node> <integer>

Get and set the Iterations value for the specified object.

    ik.GetStartTime <node>
    ik.SetStartTime <node> <time>

Get and set the Start time for the specified object

    ik.GetEndTime <node>
    ik.SetEndTime <node> <time>

Get and set the End time for the specified object

    ik.getPinNode <node>

Gets the node the specified node is bound to in the IK panel as a <node> value, undefined if none.

    ik.setPinNode <node> (<node> | undefined)

Sets the node the specified node is bound to in the IK panel. If undefined is specified, the node is unbound. Returns true if the bind was successful, false otherwise.

    ik.getPrecedence <node>

Gets the precedence of the node as specified in the IK panel as an <integer> value

    ik.setPrecedence <node> <number>

Sets the precedence of the node as specified in the IK panel. Returns true if the assignment was successful, false otherwise.

    ik.getIsTerminator <node>
    ik.setIsTerminator <node> <boolean>

Get/set whether the node is a terminator.

    ik.getBindPos <node>
    ik.setBindPos <node> <boolean>

Get/set whether Bind Position is turned on for the node.

    ik.getBindOrient <node>
    ik.setBindOrient <node> <boolean>

Get/set whether Bind Orientation is turned on for the node.

    ik.getAxisActive {<node> | <controller>} {#rotational | #sliding}
    ik.setAxisActive {<node> | <controller>} {#rotational | #sliding} <bitarray>

Get/Set whether each axis is active as a 3 bit bitarray.Available in 3ds Max 2008 and higher. Previously available in the free Avguard Extensions.

    ik.getAxisLimit {<node> | <controller>} {#rotational | #sliding}
    ik.setAxisLimit {<node> | <controller>} {#rotational | #sliding} <bitarray>

Get/Set whether each axis is limitted as a 3 bit bitarray.Available in 3ds Max 2008 and higher. Previously available in the free Avguard Extensions.

    ik.getAxisEase {<node> | <controller>} {#rotational | #sliding}
    ik.setAxisEase {<node> | <controller>} {#rotational | #sliding} <bitarray>

Get/Set whether each axis is eased as a 3 bit bitarray.Available in 3ds Max 2008 and higher. Previously available in the free Avguard Extensions.

    ik.getAxisMin {<node> | <controller>} {#rotational | #sliding}
    ik.setAxisMin {<node> | <controller>} {#rotational | #sliding} <point3>

Get/Set min value for each axis as a Point3.Available in 3ds Max 2008 and higher. Previously available in the free Avguard Extensions.

    ik.getAxisMax {<node> | <controller>} {#rotational | #sliding}
    ik.setAxisMax {<node> | <controller>} {#rotational | #sliding} <point3>

Get/Set max value for each axis as a Point3.Available in 3ds Max 2008 and higher. Previously available in the free Avguard Extensions.

    ik.getAxisDamping {<node> | <controller>} {#rotational | #sliding}
    ik.setAxisDamping {<node> | <controller>} {#rotational | #sliding} <point3>

Get/Set damping value for each axis as a Point3.Available in 3ds Max 2008 and higher. Previously available in the free Avguard Extensions.

    ik.getAxisPreferredAngle {<node> | <controller>}
    ik.setAxisPreferredAngle {<node> | <controller>} <point3>

Get/Set preferred angle for each axis as a Point3.Available in 3ds Max 2008 and higher. Previously available in the free Avguard Extensions.

    ik.getAxisSpringOn {<node> | <controller>} {#rotational | #sliding}
    ik.setAxisSpringOn{<node> | <controller>} {#rotational | #sliding} <bitarray>

Get/Set whether spring is on for each axis as a 3 bit bitarray.Available in 3ds Max 2008 and higher. Previously available in the free Avguard Extensions.

    ik.getAxisSpring {<node> | <controller>} {#rotational | #sliding}
    ik.setAxisSpring {<node> | <controller>} {#rotational | #sliding} <point3>

Get/Set spring value for each axis as a Point3.Available in 3ds Max 2008 and higher. Previously available in the free Avguard Extensions.

    ik.getAxisSpringTension {<node> | <controller>} {#rotational | #sliding}
    ik.setAxisSpringTension {<node> | <controller>} {#rotational | #sliding} <point3>

Get/Set spring tension for each axis as a Point3.Available in 3ds Max 2008 and higher. Previously available in the free Avguard Extensions.

Note

For those controllers that don't support IK parameters via the access method used for these methods, a value of undefined is returned.

IK controllers do not support the access method used, but access is provided as properties of the IK controller.

If a node is specified, the node's transform controller is used.