|
|
@@ -611,41 +611,6 @@ module tetra_shock_mount_band(band_height, radius, corner, gap) {
|
|
|
|
|
|
// tetra shock mount internal ring
|
|
|
|
|
|
-module tetra_shock_mount_internal_ring_old(height, radius, band_height, corner, gap) {
|
|
|
- difference() {
|
|
|
- // four sided band
|
|
|
- tetra_shock_mount_band(band_height, radius, corner, gap);
|
|
|
- // slots so that the band clears the screws
|
|
|
- for (r = [0 + 45, 90 + 45, 180 + 45, 270 + 45]) rotate([0, 0, r]) {
|
|
|
- translate([radius + gap + 2, -2.0, 0]) cube([2.0, 4.0, band_height]);
|
|
|
- }
|
|
|
- }
|
|
|
- // 8 columns for mounting rubber bands
|
|
|
- for (r = [0, 90, 180, 270]) rotate([0, 0, r]) {
|
|
|
- for (m = [0, 1]) mirror([m, 0, 0]) {
|
|
|
- translate([radius + 1 + gap, radius*3/4, 0]) {
|
|
|
- rotate([0, 0, 0]) {
|
|
|
- difference() {
|
|
|
- // columns
|
|
|
- union() {
|
|
|
- translate([3, 0, 0]) rotate([0, 0, 0]) scale([1.2, 0.85, 1.0])
|
|
|
- cylinder(r = 3, h = height, $fn = facets);
|
|
|
- }
|
|
|
- // lower slots for rubber bands
|
|
|
- rotate([0, 0, 0]) 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
|
|
|
- rotate([0, 0, 0]) 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);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
module tetra_shock_mount_internal_ring(height, radius, band_height, corner, gap) {
|
|
|
difference() {
|
|
|
// four sided band
|
|
|
@@ -684,4 +649,51 @@ module tetra_shock_mount_internal_ring(height, radius, band_height, corner, gap)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+// tetra shock mount external ring
|
|
|
+
|
|
|
+module tetra_shock_mount_external_ring(height, radius, corner, gap) {
|
|
|
+ // main ring
|
|
|
+ difference() {
|
|
|
+ rounded_block_relative(height, radius, radius, corner, gap);
|
|
|
+ rounded_block_relative(height, radius, radius, corner, gap - ring_wall);
|
|
|
+ }
|
|
|
+ for (rot = [0, 90, 180, 270]) {
|
|
|
+ // anchors for rubber bands
|
|
|
+ rotate([0, 0, rot + 45]) {
|
|
|
+ translate([radius + gap + 2.25 * ring_wall, -5, 0]) {
|
|
|
+ minkowski() {
|
|
|
+ cube([4 - 2, 10, ring_ext_height]);
|
|
|
+ cylinder(r = 1.5, h = thin_mint, $fn = facets);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ translate([radius + gap + ring_wall - 2, -2, 0]) {
|
|
|
+ cube([9, 4, ring_ext_height]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // reinforcement
|
|
|
+ intersection() {
|
|
|
+ difference() {
|
|
|
+ rounded_block_relative(height * 2, radius, radius, corner, gap);
|
|
|
+ rounded_block_relative(height * 2, radius, radius, corner, gap - ring_wall);
|
|
|
+ }
|
|
|
+ //rotate([0, 0, 22.5]) rounded_octagon_wall(ring_ext_height * 2, 2 * radius - ring_wall, ring_wall);
|
|
|
+ translate([radius + gap - ring_wall/2, 0, 0]) {
|
|
|
+ rotate([0, 0, 45]) cylinder(r1 = 2 * radius, r2 = ring_wall/2 + 1, h = ring_ext_height * 2, $fn = 4);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // connection to hub
|
|
|
+ translate([radius + gap, -2, 0]) {
|
|
|
+ cube([10, 4, ring_ext_height * 2]);
|
|
|
+ }
|
|
|
+ // rotating mount
|
|
|
+ o_rad = 8;
|
|
|
+ i_rad = 3;
|
|
|
+ rotate([0, 90, -90]) {
|
|
|
+ translate([-o_rad, radius + gap + o_rad + 8, -2]) {
|
|
|
+ shock_mount_ring(o_rad, i_rad, ring_wall);
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
|