La intro
Dias pasados habiamos estado reviviendo un viejo tema pendiente en nuestro equipo de desarrollo de la empresa para la cual he estado trabajando los ultimos 5 años, un sistema de gestion visual en 3D de los arrendamientos de espacios fisicos a proveedores.
Para quienes no saben (la mayoria) trabajo en la Division Retail del Grupo AJ Vierci que agrupa a las dos cadenas de supermercados mas grandes del pais (PY) y a otras empresas mas pequeñas como ser las tiendas de ropas y perfumerias.
Volviendo al tema, teniamos hace tiempo una tarea pendiente, hallar un sistema para gestionar visualmente los espacios y soportes fisicos arrendados a los proveedores de productos. Desde el principio ya tenia en mente una combinacion entre Blender y Python, ya que el primero soporta scripts hechos en el lenguaje mencionado, pero habia un tema que lo hacia poco probable de implementar, la curva de aprendizaje de Blender es muy empinada al principio.
La necesidad
Descartando ya la idea original, y ya casi olvidandola, se me ocurrio pegar una ojeada por la web y me tope con SketchUp, ya habia leido varias veces ese nombre en la red y en otros lugares que no recordaba, asi que me llamo la atencion y era la oportunidad correcta para entender de que se trataba tal aplicacion.
A la primera impresion ya me habia dado cuenta de que probablemente podia servirme para algo, tal vez no en la idea original pero si para algo mas, la presentacion ya decia mucho del objetivo principal del software "3D para todo el mundo"...
El descubrimiento
No tarde mucho en descargarlo, instalarlo y empezar a investigar como utilizarlo, tutoriales sobran en la red, inclusive modelos prediseñados para descargar y reutilizar. Me tomo medio dia aprenderlo en forma basica y realizar mis primeros modelos en 3D, era tan sencillo que parecia imposible creer que ya le habia encontrado todos los comando basicos y estaba moviendolo como si lo hubiera utilizado desde hacia años. Estaban en lo cierto... era muy accesible y facil de utilizar
Volviendo a mi nuestro tema original, me puse a investigar un poco mas y halle como añadirle atributos personalizados a cada componente que iba creando, y que de estos componentes se podian generar reportes en formato HTML o CSV en forma nativa, ya iba por buen camino en ese momento.
Mas adelante lei que soportaba scripts Ruby y que podian añadirse esos scritps como plugins a la aplicacion, que en los scripts se podian realizar tareas de automatizacion y/o repetitivas, como por ejemplo diseñar desde codigo una escalera, obviamente indicando todos los parametros geometricos de la misma, cantidad de escalones, altura de cada escalon, ancho, largo, etc. A partir de esto obviamente pense que si se trataba de un lenguaje de programacion comun y silvestre podria establecerse una conexion a una fuente de datos externa y obtener de la misma los datos de atributos para los componentes, o los componentes mismos con sus atributos.
El manoseo a lo preestablecido
Empece una serie de investigaciones, sobre todo para aprender a programar en Ruby, que era lo primero que deberia hacer, luego como hacer para conectar Ruby a MySQL, que es el SGBD que tengo instalado por defecto con el WAMP. Una vez aprendido lo basico para realizar una conexion desde Ruby a MySQL y ejecutar una simple sentencia SELECT toco el turno de averiguar como hacer para añadir el plugin al SketchUp. Asi me tope con este post en el foro de sketchucation, que lo que dice basicamente es instalar la version de Ruby que corresponde con la del SketchUp en tu equipo y luego reemplazar las DLL del SketchUp por las de Ruby a fin de que pueda ejecutar los scripts sin las limitaciones que se imponen en el software base, luego bajar el archivo !loadpaths.rb y pegarlo en el directorio [Plugins] para que en cada inicio establezca los paths de acceso a los scripts Ruby y los RubyGems que son los paquetes de librerias para ejecutar tareas determinadas como en este caso acceso a MySQL.-
Las consecuencias
Hechas estas configuraciones, y algunos ajustes que luego explicare con mas tiempo ya que me estoy durmiendo, pude ejecutar el mismo script de conexion y consulta de registros de una tabla [X] desde el mismo SketchUp y desplegar los valores de campos en la consola... eso ya fue mucho para un primer encuentro face to face entre los cuatro nuevos amigos (SU, My, Ruby y yo)...
En la siguiente entrada subire los scripts de ejemplo utilizados para asignar atributos tomados desde la tabla en MySQL a un componente SketchUp, por ahora me voy a descansar.-
Parte II...
Dias pasados habiamos estado reviviendo un viejo tema pendiente en nuestro equipo de desarrollo de la empresa para la cual he estado trabajando los ultimos 5 años, un sistema de gestion visual en 3D de los arrendamientos de espacios fisicos a proveedores.
Para quienes no saben (la mayoria) trabajo en la Division Retail del Grupo AJ Vierci que agrupa a las dos cadenas de supermercados mas grandes del pais (PY) y a otras empresas mas pequeñas como ser las tiendas de ropas y perfumerias.
Volviendo al tema, teniamos hace tiempo una tarea pendiente, hallar un sistema para gestionar visualmente los espacios y soportes fisicos arrendados a los proveedores de productos. Desde el principio ya tenia en mente una combinacion entre Blender y Python, ya que el primero soporta scripts hechos en el lenguaje mencionado, pero habia un tema que lo hacia poco probable de implementar, la curva de aprendizaje de Blender es muy empinada al principio.
La necesidad
Descartando ya la idea original, y ya casi olvidandola, se me ocurrio pegar una ojeada por la web y me tope con SketchUp, ya habia leido varias veces ese nombre en la red y en otros lugares que no recordaba, asi que me llamo la atencion y era la oportunidad correcta para entender de que se trataba tal aplicacion.
A la primera impresion ya me habia dado cuenta de que probablemente podia servirme para algo, tal vez no en la idea original pero si para algo mas, la presentacion ya decia mucho del objetivo principal del software "3D para todo el mundo"...
El descubrimiento
No tarde mucho en descargarlo, instalarlo y empezar a investigar como utilizarlo, tutoriales sobran en la red, inclusive modelos prediseñados para descargar y reutilizar. Me tomo medio dia aprenderlo en forma basica y realizar mis primeros modelos en 3D, era tan sencillo que parecia imposible creer que ya le habia encontrado todos los comando basicos y estaba moviendolo como si lo hubiera utilizado desde hacia años. Estaban en lo cierto... era muy accesible y facil de utilizar
Volviendo a mi nuestro tema original, me puse a investigar un poco mas y halle como añadirle atributos personalizados a cada componente que iba creando, y que de estos componentes se podian generar reportes en formato HTML o CSV en forma nativa, ya iba por buen camino en ese momento.
Mas adelante lei que soportaba scripts Ruby y que podian añadirse esos scritps como plugins a la aplicacion, que en los scripts se podian realizar tareas de automatizacion y/o repetitivas, como por ejemplo diseñar desde codigo una escalera, obviamente indicando todos los parametros geometricos de la misma, cantidad de escalones, altura de cada escalon, ancho, largo, etc. A partir de esto obviamente pense que si se trataba de un lenguaje de programacion comun y silvestre podria establecerse una conexion a una fuente de datos externa y obtener de la misma los datos de atributos para los componentes, o los componentes mismos con sus atributos.
El manoseo a lo preestablecido
Empece una serie de investigaciones, sobre todo para aprender a programar en Ruby, que era lo primero que deberia hacer, luego como hacer para conectar Ruby a MySQL, que es el SGBD que tengo instalado por defecto con el WAMP. Una vez aprendido lo basico para realizar una conexion desde Ruby a MySQL y ejecutar una simple sentencia SELECT toco el turno de averiguar como hacer para añadir el plugin al SketchUp. Asi me tope con este post en el foro de sketchucation, que lo que dice basicamente es instalar la version de Ruby que corresponde con la del SketchUp en tu equipo y luego reemplazar las DLL del SketchUp por las de Ruby a fin de que pueda ejecutar los scripts sin las limitaciones que se imponen en el software base, luego bajar el archivo !loadpaths.rb y pegarlo en el directorio [Plugins] para que en cada inicio establezca los paths de acceso a los scripts Ruby y los RubyGems que son los paquetes de librerias para ejecutar tareas determinadas como en este caso acceso a MySQL.-
Las consecuencias
Hechas estas configuraciones, y algunos ajustes que luego explicare con mas tiempo ya que me estoy durmiendo, pude ejecutar el mismo script de conexion y consulta de registros de una tabla [X] desde el mismo SketchUp y desplegar los valores de campos en la consola... eso ya fue mucho para un primer encuentro face to face entre los cuatro nuevos amigos (SU, My, Ruby y yo)...
En la siguiente entrada subire los scripts de ejemplo utilizados para asignar atributos tomados desde la tabla en MySQL a un componente SketchUp, por ahora me voy a descansar.-
Parte II...

Excelente, Daniel...solo que no puedo accedera dropbox para ver los scripts que propones. Me interesa saber cuales son los pasos a seguir para conectar Sketchup con una base de datos (mi proyecto es cambiar los componentes de un diseño 3D de manera interactiva (desde la base de datos)... Un saludo y gracias por la ayuda que me puedas brindar en esto
ResponderEliminar