cwisbg

Save Materials

Apr 28th, 2013
251
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.56 KB | None | 0 0
  1. # Material Utility
  2. # Save Materials
  3. from pymel.core import *
  4. def saveMat(s):
  5.     try:
  6.         objSG = s.getShape().listConnections(s, t = "shadingEngine")
  7.     except:
  8.         print "cant save mat for ", s
  9.         pass                
  10.     return objSG
  11. def readMat(*args):  
  12.     global saveFile, w
  13.     filePath = fileDialog2(dir = w, ds=1, fm = 1 )[0].replace("\\","/")  
  14.     readFile = open(filePath,"r").readlines()
  15.     formated = []
  16.     for item in readFile:
  17.         item = item.split(":")
  18.         formated.append(item)
  19.     for obj in formated:
  20.         try:
  21.             sets(obj[1], forceElement = obj[0] )
  22.         except:
  23.             print "cant assign mat",obj[1], "And objects obj", obj[0]
  24.     print "done assigning materials"          
  25. def writeMat(*args):
  26.     global saveFile, w
  27.     w = workspace(act=1, q=1)
  28.     filePath = fileDialog2(dir = w, ds=1, fm = 3 )[0].replace("\\","/")  
  29.     saveFile = open(filePath+"/materialSaver.txt", "w+")    
  30.     sl = selected()
  31.     for s in sl:
  32.         objMat = saveMat(s)
  33.         try:
  34.             writer = s + ":" + objMat[0] + "\r\n"
  35.             saveFile.write(writer)
  36.         except:
  37.             pass
  38.     saveFile.close()
  39.     print "done getting materials"
  40. sl = selected()
  41. # Gui
  42. win = window(title= "Material Utility", s=0)
  43. mainLayout = rowColumnLayout(nc=1)
  44. #saveLocation = button(l="Save file Location", command=Callback(getLocation))
  45. saveMaterialsBtn = button(l="Save Materials", command=Callback(writeMat))
  46. getMaterialsBtn = button(l="Get Materials", command=Callback(readMat))
  47. win.show()
Advertisement
Add Comment
Please, Sign In to add comment