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”