Diferencia entre revisiones de «Diseño de piezas con OpenScad»

De WikiRobotics
Saltar a: navegación, buscar
(Vislumbrando la potencia de openscad)
(9) Usando módulos)
Línea 234: Línea 234:
 
|}
 
|}
  
[[|thumb|300px| Un coche simple (''click para ampliar'')]]
+
[[Archivo:Tut-openscad-09-usando-modulos.png|thumb|300px| Un coche simple (''click para ampliar'')]]
  
 
{| {{tablabonita}}
 
{| {{tablabonita}}

Revisión del 23:18 21 may 2012

[[|400px|]]

Ficha

Introducción

Descargas

Primeros pasos con Openscad

1) Cubo Hola mundo

Video Tutorial 1
El cubo "hola mundo" (click para ampliar)

Programa:

//-- Cubo Hola Mundo
cube([10,10,10]);

Los pasos a realizar son los siguientes:

  • Abrir OpenScad
  • Escribir el código del programa
  • Pulsar F5 para renderizar el cubo en pantalla. Lo que se nos ha creado es un cubo de 10mm de arista
  • Con la rueda del ratón se hace zoom
  • Pulsando el botón izquierdo y moviendo el raton se rota la vista del cubo.
  • Pulsando el botón central y moviendo el ratón se hace traslación del punto de vista
  • Por último se graba el programa openscad creado
  • Se pulsa F6 para hacer un renderizado "bueno"
  • Se exporta la pieza al formato STL (view/export as STL)
  • ¡¡El cubo está listo para ser impreso en una impresora 3D open-source!!

2) Traslaciones y rotaciones

Video Tutorial 2
(click para ampliar)

Programa:

//-- Ejemplo de translación y rotación 
//-- Traslación y rotación de un cubo rotate([0,0,30]) translate([50,0,0]) cube([20,20,20],center=true);
//-- rotación de un cubo rotate([0,0,45]) cube([20,20,10],center=true);

Las traslaciones y rotaciones se realizan con los operadores translate() y rotate() respectivamente.

3) Cilindros: la navaja suiza

Video Tutorial 3
(click para ampliar)

Programa:

//-- Moneda
translate([-50,0,0])
  cylinder(r=40/2, h=5, $fn=100); 
//-- Hexágono cylinder(r=40/2, h=5, $fn=6);
//-- Triángulo equilátero translate([50,0,0]) cylinder(r=40/2, h=5, $fn=3);

Se muestra la versatilidad de los cilindros. Cambiando el parámetro $fn, se puede hacer cualquier polígono regular.

4) Haciendo taladros

Video Tutorial 4
Una rueda simple (click para ampliar)

Programa:

//-- Rueda simple
difference() {
  //-- Base de la rueda
  cylinder(r=50/2, h=5,$fn=100);
//-- Taladro de 8mm cylinder(r=8/2, h=20,$fn=20,center=true); }

Utilización de la operación booleana difference() y de los cilindros para realizar taladros a piezas.

5) Pegando piezas

Video Tutorial 5
Una rueda con portaejes (click para ampliar)

Programa:

//-- Rueda con portaejes y taladro para el eje
difference() {
  //-- Rueda
  union() {
    //-- Base de la rueda
    cylinder(r=50/2, h=5, $fn=100);
    //-- Portaejes
    cylinder(r=20/2, h=20, $fn=80);
  }
  //-- Taladro
  cylinder(r=8/2, h=80, $fn=30,center=true);
}

Utilización de la operación booleana union() para pegar objetos

Vislumbrando la potencia de openscad

6) Parametrízame!

Video Tutorial 6
Una rueda parametrizada (click para ampliar)

Programa:

 //-- Parámetros de la rueda
 grosor = 5;
 diametro=50;
 diam_eje = 8; 
//-- Construcción de la rueda a partir de //-- los parámetros difference() { //-- Base de la rueda cylinder(r=diametro/2, h=grosor,$fn=100);
//-- Taladro del eje cylinder(r=diam_eje/2, h=3*grosor,$fn=20,center=true); }

Rueda paramétrica: La rueda se define por unos parámetros, y luego se construye la rueda usando esos parámetros

7) Modularízame!

Video Tutorial 7
Rueda modularizada (click para ampliar)

Programa:

module rueda_simple(grosor, diametro, diam_eje)
{
  //-- Construcción de la rueda a partir de
  //-- los parámetros
  difference() {
    //-- Base de la rueda
    cylinder(r=diametro/2, h=grosor,$fn=100);
    //-- Taladro del eje
    cylinder(r=diam_eje/2, h=3*grosor,$fn=20,center=true);
  }
} 
rueda_simple(diametro=50, grosor=5, diam_eje=8);
translate([50,0,0]) rueda_simple(diametro=40, grosor=20, diam_eje=10);

