Przeglądaj źródła

move external ring of shock mount from TinySpHEAR and Octathingy to SpHEAR_common

Fernando Pablo Lopez-Lezcano 10 lat temu
rodzic
commit
7b08ce8c2e
3 zmienionych plików z 54 dodań i 90 usunięć
  1. 1 45
      Octathingy_mount_pcb.scad
  2. 44 0
      SpHEAR_common.scad
  3. 9 45
      TinySpHEAR_mount_pcb.scad

+ 1 - 45
Octathingy_mount_pcb.scad

@@ -356,50 +356,6 @@ module tetra_shock_mount_ring(outside_radius, inside_radius, thickness) {
     }
 }
 
-// external ring of shock mount (connects to stand mount)
-
-module octa_shock_mount_external_ring(height, xradius, yradius, corner, gap, lip) {
-    difference() {
-        rounded_block_relative(ring_ext_height, xradius, yradius, mount_corner, gap);
-        rounded_block_relative(ring_ext_height, xradius, yradius, mount_corner, gap - ring_wall);
-    }
-    for (rot = [0, 90, 180, 270]) {
-        rotate([0, 0, rot]) {
-            translate([((rot % 180) ? yradius : xradius) + gap + ring_wall, -7.5, 0]) {
-                cube([4, 15, ring_ext_height]);
-            }
-            translate([((rot % 180) ? yradius : xradius) + gap, -2, 0]) {
-                cube([7, 4, ring_ext_height]);
-            }
-        }
-    }
-    // connection to stand mount
-    ring_arm_gap = 20;
-    intersection() {
-        translate([ring_arm_gap, 0, 0]) {
-            difference() {
-                rounded_block_relative(ring_ext_height, xradius, yradius, mount_corner, gap);
-                rounded_block_relative(ring_ext_height, xradius, yradius, mount_corner, gap - ring_wall);
-            }
-        }
-        translate([ring_arm_gap / 2, -(yradius + 2 * mount_corner), 0]) {
-            cube([(xradius + 2 * mount_corner) + ring_arm_gap, 2 * (yradius + 2 * mount_corner), ring_ext_height]);
-        }
-    }
-    // connection to hub
-    translate([xradius + mount_corner + ring_wall + ring_arm_gap, -2, 0]) {
-        cube([8, 4, ring_ext_height]);
-    }
-    // rotating mount
-    o_rad = 8;
-    i_rad = 3;
-    rotate([0, 90, -90]) {
-        translate([-o_rad, xradius + mount_corner + ring_wall + ring_arm_gap + o_rad + ring_wall / 2 + 4, -2]) {
-            tetra_shock_mount_ring(o_rad, i_rad, ring_wall);
-        }
-    }
-}
-
 // connector that joins the two internal rings
 
 module tetra_shock_mount_connector(length, lip, width, thickness, fit) {
@@ -559,7 +515,7 @@ module render_tetra_shock_mount_stand(z_offset) {
 
 module render_octa_shock_mount_external_ring(z_offset) {
     translate([0, 0, z_offset]) {
-        octa_shock_mount_external_ring(ring_height, box_radius + wall, box_radius * 2 + wall, mount_corner, main_radius_inc, 0);
+        shock_mount_external_ring(ring_height, box_radius + wall, box_radius * 2 + wall, mount_corner, main_radius_inc, 0);
     }
 }
 

+ 44 - 0
SpHEAR_common.scad

@@ -358,3 +358,47 @@ module shock_mount_internal_ring(height, xradius, yradius, corner, gap, lip) {
     }    
 }
 
+// external ring of shock mount (connects to stand mount)
+
+module shock_mount_external_ring(height, xradius, yradius, corner, gap, lip) {
+    difference() {
+        rounded_block_relative(ring_ext_height, xradius, yradius, mount_corner, gap);
+        rounded_block_relative(ring_ext_height, xradius, yradius, mount_corner, gap - ring_wall);
+    }
+    for (rot = [0, 90, 180, 270]) {
+        rotate([0, 0, rot]) {
+            translate([((rot % 180) ? yradius : xradius) + gap + ring_wall, -7.5, 0]) {
+                cube([4, 15, ring_ext_height]);
+            }
+            translate([((rot % 180) ? yradius : xradius) + gap, -2, 0]) {
+                cube([7, 4, ring_ext_height]);
+            }
+        }
+    }
+    // connection to stand mount
+    ring_arm_gap = 20;
+    intersection() {
+        translate([ring_arm_gap, 0, 0]) {
+            difference() {
+                rounded_block_relative(ring_ext_height, xradius, yradius, mount_corner, gap);
+                rounded_block_relative(ring_ext_height, xradius, yradius, mount_corner, gap - ring_wall);
+            }
+        }
+        translate([ring_arm_gap / 2, -(yradius + 2 * mount_corner), 0]) {
+            cube([(xradius + 2 * mount_corner) + ring_arm_gap, 2 * (yradius + 2 * mount_corner), ring_ext_height]);
+        }
+    }
+    // connection to hub
+    translate([xradius + mount_corner + ring_wall + ring_arm_gap, -2, 0]) {
+        cube([8, 4, ring_ext_height]);
+    }
+    // rotating mount
+    o_rad = 8;
+    i_rad = 3;
+    rotate([0, 90, -90]) {
+        translate([-o_rad, xradius + mount_corner + ring_wall + ring_arm_gap + o_rad + ring_wall / 2 + 4, -2]) {
+            tetra_shock_mount_ring(o_rad, i_rad, ring_wall);
+        }
+    }
+}
+

+ 9 - 45
TinySpHEAR_mount_pcb.scad

@@ -114,6 +114,14 @@ internal_ring_gap = 1.0;
 connector_w = 10.0;
 connector_d = 2.0;
 
+// wall thickness and height of shock mount rings
+ring_wall = 4 * wall;
+ring_ext_height = 6;
+
+// gap between external ring and support arm
+ring_arm_gap = 20;
+
+
 // all four printed circuit boards
 
 module tetra_pcb_clear(length, width, thick, slot_depth, front, back) {
@@ -286,50 +294,6 @@ module tetra_shock_mount_ring(outside_radius, inside_radius, thickness) {
     }
 }
 
-// external ring of shock mount (connects to stand mount)
-
-module tetra_shock_mount_external_ring(height, radius, corner, gap, lip) {
-    difference() {
-        rounded_block_relative(6, radius, radius, mount_corner, gap);
-        rounded_block_relative(6, radius, radius, mount_corner, gap - 4 * wall);
-    }
-    for (rot = [0, 90, 180, 270]) {
-        rotate([0, 0, rot]) {
-            translate([radius + gap + 4 * wall, -7.5, 0]) {
-                cube([4, 15, 6]);
-            }
-            translate([radius + gap, -2, 0]) {
-                cube([7, 4, 6]);
-            }
-        }
-    }
-    // connection to stand mount
-    translate([0, 18, 0]) {
-        intersection() {
-            difference() {
-                rounded_block_relative(6, radius, radius, mount_corner - 5, gap);
-                rounded_block_relative(6, radius, radius, mount_corner - 5, gap - 4 * wall);
-            }
-            translate([-(radius + 2 * mount_corner), 0, 0]) {
-                cube([2 * (radius + 2 * mount_corner), radius + 2 * mount_corner, 6]);
-            }
-        }
-    }
-    // connection to hub
-    translate([-2, radius + 2 * mount_corner + 12, 0]) {
-        cube([4, 10, 6]);
-    }
-    // rotating mount
-    o_rad = 8;
-    i_rad = 3;
-    thk = 4;
-    rotate([0, 90, 0]) {
-        translate([-o_rad, 66, -2]) {
-            tetra_shock_mount_ring(o_rad, i_rad, thk);
-        }
-    } 
-}
-
 // connector that joins the two internal rings
 
 module tetra_shock_mount_connector(length, lip, width, thickness, fit) {
@@ -492,7 +456,7 @@ module render_tetra_shock_mount_stand(z_offset) {
 
 module render_tetra_shock_mount_external_ring(z_offset) {
     translate([0, 0, z_offset]) {
-        tetra_shock_mount_external_ring(ring_height, box_radius + wall, mount_corner, main_radius_inc, 0);
+        shock_mount_external_ring(ring_height, box_radius + wall, box_radius + wall, mount_corner, main_radius_inc, 0);
     }
 }