def multi_polyQuad(): args,counter = pm.ls(sl=True),1 w=400 window = pm.window(w=w,h=40) pm.columnLayout() progressMessage=pm.text(l='Running through Objects...',w=w) argName=pm.text(l='',w=w) progressControl = pm.progressBar(isInterruptable=True, beginProgress=True, maxValue=len(args), width=w) window.show() for arg in args: if pm.progressBar(progressControl, query=True, isCancelled=True ) : break progressMessage.setLabel('Cleaning up then Quadding object '+str(counter)+'/'+str(len(args))+':') argName.setLabel(arg) pm.select(arg,r=True) #cleanup mesh mel.eval('polyCleanupArgList 3 { "0","1","0","0","0","0","0","0","0","1e-05","0","1e-05","0","1e-05","0","1","0" };') #quad all polies pm.polyQuad(arg, a=30, kgb=False, ktb=False,khe=False,ws=True,ch=False) #merge all verts pm.polyMergeVertex((arg+'.vtx[0:'+str(pm.polyEvaluate(arg,v=True))+']'), d=.001,am=True,ch=0) pm.polyNormalPerVertex(arg,ufn=True) pm.polySoftEdge(arg,angle=68, ch=0) pm.progressBar(progressControl, edit=True, step=1) counter+=1 pm.progressBar(progressControl, edit=True, endProgress=True) pm.select(args, r=True) pm.selectMode(o=True) window.delete()
import pymel.core as pm sel=pm.ls(sl=True) for obj in sel: if obj.getShape().type()=='mesh': pm.polyQuad(obj,kgb=True,ws=True,khe=False,ktb=False) pm.polySoftEdge(obj,a=180) if pm.polyUVSet(obj,auv=True,q=True): if 'UVW' in pm.polyUVSet(obj,auv=True,q=True): pm.polyCopyUV(obj,uvSetNameInput="UVW", uvSetName="map1", ch=0) pm.polyUVSet(obj,uvs="UVW",delete=True) pm.delete(obj,ch=True) pm.select(sel,r=True) shaders=pm.ls(type='phong') for shader in shaders: if len(shader.split('_'))>1: name=shader.split('_')[1] else: name=shader shader.rename(name+'_MTL')