|
|
@@ -343,12 +343,13 @@ module tetra_mount_body(height, radius, corner, lower_lip, upper_lip, screw_rota
|
|
|
|
|
|
// flares from the body to the microphone stalk and cable
|
|
|
|
|
|
-module tetra_mount_flare(height, lip, transition, bot_radius, bot_corner, top_radius, screw_rotation, windscreen) {
|
|
|
+module tetra_mount_flare(height, lip, transition, bot_radius, bot_corner, top_radius, screw_rotation, windscreen, shock_mount) {
|
|
|
// bottom rounded box
|
|
|
difference() {
|
|
|
union() {
|
|
|
rounded_block(height, bot_radius, bot_radius, bot_corner);
|
|
|
if (windscreen) {
|
|
|
+ // add thread for attaching windscreen
|
|
|
translate([0, 0, lip]) {
|
|
|
metric_thread(diameter = windscreen_thread_radius * 2, pitch = windscreen_thread_pitch,
|
|
|
length = windscreen_thread_height, angle = windscreen_thread_angle, internal = false);
|
|
|
@@ -441,6 +442,30 @@ module tetra_mount_flare(height, lip, transition, bot_radius, bot_corner, top_ra
|
|
|
cylinder(r = top_radius, h = thin_mint, $fn = facets);
|
|
|
}
|
|
|
}
|
|
|
+ // screw mounted shock mount (test)
|
|
|
+ *union() {
|
|
|
+ if (shock_mount) {
|
|
|
+ ratio = (transition - windscreen_thread_height) / transition;
|
|
|
+ thread_radius = bot_radius - ((bot_radius - top_radius) * ratio) + 2.0 * wall;
|
|
|
+ hull() {
|
|
|
+ rounded_block(thin_mint, bot_radius, bot_radius, bot_corner);
|
|
|
+ translate([0, 0, transition - windscreen_thread_height]) {
|
|
|
+ cylinder(r = thread_radius, h = thin_mint, $fn = facets);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ translate([0, 0, transition - windscreen_thread_height]) {
|
|
|
+ metric_thread(diameter = thread_radius * 2, pitch = windscreen_thread_pitch,
|
|
|
+ length = windscreen_thread_height, angle = windscreen_thread_angle, internal = false);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ hull() {
|
|
|
+ rounded_block(thin_mint, bot_radius, bot_radius, bot_corner);
|
|
|
+ translate([0, 0, transition]) {
|
|
|
+ cylinder(r = top_radius, h = thin_mint, $fn = facets);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
hull() {
|
|
|
rounded_block_relative(thin_mint, bot_radius, bot_radius, bot_corner, - wall);
|
|
|
translate([0, 0, transition]) {
|
|
|
@@ -736,7 +761,7 @@ module render_tetra_connector_flare(z_offset, flip) {
|
|
|
// make the upper sleeve shorter
|
|
|
flare_adjust = 6.0;
|
|
|
flare_height = 20;
|
|
|
- tetra_mount_flare(pcb_low_clear + pcb_low_exp - flare_adjust, mount_lip, flare_height, box_radius + wall, mount_corner, conn_core_o_diam / 2, - screw_rotation, false);
|
|
|
+ tetra_mount_flare(pcb_low_clear + pcb_low_exp - flare_adjust, mount_lip, flare_height, box_radius + wall, mount_corner, conn_core_o_diam / 2, - screw_rotation, false, true);
|
|
|
rotate([0, 0, -90]) translate([0, 0, pcb_low_clear + pcb_low_exp + 20 - flare_adjust]) {
|
|
|
tetra_mount_connector_holder(conn_core_sleeve, conn_core_o_diam / 2, conn_core_diam / 2, conn_core_overlap, conn_core_s_diam / 2);
|
|
|
}
|
|
|
@@ -762,7 +787,7 @@ module render_tetra_microphone(z_offset, spread) {
|
|
|
render_tetra_body(z_offset, spread);
|
|
|
lippy = spread - mount_lip;
|
|
|
render_tetra_capsule_array(z_offset + tetra_pcb_mount_height + mount_top_height +
|
|
|
- flare_height + stalk_height + pcb_hi_clear + pcb_hi_exp + 2 * lippy + spread + mic_radius);
|
|
|
+ flare_height + stalk_height + pcb_hi_clear + pcb_hi_exp + 2 * lippy + spread/2 + mic_radius);
|
|
|
}
|
|
|
|
|
|
// microphone: render the full assembly with a vertical separation
|
|
|
@@ -807,6 +832,14 @@ module render_tetra_shock_mount_internal_ring(z_offset) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+// test arm mount
|
|
|
+//
|
|
|
+module render_tetra_arm_mount(z_offset) {
|
|
|
+ translate([0, 0, z_offset]) {
|
|
|
+ tetra_arm_mount(internal_ring_height, box_radius, internal_band_height, mount_corner, internal_ring_gap);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
// shock mount: render all parts
|
|
|
//
|
|
|
|