Página 1 de 2 12 ÚltimoÚltimo
Resultados 1 al 10 de 18

Tema: Python como nombrar objetos si los creo en un for

  1. #1
    Nivel Héroe
    Fecha de ingreso
    Dec 2007
    Mensajes
    681
    Gracias (Dadas)
    68
    Gracias (Recibidas)
    66

    pythoncómo nombrar objetos si los creo en un for

    Seguro que alguien me mata por hacer esta pregunta, pero llevo dándole y dándole y no lo saco. Tengo una clase luces de la cual quiero crear todas las luces que tenga en la escena.

    Hago una tupla con las luces (guay).

    Accedo a sus atributos por separado cuando instancio al objeto dentro de un for que recorre la tupla (guay).

    Ahora, como puedo nombrar a cada objeto dentro del for? Creo los objetos de la forma.

    Seqluces = luces(x y, z).

    Pero no sé cómo hacer que nombre los objetos del modo luz + posición del iterable.

    Edito: los objetos se crean en la forma <__main__. Luces instance at 0x00.>.

    Es algo super básico, lo sé, pero no consigo sacarlo.
    Última edición por Sayden; 03-02-2009 a las 22:57

  2. #2
    Vampiro Giovanni
    Fecha de ingreso
    Feb 2004
    Mensajes
    4,953
    Gracias (Dadas)
    18
    Gracias (Recibidas)
    105

    pythoncómo nombrar objetos si los creo en un for

    Para que programa es el script?

  3. #3
    Vampiro Giovanni
    Fecha de ingreso
    Feb 2004
    Mensajes
    4,953
    Gracias (Dadas)
    18
    Gracias (Recibidas)
    105

    pythoncómo nombrar objetos si los creo en un for

    De todas formas, debería ser algo tipo: For i in range (len(tupla_luces)): Tupla_luces[i].name = luz + i. No sé si es lo que buscas.

  4. #4
    Nivel Héroe
    Fecha de ingreso
    Dec 2007
    Mensajes
    681
    Gracias (Dadas)
    68
    Gracias (Recibidas)
    66

    pythoncómo nombrar objetos si los creo en un for

    Hombre Pepius. Has visto que bien estoy aprendiendo Python ¿eh? Es para Autodesk Maya, pero concretamente esto creo que da igual para lo que sea, que es más dependiente de Python.

    El atributo .name al instanciar un objeto existe? Acabo de intentarlo, pero tampoco funciona.

    No obstante me has dado una idea. Cuando estaba creando el objeto lo hacía de la forma:
    I = luces (x y, z).

    Ahora lo he cambiado y he puesto.

    El nombre = luces (x y, z).

    Y ahora el objeto se llama de la misma manera que se llama el mismo objeto en la escena. Sigue sin ser lo que quería, pero me voy acercando.

  5. #5
    Vampiro Giovanni
    Fecha de ingreso
    Feb 2004
    Mensajes
    4,953
    Gracias (Dadas)
    18
    Gracias (Recibidas)
    105

    pythoncómo nombrar objetos si los creo en un for

    Por eso te preguntaba que en qué programa trabajas, porque los atributos de la clase luz depende del paquete. Pero a ver si me aclaro. Tu tienes una serie de luces en la escena, y las has puesto en una tupla y quieres renombrarlas? o estas creando las luces? Un saludo.

  6. #6
    Nivel Héroe
    Fecha de ingreso
    Dec 2007
    Mensajes
    681
    Gracias (Dadas)
    68
    Gracias (Recibidas)
    66

    pythoncómo nombrar objetos si los creo en un for

    Quiero crear una tupla con las luces que haya en la escena (ya creadas) para luego agruparlos en una ventana con los atributos intensidad, samples y color (que con este ya me pelearé por ser tres valores).

    La clase ya la tengo hecha, creo que bien:
    Class luces:
    Def __init__ (self, lightintensity, lightcolor, subdivisiones).

    Self, lightintensity = lightintensity.

    Self, lightcolor = lightcolor.

    Self, subdivisiones = subdivisiones.
    #luego creo la tupla.

    Tuplaluces = CMDS, ls (typ=vraylightrectshape).
    #y el bucle.

    For I in tuplaluces:
    Intensidad = CMDS, getattr(i +.intensitymult).

    Color.

    Subdivisiones.

    Luz = luces(intensidad, color, subdivisiones).
    #aquí le meto un print para comprobar.

    Print para la luz %s % i.

    Print intensidad %i % intensidad.

    Print subdivisiones y subdivisiones +.

    Básicamente creo que no hay nada más, es que no podía copiar y pegar por que el ordenador con el que trabajo no huele internet por temas de rendimiento y virus. Con este código me devuelve:
    Para la luz Vray Light Direct Shape 1.

    Intensidad = 30.

    Subdivisiones = 8. Un saludo y gracias.

    Edito: está bien identificado y todo, es que, aquí no lo ha mostrado bien.
    Última edición por Sayden; 04-02-2009 a las 00:39

  7. #7
    pythonized...
    Fecha de ingreso
    Mar 2004
    Mensajes
    3,762
    Gracias (Dadas)
    73
    Gracias (Recibidas)
    188

    pythoncómo nombrar objetos si los creo en un for

    Como quieres renombrar un objeto en Maya claro que es específico para cada software/SDK, en Maya lo puedes hacer con el comando rename.

    No tengo Maya en frente, pero debería ser algo así.
    Código:
    import Maya, CMDS as CMDS.
    For I in range (len(tupla_luces)):
    Newname = luz%s % (i).
    Cmds, rename (tupla_luces[i], newname)

  8. #8
    Nivel Héroe
    Fecha de ingreso
    Dec 2007
    Mensajes
    681
    Gracias (Dadas)
    68
    Gracias (Recibidas)
    66

    pythoncómo nombrar objetos si los creo en un for

    Como quieres renombrar un objeto en Maya claro que es específico para cada software/SDK, en Maya lo puedes hacer con el comando rename.

    No tengo Maya en frente, pero debería ser algo así.
    Código:
    import Maya, CMDS as CMDS.
    For I in range (len(tupla_luces)):
    Newname = luz%s % (i).
    Cmds, rename (tupla_luces[i], newname)
    No ya, si no es que quiera renombrar el objeto. Quiero saber cómo se llama el objeto:clase que cree para apuntar a el dentro del código. No al objeto geométrico de Maya.

    Es que no sé cómo apuntar a los objetos que instancio de la clase luz porque no sé cómo se llaman al crearlos.

  9. #9
    Vampiro Giovanni
    Fecha de ingreso
    Feb 2004
    Mensajes
    4,953
    Gracias (Dadas)
    18
    Gracias (Recibidas)
    105

    pythoncómo nombrar objetos si los creo en un for

    A ver, según lo que hace tu bucle, siempre asignas cada nueva instancia de la clase luces, a la variable luz, y para lo único que usas la tupla es para la longitud del bucle (si no recuerdo mal de Python). Entonces al final del bucle tendrías una sola instancia, dentro de la variable luz.

    Yo haría algo así (ya te digo que de Autodesk Maya, ni idea, igual tienes que cambiar algo, o igual ni sirve).

    For I in range (len(tupla_luces)):
    Tupla_luces[i] = luces(arg1, arg2, arg3).

    Eso te dejaría algo así:
    Tupla_luces = [instancia_luz, instancia_luz, instancia_luz, instancia_luz.].

    Y ahí es donde puedes después acceder a la luz que tú quieras. Para acceder a la primera luz, pues tupla_luces[0], y así sucesivamente. Un saludo.

  10. #10
    reconvertido
    Fecha de ingreso
    Apr 2002
    Mensajes
    14,922
    Gracias (Dadas)
    131
    Gracias (Recibidas)
    873

    pythoncómo nombrar objetos si los creo en un for

    Lo que dice Pepius, en 3dsmax se llama array, e imagino que en Maya recibirá el mismo nombre.

Página 1 de 2 12 ÚltimoÚltimo

Temas similares

  1. Blender Python Blender - Asignar coordenadas a objetos desde una lista
    Por Ana1811 en el foro Programación y Scripts
    Respuestas: 1
    Último mensaje: 31-03-2023, 12:37
  2. ZBrush Cómo nombrar las Subtool
    Por Grao en el foro Modelado
    Respuestas: 3
    Último mensaje: 06-06-2020, 14:17
  3. Blender Detectar objetos con ratón Python BGE
    Por Juani en el foro Programación y Scripts
    Respuestas: 2
    Último mensaje: 11-11-2015, 22:10
  4. 3ds Max Cómo nombrar los diferentes tipos de 3d
    Por fighter41 en el foro Infografía General
    Respuestas: 3
    Último mensaje: 06-01-2012, 20:07
  5. Nombrar objetos hechos a mano de nombre serial
    Por juliux en el foro Programación y Scripts
    Respuestas: 2
    Último mensaje: 10-07-2009, 18:28