OpenSCAD: ejemplos...
Siguiendo los micro tutoriales de openScad [lista de youtube] y otra lista de la 2º temparada [ lista ]de Juan Gonzalez Gomez, os dejo mis primeras pruebas y códigos:
Mi primer ejemplo de OpenSCAD:
//-- girando objeto siguiente
rotate([0,0,30])
//-- tralado objeto siguiente
translate([50,0,0])
cube([10,10,10],center=true);
rotate([0,0,45])
cube([20,20,5],center=true);
//-- cubo hola mundo
translate([0,0,35])
cylinder(r=20,h=30,$fn=5);
translate([100,0,0])
cylinder(r=20,h=30,$fn=3);
//--taladro... Diferencia entre dos cilindros:
difference() {
translate([00,100,0])
cylinder(r=20,h=20,$fn=50);
translate([00,100,0])
cylinder(r=4,h=165,$fn=20,center=true);}
//-- union + difference -> rueda porta ejes
difference() {
union(){
translate([100,50,0])
cylinder(r=25,h=5,$fn=10);
translate([100,50,0])
cylinder(r=15,h=25,$fn=10);
}
translate([100,50,-5])
cylinder(r=10,h=35,$fn=30);
}
//-- parametros !!!
//-- Construccion de la rueda a partir de los parametros
grosor=5;
diametro=25;
diameje=8;
//-- Rueda Simple:
translate([100,100,100])
difference(){
cylinder(r=diametro/2,h=grosor,$fn=50);
//taladro de 8 mm:
cylinder(r=diameje/2,h=3*grosor,$fn=20,center=true);
}
Mi segundo ejemplo: usando modulo (o funciones), con valores por defecto...
module RuedaSimple(grosor,diametro,diamEje)RuedaSimple(10,50,10);
{
difference(){
//-- Base de la rueda
cylinder(r=diametro/2,h=grosor,$fn=100);
//-Taladro del eje
cylinder(r=diamEje/2,h=3*grosor,$fn=100,center=true);
}
}
translate([100,0,0])
RuedaSimple(diametro=40,grosor=20,diamEje=10);
translate([-100,0,0])
Fijaos que dependiendo si defino los valores de las variables o los pongo sin definir varia la asignación... (me refiero a poner dentro dde la llamada de la funcion "grosor=")
Mi 3 ejemplo: cochesito
Aqui me encontré con la incidencia de tener que poner la ruta completa del archivo, donde esta el modulo de RuedaSimple definido. También añadí el tema de poner colores de las piezas.
use </home/mint/ModuloRuedaSimple.scad>
//-- Chasis del coche
color("green",0.2)
translate([30,0,10])
cube([100,60,5],center=true);
//rueda delantera
color("blue")
translate([0,-30,0])
rotate([90,0,0])
RuedaSimple(10,50,12);
//rueta trasera (un poco mas ancha)
color("red")
translate([60,-30,0])
rotate([90,0,0])
RuedaSimple(20,50,12);
//- ruedas del otro lado (que son simetricas)
mirror([0,1,0]) {
color("blue")
translate([0,-30,0])
rotate([90,0,0])
RuedaSimple(10,50,12);
color("red")
translate([60,-30,0])
rotate([90,0,0])
RuedaSimple(20,50,12);
}
del ejemplo: enlace al video tutorial