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.
Python : obtener cámaras desde un maya-ma
Cita:
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.
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"].
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.
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.