|
@@ -97,9 +97,10 @@ slot_depth = connect == 1 ?
|
|
|
leg_thick * 1.5 : leg_thick;
|
|
leg_thick * 1.5 : leg_thick;
|
|
|
|
|
|
|
|
// microphone holder geometry
|
|
// microphone holder geometry
|
|
|
-capsule_sep_min = mic_radius * sin(tetra) - capsule_radius * cos(tetra);
|
|
|
|
|
-capsule_sep_max = capsule_sep_min + capsule_height * sin(tetra);
|
|
|
|
|
-capsule_bottom = mic_radius * cos(tetra) + capsule_radius * sin(tetra);
|
|
|
|
|
|
|
+capsule_sep_min = (mic_radius - capsule_height) * sin(tetra) - (capsule_radius + wall) * cos(tetra);
|
|
|
|
|
+capsule_sep_max = mic_radius * sin(tetra) - (capsule_radius + wall) * cos(tetra);
|
|
|
|
|
+capsule_bottom = mic_radius * cos(tetra) + (capsule_radius + wall) * sin(tetra);
|
|
|
|
|
+mount_slot_depth = ridge_length * cos(tetra);
|
|
|
|
|
|
|
|
////////
|
|
////////
|
|
|
// microphone capsule holder
|
|
// microphone capsule holder
|
|
@@ -190,18 +191,22 @@ module capsule (azimuth, elevation, mounts, twist) {
|
|
|
|
|
|
|
|
// microphone mount
|
|
// microphone mount
|
|
|
//
|
|
//
|
|
|
|
|
+// angles:
|
|
|
// wall: thickness of cylinder wall
|
|
// wall: thickness of cylinder wall
|
|
|
// separation: height of mount with respect of the microphone assembly
|
|
// separation: height of mount with respect of the microphone assembly
|
|
|
|
|
|
|
|
-module mount (wall, separation) {
|
|
|
|
|
- translate([0, 0, -(separation + 1)]) {
|
|
|
|
|
|
|
+module mount (angles, wall, separation) {
|
|
|
|
|
+ translate([0, 0, -(separation + 0.1)]) {
|
|
|
difference() {
|
|
difference() {
|
|
|
union() {
|
|
union() {
|
|
|
// grips for the capsule holder ridge
|
|
// grips for the capsule holder ridge
|
|
|
- for (rot = [0 : 180 : 360]) {
|
|
|
|
|
- rotate([0, 0, rot - 45]) {
|
|
|
|
|
- translate([-(capsule_sep_max / 2), (ridge_width / 2) + fit, -mount_height]) {
|
|
|
|
|
- cube([capsule_sep_max, ridge_width / 2, mount_height]);
|
|
|
|
|
|
|
+ for (rot = angles) {
|
|
|
|
|
+ rotate([0, 0, rot]) {
|
|
|
|
|
+ translate([-capsule_sep_max, -(ridge_width - fit / 2), -mount_height]) {
|
|
|
|
|
+ cube([capsule_sep_max, ridge_width * 2 - fit, mount_height]);
|
|
|
|
|
+ rotate([0, -(90 - tetra), 0]) {
|
|
|
|
|
+ cube([capsule_sep_max, ridge_width * 2 - fit, mount_height * sin(tetra)]);
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -209,15 +214,24 @@ module mount (wall, separation) {
|
|
|
cylinder(r = mount_radius + wall, h = mount_height, $fn = facets);
|
|
cylinder(r = mount_radius + wall, h = mount_height, $fn = facets);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- // make the hole for the mount
|
|
|
|
|
|
|
+ // make the hole for the mount (* 1.5 to cut the ridge as well)
|
|
|
translate([0, 0, -mount_height]) {
|
|
translate([0, 0, -mount_height]) {
|
|
|
- cylinder(r = mount_radius, h = mount_height, $fn = facets);
|
|
|
|
|
|
|
+ cylinder(r = mount_radius, h = mount_height * 1.5, $fn = facets);
|
|
|
|
|
+ }
|
|
|
|
|
+ // cut the outside of the sloped ridge
|
|
|
|
|
+ translate([0, 0, -mount_height]) {
|
|
|
|
|
+ difference() {
|
|
|
|
|
+ cylinder(r = capsule_sep_max + mount_height * 1.5, h = mount_height * 1.5, $fn = facets);
|
|
|
|
|
+ cylinder(r = capsule_sep_max, h = mount_height * 1.5, $fn = facets);
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
// and cut a slot for the ridges in the wall of the cylinder
|
|
// and cut a slot for the ridges in the wall of the cylinder
|
|
|
- rotate([0, 0, -45]) {
|
|
|
|
|
- translate([-(capsule_sep_max / 2), -ridge_width + 4 * fit, -mount_height / 2]) {
|
|
|
|
|
- cube([capsule_sep_max, ridge_width + 2 * fit, mount_height]);
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ for (rot = angles) {
|
|
|
|
|
+ rotate([0, 0, rot]) {
|
|
|
|
|
+ translate([-capsule_sep_max * 2, -ridge_width + 4 * fit, -mount_slot_depth]) {
|
|
|
|
|
+ cube([capsule_sep_max * 2, ridge_width + 2 * fit, mount_height]);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -233,7 +247,7 @@ if (rendermic == 1) {
|
|
|
capsule(-135, elev, [-120, 0, 120], 60);
|
|
capsule(-135, elev, [-120, 0, 120], 60);
|
|
|
capsule(135, -elev, [-120, 120], 0);
|
|
capsule(135, -elev, [-120, 120], 0);
|
|
|
// the mount
|
|
// the mount
|
|
|
- mount(1, capsule_bottom);
|
|
|
|
|
|
|
+ mount([-45, 135], 1, capsule_bottom);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// print all the parts separately
|
|
// print all the parts separately
|