Bläddra i källkod

modularize code for capsule test rig

Fernando Pablo Lopez-Lezcano 10 år sedan
förälder
incheckning
0116a9ab99
1 ändrade filer med 66 tillägg och 53 borttagningar
  1. 66 53
      TestRig.scad

+ 66 - 53
TestRig.scad

@@ -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();
+}