define wiring in separate file
[challenge-bot] / 3d-printables / sonar-binder-clip-holder-data.scad
index c48cc94260155d122f573c0080b28cef236ade4d..d9b20eacb8f1bdedd5c9f924981c8456bfee764e 100644 (file)
@@ -35,16 +35,26 @@ between_sonar_centers = sonar_diameter + between_sonar_cans;
 //  from one sensor to the next, so this allows for that variance.
 between_sonar_centers_variation = 2;
 
-wall_thickness = 3;
+wall_thickness = 4;
 
 screw_diameter_measured = 3.45;
 screw_radius_measured = screw_diameter_measured / 2;
-screw_radius_print_fudge = 0.3;
+screw_radius_print_fudge = 0.4;
 screw_radius = screw_radius_measured + screw_radius_print_fudge;
 
-sonar_binder_clip_holder_height = 4;
+sonar_binder_clip_holder_height = 3;
 
-module sonar_sensor_holes_2d(sonar_radius,
+/*
+  sonar holder
+    sonar holder outline
+    sonar holder holes
+  binder clip holder
+    binder clip holder outline
+    binder clip holder holes
+  sonar binder clip joiner
+ */
+
+module sonar_holder_holes_2d(sonar_radius,
                              between_sonar_centers,
                              between_sonar_centers_variation) {
   hull(){
@@ -56,30 +66,39 @@ module sonar_sensor_holes_2d(sonar_radius,
 
 module sonar_holder_outline_2d(holder_radius,
                                between_sonar_centers) {
+  smaller_radius = holder_radius / 4;
+  inside_radius = holder_radius - smaller_radius;
   hull() {
-    circle(holder_radius);
+    offset(r = smaller_radius){
+      square([inside_radius * 2, inside_radius * 2], center=true); }
     translate([between_sonar_centers, 0]) {
       circle(holder_radius); } } }
 
-module binder_clip_holder_outline_2d(holder_radius) {
-     circle(holder_radius); }
-
-module sonar_binder_clip_holder_outline_2d(holder_radius,
-                                           between_sonar_centers) {
-  sonar_holder_length = between_sonar_centers + 2 * holder_radius;
-  hull(){
-    sonar_holder_outline_2d(holder_radius, between_sonar_centers);
-    translate([sonar_holder_length, 0]) {
-      binder_clip_holder_outline_2d(holder_radius); } } }
+module sonar_holder_2d(holder_radius,
+                       between_sonar_centers,
+                       sonar_radius,
+                       between_sonar_centers_variation) {
+  difference() {
+    sonar_holder_outline_2d(holder_radius,
+                            between_sonar_centers);
+    sonar_holder_holes_2d(sonar_radius,
+                          between_sonar_centers,
+                          between_sonar_centers_variation); } }
 
 module binder_clip_holder_holes_2d(screw_radius) {
   circle(screw_radius); }
 
+module binder_clip_holder_outline_2d(holder_radius) {
+  smaller_radius = holder_radius / 4;
+  inside_radius = holder_radius - smaller_radius;
+  offset(r = smaller_radius){
+    square([inside_radius * 2, inside_radius * 2], center=true); } }
+
 module binder_clip_holder_2d(holder_radius,
                              screw_radius) {
   difference() {
-       binder_clip_holder_outline_2d(holder_radius);
-       binder_clip_holder_holes_2d(screw_radius); } }
+    binder_clip_holder_outline_2d(holder_radius);
+    binder_clip_holder_holes_2d(screw_radius); } }
 
 module binder_clip_holder(holder_radius,
                           screw_radius,
@@ -88,34 +107,25 @@ module binder_clip_holder(holder_radius,
     binder_clip_holder_2d(holder_radius,
                           screw_radius); } }
 
-module sonar_binder_clip_holder_holes_2d(sonar_radius,
-                                         between_sonar_centers,
-                                         between_sonar_centers_variation,
-                                         screw_radius,
-                                         wall_thickness) {
-  holder_radius = sonar_radius + wall_thickness;
-  holder_diameter = holder_radius * 2;
-  holder_length = between_sonar_centers + holder_diameter;
-  sonar_sensor_holes_2d(sonar_radius,
-                        between_sonar_centers,
-                        between_sonar_centers_variation);
-  translate([holder_length, 0]){
-    binder_clip_holder_holes_2d(screw_radius); } }
-
 module sonar_binder_clip_holder_2d(sonar_radius,
                                    between_sonar_centers,
                                    between_sonar_centers_variation,
                                    screw_radius,
                                    wall_thickness) {
-  holder_radius = sonar_radius + wall_thickness;
-  difference() {
-    sonar_binder_clip_holder_outline_2d(holder_radius,
-                                        between_sonar_centers);
-    sonar_binder_clip_holder_holes_2d(sonar_radius,
-                                      between_sonar_centers,
-                                      between_sonar_centers_variation,
-                                      screw_radius,
-                                      wall_thickness); } }
+     holder_radius = sonar_radius + wall_thickness;
+     sonar_holder_2d(holder_radius,
+                     between_sonar_centers,
+                     sonar_radius,
+                     between_sonar_centers_variation);
+     arm_length = between_sonar_centers + 2 * holder_radius;
+     difference() {
+          translate([0, -holder_radius]) {
+               square([arm_length, holder_radius * 2]); }
+          sonar_holder_outline_2d(holder_radius, between_sonar_centers);
+          translate([arm_length, 0]) {
+               binder_clip_holder_outline_2d(holder_radius); } }
+     translate([arm_length, 0]) {
+          binder_clip_holder_2d(holder_radius, screw_radius); } }
 
 module sonar_binder_clip_holder(sonar_radius,
                                 between_sonar_centers,
@@ -123,12 +133,12 @@ module sonar_binder_clip_holder(sonar_radius,
                                 screw_radius,
                                 wall_thickness,
                                 sonar_binder_clip_holder_height) {
-     linear_extrude(height = sonar_binder_clip_holder_height) {
-          sonar_binder_clip_holder_2d(sonar_radius,
-                                      between_sonar_centers,
-                                      between_sonar_centers_variation,
-                                      screw_radius,
-                                      wall_thickness); } }
+  linear_extrude(height = sonar_binder_clip_holder_height) {
+    sonar_binder_clip_holder_2d(sonar_radius,
+                                between_sonar_centers,
+                                between_sonar_centers_variation,
+                                screw_radius,
+                                wall_thickness); } }
 
 /*
   This file is part of challenge-bot.