Jelajahi Sumber

Octathingy: change design of shock mount, rubber bands in the diagonals so that the connection to the stand can be on the main external ring, closer to the body and less flexible - also, inverting the inner ring makes it slide up to the windscreen threads so it is a perfect fit and better center of gravity

Fernando Pablo Lopez-Lezcano 9 tahun lalu
induk
melakukan
7dbfe21fca
1 mengubah file dengan 20 tambahan dan 18 penghapusan
  1. 20 18
      Octathingy_mount_pcb.scad

+ 20 - 18
Octathingy_mount_pcb.scad

@@ -220,7 +220,7 @@ module one_pcb_slot (pcb_w, pcb_l, pcb_t, slot_d, front, back, test = false) {
 module rounded_octagon(height, radius) {
     intersection() {
         cylinder(r = radius, h = height, $fn = 8);
-        cylinder(r = radius - wall, h = height, $fn = facets);
+        cylinder(r = radius - wall, h = height + thin_mint, $fn = facets);
     }
 }
 
@@ -870,14 +870,15 @@ module octa_shock_mount_internal_ring(height, radius, band_height, corner, gap)
                     difference() {
                         // columns
                         union() {
-                            translate([3, 0, 0]) scale([1.2, 0.75, 1.0]) cylinder(r = 3, h = height, $fn = facets);
+                            translate([3, 0, 0]) rotate([0, 0, 45]) scale([1.2, 0.85, 1.0]) 
+                                cylinder(r = 3, h = height, $fn = facets);
                         }
                         // lower slots for rubber bands
-                        translate([3, radius/2, 0]) scale([1.0, 1.0, 3.0]) rotate([90, 0, 0]) {
+                        rotate([0, 0, 45]) translate([2.5, radius/2, 0]) scale([1.0, 1.0, 3.0]) rotate([90, 0, 0]) {
                             cylinder(r = 1.2, h = radius * 2, $fn = facets);
                         }
                         // upper slots for rubber bands
-                        translate([3, radius/2, height]) scale([1.0, 1.0, 3.0]) rotate([90, 0, 0]) {
+                        rotate([0, 0, 45]) translate([2.5, radius/2, height]) scale([1.0, 1.0, 3.0]) rotate([90, 0, 0]) {
                             cylinder(r = 1.2, h = radius * 2, $fn = facets);
                         }
                     }
@@ -896,33 +897,34 @@ module octa_shock_mount_external_ring(height, radius, corner, gap) {
     rotate([0, 0, 22.5]) rounded_octagon_wall(ring_ext_height, 2 * radius - ring_wall, ring_wall);
     for (rot = [0, 90, 180, 270]) {
         // anchors for rubber bands
-        rotate([0, 0, rot]) {
-            translate([radius + gap + 2 * ring_wall, -7.5, 0]) {
-                cube([4, 15, ring_ext_height]);
+        rotate([0, 0, rot + 45]) {
+            translate([radius + gap + 3 * ring_wall, -7.5, 0]) {
+                minkowski() {
+                    cube([4 - 2, 15, ring_ext_height]);
+                    cylinder(r = 1.5, h = thin_mint, $fn = facets);
+                }
             }
             translate([radius + gap + ring_wall, -2, 0]) {
                 cube([7, 4, ring_ext_height]);
             }
         }
     }
-    // connection to stand mount
-    intersection() {
-        translate([ring_arm_gap, 0, 0]) {
-            rotate([0, 0, 22.5]) rounded_octagon_wall(ring_ext_height, 2 * radius - ring_wall, ring_wall);
-        }
-        translate([ring_arm_gap / 2, -(radius + 2 * corner), 0]) {
-            cube([(radius + 2 * corner) + ring_arm_gap, 2 * (radius + 2 * corner), ring_ext_height]);
-        }
-    }
     // connection to hub
-    translate([radius + corner + ring_arm_gap - 0.7, -2, 0]) {
+    translate([radius + corner - 0.7, -2, 0]) {
         cube([10, 4, ring_ext_height * 2]);
     }
+    // reinforcement
+    intersection() {
+        rotate([0, 0, 22.5]) rounded_octagon_wall(ring_ext_height * 2, 2 * radius - ring_wall, ring_wall);
+        translate([radius * 2 - 10.25, 0, 0]) {
+            rotate([0, 0, 45]) cylinder(r1 = 2 * radius, r2 = ring_wall/2 + 1, h = ring_ext_height * 2, $fn = 4);
+        }
+    }
     // rotating mount
     o_rad = 8;
     i_rad = 3;
     rotate([0, 90, -90]) {
-        translate([-o_rad, radius + corner + ring_arm_gap + o_rad + 2 * ring_wall, -2]) {
+        translate([-o_rad, radius + corner + o_rad + 2 * ring_wall, -2]) {
             shock_mount_ring(o_rad, i_rad, ring_wall);
         }
     }