// rendering precision
$fn = $preview ? 32 : 64;
$slack = 0.2;
$mini_slack = 0.001;

// parameters
$diameter_blocker = 10;
$diameter_shaft = 2.5;
$diameter_hole =3.2;
$diameter_z = 6;
$length_hat= 3;

//base-block
cylinder($length_hat, $diameter_blocker/2, $diameter_blocker/2);

translate([0,0,$length_hat - $mini_slack])
cylinder(3, $diameter_z/2, $diameter_z/2);

translate([0,0,3+$length_hat-$mini_slack])
difference() {
    cylinder(6, $diameter_z/2, $diameter_z/2);
    rotate([0,90,0])
    translate([- $diameter_hole/2- 0.6 , 0,0])
    cylinder(7, $diameter_hole/2, $diameter_hole/2, center=true);
}