> For the complete documentation index, see [llms.txt](https://nobraintools.gitbook.io/maya-groomers-tool/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://nobraintools.gitbook.io/maya-groomers-tool/maya-tools/curve-tool-kit.md).

# Curve Tool Kit

<div align="left"><figure><img src="https://454332562-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGyyK7o0fNRXvtva8vEkG%2Fuploads%2FjDjCSPm7wKipyhWFqaZ1%2FxgtCurveManipulator_user.jpg?alt=media&amp;token=db407313-0ec0-419e-ae8d-4b0bddbf672f" alt=""><figcaption></figcaption></figure></div>

## Overview

This is a tool kit consists of multiple small functions for Maya curves. We can dock the UI to the side for easy access.

<figure><img src="https://454332562-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGyyK7o0fNRXvtva8vEkG%2Fuploads%2FL0mcSYgrczyCo9alEePA%2Fv14_ui.gif?alt=media&amp;token=5c2aedc1-dcb8-4872-a7fc-071cf49303d0" alt=""><figcaption></figcaption></figure>

### **Random Curve Select**

**​Set Selected Curves For Random Select**

* **​**Tag all selected Maya curves to be counted in the random selection.

**Random Select Slider**

* % for random curve selection.

<figure><img src="https://454332562-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGyyK7o0fNRXvtva8vEkG%2Fuploads%2Fo5eM0Vjlgk4sXE0tRJWd%2Frandom_select_v14.gif?alt=media&amp;token=e1938a99-d0b5-4a8f-9a89-7a671d35a981" alt=""><figcaption></figcaption></figure>

### **Batch Curve Transform**

**Pivot to Root**

* **​**Set pivot to the root of all selected curve(s).

**Batch Mode On**

* ​Toggle selection mode to curves only. This will affect all curves in scene. If you do not want some curves to be affected, please put them in a display layer and hide it.
* After clicking on '**Batch Mode On**', Maya will only be able to select 'curves' in your scene.

**Batch Mode Off**

* ​Make sure to click on '**Batch Mode Off**' to set Maya selection back to normal.

{% hint style="warning" %}
Sometimes, curves with transform values (when it's too dramatic) can fall outside of the batch mode falloff area. If there are curves not being affected (gradient orange/red display), please freeze transforms.
{% endhint %}

<figure><img src="https://454332562-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGyyK7o0fNRXvtva8vEkG%2Fuploads%2FipeRvhIWVz3rJvVKxKPb%2Fbatch_mode_v14.gif?alt=media&amp;token=9d69a666-7509-4d60-b893-4d78ffcde0cd" alt=""><figcaption></figcaption></figure>

### **Curve CV Selection**

* Select "**First**", "**Last**", "**Next**" or "**Previous**" CVs based on current selections.

<figure><img src="https://454332562-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGyyK7o0fNRXvtva8vEkG%2Fuploads%2FKlBmNWFtmtCiApiZX8Mv%2FCV_selection_v14.gif?alt=media&amp;token=14a4620e-e3a9-41dd-be7a-0acd7ff8fbae" alt=""><figcaption></figcaption></figure>

* **Expand** / **Shrink** will operate on current selected CVs.

<figure><img src="https://454332562-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGyyK7o0fNRXvtva8vEkG%2Fuploads%2FpFCf8gMOZ2kDi1vpGUTM%2Fexpand_shrink.gif?alt=media&amp;token=a3eb61f1-fcf1-4b33-a193-9368208d5192" alt=""><figcaption></figcaption></figure>

### **Curve Rebuild**

**Rebuild**

* A simple curve rebuild. Default degree is set to 3. To build a curve with total of 8 CVs, put a span of 5.&#x20;

**Smooth**

* Smooths selected curves with the strength value.

**Average Curves**

* Scale the selected curves so they have equal length.

**Get Length**

* Get the 'average length' of selected curves.&#x20;

**Set**

* Scales the selected curves so they equal the defined length in the field box.

<figure><img src="https://454332562-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGyyK7o0fNRXvtva8vEkG%2Fuploads%2FiBdboZkZAK0g15FOxIrG%2Frebuilds_V14.gif?alt=media&amp;token=db990b56-bbc6-466e-9fd7-4d84a392998c" alt=""><figcaption><p>Rebuild/Smooth/Average Curves</p></figcaption></figure>

<figure><img src="https://454332562-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGyyK7o0fNRXvtva8vEkG%2Fuploads%2FSsfsP7eutMsuaPuW1hVC%2Fset_length_V14.gif?alt=media&amp;token=4bed0e19-0f4b-4db9-bc48-35448a8ce270" alt=""><figcaption><p>Get/Set Curves Length</p></figcaption></figure>

### **Functions**

**Mirror**

***Global***

* Mirroring will happen across the global axis.

<figure><img src="https://454332562-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGyyK7o0fNRXvtva8vEkG%2Fuploads%2F7UqQ4AxjGZjGDrygse7d%2Fmirror_global.gif?alt=media&amp;token=f34f18d6-c344-4f33-b4bd-3a010d672588" alt=""><figcaption></figcaption></figure>

***Custom Mesh***

* Mirroring will happen across the bounding box axis of the set mesh.

<figure><img src="https://454332562-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGyyK7o0fNRXvtva8vEkG%2Fuploads%2Fa8zG3MqZuskVNXJuK4Mu%2Fmirror_cutsom_mesh.gif?alt=media&amp;token=420801eb-f761-4eea-b310-55546630857c" alt=""><figcaption></figcaption></figure>

**Lattice**&#x20;

* Maya's default Lattice function.

<figure><img src="https://454332562-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGyyK7o0fNRXvtva8vEkG%2Fuploads%2FoPoEiKUvsXuFf6hqvbvj%2Flattice_V14.gif?alt=media&amp;token=86e49f96-fbf5-423f-8a89-9b6227d5f2d4" alt=""><figcaption><p>Using Lattice On Curves and Baking it</p></figcaption></figure>

**Check Overlapping Curves**&#x20;

* From selected curves, check if curves are sitting within the threshold distance.&#x20;

<figure><img src="https://454332562-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGyyK7o0fNRXvtva8vEkG%2Fuploads%2FbKeM3ewdoHpz0OOw1OXB%2Foverlapping_curves_V14.gif?alt=media&amp;token=75f982d7-0dc9-4a96-968b-8dd5946c83be" alt=""><figcaption><p>Check for Overlapping Curves</p></figcaption></figure>

**Length Check**

* Without selecting anything in scene, set a length, and click on Select. The tool will select all curves that are shorter than the defined length in scene. This can be useful to clean up curves that has almost 0 length in scene.
