|
@@ -135,6 +135,8 @@ module one_pcb_parts (height, pcb_w, pcb_l, pcb_t, pcb_offset, slot_d, front, ba
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+// octagonal body
|
|
|
|
|
+
|
|
|
module rounded_octagon(height, radius) {
|
|
module rounded_octagon(height, radius) {
|
|
|
intersection() {
|
|
intersection() {
|
|
|
cylinder(r = radius, h = height, $fn = 8);
|
|
cylinder(r = radius, h = height, $fn = 8);
|
|
@@ -150,69 +152,10 @@ module rounded_octagon_wall(height, radius, wall) {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// twist angle to optimize space usage inside body
|
|
// twist angle to optimize space usage inside body
|
|
|
-//octa_pcb_twist = pcb_version == 2 ? 12 : 16;
|
|
|
|
|
octa_pcb_twist = pcb_version == 2 ? 13.5 : 16;
|
|
octa_pcb_twist = pcb_version == 2 ? 13.5 : 16;
|
|
|
// tilt angle to clear upper flare thread
|
|
// tilt angle to clear upper flare thread
|
|
|
octa_pcb_tilt = pcb_version == 2 ? -0.7 : 0.0;
|
|
octa_pcb_tilt = pcb_version == 2 ? -0.7 : 0.0;
|
|
|
|
|
|
|
|
-module octa_mount_body_old(height, radius, lower_lip, upper_lip, clear) {
|
|
|
|
|
- // rotate pcb assembly so it does not interfere with the screws
|
|
|
|
|
- offset_angle = -octa_pcb_twist;
|
|
|
|
|
- // rotate individual pcb's to better use the internal space of the body
|
|
|
|
|
- twist_angle = octa_pcb_twist;
|
|
|
|
|
- difference() {
|
|
|
|
|
- union() {
|
|
|
|
|
- difference() {
|
|
|
|
|
- union() {
|
|
|
|
|
- // main body
|
|
|
|
|
- rounded_octagon_wall(height, radius, 2 * wall);
|
|
|
|
|
- // slots for printed circuit boards
|
|
|
|
|
- intersection() {
|
|
|
|
|
- for (r = [0:360/8:360]) rotate([0, octa_pcb_tilt, r + offset_angle]) {
|
|
|
|
|
- translate([radial_pcb_offset, 0, 0]) {
|
|
|
|
|
- rotate([0, 0, 180 + twist_angle]) {
|
|
|
|
|
- one_pcb_slot(height * 2/3, pcb_width + pcb_fit, pcb_length, pcb_thickness + pcb_tfit, -10,
|
|
|
|
|
- pcb_slot_depth, pcb_front, pcb_back, false);
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- // clip outside
|
|
|
|
|
- rounded_octagon(height, radius);
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- // upper lip for flare to microphone
|
|
|
|
|
- translate([0, 0, height - upper_lip]) {
|
|
|
|
|
- rounded_octagon_wall(upper_lip, radius, wall + lip_fit);
|
|
|
|
|
- }
|
|
|
|
|
- // lower lip for flare to cable or connector
|
|
|
|
|
- translate([0, 0, 0]) {
|
|
|
|
|
- rounded_octagon_wall(upper_lip, radius, wall + lip_fit);
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- // add backplates for upper lip screws
|
|
|
|
|
- for (r = [45, 135, 225, 315]) {
|
|
|
|
|
- rotate([0, 0, r]) translate([-(radius - 3 * wall), -2.5, 0]) {
|
|
|
|
|
- cube([2, 5, height]);
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- // make eight holes in the the body for screws that hold both flares
|
|
|
|
|
- // (number 0 size, 1/4" long = thread diameter: 1.6mm, head diameter: 2.75)
|
|
|
|
|
- difference() {
|
|
|
|
|
- for (z = [lower_lip/2, height - upper_lip/2]) {
|
|
|
|
|
- for (r = [45, 135, 225, 315]) {
|
|
|
|
|
- rotate([0, 0, r]) translate([-(radius + 2 * wall), 0, z]) {
|
|
|
|
|
- rotate([0, 90, 0]) {
|
|
|
|
|
- cylinder(r = 0.7, h = radius + wall, $fn = facets);
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- cylinder(r = radius/2, h = height);
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
module octa_mount_body(height, radius, lower_lip, upper_lip, clear) {
|
|
module octa_mount_body(height, radius, lower_lip, upper_lip, clear) {
|
|
|
// rotate pcb assembly so it does not interfere with the screws
|
|
// rotate pcb assembly so it does not interfere with the screws
|
|
|
offset_angle = -octa_pcb_twist;
|
|
offset_angle = -octa_pcb_twist;
|