|
|
@@ -184,7 +184,9 @@ windscreen_w = 4.0;
|
|
|
beam_radius = 1.4;
|
|
|
windscreen_thread_height = 10.0;
|
|
|
windscreen_thread_pitch = 1.5;
|
|
|
-windscreen_thread_radius = box_corner_radius + windscreen_thread_pitch * 0.866;
|
|
|
+windscreen_thread_angle = 30;
|
|
|
+windscreen_thread_depth = cos(windscreen_thread_angle) * windscreen_thread_pitch * 5/8;
|
|
|
+windscreen_thread_radius = box_corner_radius + windscreen_thread_depth;
|
|
|
|
|
|
|
|
|
// all four printed circuit boards
|
|
|
@@ -321,7 +323,7 @@ module tetra_mount_flare(height, lip, transition, bot_radius, bot_corner, top_ra
|
|
|
if (windscreen) {
|
|
|
translate([0, 0, lip]) {
|
|
|
metric_thread(diameter = windscreen_thread_radius * 2, pitch = windscreen_thread_pitch,
|
|
|
- length = lip, internal = false);
|
|
|
+ length = lip, angle = windscreen_thread_angle, internal = false);
|
|
|
}
|
|
|
cylinder(r2 = box_corner_radius + 1.5, r1 = box_radius + 0.5, h = windscreen_thread_height, $fn = facets);
|
|
|
// index for back of microphone
|
|
|
@@ -578,7 +580,7 @@ module tetra_windscreen(radius, corner, height, beam_radius, twist, support) {
|
|
|
translate([0, 0, 0]) {
|
|
|
for (r = [0, 60, 120, 180, 240, 300]) for (t = [1, -1]) rotate([0, 0, r]) {
|
|
|
linear_extrude(height = height, center = false, convexity = 0, twist = twist * t, $fn = facets) {
|
|
|
- translate([radius + beam_radius, 0, 0]) {
|
|
|
+ translate([radius + beam_radius + windscreen_thread_depth, 0, 0]) {
|
|
|
circle(r = beam_radius, $fn = facets);
|
|
|
}
|
|
|
}
|
|
|
@@ -587,7 +589,7 @@ module tetra_windscreen(radius, corner, height, beam_radius, twist, support) {
|
|
|
// connectors to top
|
|
|
translate([0, 0, height]) {
|
|
|
for (r = [0, 60, 120, 180, 240, 300]) rotate([0, 0, r + twist]) {
|
|
|
- translate([radius + beam_radius, 0, 0]) {
|
|
|
+ translate([radius + beam_radius + windscreen_thread_depth, 0, 0]) {
|
|
|
// cylinder(r = beam_radius * 2/3, h = 2.0, $fn = facets);
|
|
|
cylinder(r = beam_radius * 1, h = 2.0, $fn = facets);
|
|
|
//
|
|
|
@@ -611,7 +613,7 @@ module tetra_windscreen_dome(radius, beam_radius) {
|
|
|
for (r = [0, 60, 120]) rotate([0, 90, r + 30]) {
|
|
|
difference() {
|
|
|
rotate_extrude(convexity = 10, $fn = facets) {
|
|
|
- translate([radius + beam_radius, 0, 0]) {
|
|
|
+ translate([radius + beam_radius + windscreen_thread_depth, 0, 0]) {
|
|
|
circle(r = beam_radius, $fn = facets);
|
|
|
}
|
|
|
}
|
|
|
@@ -625,13 +627,23 @@ module tetra_windscreen_dome(radius, beam_radius) {
|
|
|
// windscreen mount to body with thread
|
|
|
|
|
|
module tetra_windscreen_mount(height, radius, beam_radius) {
|
|
|
- difference() {
|
|
|
- cylinder(r = radius + 2 * beam_radius, h = height, $fn = facets);
|
|
|
- metric_thread(diameter = radius * 2 + fit, pitch = windscreen_thread_pitch, length = height, internal = true);
|
|
|
- }
|
|
|
- translate([-(radius + 2 * beam_radius), 0, 0]) {
|
|
|
- cylinder(r = 1.0, h = height, $fn = facets);
|
|
|
+ hexagon_radius = (radius + wall) * 2/3 * sqrt(3);
|
|
|
+ difference() {
|
|
|
+ cylinder(r = radius + 2 * beam_radius + windscreen_thread_depth, h = height, $fn = facets);
|
|
|
+ metric_thread(diameter = radius * 2 + fit, pitch = windscreen_thread_pitch,
|
|
|
+ length = height, windscreen_thread_angle = 45, internal = true);
|
|
|
+ // make outside be a hexagon instead of a circle
|
|
|
+ rotate([0, 0, 30]) translate([0, 0, -thin_mint]) {
|
|
|
+ difference() {
|
|
|
+ cylinder(r = 1.5 * radius, h = height + 2 * thin_mint);
|
|
|
+ cylinder(r = hexagon_radius, h = height + 2 * thin_mint, $fn = 6);
|
|
|
+ }
|
|
|
}
|
|
|
+ }
|
|
|
+ // marker for center of screen
|
|
|
+ translate([-(radius + wall), 0, 0]) {
|
|
|
+ cylinder(r = 1.0, h = height, $fn = facets);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
// small tube to connect both helical windscreen mounts
|