Entradas populares

miércoles, 3 de noviembre de 2010

configurandolo todo

lo primero comentaros como tengo yo todo preparado para trabajar

suelo trabajar con eclipse como ide para los scripts, con el subversive como conexion a subversion y el pydev.
tambien tengo el qtdesigner para diseñar las interfaces, todo lo podeis descargar y configurar tal y como cuenta en esta pagina 

mi modo de trabajar es bastante basico, en eclipse escribo las classes o los metodos y desde maya las llamo, intento no desarrollar nada en maya, sobre todo por lo facil que es perder un script cuando cometes un fallo y el script no acaba

hay tambien una conexion eclipse->maya que esta bastante bien para los scripts en mel

de toda la configuracion lo mas complejo es el autocompletar, me ha dado algunos fallos pero siguendo las instrucciones de la web que he puesto funciona bastante bien

tengo configurado dos interpretes de python en el eclipse, uno el python 2.6 y otro el mayapy del maya 2011 que es con el que suelo correr los scripts, asi desde eclipse puedo lanzar tareas a maya.

luego tengo el script mas importante en este momento de mi arsenal, el que me permite facilmente ejecutar cualquier script dentro de maya, lo copie de esta pagina

import sys, os
SZ_MAYA_LOCATION = 'C:/Program Files/Autodesk/Maya2011'

def MayaPython(func):
    def MayaEnvironWrapper(*args):
        os.environ["MAYA_LOCATION"] = SZ_MAYA_LOCATION
        sys.path.append(os.environ["MAYA_LOCATION"] + "/Python/lib/site-packages")
        import maya.standalone
        import maya.mel as mel
        maya.standalone.initialize(name = 'python') 
        version = mel.eval('getApplicationVersionAsFloat')
        print 'ejecutando maya version %s' % version
        # extra initialization scripts
        #maya.mel.eval('source "initialStartup.mel"') 

        return func(*args)
    # end of MayaEnvironWrapper

    return MayaEnvironWrapper
# end of MayaPython


este script nos permite definir metodos y funciones que se ejecuten dentro de maya simplemente importando esta funcion y poniendo "@MayaPython" en la linea anterior a la definicion de nuestra clase, por ejemplo

from MItools.maya_tools import MayaPython
import MImayaObjects.scene as MIscene

@MayaPython
def MIrender_vray(path):
    scene=MIscene.scene(scenePath = path)
    scene.abre_file()
    scene.lanza_render()
  

ERrender_vray('c:/directorio/projecto/archivo.mb')


este script nos abrira el archivo y lo lanzara a render, realmente lo que estamos haciendo al poner @MayaPython es pasar la funcion que estamos definiendo como argumento para la funcion MayaPython(), que esta ejecuta al final, asi tenemos un modo muy facil de ejecutar scripts sobre maya sin abrir la interface

No hay comentarios:

Publicar un comentario