Resultados 1 al 5 de 5

Tema: Python obtener cámaras desde un Maya ma

  1. #1
    Fecha de ingreso
    Feb 2009
    Mensajes
    3

    Python : obtener cámaras desde un maya-ma

    Hola, estoy intentando realizar un script en Python (soy novato programando), donde pueda obtener una lista de las cámaras que hay en un Maya, ma.

    Hasta ahora he conseguido isolar las líneas del archivo dónde están los nodos de la cámara, pero no sé cómo obtener el nombre de las mismas que hay al final de la línea e introducirlo en una lista:
    Ejemplo:
    #linea del archivo Maya, ma:
    Createnode Camera -s -n perspshape -p perspectiva.

    Y el script que tengo hasta ahora:
    Def file ():
    Tfname = open( ubicación archivo en mí PC, r) tcameras = [] tfor line in fname:
    If createnode Camera in line:
    # aquí es donde debiera obtener el nombre de la cámara t cameras, append() treturn cameras. Gracias por la ayuda.

    Borja.

  2. #2
    Fecha de ingreso
    Dec 2007
    Mensajes
    678

    Python : obtener cámaras desde un maya-ma

    Hola, estoy intentando realizar un script en Python (soy novato programando), donde pueda obtener una lista de las cámaras que hay en un Maya, ma.

    Hasta ahora he conseguido isolar las líneas del archivo dónde están los nodos de la cámara, pero no sé cómo obtener el nombre de las mismas que hay al final de la línea e introducirlo en una lista:
    Ejemplo:
    #linea del archivo Maya, ma:
    Createnode Camera -s -n perspshape -p perspectiva.

    Y el script que tengo hasta ahora:
    Def file ():
    Tfname = open( ubicación archivo en mí PC, r) tcameras = [] tfor line in fname:
    If createnode Camera in line:
    # aquí es donde debiera obtener el nombre de la cámara t cameras, append() treturn cameras. Gracias por la ayuda.

    Borja.
    Hola y bienvenido.

    Yo también soy novato programando, pero, en donde pones cameras, append() no deberías añadir exactamente que quieres agregar?
    Quiero decir, en este caso no debería ser algo como cameras, append(line) (es que este comando no sé si puedes meterle argumentos).

    Por lo que creo, estas comprobando si la línea tiene ese string y, si lo tiene, agrega un índice a la lista, pero cual?
    Recalco que yo también soy novato y puedo estar equivocado.
    Última edición por Sayden; 09-02-2009 a las 09:08

  3. #3
    Fecha de ingreso
    Feb 2009
    Mensajes
    3

    Python : obtener cámaras desde un maya-ma

    Hola. Tienes razón, en cuanto al uso de append (en el script falta el argumento). El for loop busca las líneas de texto que contienen createnode Camera, donde al final de la línea pone el nombre de la cámara que contiene la escena -p perspective, -p front.

    Donde me lio es intentando meter el valor de -p en una variable que sería el argumento usado en el append, para añadir las cámaras a la lista.

    Por ejemplo:
    Def file ():
    Fname = open( ubicación archivo en mí PC, r).

    Cameras = [].

    For line in fname:
    #esta línea la he puesto para que solamente se lean las líneas del archivo donde.
    #esta el nombre de la cámara (-p nombre).

    If createnode Camera in line:
    # no sé exactamente cómo hacerlo, pero el script debería tomar el valor de -p por cada #linea que contenga createnode Camera y usarlo para crear la lista.

    Cameras, append(-p).

    Return cameras.
    #[front,top,side, perspective, rendercam,projectcam.n"].

  4. #4
    Fecha de ingreso
    Dec 2007
    Mensajes
    678

    Python : obtener cámaras desde un maya-ma

    Pero tiene que ser desde un archivo (*.ma) obligatoriamente? Es que es mucho más sencillo hacerlo desde la línea de comandos de Python de Maya sería algo, así como:
    #importa el intérprete de comandos Mel a Python.

    Import Maya, CMDS as CMDS.
    #crea una lista con los objetos cámaras (y sus atributos).

    Lista[] = CMDS, ls (cameras=true).

    Y tendrías una lista con los objetos cámaras.

    Sino, para hacerlo como dices, deberías meterte en la Api de Python a mirar la zona de string y ficheros de tal manera que:
    Que encuentre las líneas con createnode Camera.

    Que recoja el valor en string -p + string hasta el final de línea.

    Que cuente 3 caracteres (- P y [espacio]) y te devuelva el string que hay hasta el final de la línea.

    Seguro que hay otra forma más sencilla, o un comando que lo hace directo, como ya te he comentado, échale un ojo a la Api: http://docs. Python.org/contents.html.

  5. #5
    Fecha de ingreso
    Feb 2009
    Mensajes
    3

    Python : obtener cámaras desde un maya-ma

    Hola. Al final es más simple de lo que creía (como suele ser: Simplemente usando un Split y usando un print desde el final de la lista:
    For line in fname:
    If createnode Camera in line:
    Lista = line, Split().

    Print lista[-1:].

    Nos serviría para obyener el nombre de las cámaras. Gracias por la ayuda y las sugerencias.

    Borja.

Temas similares

  1. 3dsMax Cómom ubicar cámaras en 3ds Max desde planos de AutoCAD?
    Por tyryton1717 en el foro Render, Iluminación y Cámaras
    Respuestas: 1
    : 04-04-2023, 11:45
  2. Blender Python Blender - Asignar coordenadas a objetos desde una lista
    Por Ana1811 en el foro Programación y Scripts
    Respuestas: 1
    : 31-03-2023, 11:37
  3. Maya Cómo puedo obtener este material en Maya
    Por diego_o_franco en el foro Render, Iluminación y Cámaras
    Respuestas: 0
    : 08-10-2015, 04:27
  4. Cómo cargo un archivo binario txt desde la consola de python en array
    Por opengl en el foro Programación y Scripts
    Respuestas: 0
    : 01-06-2010, 22:36
  5. Cómo obtener Maya 3d pro
    Por hicham en el foro Cine y TV VFX
    Respuestas: 3
    : 24-09-2009, 11:46