You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
1.4 KiB
58 lines
1.4 KiB
thickness = 2; |
|
centre_d = 7; |
|
middle_d = 5.5; |
|
outer_d = 4; |
|
length = 32; |
|
$fn = 36; |
|
|
|
rim = 2; |
|
rim_thickness = 2; |
|
clearance = 0.1; |
|
|
|
shaft_radius = 2; |
|
shaft_length = 5; |
|
groove_width = 1; |
|
groove_length = 3; |
|
|
|
outer_centre = length/2 - outer_d/2; |
|
|
|
screw_d = 2.4; |
|
screw_depth = 1; |
|
|
|
delta = 0.1; |
|
|
|
module horn(thickness, length, centre_d, middle_d, outer_d) { |
|
cylinder(h=thickness, d=centre_d); |
|
|
|
translate([-outer_centre, 0, 0]) |
|
cylinder(h=thickness, d=outer_d); |
|
|
|
translate([outer_centre, 0, 0]) |
|
cylinder(h=thickness, d=outer_d); |
|
|
|
linear_extrude(height = thickness) |
|
polygon(points=[ |
|
[0, -middle_d/2], |
|
[-outer_centre, -outer_d/2], |
|
[-outer_centre, outer_d/2], |
|
[0, middle_d/2], |
|
[outer_centre, outer_d/2], |
|
[outer_centre, -outer_d/2] |
|
]); |
|
} |
|
|
|
|
|
difference() { |
|
horn(thickness+rim, length+rim, centre_d+rim, middle_d+rim, outer_d+rim); |
|
translate([0, 0, -delta]) |
|
horn(thickness+delta, length + clearance, centre_d + clearance, middle_d + clearance, outer_d + clearance); |
|
translate([0, 0, thickness-delta]) |
|
cylinder(h=screw_depth+delta, d=screw_d); |
|
} |
|
|
|
difference() { |
|
translate([0, 0, thickness + rim - delta]) |
|
cylinder(h=delta + shaft_length, r = shaft_radius); |
|
translate([-shaft_radius*3/2, -groove_width/2, thickness + rim + shaft_length - groove_length]) |
|
cube([shaft_radius*3, groove_width, groove_length+delta]); |
|
} |