Parcourir la source

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 il y a 9 ans
Parent
commit
7dbfe21fca
1 fichiers modifiés avec 20 ajouts et 18 suppressions
  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);
         }
     }