Răsfoiți Sursa

add third type of connection between holders, printed vertically and with interlocking - I still need to figure out the geometry to make it all parametric

Fernando Pablo Lopez-Lezcano 11 ani în urmă
părinte
comite
ac7fa31967
1 a modificat fișierele cu 33 adăugiri și 17 ștergeri
  1. 33 17
      first_order.scad

+ 33 - 17
first_order.scad

@@ -1,25 +1,27 @@
 //
-// First Order (B-format) Ambisonics Microphone, or Bambi for short
+// First Order (B-format) Ambisonics Microphone, or SphEAR for short
 //
 // Copyright 2015 Fernando Lopez-Lezcano
 //
-// Code released under the GNU GPL License
+// Source code released under the GNU GPL License
 // http://www.gnu.org/licenses/gpl-3.0.en.html
 //
-// 3d models under Creative Commons Non-Commercial Share-alike, CC-NC-SA 3.0
+// 3d model released under Creative Commons Non-Commercial Share-Alike
+// CC-NC-SA 3.0
 // http://creativecommons.org/licenses/by-nc-sa/3.0/
 
-// what to render
+
+// what to render:
 // 0 -> a single capsule holder
 // 1 -> the whole microhone with four capsules
 
-rendermic = 0;
+rendermic = 1;
 
-// what type of connection between holders
+// what type of connection between capsule holders:
 // 0 -> original cylinder beams
 // 1 -> interlocking beams (out)
 // 2 -> interlocking beams (in)
-connect = 1;
+connect = 2;
 
 // number of facets for cylinders
 facets = 64;
@@ -28,6 +30,7 @@ facets = 64;
 //   (measured inside diameter was around 7.5 to 8.2 instead of 10, capsule diameter was 9.99)
 fudge = 0.1;
 
+////////
 // microphone capsule holder
 
 // azimuth: orientation of the capsule
@@ -57,25 +60,38 @@ module capsule (azimuth, elevation, ambradius, radius, height, wall, twist, moun
 //						}
 						// the attachment point to the other capsules
 						for (rot = [-120 : 120 : mounts == 2 ? 0 : 120]) {
+							// connect with cylindrical beams, very pretty
 							rotate(a = rot + twist, v = [0, 0, 1]) {
 								if (connect == 0) {
-								translate([radius - wall, 0, height - wall]) {
-									rotate(a = 145, v = [0, 1, 0]) {
-										cylinder(d = wall * 4, h = 6, center = false, $fn = facets);
+									translate([radius - wall, 0, height - wall]) {
+										rotate(a = 145, v = [0, 1, 0]) {
+											cylinder(d = wall * 4, h = 6, center = false, $fn = facets);
+										}
 									}
 								}
-								}
+								// connect with flat square beams pointing out
 								if (connect == 1) {
-								translate([radius - wall, 3 * wall / 4, wall]) {
-									rotate(a = 90, v = [0, 1, 0]) {
-										difference() {
-											cube([wall * 2, wall * 4, height * 4], center = true);
-											translate([0, 0, wall * 8]) {
-												cube([wall * 2, wall * 1.5, height], center = true);
+									translate([radius - wall, 3 * wall / 4, wall]) {
+										rotate(a = 90, v = [0, 1, 0]) {
+											difference() {
+												cube([wall * 2, wall * 4, height * 4], center = true);
+												translate([0, 0, wall * 8]) {
+													cube([wall * 2, wall * 1.5, height], center = true);
+												}
 											}
 										}
 									}
 								}
+								// connect with flat square beams pointing in
+								if (connect == 2) {
+									translate([radius + fudge, - wall * 1.29 , - height]) {
+										difference() {
+											cube([wall * 2, wall * 4, height * 2], center = false);
+											translate([0, wall * 1.25, - wall * 2]) {
+												cube([wall * 2, wall * 1.5, height], center = false);
+											}
+										}
+									}
 								}
 							}
 						}