Resultados 1 al 13 de 13

Tema: Listas python

  1. #1
    Usuario Avanzado
    Fecha de ingreso
    Sep 2008
    Ubicación
    VALENCIA
    Mensajes
    186
    Gracias (Dadas)
    10
    Gracias (Recibidas)
    20

    Blender Listas python

    Muy buenas, una pregunta. He hecho un pequeño script para probar, he creado una lista vacía. Lista = []. Y luego he creado un botón que al pulsarlo me añade la posición de un cubo a la lista.

    Mediante append().

    La pregunta es ¿cómo puedo hacer para que al guardar el archivo y al volver a abrirlo recuerde esa lista?
    Espero haberme explicado bien. Gracias.
    si quieres ver algo mas...... www.rulflinks.blogspot.com

  2. #2
    Ninja Fever Avatar de Mars Attacks
    Fecha de ingreso
    Jun 2003
    Ubicación
    Castellón
    Mensajes
    12,746
    Gracias (Dadas)
    339
    Gracias (Recibidas)
    343

    Listas python

    No puedes. Tendrías que guardar esa información en algún tipo de estructura de datos en un fichero del ordenador y recuperarla posteriormente leyéndola de nuevo (y, dependiendo de lo que hagas, podría no ser una lista valida). ¿Qué quieres hacer exactamente?

  3. #3
    Usuario Avanzado
    Fecha de ingreso
    Sep 2008
    Ubicación
    VALENCIA
    Mensajes
    186
    Gracias (Dadas)
    10
    Gracias (Recibidas)
    20

    Listas python

    Gracias por la respuesta. Lo que quería hacer es memorizar la posición de los huesos(que los añadía en la lista) para grabar gestos en el rig facial que estoy haciendo.
    si quieres ver algo mas...... www.rulflinks.blogspot.com

  4. #4
    Usuario Avanzado
    Fecha de ingreso
    Sep 2008
    Ubicación
    VALENCIA
    Mensajes
    186
    Gracias (Dadas)
    10
    Gracias (Recibidas)
    20

    Listas python

    pose library.
    si quieres ver algo mas...... www.rulflinks.blogspot.com

  5. #5
    Pythoniano Avatar de JEMV
    Fecha de ingreso
    Aug 2009
    Ubicación
    Republica Dominicana
    Mensajes
    57
    Gracias (Dadas)
    10
    Gracias (Recibidas)
    7

    Listas python

    Puedes almacenar el contenido de la lista en un archivo de texto, luego cuando ejecutes el código nuevamente buscas el archivo de texto mediante códigos y agregas el contenido a la lista que creaste. Pero ya sabrás que tendrás que hacer otro pequeño script que vaya dividiendo cada parte del dato que hay en el archivo de texto puesto que si agregas directamente el contenido a la lista se almacenara como un solo elemento. Suerte.
    Jemv(Jose Ernesto Morales Ventura)

  6. #6
    Moderador Avatar de Klópes
    Fecha de ingreso
    Jul 2005
    Ubicación
    Estuve el día que llovió en los Monegros
    Mensajes
    8,034
    Gracias (Dadas)
    501
    Gracias (Recibidas)
    901

    Listas python

    Si quieres guardar información en un proyecto de Blender puedes crear un texto y escribir los datos en él, con el submódulo Bpy, ops, text.
    ...y estaba superbueno.
    Y miré su perfil. Y vi que era amigo de Daniela. Puaf.


    Dos niñas en el parque

    no se elevará, nunca más

  7. #7
    BlenderAdicto Avatar de Caronte
    Fecha de ingreso
    Dec 2004
    Ubicación
    Valencia-España
    Mensajes
    14,689
    Gracias (Dadas)
    174
    Gracias (Recibidas)
    770

    Listas python

    Y por que no usas la librería de posturas de Blender, que para eso está y funciona perfectamente?
    "Algún día todo será digital". Caronte.
    Mi web: NicoDigital.com

  8. #8
    Usuario Avanzado
    Fecha de ingreso
    Sep 2008
    Ubicación
    VALENCIA
    Mensajes
    186
    Gracias (Dadas)
    10
    Gracias (Recibidas)
    20

    Listas python

    Gracias por las respuestas, estoy probando con postura library, pero todavía no me aclaro del todo. También probaré lo tuyo Klópes, aunque igual sea más útil la postura library, bueno es saber lo del texto.

    Jemv, lo tuyo me parece un poco más complejo, no domino tampoco mucho el Python.
    si quieres ver algo mas...... www.rulflinks.blogspot.com

  9. #9
    pythonized... Avatar de Cesar Saez
    Fecha de ingreso
    Mar 2004
    Ubicación
    Granada, España
    Mensajes
    3,764
    Gracias (Dadas)
    73
    Gracias (Recibidas)
    187

    Listas python

    Puedes almacenar el contenido de la lista en un archivo de texto, luego cuando ejecutes el código nuevamente buscas el archivo de texto mediante códigos y agregas el contenido a la lista que creaste. Pero ya sabrás que tendrás que hacer otro pequeño script que vaya dividiendo cada parte del dato que hay en el archivo de texto puesto que si agregas directamente el contenido a la lista se almacenara como un solo elemento.
    En Python cuentas con excelentes alternativas para serializar información, por ejemplo, el módulo pickle y/o cpickle (binario) para estas cosas está muy bien (si necesitas archivos legibles a ojo humano el módulo Json es más xml)
    -https://docs. Python.org/library/pickle.html.
    -https://docs. Python.org/library/Json.html.

    Y en cualquier caso, si salvas la lista como un string la puedes recuperar con un simple eval().

    I <3 Python.
    Última edición por Cesar Saez; 25-04-2011 a las 03:39

  10. #10
    Usuario Avanzado
    Fecha de ingreso
    Sep 2008
    Ubicación
    VALENCIA
    Mensajes
    186
    Gracias (Dadas)
    10
    Gracias (Recibidas)
    20

    Listas python

    Gracias César Sáez, he estado probando y funciona. Pero cual es la teoría? Donde se almacena? Es magia? También he probado lo de postura library, pero si esto lo puedo utilizar creo que será más cómodo.

    Por si a alguien le interesa (blender 2.57):
    Import pickle.

    Data = [(0,1,2), (3,4,5), (6,7,1)].

    F = open (data, pickle,wb) #creamos el archivo que albergara la lista, con wb le decimos que el archivo está en modo writable (escribible).

    Pickle, dump(data, pickle. Highest_protocol) #con esto añadimos la lista data al archivo data, pickle.

    Si queremos añadir valores a la lista.

    Data, append((3,6,7)).

    Pickle, dump(data, pickle. Highest_protocol) # como data ha cambiado volvemos a decirle que añada data al archivo.

    F, close () #cerramos el archivo data, pickle.

    Para retomarlo o leerlo:
    F = open(data, pickle,RB) #llamamos al archivo, pero en modo lectura RB.

    Data = pickle, load(f).
    >>> data.
    [(0,1,2), (3,4,5), (6,7,1), (3,6,7)].
    Última edición por rulflink; 25-04-2011 a las 19:26
    si quieres ver algo mas...... www.rulflinks.blogspot.com

  11. #11
    Moderador Avatar de Klópes
    Fecha de ingreso
    Jul 2005
    Ubicación
    Estuve el día que llovió en los Monegros
    Mensajes
    8,034
    Gracias (Dadas)
    501
    Gracias (Recibidas)
    901

    Listas python

    Rulflink, el módulo pickle se encarga de guardar los datos de forma ordenada y estructurada, incluyendo los tipos y longitudes. De esa manera no necesites controlar que estas escribiendo y leyendo directamente. Es la forma rápida y eficiente de manejar ficheros en Python.
    ...y estaba superbueno.
    Y miré su perfil. Y vi que era amigo de Daniela. Puaf.


    Dos niñas en el parque

    no se elevará, nunca más

  12. #12
    Usuario Avanzado
    Fecha de ingreso
    Sep 2008
    Ubicación
    VALENCIA
    Mensajes
    186
    Gracias (Dadas)
    10
    Gracias (Recibidas)
    20

    Listas python

    Buenas, he investigado sobre las dos vertientes (pose library y modulo pickle), y en las dos me he quedado atascado. A ver si alguien me puede ayudar.
    pose library: mi intención es cambiar las posturas mediante sliders, lo único que se me ha ocurrido es añadirle constraints action a los huesos con target en un empty en location x.

    Entonces sería la posición del empty lo que movería el slider para colocar una pose, no hay ningún problema hasta que intento mover un hueso, que se vuelve loco.
    ¿Cómo podría añdirle un driver a una postura de postura library sin pasar por colocar acciones?
    modulo pickle: ya se crear el archivo donde se añadirán los datos, incluso puedo hacer la carpeta real(f = open(/tmp/nombre, txt,wb)), pero así solo funcionaria en mí propio ordenador.

    No sé cómo puedo fijar el archivo dentro de mi archivo blend, (como empaquetar texturas), para que si yo cambiara el archivo de ordenador pudiera seguir trabajando, para así ser más cómodo.

    Y no tener que acordarse de guardar el archivo.

    Espero haberme explicado bien. Gracias.
    si quieres ver algo mas...... www.rulflinks.blogspot.com

  13. #13
    pythonized... Avatar de Cesar Saez
    Fecha de ingreso
    Mar 2004
    Ubicación
    Granada, España
    Mensajes
    3,764
    Gracias (Dadas)
    73
    Gracias (Recibidas)
    187

    Listas python

    Yo ni idea de Blender, pero siempre puedes salvar/cargar el serializado de pickle a un string y guardarlo en un atributo de la escena (¿se pueden crear Custom Attributes en Blender?)
    El código es prácticamente igual, pickle, dumps() y picle, loads().

    De todas formas, me extrañaría mucho que teniendo una herramienta para salvar/cargar posturas tengas que re-programarla por ti mismo, seguro que mirando la documentación puedes llegar a algo que te funcione con las herramientas de serie, no lo descartes de entrada sólo porque Python mola mucho.

Temas similares

  1. Blender Set visible Python BGE
    Por Juani en el foro Programación y Scripts
    Respuestas: 0
    : 16-01-2016, 09:30
  2. Blender Applymovement python BGE
    Por Juani en el foro Programación y Scripts
    Respuestas: 0
    : 11-01-2016, 07:20
  3. 3ds Max Instalación de python
    Por martha_ezv en el foro Discusiones generales
    Respuestas: 2
    : 12-05-2009, 17:43
  4. Respuestas: 83
    : 24-04-2006, 18:07
  5. Api de Python
    Por Klópes en el foro Plugins
    Respuestas: 2
    : 24-03-2006, 11:46