Center Maya UVs with Python
Maya provides many tools to modify UVs. Due to various limitations of the native UV editor, a multitude of customized editors do exist. The ones I have used have extended significantly upon Maya's default toolset. One operation I commonly see missing, though, is to center all selected UVs. It's quite a simple operation, but can be useful. To remedy this, here's a simple script that centers the average position of all selected UVs to [0.5, 0.5]. Simply call the center_selected_uvs() method with desired UVs selected.
import maya.cmds as cmds def center_selected_uvs(): # get all selected uv positions uv_pos_raw = cmds.polyEditUV(query=True) if not len(uv_pos_raw): return # extract X and Y positions x_pos = uv_pos_raw[::2] y_pos = uv_pos_raw[1::2] # combine respective elements of each list to form (X,Y) uv_pos = zip(x_pos, y_pos) # average the position of all UVs average = [0.0, 0.0] for curr in uv_pos: average += curr average += curr average /= len(uv_pos) average /= len(uv_pos) # distance from perfect center dist_to_center = [0.5 - average, 0.5 - average] # move all UVs by distance to center to center the selection cmds.polyEditUV(relative=True, uValue=dist_to_center, vValue=dist_to_center) center_selected_uvs()