Convirtiendo la rueda en un módulo para poder reutilizarla fácilmente

8) Parámetros por defecto

Video Tutorial 8
Rueda modularizada con parámetros por defecto (click para ampliar)

Programa:

module rueda_simple(grosor=5, diametro=40, diam_eje=8)
{
  //-- Construcción de la rueda a partir de
  //-- los parámetros
  difference() {
    //-- Base de la rueda
    cylinder(r=diametro/2, h=grosor,$fn=100); 
//-- Taladro del eje cylinder(r=diam_eje/2, h=3*grosor,$fn=20,center=true); } }
//-- Ejemplos de utilizacion del modulo Rueda simple //-- Rueda por defecto rueda_simple();
translate([50,0,0]) rueda_simple(grosor=20);
translate([-50,0,0]) rueda_simple(diametro=20, grosor=10);

9) Usando módulos

Video Tutorial 9
Un coche simple (click para ampliar)

Programa:

//-- Ejemplo sencillo de como utilizar los modulos
use <rueda_simple.scad> 
//-- Chasis del cohe translate([30,0,0]) cube([100,60,10],center=true);
//-- Rueda delantera izquierda translate([0,-30,0]) rotate([90,0,0]) rueda_simple();
//-- Rueda trasera izquierda translate([60,-30,0]) rotate([90,0,0]) rueda_simple(grosor=20, diametro=50);
//-- Lado derecho del coche. Es simetrico con respecto //-- al izquierdo mirror([0,1,0]) { //-- Rueda delantera derecha translate([0,-30,0]) rotate([90,0,0]) rueda_simple();
//-- Rueda trasera derecha translate([60,-30,0]) rotate([90,0,0]) rueda_simple(grosor=20, diametro=50); }

Repitiendo tareas

300|250</youtube>

Programa para OpenScad:

drill=4;
h1=10;
d=10;
n = 20;
for (i=[0:n-1]) { translate([i*d,0,0]) cylinder(r=drill/2, h=h1, $fn=20,center=true); }

Ejemplo 1: Piezas de mecano básicas

Pieza de mecano parametrizable I

300|250</youtube>

Programa para OpenScad:

drill=3;
d=10;
n = 4; 
lx = n*d; anchura = 10; grosor = 3;
difference() { //-- Cuerpo de la pieza cube([lx,anchura,grosor],center=true);
//-- Taladros translate([-lx/2+d/2,0,0]) for (i=[0:n-1]) { translate([i*d,0,0]) cylinder(r=drill/2, h=grosor+5, $fn=20,center=true); } }

Pieza de Mecano parametrizable II

300|250</youtube>

Programa para OpenScad:

module pieza_mecano(n=4, drill=4, d=10, anchura=10, grosor=3)
{
  //-- Calcular al longitud de la pieza
  lx = n*d;
//-- Construir la pieza difference() { //-- Cuerpo de la pieza cube([lx,anchura,grosor],center=true);
//-- Taladros translate([-lx/2+d/2,0,0]) for (i=[0:n-1]) { translate([i*d,0,0]) cylinder(r=drill/2, h=grosor+5, $fn=20,center=true); } } }
//-- Ejemplos de utilizacion pieza_mecano();
translate([0,20,0]) pieza_mecano(n=2);

Depurando piezas

300|250</youtube>

Programa para OpenScad:

difference() { 
//-- Pieza sin taladros union() { //-- Cuerpo color("blue") cube([167.8, 30, 5],center=true);
//-- Torre derecha color("green") translate([167.8/2-20/2,0,13/2+5/2]) cube([20,30,13],center=true);
//-- Torre izquierda color("green") translate([-167.8/2+20/2,0,13/2+5/2]) cube([20,30,13],center=true); }
//-- Taladros #translate([-167.8/2+10,0,0]) cylinder(r=9/2, h=50, center=true);
#translate([+167.8/2-10,0,0]) cylinder(r=9/2, h=50, center=true); }

Imprimiendo las piezas de mecano

300|250</youtube>

Programa para OpenScad:

use <pieza_mecano.scad> 
pieza_mecano();
translate([0,15,0]) pieza_mecano(n=3);
translate([0,30,0]) pieza_mecano(n=2);

Repositorio

Los ficheros fuentes están en este repositorio SVN:

Licencia

Cc logo.png This work is licensed under a Creative Commons Attribution-ShareAlike 2.5 Spain License.

Enlaces

Noicias

  • 08/Mayo/2011: Comenzada la página