def layoutUVs(): # Variables and selection rot = cmds.radioButtonGrp('rot', q=True, sl=True) cmds.ConvertSelectionToShell() cmds.ConvertSelectionToUVs() # Choosing rotation mode if (rot == 1): layoutSettings = 'polyMultiLayoutUV -lm 1 -sc 1 -rbf 0 -fr 1 -ps 0.2 -l 2 -psc 2 -su 1 -sv 1 -ou 0 -ov 0;' elif (rot == 2): layoutSettings = 'polyMultiLayoutUV -lm 1 -sc 1 -rbf 1 -fr 1 -ps 0.2 -l 2 -psc 2 -su 1 -sv 1 -ou 0 -ov 0;' else: layoutSettings = 'polyMultiLayoutUV -lm 1 -sc 1 -rbf 2 -fr 1 -ps 0.2 -l 2 -psc 2 -su 1 -sv 1 -ou 0 -ov 0;' maya.mel.eval(str(layoutSettings)) # Actual layout command
def unwrapBySeams(): # Variables and Selection unf = cmds.checkBox('unf', q=True, v=True) lyt = cmds.checkBox('lyt', q=True, v=True) selEdges = cmds.ls(sl=True) cmds.ConvertSelectionToShell() cmds.polyForceUV(unitize=True) cmds.ConvertSelectionToEdges() cmds.select(selEdges, d=True) cmds.polyMapSewMove() # Unfold if chosen if (unf == 1): cmds.unfold() # Layout if chosen if (lyt == 1): cmds.select(selEdges) cmds.ConvertSelectionToShell() cmds.ConvertSelectionToUVs() cmds.polyLayoutUV(sc=1, ws=True, rbf=2)
def UVoverlap(*args): global selection global display8, UVolface cmds.select(selection) NameList_Uvoverlap = [] cmds.ConvertSelectionToFaces() UVolface = cmds.polyUVOverlap(oc=True) cmds.select(UVolface) cmds.ConvertSelectionToShell() NameList = cmds.ls(sl=True) cmds.select(clear=1) cmds.hilite(replace=True) print UVolface for i in NameList: NameList_Uvoverlap.append(i.split('.')[0].encode('utf8')) if len(NameList_Uvoverlap) != 0: display8 = 1 return NameList_Uvoverlap
def UvLose(*args): global display7 global selection, ulface cmds.select(selection) NameList_Uvlose = [] cmd = r'polyCleanupArgList 4 { "0","2","0","0","0","0","0","0","0","1e-05","0","1e-05","1","0","0","-1","0","0" };' result = mm.eval(cmd) ulface = cmds.ls(sl=True) cmds.ConvertSelectionToShell() NameList = cmds.ls(sl=True) cmds.select(clear=1) cmds.hilite(replace=True) print ulface for i in NameList: NameList_Uvlose.append(i.split('.')[0].encode('utf8')) if len(NameList_Uvlose) != 0: display7 = 1 return NameList_Uvlose
def OverSides(*args): global selection global display3, osface cmds.select(selection) NameList_Os = [] cmd = r'polyCleanupArgList 4 {"0","2","0","0","1","0","0","0","0","1e-05","0","1e-05","0","0","0","-1","0","0" }' result = mm.eval(cmd) osface = cmds.ls(sl=True) cmds.ConvertSelectionToShell() NameList = cmds.ls(sl=True) cmds.select(clear=1) cmds.hilite(replace=True) print osface for i in NameList: NameList_Os.append(i.split('.')[0].encode('utf8')) if len(NameList_Os) != 0: display3 = 1 return NameList_Os
def OpenEdge(*args): global selection global display5 global opedge NameList_Oe = [] cmds.select(selection) # 选择约束开放边 pm.polySelectConstraint(where=1, type=0x8000, mode=3) opedge = cmds.ls(sl=True) print opedge cmds.ConvertSelectionToShell() NameList = cmds.ls(sl=True) # 重置约束 cmd = r'resetPolySelectConstraint' result = mm.eval(cmd) cmds.select(clear=1) cmds.hilite(replace=True) for i in NameList: NameList_Oe.append(i.split('.')[0].encode('utf8')) if len(NameList_Oe) != 0: display5 = 1 return NameList_Oe
def unwrapByAngle(): unf = cmds.checkBox('unf', q=True, v=True) lyt = cmds.checkBox('lyt', q=True, v=True) cmds.polyForceUV(unitize=True) cmds.selectType(pe=True) cmds.polySelectConstraint(m=3, t=0x8000, sm=2) # Constrains selection to soft edges selEdges = cmds.ls(sl=True) cmds.polyMapSewMove() cmds.polySelectConstraint(sm=0) # Turns off constraint # Unfold if chosen if (unf == 1): cmds.unfold() # Layout if chosen if (lyt == 1): cmds.select(selEdges) cmds.ConvertSelectionToShell() cmds.ConvertSelectionToUVs() cmds.polyLayoutUV(sc=1, ws=True, rbf=2)
import maya.cmds as mc import maya.mel as mel oEdges = mc.ls(sl=True) oObj = oEdges[0].split('.')[0] oFace = '' for i in oEdges: if '.f[' in i: oFace = i mc.DetachComponent() mc.select(cl=True) mc.select(oFace) mc.ConvertSelectionToShell() oFacesFinal = mc.ls(sl=True) mc.select(oObj) mc.polyMergeVertex(d=0.0001) mc.select(oFacesFinal) mc.selectType(smp=0, sme=0, smf=1, smu=0, pv=0, pe=0, pf=1, puv=0) mc.hilite(oObj, r=True) mel.eval('doDelete;') mc.select(oObj, r=True) mc.polyCloseBorder()
def selShellFn(self): cmds.ConvertSelectionToShell()