Ir al contenido principal

SketchUp + MySQL

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...

Comentarios

  1. 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

Publicar un comentario

Entradas populares de este blog

SketchUp + MySQL Parte II

El porque Bueno, como me acabo de enterar que padezco de laringitis por reflujo y que no debo ir a la cama sino hasta por lo menos 30 minutos despues de comer algo, otra vez aqui ando... Retomando En la entrada anterior hacia una introduccion acerca de como habia llegado a conocer SketchUp y mi primer script Ruby para acceder a datos almacenados en MySQL , bueno, ahora vengo a levantar los ejemplos... Las pruebas Primero y antes que nada, deberian crear un componente cualquiera, en mi caso me tomo unos segundo diseñar una gondola comun, sin demasiados detalles y asignarle un nombre, mediante el atributo [NAME], que es uno de los que ya vienen por defecto para agregar. Ya teniendo el objeto al cual asignarle los atributos que interesaban recuperar desde la base de datos, tenia que crear un origen de datos, cuyo script se los dejo en este enlace , para que lo descarguen y ejecuten en su herramienta de administracion de MySQL, en mi caso utilizo HeidySQL , recomendado. U...