$fn=100;

rotate([90,0,0]){
rotate([0,90,0])
{
difference(){
cylinder(h=30,r=0.8);
translate([0,0,25]){
cylinder(h=6,r=0.5);}}
cube([3,3,13],center=true);
translate([0,0,6])
cylinder(6,1.5,0.9);
}

rotate([0,190,0])
translate([0,0,5])
cube([4,2,10],center=true);

rotate([0,180,0])
translate([-9,0,0])
cylinder(h=9,r=1.1);

translate([1,0,-10])
rotate([0,-90,0])
cylinder(h=10,r=1);

translate([-2,0,0]){
translate([-10,0,-10])
sphere(4);
translate([-16,0,-10])
sphere(4);
rotate([0,90,0])
translate([10,0,-16])
cylinder(h=6,r=4);}

cylinder(h=6,r=1.2);

rotate([0,-5,0])
translate([-2,0,8.5])
rotate([0,110,0])
cylinder(8,5,1.9);

difference(){
rotate([0,-5,0]){
translate([-3.1,0,8.9])
    sphere(5.06);}
rotate([0,-47,0]){
translate([3.5,0,12.8])
cylinder(h=2,r=3);}}
   
difference(){
rotate ([0,90,0]){
translate([3,0,3])
cube([5,1.5,5], center=true);}
rotate ([0,90,0]){
translate([3,0,3])
cube([4.5,2,4.5], center=true);
}}


difference(){
rotate([90,0,0]){
translate([2.9,-2.8,0]){
cylinder(h=1,r=1.7,center=true);}}
rotate([90,0,0]){
translate([3.5,-2.9,0]){
cylinder(h=2,r=1.5,center=true);}}};

translate([-7,0,-11.5])
cylinder(h=3,r=0.6);

translate([-7,0,-12.1])
cylinder(h=0.7,r=1);

translate([-0.5,0,3])
cylinder(h=1, r=1.8, center=true);

translate([-23,0,-10]){
rotate([90,0,0])
difference(){
cylinder(h=1,r=2,center=true);
cylinder(h=1,r=1.3,center=true);}}

rotate([0,-47,0])
translate([3.6,0,12.6])
cylinder(h=0.5,r=3);
}