Podemos utilizar bucles para repetir elementos. Para iso utilízase a instrución:
for(variable = [inicio : incremento : final]) { instrucións }
Repetición en X:
Imos multiplicar uns cadrados de 5mm de lado, cunha separación entre eles de 1mm.
// Multiplicación de cadrados en X
lado = 5; // lado do cadrado
e=1; // separación
for (i = [0 : 1 : 5]) {
translate([i*(lado+e), 0, 0]){
square([lado, lado], center=false);
}
}
|
![]() |
Repetición en X e Y:
//multiplicar cadrados en XY
lado = 5; // lado do cadrado
e=1; // separación
for (i = [0 : 1 : 4]) {
for (j = [0 : 1 : 4]) {
translate([i*(lado+e), j*(lado+e), 0]){
square([lado, lado], center=false);
}
}
}
|
![]() |
Extrusión con altura ao chou:
Para xerar un número aleatorio utilizamos a función rands(min,max,num); Neste caso imos asignar a cada cadrado unha altura entre 1 e 10 mm. Previsualiza con F5
//multiplicar cadrados en XY y extruír en altura aleatoria
lado = 2;
e=0; // separación
nx=10;
ny=10;
h_min=1;
h_max=5;
union() {
for (i = [0 : 1 : nx]) {
for (j = [0 : 1 : ny]) {
translate([i*(lado+e), j*(lado+e), 0])
linear_extrude(height=rands(h_min,h_max,1)[0])
square([lado, lado], center=true);
}
}
}
|
|
Patrón circular:
Tamén podemos ir rotando para facer un patrón circular.
// Patrón circular
diametro = 2;
altura=2;
n=6; // número de pezas
dx= 3; // distancia do centro
res=36; // resolución
for (i = [0 : 360/n : 360]) {
rotate([0, 0, i])
translate ([dx,0,0])
cylinder(d=diametro,h=altura, $fn=res);
}
|
![]() ![]() |
Rotación:
Imos facer unha maceta con textura.
O primeiro que facemos é unha forma, neste caso un cilindro de pouco espesor, que rotamos.
// cilindro rotado rotX = 40; rotY = 40; rotate([rotX,rotY,0]) cylinder(r=30,h=1,center=true, $fn=120);
|
![]() |
Despois facemos xirar esa peza no eixe Z
// xiro no eixe Z
rotX = 40;
rotY = 40;
for(i=[0:10:360]){
rotate([rotX,rotY,i]) cylinder(r=30,h=1,center=true,$fn=120);
}
|
![]() |
Despois engadimos un sólido (esfera) e cortamos as caras inferior e superior facendo unha intersección cun cubo
// Unión e intersección (F5!)
intersection(){
union(){
for(i=[0:15:360]){
rotate([rotX,rotY,i]) cylinder(r=30,h=1,center=true,$fn=120);
}
sphere(r=29.5,$fn=120);
}
cube([60,60,40],center=true);
}
|
![]() |
Propostas:
Caixa de canicas:
Debuxa de maneira que poidamos modificar o diámetro da canica e o nº de filas e columnas

Roda:
Debuxa de maneira que poidamos modificar o nº de radios, anchura, altura, o diámetro exterior e o diámetro interior.

Maceta:
Proba con outras formas para xerar un vaso. Por exemplo, podes partir dunha elipse ou un polígono. Deixando o vaso macizo pódese imprimir en modo “espiralizar a contorna exterior”









