|
@@ -153,10 +153,10 @@ conn_core_overlap = 3.00;
|
|
|
// shock mount parameters
|
|
// shock mount parameters
|
|
|
//
|
|
//
|
|
|
|
|
|
|
|
-ring_sep = 30.0;
|
|
|
|
|
-ring_height = 10.0;
|
|
|
|
|
-rubber_band_angle = 40;
|
|
|
|
|
-main_radius_inc = (ring_sep / 2) / tan(rubber_band_angle);
|
|
|
|
|
|
|
+internal_ring_height = 55.0;
|
|
|
|
|
+external_ring_height = 10.0;
|
|
|
|
|
+rubber_band_angle = 45;
|
|
|
|
|
+main_radius_inc = (internal_ring_height / 2) / tan(rubber_band_angle);
|
|
|
|
|
|
|
|
// gap between internal ring and microphone body
|
|
// gap between internal ring and microphone body
|
|
|
internal_ring_gap = 1.0;
|
|
internal_ring_gap = 1.0;
|
|
@@ -877,7 +877,7 @@ module octa_shock_mount_band(band_height, radius) {
|
|
|
|
|
|
|
|
// shock mount internal ring
|
|
// shock mount internal ring
|
|
|
|
|
|
|
|
-module octa_shock_mount_internal_ring(height, radius, band_height, corner, gap) {
|
|
|
|
|
|
|
+module octa_shock_mount_internal_ring(height, radius, band_height, corner) {
|
|
|
// octagonal band
|
|
// octagonal band
|
|
|
octa_shock_mount_band(band_height, radius);
|
|
octa_shock_mount_band(band_height, radius);
|
|
|
// 8 columns for mounting rubber bands
|
|
// 8 columns for mounting rubber bands
|
|
@@ -912,39 +912,53 @@ module octa_shock_mount_internal_ring(height, radius, band_height, corner, gap)
|
|
|
|
|
|
|
|
// shock mount external ring
|
|
// shock mount external ring
|
|
|
|
|
|
|
|
-module octa_shock_mount_external_ring(height, radius, corner, gap) {
|
|
|
|
|
|
|
+module octa_shock_mount_external_ring(height, radius, corner) {
|
|
|
// main ring
|
|
// main ring
|
|
|
- rotate([0, 0, 22.5]) rounded_octagon_wall(ring_ext_height, 2 * radius - ring_wall, ring_wall);
|
|
|
|
|
|
|
+ rotate([0, 0, 22.5]) rounded_octagon_wall(ring_ext_height, radius, ring_wall);
|
|
|
for (rot = [0, 90, 180, 270]) {
|
|
for (rot = [0, 90, 180, 270]) {
|
|
|
// anchors for rubber bands
|
|
// anchors for rubber bands
|
|
|
rotate([0, 0, rot + 45]) {
|
|
rotate([0, 0, rot + 45]) {
|
|
|
- translate([radius + gap + 3 * ring_wall - 1.0, -6, 0]) {
|
|
|
|
|
|
|
+ translate([radius * cos(22.5) + ring_wall + 0.5, -6, 0]) {
|
|
|
minkowski() {
|
|
minkowski() {
|
|
|
cube([4 - 2, 12, ring_ext_height]);
|
|
cube([4 - 2, 12, ring_ext_height]);
|
|
|
cylinder(r = 1.5, h = thin_mint, $fn = facets);
|
|
cylinder(r = 1.5, h = thin_mint, $fn = facets);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- translate([radius + gap + ring_wall, -2, 0]) {
|
|
|
|
|
|
|
+ translate([radius * cos(22.5), -2, 0]) {
|
|
|
cube([7, 4, ring_ext_height]);
|
|
cube([7, 4, ring_ext_height]);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
// connection to hub
|
|
// connection to hub
|
|
|
- translate([radius + corner - 0.7, -2, 0]) {
|
|
|
|
|
|
|
+ translate([radius * cos(22.5), -2, 0]) {
|
|
|
cube([10, 4, ring_ext_height * 2]);
|
|
cube([10, 4, ring_ext_height * 2]);
|
|
|
}
|
|
}
|
|
|
|
|
+ // reinforce connection to ring
|
|
|
|
|
+ intersection() {
|
|
|
|
|
+ translate([radius * cos(22.5), 0, 0]) {
|
|
|
|
|
+ difference() {
|
|
|
|
|
+ cylinder(r = 6, h = ring_ext_height * 2, $fn = 4);
|
|
|
|
|
+ translate([-10, -5, 0]) {
|
|
|
|
|
+ cube([10, 10, ring_ext_height * 2]);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ translate([radius + ring_wall - 7, 0, 0]) {
|
|
|
|
|
+ rotate([0, 0, 45]) cylinder(r1 = radius * 1.5, r2 = ring_wall/2 + 1, h = ring_ext_height * 2, $fn = 4);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
// reinforcement
|
|
// reinforcement
|
|
|
intersection() {
|
|
intersection() {
|
|
|
- rotate([0, 0, 22.5]) rounded_octagon_wall(ring_ext_height * 2, 2 * radius - ring_wall, ring_wall);
|
|
|
|
|
- translate([radius * 2 - 10.25, 0, 0]) {
|
|
|
|
|
- rotate([0, 0, 45]) cylinder(r1 = 2 * radius, r2 = ring_wall/2 + 1, h = ring_ext_height * 2, $fn = 4);
|
|
|
|
|
|
|
+ rotate([0, 0, 22.5]) rounded_octagon_wall(ring_ext_height * 2, radius, ring_wall);
|
|
|
|
|
+ translate([radius - 6.5, 0, 0]) {
|
|
|
|
|
+ rotate([0, 0, 45]) cylinder(r1 = radius * 1.5, r2 = ring_wall/2 + 1, h = ring_ext_height * 2, $fn = 4);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
// rotating mount
|
|
// rotating mount
|
|
|
o_rad = 8;
|
|
o_rad = 8;
|
|
|
i_rad = 3;
|
|
i_rad = 3;
|
|
|
rotate([0, 90, -90]) {
|
|
rotate([0, 90, -90]) {
|
|
|
- translate([-o_rad, radius + corner + o_rad + 2 * ring_wall, -2]) {
|
|
|
|
|
|
|
+ translate([-o_rad, radius * cos(22.5) + o_rad + ring_wall * 2, -2]) {
|
|
|
shock_mount_ring(o_rad, i_rad, ring_wall);
|
|
shock_mount_ring(o_rad, i_rad, ring_wall);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -1124,13 +1138,13 @@ module render_octa_shock_mount_stand(z_offset) {
|
|
|
|
|
|
|
|
module render_octa_shock_mount_external_ring_old(z_offset) {
|
|
module render_octa_shock_mount_external_ring_old(z_offset) {
|
|
|
translate([0, 0, z_offset]) {
|
|
translate([0, 0, z_offset]) {
|
|
|
- shock_mount_external_ring(ring_height, box_radius + wall, box_radius * 2 - wall, mount_corner, main_radius_inc, 0);
|
|
|
|
|
|
|
+ shock_mount_external_ring(external_ring_height, box_radius + wall, box_radius * 2 - wall, mount_corner, main_radius_inc, 0);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
module render_octa_shock_mount_external_ring(z_offset) {
|
|
module render_octa_shock_mount_external_ring(z_offset) {
|
|
|
translate([0, 0, z_offset]) {
|
|
translate([0, 0, z_offset]) {
|
|
|
- octa_shock_mount_external_ring(ring_height, octa_pcb_radius, 20, main_radius_inc);
|
|
|
|
|
|
|
+ octa_shock_mount_external_ring(external_ring_height, octa_pcb_radius + internal_ring_gap + main_radius_inc + 5.25, 20);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -1139,13 +1153,13 @@ module render_octa_shock_mount_external_ring(z_offset) {
|
|
|
|
|
|
|
|
module render_octa_shock_mount_internal_ring_bot(z_offset) {
|
|
module render_octa_shock_mount_internal_ring_bot(z_offset) {
|
|
|
translate([0, 0, z_offset]) {
|
|
translate([0, 0, z_offset]) {
|
|
|
- shock_mount_internal_ring(ring_height, box_radius + wall, box_radius * 2 - wall, mount_corner, internal_ring_gap, 1);
|
|
|
|
|
|
|
+ shock_mount_internal_ring(external_ring_height, box_radius + wall, box_radius * 2 - wall, mount_corner, internal_ring_gap, 1);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
module render_octa_shock_mount_internal_ring_bot(z_offset) {
|
|
module render_octa_shock_mount_internal_ring_bot(z_offset) {
|
|
|
translate([0, 0, z_offset]) {
|
|
translate([0, 0, z_offset]) {
|
|
|
- shock_mount_internal_ring(ring_height, A/2 + wall, A/2 + 3, octa_pcb_radius * 2/3, internal_ring_gap, 1);
|
|
|
|
|
|
|
+ shock_mount_internal_ring(external_ring_height, A/2 + wall, A/2 + 3, octa_pcb_radius * 2/3, internal_ring_gap, 1);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -1154,13 +1168,13 @@ module render_octa_shock_mount_internal_ring_bot(z_offset) {
|
|
|
|
|
|
|
|
module render_octa_shock_mount_internal_ring_top_old(z_offset) {
|
|
module render_octa_shock_mount_internal_ring_top_old(z_offset) {
|
|
|
translate([0, 0, z_offset]) {
|
|
translate([0, 0, z_offset]) {
|
|
|
- shock_mount_internal_ring(ring_height, box_radius + wall, box_radius * 2 - wall, mount_corner, internal_ring_gap, 0);
|
|
|
|
|
|
|
+ shock_mount_internal_ring(external_ring_height, box_radius + wall, box_radius * 2 - wall, mount_corner, internal_ring_gap, 0);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
module render_octa_shock_mount_internal_ring_top(z_offset) {
|
|
module render_octa_shock_mount_internal_ring_top(z_offset) {
|
|
|
translate([0, 0, z_offset]) {
|
|
translate([0, 0, z_offset]) {
|
|
|
- shock_mount_internal_ring(ring_height, A/2 + wall, A/2 + 3, octa_pcb_radius * 2/3, internal_ring_gap, 0);
|
|
|
|
|
|
|
+ shock_mount_internal_ring(external_ring_height, A/2 + wall, A/2 + 3, octa_pcb_radius * 2/3, internal_ring_gap, 0);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -1170,7 +1184,7 @@ module render_octa_shock_mount_internal_ring_top(z_offset) {
|
|
|
module render_octa_shock_mount_ring_connectors(offset) {
|
|
module render_octa_shock_mount_ring_connectors(offset) {
|
|
|
for (o = [0, 1, 2, 3]) {
|
|
for (o = [0, 1, 2, 3]) {
|
|
|
translate([-18, (10 + offset) * o, 0]) {
|
|
translate([-18, (10 + offset) * o, 0]) {
|
|
|
- shock_mount_connector(ring_sep, 4, connector_w, connector_d, 0.1);
|
|
|
|
|
|
|
+ shock_mount_connector(internal_ring_height, 4, connector_w, connector_d, 0.1);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -1180,10 +1194,10 @@ module render_octa_shock_mount_ring_connectors(offset) {
|
|
|
|
|
|
|
|
module render_octa_shock_mount(z_offset) {
|
|
module render_octa_shock_mount(z_offset) {
|
|
|
// internal rings
|
|
// internal rings
|
|
|
- translate([0, 0, z_offset + ring_sep / 2]) {
|
|
|
|
|
|
|
+ translate([0, 0, z_offset + internal_ring_height / 2]) {
|
|
|
render_octa_shock_mount_internal_ring_top(0);
|
|
render_octa_shock_mount_internal_ring_top(0);
|
|
|
rotate([0, 180, 0]) {
|
|
rotate([0, 180, 0]) {
|
|
|
- render_octa_shock_mount_internal_ring_bot(ring_sep + 2);
|
|
|
|
|
|
|
+ render_octa_shock_mount_internal_ring_bot(internal_ring_height + 2);
|
|
|
}
|
|
}
|
|
|
// insert the connecting rods
|
|
// insert the connecting rods
|
|
|
for (r = [0, 90, 180, 270]) {
|
|
for (r = [0, 90, 180, 270]) {
|
|
@@ -1191,7 +1205,7 @@ module render_octa_shock_mount(z_offset) {
|
|
|
translate([((r % 180) ? box_radius * 2 : box_radius) + 3 * wall + internal_ring_gap, 0, -1]) {
|
|
translate([((r % 180) ? box_radius * 2 : box_radius) + 3 * wall + internal_ring_gap, 0, -1]) {
|
|
|
rotate([0, 90, 0]) {
|
|
rotate([0, 90, 0]) {
|
|
|
translate([-4, -5, 1]) {
|
|
translate([-4, -5, 1]) {
|
|
|
- shock_mount_connector(ring_sep, 4, connector_w, connector_d, 0.1);
|
|
|
|
|
|
|
+ shock_mount_connector(internal_ring_height, 4, connector_w, connector_d, 0.1);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -1199,11 +1213,11 @@ module render_octa_shock_mount(z_offset) {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
// external ring
|
|
// external ring
|
|
|
- translate([0, 0, z_offset - ring_height / 4]) {
|
|
|
|
|
|
|
+ translate([0, 0, z_offset - external_ring_height / 4]) {
|
|
|
render_octa_shock_mount_external_ring(0);
|
|
render_octa_shock_mount_external_ring(0);
|
|
|
}
|
|
}
|
|
|
// mount to stand
|
|
// mount to stand
|
|
|
- translate([box_radius + mount_corner + ring_wall + ring_arm_gap + 8 + ring_wall / 2 + 4, 0, -(mic_mount_height + mic_mount_radius + ring_height / 4)]) {
|
|
|
|
|
|
|
+ translate([box_radius + mount_corner + ring_wall + ring_arm_gap + 8 + ring_wall / 2 + 4, 0, -(mic_mount_height + mic_mount_radius + external_ring_height / 4)]) {
|
|
|
render_octa_shock_mount_stand(0);
|
|
render_octa_shock_mount_stand(0);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|