Diseño de piezas con OpenScad

De WikiRobotics
Revisión del 01:01 19 may 2012 de Obijuan (Discusión | contribuciones) (Usando módulos)

Saltar a: navegación, buscar

[[|400px|]]

Ficha

Introducción

Primeros pasos con Openscad

Cubo Hola mundo

300|250</youtube>

Programa para OpenScad:

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

Los pasos a realizar son los siguientes:

  • Abrir OpenScad
  • Escribir el código del programa. Este ejemplo es muy sencillo:
cube([10,10,10]);
  • 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!!

Traslaciones y rotaciones

300|250</youtube>

Programa para OpenScad:

//-- 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);


Cilindros: la navaja suiza

300|250</youtube>

Programa para OpenScad:

//-- 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);

Haciendo taladros

300|250</youtube>

Programa para OpenScad:

 //-- 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); }

Pegando piezas

300|250</youtube>

Programa para OpenScad:

//-- 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);
}

Vislumbrando la potencia de openscad

Parametrízame!

300|250</youtube>

Programa para OpenScad:

 //-- 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); }

Modularízame!

300|250</youtube>

Programa para OpenScad:

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);

Parámetros por defecto

300|250</youtube>

Programa para OpenScad:

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);

Usando módulos

300|250</youtube>

Programa para OpenScad:

//-- 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); }

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