Bladeren bron

leg_length still not quite correct, make mount slots wider, first successful try at connecting all separate parts so that the slicer treats them as one part - it looks like it is possible to print everything in one run

Fernando Pablo Lopez-Lezcano 11 jaren geleden
bovenliggende
commit
06d3b254e9
1 gewijzigde bestanden met toevoegingen van 41 en 15 verwijderingen
  1. 41 15
      first_order.scad

+ 41 - 15
first_order.scad

@@ -42,8 +42,8 @@ leg_width = 4;
 leg_thick = 2.5;
 
 // 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 = 1;
@@ -62,14 +62,14 @@ mount_height = 4;
 // 0 -> ready to print
 //   set = 0 -> one capsule, set = 1 -> 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:
 // 0 -> original cylinder beams
 // 1 -> interlocking beams (out)
 // 2 -> interlocking beams (in)
-connect = 1;
+connect = 2;
 
 //// end of rendering control
 ////
@@ -156,12 +156,16 @@ module capsule (azimuth, elevation, mounts, twist, ridge) {
 								}
 								// connect with vertical legs
 								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]));
 									translate([capsule_radius + fudge, - leg_width / 3, - leg_length + capsule_height]) {
 										difference() {
 											// 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
 											translate([0, leg_width / 3 - (fit / 2), 0]) {
 												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
             for (rot = angles) {
                 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]);
                     }
-                    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]);
                     }
                 }
@@ -262,14 +266,36 @@ if (rendermic == 1) {
 
 // print all the parts separately
 // at most print two parts at the same time
-part_sep = capsule_radius * 2 * 3;
+part_sep = capsule_radius * 1.6;
 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) {
-        //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]);
+            }
+        }
     }
 }