include d_up = 60; d_down = 50; t = 2; h_total = 250; h_in = 160; bot_h = 10; bot_size = d_down + 45; dz_d = 5; dz_ile = 6; $fn = 36; d_mid = d_up - (d_up-d_down) * ((h_in)/h_total); difference() { union() { down(h_total/2) cyl(d2=d_up, d1=d_down, h=h_total, rounding1=10); down(h_total) cyl(d=bot_size, h=bot_h, rounding1=1, rounding2=5); } down(h_in/2-0.01) cyl(d2=d_up-t, d1=d_mid-t, h=h_in, rounding1=5); // dziurki down(h_in) union() { for(i=[0:360/dz_ile:360]) { rotate([85,0,i]) cylinder(d=dz_d, h=d_up); rotate([135,0,i]) cylinder(d=dz_d, h=d_up*5); } } }