|
@@ -42,8 +42,8 @@ leg_width = 4;
|
|
|
leg_thick = 2.5;
|
|
leg_thick = 2.5;
|
|
|
|
|
|
|
|
// width of the ridge that connects to the mount
|
|
// width of the ridge that connects to the mount
|
|
|
-ridge_width = 1.5;
|
|
|
|
|
-ridge_length = 2;
|
|
|
|
|
|
|
+ridge_width = 2;
|
|
|
|
|
+ridge_length = 2.5;
|
|
|
|
|
|
|
|
// wall thickness of capsule holder
|
|
// wall thickness of capsule holder
|
|
|
wall = 1;
|
|
wall = 1;
|
|
@@ -62,14 +62,14 @@ mount_height = 4;
|
|
|
// 0 -> ready to print
|
|
// 0 -> ready to print
|
|
|
// set = 0 -> one capsule, set = 1 -> four capsules
|
|
// set = 0 -> one capsule, set = 1 -> four capsules
|
|
|
// 1 -> the whole microhone with four capsules
|
|
// 1 -> the whole microhone with four capsules
|
|
|
-rendermic = 1;
|
|
|
|
|
-renderset = 0;
|
|
|
|
|
|
|
+rendermic = 0;
|
|
|
|
|
+renderset = 1;
|
|
|
|
|
|
|
|
// what type of connection to use between capsule holders:
|
|
// what type of connection to use between capsule holders:
|
|
|
// 0 -> original cylinder beams
|
|
// 0 -> original cylinder beams
|
|
|
// 1 -> interlocking beams (out)
|
|
// 1 -> interlocking beams (out)
|
|
|
// 2 -> interlocking beams (in)
|
|
// 2 -> interlocking beams (in)
|
|
|
-connect = 1;
|
|
|
|
|
|
|
+connect = 2;
|
|
|
|
|
|
|
|
//// end of rendering control
|
|
//// end of rendering control
|
|
|
////
|
|
////
|
|
@@ -156,12 +156,16 @@ module capsule (azimuth, elevation, mounts, twist, ridge) {
|
|
|
}
|
|
}
|
|
|
// connect with vertical legs
|
|
// connect with vertical legs
|
|
|
if (connect == 2) {
|
|
if (connect == 2) {
|
|
|
- leg_length = (mic_radius * tan(90 - angles[1]) - capsule_radius) * tan(angles[1]);
|
|
|
|
|
|
|
+ // fix this 0.2 == (2 * fudge?)
|
|
|
|
|
+ leg_length = (mic_radius * tan(90 - angles[1]) - capsule_radius) * tan(angles[1]) - 0.2;
|
|
|
slot_depth = leg_thick * cos (90 - (2 * angles[1]));
|
|
slot_depth = leg_thick * cos (90 - (2 * angles[1]));
|
|
|
translate([capsule_radius + fudge, - leg_width / 3, - leg_length + capsule_height]) {
|
|
translate([capsule_radius + fudge, - leg_width / 3, - leg_length + capsule_height]) {
|
|
|
difference() {
|
|
difference() {
|
|
|
// thickness, width
|
|
// thickness, width
|
|
|
- cube([leg_thick, leg_width, leg_length]);
|
|
|
|
|
|
|
+ //minkowski() {
|
|
|
|
|
+ cube([leg_thick, leg_width, leg_length]);
|
|
|
|
|
+ //cylinder(r = wall / 2, h = leg_length / 4, center = false, $fn = 32);
|
|
|
|
|
+ //}
|
|
|
// cut slot in connector
|
|
// cut slot in connector
|
|
|
translate([0, leg_width / 3 - (fit / 2), 0]) {
|
|
translate([0, leg_width / 3 - (fit / 2), 0]) {
|
|
|
cube([leg_thick, leg_width / 3 + fit, slot_depth]);
|
|
cube([leg_thick, leg_width / 3 + fit, slot_depth]);
|
|
@@ -238,10 +242,10 @@ module mount (angles, wall, separation) {
|
|
|
// 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
|
|
|
for (rot = angles) {
|
|
for (rot = angles) {
|
|
|
rotate([0, -elev_angle, rot]) {
|
|
rotate([0, -elev_angle, rot]) {
|
|
|
- translate([-capsule_sep_max * 2, 0.5 * ridge_width - fit, mount_slot_depth]) {
|
|
|
|
|
|
|
+ translate([-capsule_sep_max * 2, 0.5 * ridge_width - fit, mount_slot_depth - wall / 2]) {
|
|
|
cube([capsule_sep_max * 2, ridge_width + 2 * fit, mount_height]);
|
|
cube([capsule_sep_max * 2, ridge_width + 2 * fit, mount_height]);
|
|
|
}
|
|
}
|
|
|
- translate([-capsule_sep_max * 2, - 1.5 * ridge_width - fit, mount_slot_depth]) {
|
|
|
|
|
|
|
+ translate([-capsule_sep_max * 2, - 1.5 * ridge_width - fit, mount_slot_depth - wall / 2]) {
|
|
|
cube([capsule_sep_max * 2, ridge_width + 2 * fit, mount_height]);
|
|
cube([capsule_sep_max * 2, ridge_width + 2 * fit, mount_height]);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -262,14 +266,36 @@ if (rendermic == 1) {
|
|
|
|
|
|
|
|
// print all the parts separately
|
|
// print all the parts separately
|
|
|
// at most print two parts at the same time
|
|
// at most print two parts at the same time
|
|
|
-part_sep = capsule_radius * 2 * 3;
|
|
|
|
|
|
|
+part_sep = capsule_radius * 1.6;
|
|
|
if (rendermic == 0) {
|
|
if (rendermic == 0) {
|
|
|
- translate([0, -part_sep / 2, 0]) { capsule(0, 90, [-120, 0, 120], 0, 0); }
|
|
|
|
|
|
|
+ // #3
|
|
|
|
|
+ translate([part_sep, -part_sep, capsule_height]) { capsule(0, -90, leg_angles_top, 45 + 10, 0); }
|
|
|
if (renderset != 0) {
|
|
if (renderset != 0) {
|
|
|
- //translate([0, part_sep / 2, 0]) { capsule(0, 90, [-120, 0, 120], 0, 0); }
|
|
|
|
|
- translate([0, part_sep / 2, 0]) { capsule(0, 90, [-120, 120], 0, 1); }
|
|
|
|
|
- //translate([0, 1.5 * part_sep, 0]) { capsule(0, 90, [-120, 120], 0, 1); }
|
|
|
|
|
- //translate([part_sep / 2, -part_sep * 0.75, 0]) { mount([-45, 135], 1, 0); }
|
|
|
|
|
|
|
+ // #4
|
|
|
|
|
+ translate([part_sep, part_sep, capsule_height]) { capsule(0, -90, leg_angles_top, 45 + 10, 0); }
|
|
|
|
|
+ // #2
|
|
|
|
|
+ translate([-part_sep, part_sep, capsule_height]) { capsule(0, -90, leg_angles_bot, -90, 1); }
|
|
|
|
|
+ // #1
|
|
|
|
|
+ translate([-part_sep, -part_sep, capsule_height]) { capsule(0, -90, leg_angles_bot, 90, 1); }
|
|
|
|
|
+ // mount
|
|
|
|
|
+ translate([part_sep * 2.2, 0, mount_height]) { mount([-45, 135], 1, 0); }
|
|
|
|
|
+
|
|
|
|
|
+ // add connecting ridges to make it all one part
|
|
|
|
|
+ translate([-wall / 2, -part_sep, 0]) {
|
|
|
|
|
+ cube([wall, part_sep * 2, wall / 2]);
|
|
|
|
|
+ }
|
|
|
|
|
+ translate([-(part_sep - capsule_radius - wall / 2), part_sep - wall / 2, 0]) {
|
|
|
|
|
+ cube([(part_sep - capsule_radius - wall / 2) * 2, wall, wall / 2]);
|
|
|
|
|
+ }
|
|
|
|
|
+ translate([-(part_sep - capsule_radius - wall / 2), - part_sep - wall / 2, 0]) {
|
|
|
|
|
+ cube([(part_sep - capsule_radius - wall / 2) * 2, wall, wall / 2]);
|
|
|
|
|
+ }
|
|
|
|
|
+ // connect the mount
|
|
|
|
|
+ translate([part_sep * 2 - mount_radius - wall, - mount_radius, 0]) {
|
|
|
|
|
+ rotate([0, 0, 45]) {
|
|
|
|
|
+ cube([mount_radius, wall, wall / 2]);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|