Resultados 1 al 13 de 13

Tema: Listas python

  1. #1
    Fecha de ingreso
    Sep 2008
    Mensajes
    186

    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
    Fecha de ingreso
    Jun 2003
    Mensajes
    12,618

    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
    Fecha de ingreso
    Sep 2008
    Mensajes
    186

    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
    Fecha de ingreso
    Sep 2008
    Mensajes
    186

    Listas python

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

  5. #5
    Fecha de ingreso
    Aug 2009
    Mensajes
    57

    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
    Fecha de ingreso
    Jul 2005
    Mensajes
    7,953

    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
    Fecha de ingreso
    Dec 2004
    Mensajes
    14,031

    Listas python

    Y por que no usas la librería de posturas de Blender, que para eso está y funciona perfectamente?

  8. #8
    Fecha de ingreso
    Sep 2008
    Mensajes
    186

    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
    Fecha de ingreso
    Mar 2004
    Mensajes
    3,685

    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)
    -http://docs. Python.org/library/pickle.html.
    -http://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 02:39

  10. #10
    Fecha de ingreso
    Sep 2008
    Mensajes
    186

    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 18:26
    si quieres ver algo mas...... www.rulflinks.blogspot.com

  11. #11
    Fecha de ingreso
    Jul 2005
    Mensajes
    7,953

    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
    Fecha de ingreso
    Sep 2008
    Mensajes
    186

    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
    Fecha de ingreso
    Mar 2004
    Mensajes
    3,685

    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. Applymovement python BGE
    Por Juani en el foro Plugins y Scripts
    Respuestas: 1
    : 09-07-2021, 14:53
  2. Gravity Python BGE
    Por Juani en el foro Plugins y Scripts
    Respuestas: 0
    : 31-12-2015, 11:22
  3. Python en 3ds Max
    Por taidan en el foro Plugins y Scripts
    Respuestas: 1
    : 03-06-2008, 10:39
  4. Respuestas: 83
    : 24-04-2006, 17:07
  5. Api de Python
    Por Klópes en el foro Plugins y Scripts
    Respuestas: 2
    : 24-03-2006, 09:46