|
@@ -202,29 +202,51 @@ module tetra_mount_flare(height, lip, transition, bot_radius, bot_corner, top_ra
|
|
|
difference() {
|
|
difference() {
|
|
|
rounded_block(height, bot_radius, bot_radius, bot_corner);
|
|
rounded_block(height, bot_radius, bot_radius, bot_corner);
|
|
|
rounded_block_relative(height, bot_radius, bot_radius, bot_corner, -(2 * wall));
|
|
rounded_block_relative(height, bot_radius, bot_radius, bot_corner, -(2 * wall));
|
|
|
- // flange to mount on body
|
|
|
|
|
|
|
+ // cut flange to mount on body
|
|
|
rounded_block_relative(lip + 1.00, bot_radius, bot_radius, bot_corner, - (wall));
|
|
rounded_block_relative(lip + 1.00, bot_radius, bot_radius, bot_corner, - (wall));
|
|
|
- // make a stepped transition to avoid big overhang (a fillet would be best)
|
|
|
|
|
- translate([0, 0, lip + 1.0]) {
|
|
|
|
|
- rounded_block_relative(1/3, bot_radius, bot_radius, bot_corner, - wall * 1.333);
|
|
|
|
|
- }
|
|
|
|
|
- translate([0, 0, lip + 1.333]) {
|
|
|
|
|
- rounded_block_relative(1/3, bot_radius, bot_radius, bot_corner, - wall * 1.666);
|
|
|
|
|
|
|
+ // and make a smooth transition to avoid overhangs
|
|
|
|
|
+ translate([0, 0, lip + 1.00]) {
|
|
|
|
|
+ hull() {
|
|
|
|
|
+ rounded_block_relative(thin_mint, bot_radius, bot_radius, bot_corner, - wall);
|
|
|
|
|
+ translate([0, 0, 1.0]) {
|
|
|
|
|
+ rounded_block_relative(thin_mint, bot_radius, bot_radius, bot_corner, - 2 * wall);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
// flare to round section
|
|
// flare to round section
|
|
|
translate([0, 0, height]) {
|
|
translate([0, 0, height]) {
|
|
|
difference() {
|
|
difference() {
|
|
|
hull() {
|
|
hull() {
|
|
|
- rounded_block(1, bot_radius, bot_radius, bot_corner);
|
|
|
|
|
|
|
+ rounded_block(thin_mint, bot_radius, bot_radius, bot_corner);
|
|
|
translate([0, 0, transition]) {
|
|
translate([0, 0, transition]) {
|
|
|
- cylinder(r = top_radius, h = 1, $fn = facets);
|
|
|
|
|
|
|
+ cylinder(r = top_radius + wall, h = thin_mint, $fn = facets);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
hull() {
|
|
hull() {
|
|
|
- rounded_block_relative(1, bot_radius, bot_radius, bot_corner, - 2 * wall);
|
|
|
|
|
|
|
+ rounded_block_relative(thin_mint, bot_radius, bot_radius, bot_corner, - 2 * wall);
|
|
|
translate([0, 0, transition]) {
|
|
translate([0, 0, transition]) {
|
|
|
- cylinder(r = top_radius - wall, h = 1, $fn = facets);
|
|
|
|
|
|
|
+ cylinder(r = top_radius - wall, h = thin_mint, $fn = facets);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ // add an additional transition from the flare to the stalk
|
|
|
|
|
+ flare_stalk = 2;
|
|
|
|
|
+ mid_radius = top_radius + wall + (flare_stalk * (bot_radius - (top_radius + wall))) / transition;
|
|
|
|
|
+ mid_corner = top_radius + wall + (flare_stalk * (bot_corner - (top_radius + wall))) / transition;
|
|
|
|
|
+ translate([0, 0, height + transition - flare_stalk]) {
|
|
|
|
|
+ difference() {
|
|
|
|
|
+ hull() {
|
|
|
|
|
+ rounded_block(thin_mint, mid_radius, mid_radius, mid_corner);
|
|
|
|
|
+ translate([0, 0, 2 * flare_stalk]) {
|
|
|
|
|
+ cylinder(r = top_radius + wall, h = thin_mint, $fn = facets);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ hull() {
|
|
|
|
|
+ rounded_block_relative(thin_mint, mid_radius, mid_radius, mid_corner, - wall);
|
|
|
|
|
+ translate([0, 0, 2 * flare_stalk]) {
|
|
|
|
|
+ cylinder(r = top_radius - wall, h = thin_mint, $fn = facets);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -232,7 +254,7 @@ module tetra_mount_flare(height, lip, transition, bot_radius, bot_corner, top_ra
|
|
|
// cylindrical stalk
|
|
// cylindrical stalk
|
|
|
translate([0, 0, height + transition]) {
|
|
translate([0, 0, height + transition]) {
|
|
|
difference() {
|
|
difference() {
|
|
|
- cylinder(r = top_radius, h = stalk_height, $fn = facets);
|
|
|
|
|
|
|
+ cylinder(r = top_radius + wall, h = stalk_height, $fn = facets);
|
|
|
cylinder(r = top_radius - wall, h = stalk_height, $fn = facets);
|
|
cylinder(r = top_radius - wall, h = stalk_height, $fn = facets);
|
|
|
}
|
|
}
|
|
|
// add marker for "back of microphone" orientation
|
|
// add marker for "back of microphone" orientation
|
|
@@ -258,8 +280,18 @@ module tetra_capsule_array_mount(angles) {
|
|
|
translate([0, 0, 0]) {
|
|
translate([0, 0, 0]) {
|
|
|
rotate([0, 0, 45]) {
|
|
rotate([0, 0, 45]) {
|
|
|
difference() {
|
|
difference() {
|
|
|
- ellipsoid(mount_top_height, mount_radius + wall, mount_radius_capsule, mount_top_eccentricity);
|
|
|
|
|
- ellipsoid(mount_top_height, mount_radius, mount_radius_capsule * 0.5, mount_top_eccentricity * 1.05);
|
|
|
|
|
|
|
+ hull() {
|
|
|
|
|
+ cylinder(r = mount_radius + 2 * wall, h = thin_mint, $fn = facets);
|
|
|
|
|
+ translate([0, 0, mount_top_height]) {
|
|
|
|
|
+ rounded_block(thin_mint, capsule_radius, mount_radius_capsule, mount_radius * 0.9);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ hull() {
|
|
|
|
|
+ cylinder(r = mount_radius, h = thin_mint, $fn = facets);
|
|
|
|
|
+ translate([0, 0, mount_top_height]) {
|
|
|
|
|
+ rounded_block_relative(thin_mint, capsule_radius, mount_radius_capsule, mount_radius * 0.9, - 1.25 * wall);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|