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.











