Página 1 de 1
importar datos numericos mediante python
Publicado: Lun Sep 10, 2007 10:03 am
por trifamox
hola!
necesito algo de orientación sobre como importar a blender algunos datos numéricos.
la idea es importar de un archivo ASCII una tabla de datos y después usarlos para generar KeyFrames (tipo Loc para empezar).
alguien me puede dar una mano, no se ni que función usar para empezar.
cualquier ayuda es bienvenida.
gracias!!
Re: importar datos numericos mediante python
Publicado: Mar Sep 11, 2007 1:20 pm
por trifamox
me auto respondo.
ya logré más o menos lo que quería, ahora lo tengo que refinar, si a alguien le interesa la cosa que me diga, sino post cerrado!
salud!
Re: importar datos numericos mediante python
Publicado: Mar Sep 11, 2007 4:05 pm
por yunow
Si, postealo que está bueno saber. Que es algo que una vez usaron para un video que sincronizaba musica con una animación y nunca entendí como lo hicieron.
Saludos.
Re: importar datos numericos mediante python
Publicado: Mié Sep 12, 2007 11:45 am
por observandum
Me sumo al pedido de yunow.. es posible cargar posiciones departiculas mediante un archivo tipo ascii?
Re: importar datos numericos mediante python
Publicado: Mié Sep 12, 2007 12:39 pm
por trifamox
bueno, acá les paso como adjunto el script, que todavía está muy verde, es muy poco flexible, pero considerando que es mi primer script ( y que anduvo!!) bueno...
los datos que carga son del tipo Loc, o sea posiciones en el plano X-Y, los datos tienen que estar en un archivo datos.dat en 2 columnas (también adjunto uno de prueba) en la carpeta raíz de Blender (después tengo que hacer que uno pueda elegir el archivo).
hay que tener elegido un objeto de la escena, si ya tiene un IPO asociado se borra, y ejecutar el script (Alt-P)
la idea de todo esto es poder meter al blender algunos datos de medidas experimentales (de mecánica), péndulos, carritos, tiros oblicuos, etc. y así poder reproducir los movimientos en el Blender, todavía está en pañales, pero es algo que queremos hacer en el depto. de física de la UNLP.
bueno, cualquier duda o comentario postear acá!
salud!
EDIT:
------------------------------------------------------------
parece que el archivo con extensión .dat no lo puedo subir acá, lo mando como .txt, ustedes renombrelo o cambien el nombre en el script, es irrelevante la extensión.
-------------------------------------------------------------
Re: importar datos numericos mediante python
Publicado: Jue Sep 13, 2007 12:15 pm
por trifamox
UPDATE!!!
hoy dediqué una hora más a Python. Acá dejo el script, ahora con GUI incluido. Se puede elegir el tipo de datos a importar, por ahora entre LOC, ROT y SIZE, aunque los de ROT y SIZE no se como andarán, los puse solo para probar el menú.
además ya se puede elegir el archivo con los datos mediante un browser. Ojo con esto, porque pueden elegir cualquier archivo de su pc, podria pasar cualquier cosa (?).
la GUI la creé usando el programa
Blender-Python GUI Designer, que recomiendo a cualquiera que no se quiera meter mucho con la parte de programar el GUI, de todas formas se entiende bastante mirando ejemplos comentados.
observandum: no se a que te referís con cargar posiciones de particulas. si hablás de las particulas de Blender, que yo sepa salen de los vertices o caras de una malla siempre (pero mucho no sé). si decís de cargar posiciones de objetos, si se puede, si querés te doy una mano con eso, o lo implemento al script.
Acá cuelgo la nueva versión.
Saludos!!
Re: importar datos numericos mediante python
Publicado: Jue Sep 13, 2007 1:26 pm
por observandum
si, en realidad yo quiero cargar posiciones de objetos, posiciones en XYZ desde un archivo de datos. no son las particulas de blender. Recibo ayuda.
saludos
Re: importar datos numericos mediante python
Publicado: Jue Sep 13, 2007 3:17 pm
por trifamox
bueno, eso se puede hacer, en realidad si mirás bien el script de los keyframes lo que hace es poner al objeto en una posición e insertar un keyframe ahí.
fijate si te das una idea de como hacerlo, no se si alguna vez usaste python, yo es la primera vez que lo toco.
también serviria saber si queres cargar diferentes locaciones para un objeto o locaciones de distintos objetos y algunos detalles de para que lo querés me interesarían.
saludos!
Re: importar datos numericos mediante python
Publicado: Jue Sep 13, 2007 9:58 pm
por yunow
Hola, muy bueno el codigo.
Una cosa, me falla porque al elegir el archivo sigue intentando abrir el datos.dat y no el que elegí yo. No entiendo bien a que variable se está asignando el archivo que yo seleccione que creo que debería utilizar en la linea que hace el open del archivo.
Y quizás como opinion...
Lo que se podría hacer es en el GUI tambien seleccionar que atributo se va a modificar Loc X, Loc Y, etc y que el archivo tenga como primer columna el cuadro que se quiere y 2 el valor del Ipo.
Ejemplo para Lox X.
1 100
11 -100
22 50
33 -50
44 25
55 -25
Y se puede aplicar a clualquier atributo.
Si puedo el fin de semana veo un poco el código y te ayudo.
Muy buen trabajo.
SAludos.
PD: Ya arreglé para que tome el archivo seleccionado, pero falta un default para tipo, si no elegís el tipo de importación da un error.
Re: importar datos numericos mediante python
Publicado: Jue Sep 13, 2007 10:57 pm
por trifamox
gracias por los comentarios.
lo del LocX, LocY, etc. es lo primero que traté de hacer, pero me encontré con que la función insertIpoKey() tomás como argumento ciertos valores que corresponden a LOC, ROT, etc., pero no a LOCX, ni niguno de esos.
buscando y buscando encontré algo, una nota o un mail de uno de los developers, con la idea de cambiar la cosa, sacar la función e incluir los keys como una clase, asi se tendria object.loc.x, object.loc.y, etc.. Yo creo que sería algo más flexible de esa forma, pero creo que no está implementado.
después busco si hay alguna otra forma de hacerlo.
lo de los tiempos (cuadros, frames) es fundamental, y ya lo estoy por agregar, por que eso de un punto por frame no sirve mucho que digamos.
el error del \"datos.dat\" ya lo vi, de copiar y pegar puse una linea de más, y el importador hace caso omiso al archivo que elegiste y se empaqueta con el datos.dat, claro que a mi no me dio error por mi archivo era el mismo que antes, y entonces estaba todo bien. ahora lo arreglo.
es probable que el fin de semana lo actualice un poco, lo que no se es cuando voy a terminar de preparar el final para la facultad :-P
saludos!
Re: importar datos numericos mediante python
Publicado: Vie Sep 14, 2007 9:02 am
por yunow
Ok, fijate que que puse yo, ya toma el archivo.
Si querés te ayudo a programarlo. Pero para no hacer doble trabajo avisame que querés que investigue.
Saludos.
Re: importar datos numericos mediante python
Publicado: Vie Sep 14, 2007 10:01 am
por trifamox
ahí le agregué el default a la variable tipo, y la definí fuera del if de importar, me parece más prolijo (líneas 41 y 42).
también saqué la decalración de global datos que habías agregado, porque ya estaba hecha dentro de la función abrirarchivo(). con cambiar el \"datos.dat\" por datos alcanzaba.
te recomiendo, si no lo conocés, el programa
Notepad++, que reconoce sintaxis de varios lenguajes de programación, entre ellos python.
anoche me estuve rompiendo la cabeza tratando de poner un botón tipo toggle, y un slider que aprezca solo cuando ese botón está hundido, pero no lo pude hacer, es solamente un capricho, pero si querés mirarlo.....
la idea es poner un botón para elegir si querés importar tus tiempos como frames o como tiempo real (segundos), en caso de elegir segundos habría que indicar los frames por segundo para poder convertir el tiempo a frames, para eso era el slider.
adjunto el .py modificado.
nos vemos!