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