pymel.core.effects.connectDynamic

connectDynamic(*args, **kwargs)

Dynamic connection specifies that the force fields, emitters, or collisions of an object affect another dynamic object. The dynamic object that is connected to a field, emitter, or collision object is influenced by those fields, emitters and collision objects. Connections are made to individual fields, emitters, collisions. So, if an object owns several fields, if the user wants some of the fields to affect an object, s/he can specify each field with a -fflag; but if the user wants to connect all the fields owned by an object, s/he can specify the object name with the -fflag. The same is true for emitters and collisions. Different connection types (i.e., for fields vs. emitters) between the same pair of objects are logically independent. In other words, an object can be influenced by another object’s fields without being influenced by its emitters or collisions. Each connected object must be a dynamic object. The object connected to can be any object that owns fields, emitters, etc.; it need not be dynamic. Objects that can own influences are particles, geometry objects (nurbs and polys) and lattices. You can specify either the shape name or the transform name of the object to be influenced.

Flags:

Long Name / Short Name Argument Types Properties
addScriptHandler / ash script ../../../_images/create.gif
  Registers a script that will be given a chance to handle calls to the dynamicConnect command. This flag allows other dynamics systems to override the behaviour of the connectDynamic command. You must pass a Python function as the argument for this flag, and that function must take the following keyword arguments: fields, emitters, collisionObjects and objects. The python function must return True if it has handled the call to connectDynamic. In the case that the script returns true, the connectDynamic command will not do anything as it assumes that the work was handled by the script. If all of the callbacks return false, the connectDynamic command will proceed as normal. The addScriptHandler flag may not be used with any other flags. When the flag is used, the command will return a numerical id that can be used to deregister the callback later (see the removeScriptHandler flag)
collisions / c unicode ../../../_images/create.gif
  Connects each object to the collision models of the given object.
delete / d bool ../../../_images/create.gif
  Deletes existing connections.
emitters / em unicode ../../../_images/create.gif
  Connects each object to the emitters of the given object.
fields / f unicode ../../../_images/create.gif
  Connects each object to the fields of the given object.
removeScriptHandler / rsh int ../../../_images/create.gif
  This flag is used to remove a callback that was previously registered with the addScriptHandler flag. The argument to this flag is the numerical id returned by dynamicConnect when the addScriptHandler flag was used. If this flag is called with an invalid id, then the command will do nothing. This flag may not be used with any other flag. Flag can have multiple arguments, passed either as a tuple or a list.

Derived from mel command maya.cmds.connectDynamic

Example:

import pymel.core as pm

pm.connectDynamic( 'Book', c='Floor' )
# Connects the dynamic object "Book" to the collision model of the
# "Floor". This means that the book will collide with and bounce off of
# the floor.

pm.connectDynamic( 'Moon', 'Spaceship', f='Moon' )
# Connects dynamic object "Spaceship" to the all fields and emitters
# owned by "Moon".

pm.connectDynamic( 'Spaceship', f='newtonField1' )
# Connects dynamic object "Spaceship" to "newtonField1" owned by "Moon".

pm.connectDynamic( 'Moon', f='newtonField1' )
# If the selection list consists of "Spaceship", connects dynamic object
# "Spaceship" to "newtonField1" and all emitters owned by "Moon".

pm.connectDynamic( 'Spaceship', d=True, f='Moon' )
# Deletes the field connection between all the fields owned by "Moon" and
# "Spaceship". Note that the command establishing the connection need not
# be in the undo queue.

pm.connectDynamic( 'Spaceship', d=True, f='newtonField1' )
# Deletes the field connection between "newtonField1" owned by "Moon" and
# "Spaceship".