소스 검색

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);
         }
     }