$fn = 100;

r = 12;
h = 12;

center_r = 3.2;

mol_r = 7;
mol_off = 6;

difference() {
    union() {
        difference() {
            cylinder(h=h, r=r, center=true);
            translate([0,0,h/2])
                cylinder(h=15, r=center_r, center=true);
            for(i=[0:45:359]) {
                echo((r+mol_off*sin(i)));
                translate([(r+mol_off)*cos(i),(r+mol_off)
                *sin(i),0])
                    cylinder(h=h, r=mol_r, center=true);
            }
        }
        translate([3,0,0])
            cube([3,2*center_r,h], center=true);
    }
    difference() {
        translate([0,0,3])
            cylinder(h=h, r=0.8*r, center=true);
        translate([0,0,3])
            cylinder(h=h, r=1.4*center_r, center=true);
        
    }
}