|
|
@@ -55,11 +55,16 @@ module tube(or, ir, h) {
|
|
|
|
|
|
// main support ring
|
|
|
|
|
|
-module h2n_ring(width, depth, radius, height, slot_w, slot_d, band_wall, tube_wall, wall) {
|
|
|
+module h2n_ring(width, depth, radius, height, slot_w, slot_d, band_wall, wall, col_rad, col_wall) {
|
|
|
// main support ring
|
|
|
difference() {
|
|
|
rounded_block(height, width / 2 + band_wall, depth / 2 + band_wall, radius - thin_mint);
|
|
|
rounded_block_relative(height, width / 2 + band_wall, depth / 2 + band_wall, radius - band_wall - thin_mint, - band_wall);
|
|
|
+ for (m = [0, 1]) mirror([m, 0, 0]) {
|
|
|
+ translate([width / 2 + col_rad - col_wall, 0, 0]) {
|
|
|
+ cylinder(r = col_rad, h = height + thin_mint, $fn = facets);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
// inner band
|
|
|
difference() {
|
|
|
@@ -170,12 +175,12 @@ module h2n_bridge(width, height, ring_height, ring_wall, tilt, band, transition,
|
|
|
}
|
|
|
}
|
|
|
// top of bridge
|
|
|
- translate([width / 2, 0, band]) {
|
|
|
+ translate([width / 2 + wall, 0, band]) {
|
|
|
rotate([0, -90, 0]) {
|
|
|
difference() {
|
|
|
// curvy ceiling
|
|
|
- semi_cylinder(r = radius + col_wall, h = width);
|
|
|
- semi_cylinder(r = radius + col_wall - wall, h = width);
|
|
|
+ semi_cylinder(r = radius + col_wall, h = width + 2 * wall);
|
|
|
+ semi_cylinder(r = radius + col_wall - wall, h = width + 2 * wall);
|
|
|
// make a hole for the cables
|
|
|
translate([0, 0, width / 2]) {
|
|
|
rotate([0, 90, 0]) {
|
|
|
@@ -187,8 +192,7 @@ module h2n_bridge(width, height, ring_height, ring_wall, tilt, band, transition,
|
|
|
}
|
|
|
// caps at ends
|
|
|
for (m = [0, 1]) mirror([m, 0, 0]) {
|
|
|
- // fixme: why the 0.3 magic below?
|
|
|
- translate([width / 2 - 0.3, 0, band]) {
|
|
|
+ translate([width / 2 + wall, 0, band]) {
|
|
|
difference() {
|
|
|
quarter_sphere(r = radius + col_wall);
|
|
|
quarter_sphere(r = radius + col_wall - wall);
|
|
|
@@ -198,8 +202,8 @@ module h2n_bridge(width, height, ring_height, ring_wall, tilt, band, transition,
|
|
|
// base of bridge
|
|
|
translate([0, 0, 0]) {
|
|
|
for (m = [0, 1]) mirror([m, 0, 0]) {
|
|
|
- translate([width / 2 + mount_radius - col_wall - height * tan(tilt) + wall, 0, 0]) {
|
|
|
- cylcube(width / 2 - height * tan(tilt), radius + col_wall, band, wall);
|
|
|
+ translate([width / 2 + wall, 0, 0]) {
|
|
|
+ cylcube(width / 2 + wall, radius + col_wall, band, wall);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -208,7 +212,7 @@ module h2n_bridge(width, height, ring_height, ring_wall, tilt, band, transition,
|
|
|
cube([col_wall, (radius + wall) * 2, col_wall]);
|
|
|
}
|
|
|
for (m = [0, 1]) mirror([m, 0, 0]) {
|
|
|
- translate([-width / 2 + radius + wall + 0.5, -(radius + wall), 0]) {
|
|
|
+ translate([-width / 2 + radius, -(radius + wall), 0]) {
|
|
|
cube([col_wall, (radius + wall) * 2, col_wall]);
|
|
|
}
|
|
|
}
|
|
|
@@ -234,16 +238,22 @@ h2n_band_wall = 1.6;
|
|
|
// walls for the columns
|
|
|
h2n_col_wall = 2 * wall;
|
|
|
|
|
|
+// tilt for the columnds
|
|
|
+h2n_col_tilt = 4.0;
|
|
|
+
|
|
|
// render the whole thing
|
|
|
|
|
|
difference() {
|
|
|
union() {
|
|
|
|
|
|
-*h2n_ring(h2n_width_m, h2n_depth_m, h2n_depth * 0.425, h2n_band_height, h2n_side_band_w, h2n_side_band, h2n_band_wall, 0.0, wall);
|
|
|
+h2n_ring(h2n_width_m, h2n_depth_m, h2n_depth * 0.425, h2n_band_height, h2n_side_band_w, h2n_side_band, h2n_band_wall, wall, mount_radius, h2n_col_wall);
|
|
|
|
|
|
-*h2n_columns(h2n_width_m, connector_height, h2n_band_height, 4.0, 10.0, transition_height, mount_radius + h2n_col_wall, h2n_col_wall);
|
|
|
+h2n_columns(h2n_width_m, connector_height, h2n_band_height, h2n_col_tilt, 10.0, transition_height, mount_radius + h2n_col_wall, h2n_col_wall);
|
|
|
|
|
|
-h2n_bridge(h2n_width_m, connector_height, h2n_band_height, h2n_band_wall, 4.0, 10.0, transition_height, mount_radius, h2n_col_wall, wall);
|
|
|
+*translate([0, 0, connector_height]) {
|
|
|
+ h2n_bridge(h2n_width_m - connector_height * tan(h2n_col_tilt), connector_height,
|
|
|
+ h2n_band_height, h2n_band_wall, h2n_col_tilt, 10.0, transition_height, mount_radius, h2n_col_wall, wall);
|
|
|
+}
|
|
|
|
|
|
}
|
|
|
*translate([-40, -50, 0]) {
|