|
|
@@ -106,74 +106,87 @@ module contact (trans, angle, cutout, slot = false) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
// main capsule holder
|
|
|
-translate([capsule_radius * 3.0, capsule_radius * 3, 0]) {
|
|
|
- difference() {
|
|
|
- cylinder(r = capsule_radius + wall, h = capsule_height, $fn = facets);
|
|
|
- cylinder(r = capsule_radius + fudge, h = capsule_height, $fn = facets);
|
|
|
+module capsule_holder () {
|
|
|
+ translate([capsule_radius * 3.0, capsule_radius * 3, 0]) {
|
|
|
+ difference() {
|
|
|
+ cylinder(r = capsule_radius + wall, h = capsule_height, $fn = facets);
|
|
|
+ cylinder(r = capsule_radius + fudge, h = capsule_height, $fn = facets);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
// back plate with contact springs
|
|
|
-difference() {
|
|
|
- union() {
|
|
|
- difference() {
|
|
|
- union() {
|
|
|
- cylinder(r = capsule_radius + wall, h = disk_edge, $fn = facets);
|
|
|
- cylinder(r = capsule_radius, h = disk_depth, $fn = facets);
|
|
|
- }
|
|
|
+module backplate () {
|
|
|
+ difference() {
|
|
|
+ union() {
|
|
|
difference() {
|
|
|
- cylinder(r = capsule_radius, h = disk_depth, $fn = facets);
|
|
|
- cylinder(r = capsule_radius_i, h = disk_depth, $fn = facets);
|
|
|
+ union() {
|
|
|
+ cylinder(r = capsule_radius + wall, h = disk_edge, $fn = facets);
|
|
|
+ cylinder(r = capsule_radius, h = disk_depth, $fn = facets);
|
|
|
+ }
|
|
|
+ difference() {
|
|
|
+ cylinder(r = capsule_radius, h = disk_depth, $fn = facets);
|
|
|
+ cylinder(r = capsule_radius_i, h = disk_depth, $fn = facets);
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- // contacts
|
|
|
- contact([contact_border + contact_offset, 0, 0], 0, contact_cutout);
|
|
|
- contact([-contact_border - contact_offset, 0, 0], 0, contact_cutout);
|
|
|
- // GND contact
|
|
|
- contact([- contact_border - contact_offset, 0, 0], 90, contact_cutout_gnd);
|
|
|
- // one more radial connection
|
|
|
- rotate([0, 0, -120]) {
|
|
|
- translate([-contact_width / 2, 0, 0]) {
|
|
|
- cube([contact_width, capsule_radius, disk_depth]);
|
|
|
+ // contacts
|
|
|
+ contact([contact_border + contact_offset, 0, 0], 0, contact_cutout);
|
|
|
+ contact([-contact_border - contact_offset, 0, 0], 0, contact_cutout);
|
|
|
+ // GND contact
|
|
|
+ contact([- contact_border - contact_offset, 0, 0], 90, contact_cutout_gnd);
|
|
|
+ // one more radial connection
|
|
|
+ rotate([0, 0, -120]) {
|
|
|
+ translate([-contact_width / 2, 0, 0]) {
|
|
|
+ cube([contact_width, capsule_radius, disk_depth]);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
- // contact cutouts
|
|
|
- contact([contact_border + contact_offset, 0, 0], 0, contact_cutout, true);
|
|
|
- contact([-contact_border - contact_offset, 0, 0], 0, contact_cutout, true);
|
|
|
- // contact cutout for GND
|
|
|
- contact([- contact_border - contact_offset, 0, 0], 90, contact_cutout_gnd, true);
|
|
|
- // finally trim the seat for the holder
|
|
|
- translate([0, 0, disk_edge]) {
|
|
|
- difference() {
|
|
|
- cylinder(r = capsule_radius + wall, h = disk_depth, $fn = facets);
|
|
|
- cylinder(r = capsule_radius, h = disk_depth, $fn = facets);
|
|
|
+ // contact cutouts
|
|
|
+ contact([contact_border + contact_offset, 0, 0], 0, contact_cutout, true);
|
|
|
+ contact([-contact_border - contact_offset, 0, 0], 0, contact_cutout, true);
|
|
|
+ // contact cutout for GND
|
|
|
+ contact([- contact_border - contact_offset, 0, 0], 90, contact_cutout_gnd, true);
|
|
|
+ // finally trim the seat for the holder
|
|
|
+ translate([0, 0, disk_edge]) {
|
|
|
+ difference() {
|
|
|
+ cylinder(r = capsule_radius + wall, h = disk_depth, $fn = facets);
|
|
|
+ cylinder(r = capsule_radius, h = disk_depth, $fn = facets);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// sleeve that holds everything together
|
|
|
-translate([capsule_radius * 3 , 0, 0]) {
|
|
|
- difference() {
|
|
|
- cylinder(r = capsule_radius + 2 * wall, h = capsule_height * 2 / 3, $fn = facets);
|
|
|
- cylinder(r = capsule_radius + wall, h = capsule_height * 2 / 3, $fn = facets);
|
|
|
- }
|
|
|
- difference() {
|
|
|
- cylinder(r = capsule_radius + wall, h = sleeve_edge, $fn = facets);
|
|
|
- cylinder(r = capsule_radius, h = sleeve_edge, $fn = facets);
|
|
|
- }
|
|
|
- // back plate for contacts 1 / 2
|
|
|
- translate([-(contact_width + 1.5 * contact_border) + 0.1, capsule_radius / 2 - 0.1, 0]) {
|
|
|
- cube([(contact_width + 1.5 * contact_border) * 2 - 0.2, capsule_radius / 2 + 0.1, sleeve_edge]);
|
|
|
- }
|
|
|
- // back plate for GND contact
|
|
|
- rotate([0, 0, 90]) {
|
|
|
- translate([-(contact_width + 1.5 * contact_border), capsule_radius * 1 / 3, 0]) {
|
|
|
- cube([(contact_width + 1.5 * contact_border), capsule_radius * 2 / 3, sleeve_edge]);
|
|
|
+module sleeve () {
|
|
|
+ translate([capsule_radius * 3 , 0, 0]) {
|
|
|
+ difference() {
|
|
|
+ cylinder(r = capsule_radius + 2 * wall, h = capsule_height * 2 / 3, $fn = facets);
|
|
|
+ cylinder(r = capsule_radius + wall, h = capsule_height * 2 / 3, $fn = facets);
|
|
|
+ }
|
|
|
+ difference() {
|
|
|
+ cylinder(r = capsule_radius + wall, h = sleeve_edge, $fn = facets);
|
|
|
+ cylinder(r = capsule_radius, h = sleeve_edge, $fn = facets);
|
|
|
+ }
|
|
|
+ // back plate for contacts 1 / 2
|
|
|
+ translate([-(contact_width + 1.5 * contact_border) + 0.1, capsule_radius / 2 - 0.1, 0]) {
|
|
|
+ cube([(contact_width + 1.5 * contact_border) * 2 - 0.2, capsule_radius / 2 + 0.1, sleeve_edge]);
|
|
|
+ }
|
|
|
+ // back plate for GND contact
|
|
|
+ rotate([0, 0, 90]) {
|
|
|
+ translate([-(contact_width + 1.5 * contact_border), capsule_radius * 1 / 3, 0]) {
|
|
|
+ cube([(contact_width + 1.5 * contact_border), capsule_radius * 2 / 3, sleeve_edge]);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+backplate();
|
|
|
+
|
|
|
+translate([capsule_radius * 1.0, capsule_radius * 1, 0]) {
|
|
|
+ capsule_holder();
|
|
|
+}
|
|
|
+
|
|
|
+translate([capsule_radius * 1 , 0, 0]) {
|
|
|
+ sleeve();
|
|
|
+}
|