|
@@ -46,8 +46,11 @@ leg_width = 5;
|
|
|
leg_thick = 3;
|
|
leg_thick = 3;
|
|
|
|
|
|
|
|
// width of the ridge that connects to the mount
|
|
// width of the ridge that connects to the mount
|
|
|
|
|
+// measured: ridge = 2.20mm, slot = 2.0 - 2.35mm
|
|
|
ridge_width = 2.0;
|
|
ridge_width = 2.0;
|
|
|
-ridge_slot_width = 2;
|
|
|
|
|
|
|
+ridge_slot_width = 2.0;
|
|
|
|
|
+// add to the thickness of ridges
|
|
|
|
|
+ridge_fit = 0.1;
|
|
|
|
|
|
|
|
// wall thickness of capsule holder
|
|
// wall thickness of capsule holder
|
|
|
wall = 1;
|
|
wall = 1;
|
|
@@ -148,9 +151,10 @@ mount_radius_capsule = capsule_sep_max;
|
|
|
// mounts: vectors containing the angle of the mount and the angle to the adjacent capsule
|
|
// mounts: vectors containing the angle of the mount and the angle to the adjacent capsule
|
|
|
// twist: rotate the whole capsule to match mounting legs
|
|
// twist: rotate the whole capsule to match mounting legs
|
|
|
// ridge: 1 -> print ridge for mount
|
|
// ridge: 1 -> print ridge for mount
|
|
|
|
|
+// ridge_fit: tune the fit, used for carving slot in mount
|
|
|
// solid: make the capsule holder solid, used in the mount to carve the capsule rests
|
|
// solid: make the capsule holder solid, used in the mount to carve the capsule rests
|
|
|
|
|
|
|
|
-module capsule (azimuth, elevation, mounts, twist, ridge, solid = 0) {
|
|
|
|
|
|
|
+module capsule (azimuth, elevation, mounts, twist, ridge, ridge_fit = 0.0, solid = 0) {
|
|
|
rotate([0, 0, azimuth]) {
|
|
rotate([0, 0, azimuth]) {
|
|
|
rotate([0, (90 - elevation), 0]) {
|
|
rotate([0, (90 - elevation), 0]) {
|
|
|
translate([0, 0, (rendermic == 0 && solid == 0) ? 0 : mic_radius - capsule_height]) {
|
|
translate([0, 0, (rendermic == 0 && solid == 0) ? 0 : mic_radius - capsule_height]) {
|
|
@@ -215,18 +219,18 @@ module capsule (azimuth, elevation, mounts, twist, ridge, solid = 0) {
|
|
|
ridge_length = (mic_radius - capsule_height) / tan(elev_angle) - (capsule_radius + wall);
|
|
ridge_length = (mic_radius - capsule_height) / tan(elev_angle) - (capsule_radius + wall);
|
|
|
if (ridge == 2) {
|
|
if (ridge == 2) {
|
|
|
rotate([0, 0, twist]) {
|
|
rotate([0, 0, twist]) {
|
|
|
- translate([capsule_radius + wall - ridge_length / 2, ridge_slot_width / 2, 0]) {
|
|
|
|
|
- cube([ridge_length * 3 / 2, ridge_width, capsule_height], center = false);
|
|
|
|
|
|
|
+ translate([capsule_radius + wall - ridge_length / 2, (ridge_width - ridge_fit) / 2, 0]) {
|
|
|
|
|
+ cube([ridge_length * 3 / 2, ridge_width - ridge_fit, capsule_height], center = false);
|
|
|
}
|
|
}
|
|
|
- translate([capsule_radius + wall - ridge_length / 2, -ridge_width - ridge_slot_width / 2, 0]) {
|
|
|
|
|
- cube([ridge_length * 3 / 2, ridge_width, capsule_height], center = false);
|
|
|
|
|
|
|
+ translate([capsule_radius + wall - ridge_length / 2, - (ridge_width - ridge_fit) * 3 / 2, 0]) {
|
|
|
|
|
+ cube([ridge_length * 3 / 2, ridge_width - ridge_fit, capsule_height], center = false);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
if (ridge == 1) {
|
|
if (ridge == 1) {
|
|
|
rotate([0, 0, twist]) {
|
|
rotate([0, 0, twist]) {
|
|
|
- translate([capsule_radius + wall - ridge_length / 2, -ridge_width / 2, 0]) {
|
|
|
|
|
- cube([ridge_length * 3 / 2, ridge_width, capsule_height], center = false);
|
|
|
|
|
|
|
+ translate([capsule_radius + wall - ridge_length / 2, - (ridge_width - ridge_fit) / 2, 0]) {
|
|
|
|
|
+ cube([ridge_length * 3 / 2, ridge_width - ridge_fit, capsule_height], center = false);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -323,8 +327,8 @@ module mount (angles, wall, stand_wall, separation) {
|
|
|
// indentations that match the two lower capsule holders
|
|
// indentations that match the two lower capsule holders
|
|
|
translate([0, 0, mic_mount_height + mount_height + cone_height +
|
|
translate([0, 0, mic_mount_height + mount_height + cone_height +
|
|
|
(mic_radius - capsule_height) + capsule_height * sin(elev_angle)]) {
|
|
(mic_radius - capsule_height) + capsule_height * sin(elev_angle)]) {
|
|
|
- capsule(angles[0], -elev_angle, [], 0, 1, 1);
|
|
|
|
|
- capsule(angles[1], -elev_angle, [], 0, 1, 1);
|
|
|
|
|
|
|
+ capsule(angles[0], -elev_angle, [], 0, 1, 0.1, 1);
|
|
|
|
|
+ capsule(angles[1], -elev_angle, [], 0, 1, 0.1, 1);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -361,8 +365,8 @@ module mount_stalk (angles, wall, separation, solid = 0) {
|
|
|
}
|
|
}
|
|
|
// indentations that match the lower capsule holders
|
|
// indentations that match the lower capsule holders
|
|
|
translate([0, 0, (mic_radius - capsule_height) + capsule_height * sin(elev_angle)]) {
|
|
translate([0, 0, (mic_radius - capsule_height) + capsule_height * sin(elev_angle)]) {
|
|
|
- capsule(angles[0], -elev_angle, [], 0, 1, 1);
|
|
|
|
|
- capsule(angles[1], -elev_angle, [], 0, 1, 1);
|
|
|
|
|
|
|
+ capsule(angles[0], -elev_angle, [], 0, 1, 0.1, 1);
|
|
|
|
|
+ capsule(angles[1], -elev_angle, [], 0, 1, 0.1, 1);
|
|
|
}
|
|
}
|
|
|
// slice it open so we can pop in cables
|
|
// slice it open so we can pop in cables
|
|
|
if (solid == 0) {
|
|
if (solid == 0) {
|
|
@@ -477,10 +481,10 @@ module stand_mount_cap (wall, separation) {
|
|
|
|
|
|
|
|
if (rendermic == 1) {
|
|
if (rendermic == 1) {
|
|
|
// all four capsules
|
|
// all four capsules
|
|
|
- capsule(45, elev_angle, leg_angles_top, 60, 0);
|
|
|
|
|
- capsule(-135, elev_angle, leg_angles_top, 60, 0);
|
|
|
|
|
- capsule(-45, -elev_angle, leg_angles_bot, 0, 1);
|
|
|
|
|
- capsule(135, -elev_angle, leg_angles_bot, 0, 1);
|
|
|
|
|
|
|
+ capsule(45, elev_angle, leg_angles_top, 60, 0, 0.0, 0);
|
|
|
|
|
+ capsule(-135, elev_angle, leg_angles_top, 60, 0, 0.0, 0);
|
|
|
|
|
+ capsule(-45, -elev_angle, leg_angles_bot, 0, 1, 0.0, 0);
|
|
|
|
|
+ capsule(135, -elev_angle, leg_angles_bot, 0, 1, 0.0, 0);
|
|
|
// the mount
|
|
// the mount
|
|
|
mount([-45, 135], mount_wall, mic_mount_wall, mic_mount_height + mount_height + 5 + capsule_bottom);
|
|
mount([-45, 135], mount_wall, mic_mount_wall, mic_mount_height + mount_height + 5 + capsule_bottom);
|
|
|
}
|
|
}
|