#################################################################### # written by Michael Munoz # # 3D Artist # # eleazermunoz@hotmail.com # # www.eleazermunoz.com # # # # # # Phython Script must be load in a phython shell!!! # # # # This is a alignment to quicken poly modeling # # # # 1.ZeroX, ZeroY, ZeroZ # # move selected vertices to given axis. # # # # 2.StrX, StrY, StrZ # # move selected vertices center point on given axis. # # # # 3. Algn - evenly spaces geo selected # # Adj - evenly spaces selected geo and ends are adjustable # # ADel - removes adjustability # # # # 1. select ends # # 2. then select mid peace in order # #################################################################### import maya.cmds as cmds import maya.mel as mm def vertexTranslateX (*args): vertex=cmds.ls( selection=True ) print vertex cmds.cluster( rel=True,name='clusterPosition_Cluster') cmds.spaceLocator( name='centerPoint_loc') cmds.pointConstraint ('clusterPosition_ClusterHandle','centerPoint_loc',name='adjustment_PC') CP_translationX=cmds.getAttr('centerPoint_loc.tx') cmds.select (cl=True) cmds.select (vertex) cmds.move(CP_translationX ,moveX=True, worldSpace=True) cmds.delete ('clusterPosition_ClusterHandle','centerPoint_loc') def vertexTranslateY (*args): vertex=cmds.ls( selection=True ) print vertex cmds.cluster( rel=True,name='clusterPosition_Cluster') cmds.spaceLocator( name='centerPoint_loc') cmds.pointConstraint ('clusterPosition_ClusterHandle','centerPoint_loc',name='adjustment_PC') CP_translationX=cmds.getAttr('centerPoint_loc.ty') cmds.select (cl=True) cmds.select (vertex) cmds.move(CP_translationX ,moveY=True, worldSpace=True) cmds.delete ('clusterPosition_ClusterHandle','centerPoint_loc') def vertexTranslateZ (*args): vertex=cmds.ls( selection=True ) print vertex cmds.cluster( rel=True,name='clusterPosition_Cluster') cmds.spaceLocator( name='centerPoint_loc') cmds.pointConstraint ('clusterPosition_ClusterHandle','centerPoint_loc',name='adjustment_PC') CP_translationX=cmds.getAttr('centerPoint_loc.tz') cmds.select (cl=True) cmds.select (vertex) cmds.move(CP_translationX ,moveZ=True, worldSpace=True) cmds.delete ('clusterPosition_ClusterHandle','centerPoint_loc') def alignmentFull (*args): listObjs=cmds.ls(sl=True) selSize = len(listObjs) for i in range(2,selSize,1): cmds.parentConstraint(listObjs[0], listObjs[1], listObjs[i], name= listObjs[i]+'_ParCont') weight_01 = i-1 weight_02 = selSize-i cmds.setAttr (listObjs[i]+'_ParCont.'+ listObjs[0] +'W0', weight_01) cmds.setAttr (listObjs[i]+'_ParCont.'+ listObjs[1] +'W1', weight_02) cmds.delete ('*_ParCont') def alignmentAdj (*args): listObjs=cmds.ls(sl=True) selSize = len(listObjs) for i in range(2,selSize,1): cmds.parentConstraint(listObjs[0], listObjs[1], listObjs[i], name= listObjs[i]+'_ParCont') weight_01 = i-1 weight_02 = selSize-i cmds.setAttr (listObjs[i]+'_ParCont.'+ listObjs[0] +'W0', weight_01) cmds.setAttr (listObjs[i]+'_ParCont.'+ listObjs[1] +'W1', weight_02) def alignmentDelete (*args): cmds.delete ('*_ParCont') ################################################################ if cmds.window('mMunoz_alignmentTools', exists=True): cmds.deleteUI('mMunoz_alignmentTools', window=True) cmds.window('mMunoz_alignmentTools', title="mMunoz_alignmentTools", iconName='namer') cmds.columnLayout( adjustableColumn=True ) ################################################################ cmds.frameLayout( label='Alignment', labelAlign='center', borderStyle='in') cmds.rowColumnLayout( numberOfColumns=3, columnWidth=[(1, 40), (2, 40),(3, 40)] ) cmds.button( label='Zero X', command='cmds.move(0,moveX=True, worldSpace=True)') cmds.button( label='Zero Y', command='cmds.move(0,moveY=True, worldSpace=True)') cmds.button( label='Zero Z', command='cmds.move(0,moveZ=True, worldSpace=True)') cmds.button( label='Str X', command=vertexTranslateX) cmds.button( label='Str Y', command=vertexTranslateY) cmds.button( label='Str Z', command=vertexTranslateZ) cmds.button( label='Algn', command=alignmentFull) cmds.button( label='Adj', command=alignmentAdj) cmds.button( label='ADel', command=alignmentDelete) cmds.showWindow()