瀏覽代碼

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 年之前
父節點
當前提交
7dbfe21fca
共有 1 個文件被更改,包括 20 次插入 和 18 次删除
  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);
         }
     }