Module Expr Str Assign NameStore Str Import alias identifier FunctionDef arguments args defaults body Expr Str Assign NameStore Num Assign NameStore Num Assign NameStore Str If Call AttributeLoad NameLoad attr NameLoad keyword NameLoad body Expr Call AttributeLoad NameLoad attr NameLoad keyword NameLoad Assign NameStore Call AttributeLoad NameLoad attr NameLoad keyword NameLoad keyword BinOpAdd Str NameLoad keyword TupleLoad NameLoad NameLoad Expr Call AttributeLoad NameLoad attr Str keyword NameLoad Expr Call AttributeLoad NameLoad attr Str keyword Str keyword Str keyword Num Expr Call AttributeLoad NameLoad attr Str keyword Str keyword Str Expr Call AttributeLoad NameLoad attr Str keyword Str keyword NameLoad Expr Call AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr keyword TupleLoad NameLoad NameLoad decorator_list FunctionDef arguments args defaults vararg kwarg body Expr Str Assign NameStore Call AttributeLoad NameLoad attr Str keyword NameLoad keyword NameLoad Assign NameStore Call AttributeLoad NameLoad attr Str keyword NameLoad keyword NameLoad Assign NameStore Call AttributeLoad NameLoad attr keyword Num keyword Str Expr Call NameLoad NameLoad NameLoad NameLoad Expr Call AttributeLoad NameLoad attr NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam defaults NameLoad NameLoad body Expr Str Assign NameStore NameLoad If NameLoad body Expr Call AttributeLoad NameLoad attr NameLoad keyword NameLoad Assign NameStore Call AttributeLoad NameLoad attr keyword Num keyword Str For NameStore NameLoad body Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr keyword Num keyword Num keyword Str keyword NameLoad If NameLoad body Expr Call NameLoad NameLoad Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr For NameStore NameLoad body Assign NameStore SubscriptLoad NameLoad Index Num Assign NameStore Call AttributeLoad NameLoad attr Assign NameStore Call AttributeLoad NameLoad attr Expr Call AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index NameLoad attr NameLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore SubscriptLoad Call AttributeLoad NameLoad attr NameLoad keyword Num Index Num Expr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr Expr Call AttributeLoad AttributeLoad NameLoad attr attr Expr Call AttributeLoad AttributeLoad NameLoad attr attr Expr Call AttributeLoad AttributeLoad NameLoad attr attr Expr Call AttributeLoad NameLoad attr NameLoad keyword Num keyword Num If UnaryOpNot Call AttributeLoad AttributeLoad NameLoad attr attr body Expr Call AttributeLoad AttributeLoad NameLoad attr attr Num orelse Expr Call AttributeLoad AttributeLoad NameLoad attr attr Expr Call AttributeLoad AttributeLoad NameLoad attr attr Num Expr Call AttributeLoad AttributeLoad NameLoad attr attr If UnaryOpNot Call AttributeLoad AttributeLoad NameLoad attr attr body Expr Call AttributeLoad AttributeLoad NameLoad attr attr Num orelse Expr Call AttributeLoad AttributeLoad NameLoad attr attr Expr Call AttributeLoad AttributeLoad NameLoad attr attr Num Expr Call AttributeLoad AttributeLoad NameLoad attr attr If UnaryOpNot Call AttributeLoad AttributeLoad NameLoad attr attr body Expr Call AttributeLoad AttributeLoad NameLoad attr attr Num orelse Expr Call AttributeLoad AttributeLoad NameLoad attr attr Expr Call AttributeLoad AttributeLoad NameLoad attr attr Num Expr Call AttributeLoad AttributeLoad NameLoad attr attr Expr Call AttributeLoad AttributeLoad NameLoad attr attr Call AttributeLoad AttributeLoad NameLoad attr attr Expr Call AttributeLoad NameLoad attr NameLoad decorator_list
N/A N/A Fix Bound Joint

v0.1.0

Description
-----------

Fixes bound joints to the correct worldOrientation in connected skinClusters

Usage
-----

Select a joint which is an influence for a skinCluster, open up the script UI,
select "freeze transformations" if you want to zero rotation values, select
"Apply to children" if you want to apply the same fix to child joints...

Change Log
----------

0.1.0
-----

