martes, 22 de octubre de 2013

SketchUp y el lenguaje Ruby

Podemos ampliar la funcionalidad del SketchUp a través de la incorporación de nuevas herramientas y la automatización de tareas mediante la utilización de Ruby API para el SketchUp
Información sobre el lenguaje:
Ruby para SketchUp: manual completo (456 paginas) para programar en lenguaje Ruby
- SketchUp Ruby API: tutoriales y recursos de programación

1.- Primer programa en Ruby (copiar todo el texto a continuación)

# Activar el rutinas API estandart del SketchUp.

require 'sketchup.rb'

# Mostrar la consola Ruby al iniciar el SketchUp
# Ver los errores de programación en esta area

Sketchup.send_action "showRubyPanel:"

# Agrega el Item al Menu Plug-ins.
UI.menu("PlugIns").add_item("Dibujar escalera") {
  UI.messagebox("Ahora puedo dibujar una escalera")
}

2.- Modificando el programa para que dibuje la escalera  (copiar todo el texto a continuación)

# Carga la rutinas básicas del sketchup.
require 'sketchup.rb'

# Muestra la consola Ruby al iniciar
# se mostraran cualquier error de programación en la consola.
Sketchup.send_action "showRubyPanel:"

def draw_stairs

  # Definicion de variables, medidas en pulgadas.
  escalones = 10
  contrahuella = 8
  huella = 12
  ancho = 100
  espesor = 3

  # Carga colecciones y manejadores del modelo.
  model = Sketchup.active_model
  entities = model.entities

  # Lazo de repetición para ejecutar varias veces las instrucciones
  for step in 1..escalones
 
    # Calcula los puntos para cada escalon.
    x1 = 0
    x2 = ancho
    y1 = huella * step
    y2 = huella * (step + 1)
    z = contrahuella * step
 
    # Crea los puntos para cada cara en una matriz.
    pt1 = [x1, y1, z]
    pt2 = [x2, y1, z]
    pt3 = [x2, y2, z]
    pt4 = [x1, y2, z]

    # Llama al método para dibujar el escalon y colocarle espesor.
    new_face = entities.add_face pt1, pt2, pt3, pt4
    new_face.pushpull espesor
  end

end


# Agrega un Item dentro de plug-ins para activar nuestro programa.
UI.menu("PlugIns").add_item("Dibujar escalera") {
  UI.messagebox("Ahora dibujare una escalera...")

# Ejecuta nuestro metodo.
  draw_stairs

}

-------------------------------------
Abrir programas almacenados en Plug-Ins

Ver más información sobre programación en lenguaje Ruby


3 comentarios:

  1. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  2. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  3. No hizo nada, ninguna escalera apareció como esperaba, según mi entendimiento humilde.

    ResponderEliminar