$fn = 60; module extHaut(){ translate([7, 7, 130]) resize([45, 45, 50]) sphere(); } module intHaut(){ translate([7, 7, 130]) resize([40, 40, 45]) sphere(); } module extBas(){ resize([100, 100, 130]) sphere(); }; module intBas(){ resize([95, 95, 123, 5]) sphere(); }; module tubeHaut(){ translate([0, 0, 95]) cylinder(35, 12, 12); }; module tubeBas(){ translate([0, 0, 61]) cylinder(35, 12, 12); }; module tubeInt(){ cylinder(120, 7, 7); }; module bas(){ difference(){ extBas(); intBas(); }; tubeBas(); }; module haut(){ difference(){ tubeHaut(); extHaut(); }; difference(){ extHaut(); intHaut(); }; }; module calebasse(){ difference(){ union(){ bas(); haut(); }; tubeInt(); }; }; difference(){ calebasse(); translate([-100, -100, 0]) cube([100, 100, 200]); };