- Moved the script to Python
- It also fixes any joint with input connection, thus it can fix joints which
  are in character set or have an input connection

 N/A __version__ 0.1.0 N/A pymel.core pm UI N/A N/A N/A N/A N/A The UI of the script
     N/A window_width 153 N/A window_height 80 N/A window_name oyFixBoundJoint_Window N/A N/A N/A pm window window_name ex True N/A N/A N/A N/A pm deleteUI window_name window True N/A window N/A N/A pm window window_name tlb True title N/A fixBoundJoint  __version__ widthHeight N/A window_width window_height N/A N/A N/A pm columnLayout FBJ_columnLayout1 adj True N/A N/A N/A pm checkBox FBJ_checkBox1 l Freeze transformations al left v 1 N/A N/A N/A pm checkBox FBJ_checkBox2 l Apply to children al left N/A N/A N/A pm button FBJ_button1 l Apply c get_check_box_states_and_run N/A N/A N/A pm setParent N/A N/A N/A window show N/A N/A N/A window setWidthHeight val N/A window_width window_height N/A get_check_box_states_and_run N/A N/A N/A args kwargs N/A N/A Gets the data from UI and runs the script
     N/A freeze N/A N/A pm checkBox FBJ_checkBox1 q True v True N/A apply_to_children N/A N/A pm checkBox FBJ_checkBox2 q True v True N/A selection_list N/A N/A pm ls sl 1 type joint N/A N/A do_fix selection_list freeze apply_to_children N/A N/A N/A pm select selection_list N/A do_fix N/A N/A joints freeze apply_to_children N/A True False N/A N/A Fixes the given list of bound joints by copying the current worldMatrix
    information to the related skinClusters.

    :param freeze: If freeze is given as True (default) it will also set the
      rotations of the joint to (0, 0, 0). The default value is True.

    :param apply_to_children: If given as True it will also apply the operation
      to the children of the given joints
     N/A new_selection_list joints N/A apply_to_children N/A N/A N/A N/A pm select joints hi True N/A new_selection_list N/A N/A pm ls sl 1 type joint N/A joint new_selection_list N/A N/A connections N/A N/A N/A joint worldMatrix outputs c 1 p 1 t skinCluster et True N/A freeze N/A N/A N/A freeze_joint joint N/A matrix N/A N/A N/A joint worldInverseMatrix get N/A attribute_data connections N/A N/A skinCluster_attribute N/A attribute_data N/A 1 N/A skinCluster_node N/A N/A skinCluster_attribute node N/A index N/A N/A skinCluster_attribute index N/A N/A N/A N/A N/A skinCluster_node bindPreMatrix N/A index set matrix N/A freeze_joint N/A N/A joint N/A N/A N/A Freezes the given joint by duplicating it and applying the freeze to the
    duplicate and then copy the joint orientation values to the original joint.

    :param joint: The joint which wanted to be frozen
     N/A dup_joint N/A N/A N/A pm duplicate joint rc 1 N/A 0 N/A N/A N/A pm delete N/A N/A dup_joint getChildren N/A N/A N/A N/A dup_joint rotateX unlock N/A N/A N/A N/A dup_joint rotateY unlock N/A N/A N/A N/A dup_joint rotateZ unlock N/A N/A N/A pm makeIdentity dup_joint apply 1 r 1 N/A N/A N/A N/A N/A joint rotateX isLocked N/A N/A N/A N/A N/A joint rotateX set 0 N/A N/A N/A N/A N/A joint rotateX unlock N/A N/A N/A N/A joint rotateX set 0 N/A N/A N/A N/A joint rotateX lock N/A N/A N/A N/A N/A joint rotateY isLocked N/A N/A N/A N/A N/A joint rotateY set 0 N/A N/A N/A N/A N/A joint rotateY unlock N/A N/A N/A N/A joint rotateY set 0 N/A N/A N/A N/A joint rotateY lock N/A N/A N/A N/A N/A joint rotateZ isLocked N/A N/A N/A N/A N/A joint rotateZ set 0 N/A N/A N/A N/A N/A joint rotateZ unlock N/A N/A N/A N/A joint rotateZ set 0 N/A N/A N/A N/A joint rotateZ lock N/A N/A N/A N/A joint jointOrient set N/A N/A N/A dup_joint jointOrient get N/A N/A N/A pm delete dup_joint N/A