
joint = 6.5;
joint_length= 26;
wall = 0.5;
thick = 5;
hole = 6;
thin = 4;

fine = 90;

length = joint_length+wall*4;

translate([4,-6,0]) 
difference(){
    cylinder(length+1,r=joint/2+wall+1, false, $fn=fine);
    translate([0,0,2]) cylinder(length+1,r=joint/2+wall+0.2, false, $fn=fine);
    translate([0,0,-1]) cylinder(4,r=hole/2, false, $fn=fine);
}

module part(){
    intersection(){
        union() {
            difference() {
                
                cylinder(length,r=(joint/2)+wall, false, $fn=fine);

                translate([0,0,(length-joint_length)/2])
                    cylinder(joint_length, r=joint/2, false, $fn=fine);

                translate([0,0,length-9])
                    cylinder(10, r=thick/2, false,  $fn=fine);
                
                translate([0,0,-1])
                    cylinder(10, r=thin/2, false, $fn=fine);
            }
        }
        translate([-50,0,0]) cube([100,200,200], center=false);
    }
}

translate([0,0,(joint/2)+wall])
rotate([-90,0,0]){
    part();
    translate([(joint/2+wall)*2+1.5,0,0]) part();
    translate([(joint/2+wall)-0.5,0,0]) cube([2.5,0.4,length]);
}
