h1=30; // hauteur boite h2=20; // hauteur couvercle r1=150; //rayon boite r2=151; //rayon couvercle module boite(){ cylinder(h=h1, r=r1); translate([0, 0, 30]) cylinder(h=h2, r=r2); }; difference() { union() { for(a=[ [0, 0, 0], [5, 10, h1+h2], [10, -5, 2*(h1+h2)], [15, 5, 3*(h1+h2)], [20, 10, 4*(h1+h2)], [25, 0, 5*(h1+h2)] ]) {translate(a)boite();} } cylinder (r=100, h=6*(h1+h2)); }