Thursday, November 24, 2011

A little utility / Una pequeña utilidad



Siempre he sido un gran fan de salvar mis archivos en sucesivas versiones, en maya echaba de menos la función por defecto que existe en 3d studio max.
En vez de ponerme a buscar algo parecido, he aprovechado un ratín para crear un pequeño script que hace mas o menos lo mismo (siempre que no superes las 999 versiones de tu archivo).
No ha sido testeado intensivamente, así que si lo usos hazlo bajo tu propia responsabilidad ;)

def savePro():
    """
    This script save progressive versions of your file
    """
    import maya.cmds as cmds
    import os
    myDirectory = cmds.file( query=True, sceneName=True)
 
    fileName = os.path.split(myDirectory)
 
    
    cleanName =os.path.splitext(fileName[1])[0]
    extension =os.path.splitext(fileName[1])[1]
    
    if "_v" in str(cleanName):
        name = cleanName.rsplit("_v")[0]
        version = cleanName.rsplit("_v")[1]
        newVersion = str(int(version) + 1)
        if len(newVersion)==1:
            newVersion = "00" + newVersion
        elif len(newVersion)==2:
            newVersion = "0" + newVersion
        elif len(newVersion)>999:
            print "Maximun number reached"
            
        cleanName = name + "_v" + newVersion
              
    else:
        cleanName= cleanName + "_v001"
    
    newName = cleanName + extension
    newDirectory = os.path.join(fileName[0],newName)
    cmds.file( rename=newDirectory)
    cmds.file( force=True, save=True)
    print newDirectory
    return newDirectory
savePro()