Translación
Para trasladar un obxecto encribimos translate([x,y,z]){}
// Trasladamos en Z a metade da altura translate([0,0,2.5]){ cube([10, 20, 5], center=true); }
|
Se parametrizamos o obxecto, ao cambiar as dimensións, a translación cambia en función dos parámetros.
// parámetros x = 10; y = 20; z = 5; // Trasladamos en Z a metade da altura translate([0,0,z/2]){ cube([x, y, z], center=true); }
|
Se parametrizamos o obxecto, ao cambiar as dimensións, a traslación cambia en función dos parámetros.
// parámetros: altura=10; radio=5; // Trasladamos en Y translate([0,radio*cos(30),0]){ cylinder(r=radio, h=altura, $fn=6, center=false); }
|
Rotación
// parámetros: altura=10; radio=5; caras=6; // Trasladamos en Y rotate([0,0,30]){ cylinder(r=radio, h=altura, $fn=caras, center=false); }
|
Escala
// parámetros radio=10; // escalamos en Z scale([1,1,2]){ sphere(r=radio, $fn=36); }
|
Combinación de transformacións
Pódense poñer as instrucións de translación e rotación directamente, sen chaves.
Tamén podemos encadear instrucións. No seguinte caso primeiro rotamos un cubo 45º no eixe X e despois trasladámolo 10 mm no eixe Y.
// combinación translate([0,10,0]) rotate([45,0,0]) cube(5, center=false);
|
Unión
Imos unir varias pezas entre si.
// unión de dúas pezas union(){ translate([0,0,5]) cube([10,30,10], center=true); translate([0,0,15]) cube([10,10,10], center=true); }
|
Diferencia
Tamén podemos extraer unha figura dun sólido
//Diferencia entre dúas pezas caras=6; altura=5; radio1=20; grosor=2; difference() { cylinder(r=radio1, h=altura, center=false, $fn=caras); cylinder(r=radio1-grosor, h=altura, center=false, $fn=caras); }
|
Intersección
Cando facemos unha intersección obtemos o volume que é común entre dous sólidos.
//Intersección entre una esfera y un cubo intersection() { cube(8.5, center=true); sphere(r=5, $fn=180); }
|
Cáscara (hull)
Establece un contorno que une varios sólidos
// hull hull(){ cylinder(r=5, h=2, $fn=360); translate([30,0,0]) cylinder(r=15, h=2, $fn=360); }
|
Propostas:
Lapiceiro
Fai unión de dous prismas con xiro. Un cara á esquerda e outro cara á dereita. Proba con outro nº de caras e ángulo. Utiliza o que vimos na páxina de extrusión:
linear_extrude(height=altura,twist=angulo, $fn=res){ circle(r=radio, $fn=caras); }
No caso da imaxe: caras=15; angulo=60; res=30;
Busca outras combinacións: a) caras=24; angulo=30; res=48; b) caras=24; angulo=60; res=48;
Caixa
Utilizando operacións de unión, diferencia e translación debuxa unha caixa coma esta. Programa de forma que poidamos modificar os parámetros de radio, altura, grosor da parede, nº de caras.
Torre de hanoi
a) Constrúe o xogo da torre de hanoi. Redondea os cilindros. b) Parametriza para poder elixir as dimensións e o nº de aros.