|
@@ -24,6 +24,7 @@
|
|
|
// Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0)
|
|
// Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0)
|
|
|
// http://creativecommons.org/licenses/by-nc-sa/4.0/
|
|
// http://creativecommons.org/licenses/by-nc-sa/4.0/
|
|
|
|
|
|
|
|
|
|
+include <SpHEAR_common.scad>;
|
|
|
include <TinySpHEAR_common.scad>;
|
|
include <TinySpHEAR_common.scad>;
|
|
|
include <CCRMA_logo.scad>;
|
|
include <CCRMA_logo.scad>;
|
|
|
|
|
|
|
@@ -542,6 +543,59 @@ module tetra_capsule_array_mount(angles, mount_radius, mount_wall) {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+// windscreen
|
|
|
|
|
+
|
|
|
|
|
+module tetra_wind_screen(radius, corner, height, band_height, col_radius) {
|
|
|
|
|
+ // mount to body
|
|
|
|
|
+ difference() {
|
|
|
|
|
+ rounded_block_relative(band_height, radius, radius, corner, col_radius);
|
|
|
|
|
+ rounded_block_relative(band_height, radius, radius, corner, -(col_radius + lip_fit));
|
|
|
|
|
+ // indentation to trap nylon screen
|
|
|
|
|
+ }
|
|
|
|
|
+ // quad helix windscreen support
|
|
|
|
|
+ translate([0, 0, band_height]) {
|
|
|
|
|
+ for (r = [0, 90, -90, 180]) for (t = [1, -1]) rotate([0, 0, r]) {
|
|
|
|
|
+ linear_extrude(height = height, center = false, convexity = 0, twist = (360 + 45/2) * t, $fn = facets) {
|
|
|
|
|
+ translate([radius, 0, 0]) {
|
|
|
|
|
+ circle(r = col_radius, $fn = facets);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ // connectors to top
|
|
|
|
|
+ translate([0, 0, height + band_height]) {
|
|
|
|
|
+ for (r = [0, 90, -90, 180]) for (t = [22.5, -22.5]) rotate([0, 0, r + t]) {
|
|
|
|
|
+ translate([radius, 0, 0]) {
|
|
|
|
|
+ cylinder(r = col_radius * 2/3, h = 2.0, $fn = facets);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+module tetra_wind_screen_top(radius, col_rad) {
|
|
|
|
|
+ // main ring
|
|
|
|
|
+ difference() {
|
|
|
|
|
+ cylinder(r = radius + 2 * col_rad, h = col_rad * 1.5, $fn = facets);
|
|
|
|
|
+ cylinder(r = radius, h = col_rad * 1.5, $fn = facets);
|
|
|
|
|
+ }
|
|
|
|
|
+ // cross
|
|
|
|
|
+ for (r = [-45, 45, 135, -135]) rotate([0, 0, r]) {
|
|
|
|
|
+ translate([0, -col_rad/2, 0]) {
|
|
|
|
|
+ cube([radius, col_rad, col_rad * 1.5]);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ // connectors for quad helix
|
|
|
|
|
+ for (r = [0, 90, -90, 180]) for (t = [22.5, -22.5]) rotate([0, 0, r + t]) {
|
|
|
|
|
+ translate([radius + col_rad, 0, 0]) {
|
|
|
|
|
+ difference() {
|
|
|
|
|
+ cylinder(r = col_rad * 2/3 + wall/2, h = col_rad * 1.5 + 2.0, $fn = facets);
|
|
|
|
|
+ cylinder(r = col_rad * 2/3 - fit, h = col_rad * 1.5 + 2.0, $fn = facets);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
////
|
|
////
|
|
|
//// render all the different parts
|
|
//// render all the different parts
|
|
|
////
|
|
////
|