ZenTools for Maya
Download: http://github.com/downloads/davebelais/zentools/zenTools_1.6.2.zip
Issue Tracking: http://github.com/davebelais/zentools/issues
Installation
First Time Installation
- Bonus tools for Maya is required to use ZenTools. Bonus Tools can be found at http://area.autodesk.com/index.php/misc/bonus_tools/.
- If maya is open, close Maya. Unzip the contents of the downloaded archive to your user scripts directory. Inside Maya, enter
python("import zen"); evalDeferred("zenTools");into the mel command line or script editor.
Upgrading From Versions Previous to 1.6.1
- Delete the directory zenScripts in your user scripts directory & delete the file zenTools.mel from your user scripts directory.
- Locate userSetup.mel . If you have not created a userSetup.mel file in your user scripts directory or elsewhere, this will be in your BonusTools installation directory under /scripts.
- Look for the line
source zenTools;
and replace it with
python("import zen");if present, otherwise, add
python("import zen");to the last line of userSetup.mel.
- Unzip the attached package to your user scripts directory. * Restart Maya. Enter
zenTools
into the ( mel ) command line.
Tools by Menu
Select
- Vert Loop
Selects an edge path between selected vertices. Q: Maya already has a Select Shortest Edge Path tool, how is this different? A: Maya’s Select Shortest Edge Path tool delivers unintuitive results on irregular surfaces. ZenTools Vert Loop function always retrieves the connecting edge path containing the fewest number of edges possible to make the connection, as illustrated below.
Input Selection
“Select Shortest Edge Path” Results
ZenTools “Vert Loop” Results



- Flood Select
Select polygon edges defining a desired selection perimeter, then a vertex or a face indicating the region which should be filled. “Flood Fill” will select the vertices or faces contained within.
Input Selection Results 

Input Selection Results 

- Transfer Component Selection Select components on one object, then [right click > Object Mode] and shift-select one or more similar objects, “Transfer Component Selection” will select the corresponding components on the selected objects.
- Vert Loop
Model
- Cut Edges
Splits the mesh at selected edges.
- Curve Distribute Between Vertices
Select 2 or more vertices. This command will align the vertices between them along an arc, ep curve , or cv curve based on current options.
- Loft Distribute Between Edge Loops
Select 2 or more edge loops of equal edge count which are parallel in orientation and aligned such as to share edge rings. This command will distribute the vertices between them along a loft.
- Transfer Vertex/CV Positions
Select vertices or control vertices on one object, then [right click > Object Mode] and shift-select one or more similar objects. This command will transfer the positions of the selected cv’s or vertices onto the selected object(s).
- Curve Distribute Between UVs
Select 2 or more uv points. This command will align the uv points between them along an arc, ep curve , or cv curve based on current options.
- UV Mirror
Select the source faces you which to mirror. This command will position the uv’s which are opposite the selected faces in object space to be similarly opposite in texture space. The reference axis is determined by the object?s rotation axis.
- UV Patch Between Edge Loops
Select 2 aligned, equal length, parallel edge loops lying on a polygon surface. This command will create a nurbs-style uv-patch with the selected edges defining it’s u borders.
- UV Layout Proportionate
This command will layout selected UV shells proportionately in relation to their 3d surface area.
- Cut Edges
Rig
- Surface Between Edge Loops
Select 2 or more edge loops of equal edge count which are parallel in orientation and aligned such as to share edge rings. This command will create a surface from the portion of the mesh sandwiched between your selections.
- Curve Spans Between Edge Loops
Select 2 or more edge loops of equal edge count which are parallel in orientation and aligned such as to share edge rings. With “spans” set to 0 ( the default ), this command will create a curve on each parallel edge loop sandwiched between your selection. If the span count is greater than 0, this command will create the specified number of curves.
- Curves From Contiguous Edges
This command will create a curve from selected edges, or multiple curves if the selection is not contiguous.
- Mirror Smooth Skin Influence Weights
Select a smooth skinned object. This command will mirror skin influence weights. Opposite vertices will be identified by closest vertex. Opposite influences will be matched according to a number of matching methods, narrowing matches in the following order:
- Node Type: only the same node type will be considered as a possible match.
- Joint Labels: For nodes which are joints, narrows down possible candidates to opposingly labeled joints.
- Naming: Matches any object containing the string “left” to an opposing object containing the string “right” and vice-versa, capitalization is OK but must match for both influences.
- Transform: Matches objects according to their bounding box and rotation pivots.
- Surface Between Edge Loops
- Confine Skin Weights to Selected Objects Select vertices on a smooth skinned object. Then select all of the joints or influence objects you want to affect the selected vertices. All other influences will be set to zero and the selected influences proportionately normalized.
- Confine Skin Weights to Selected Objects
Etc
- Scripts Menus From Folders
This command recursively searches given directories and creates menus for executing contained scripts based on folder hierarchy.
Each folder in the given directory, and each sub-folder will be added to Maya?s script path. Each sub-directory will correspond to a sub-menu, and each MEL script a menu item. Each menu item will execute the command corresponding to the script name, per internal convention, so a global procedure with the same name as the MEL script must be present in each script.
In the “Remove Prefixes” text field you may enter a list of prefixes which you wish to have excluded from menu labels. This list should be separated by a semicolon for Windows users, or a colon for Linux and OS X users.
After pressing save, ZenTools stores your options in a file called “zenTools_userOptions.mel” in your user scripts directory, along with the rest of your options. These folders are not removed from your options file by using the Help>Reset Options command. In order to remove these menus, open ZenTools, select “Create>Scripts Menus From Folders?” and press the delete button below the folder you wish to remove, then press save.
If debugging a script which is in-progress, it may be desirable to have ZenTools source the script each time you execute, thereby reflecting recent changes. In this case, open ZenTools, navigate to the “Help” menu, and select “Debugging Mode”. This will cause scripts in all ZenTools-created menu?s to be sourced upon execution.
- Set Attributes On Multiple Objects Attempts to set the attribute value given on each selected object and (optionally) its descendants. Objects which do not have the selected attribute are skipped. Input can be of any type which can be set using the setAttr command, and format should follow the same conventions.
- Scripts Menus From Folders