bring in height to sonar binder clip holder
[challenge-bot] / 3d-printables / sonar-binder-clip-holder-data.scad
index 05d8d27a627d06c1cb62d7394b17a67f8023af53..94ba32471e88e4f631baf3c5dc4cda83ce5c4dd4 100644 (file)
@@ -30,15 +30,89 @@ 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;
+
+screw_radius_measured = 2.8;
+screw_radius_print_fudge = 0.3;
+screw_radius = screw_radius_measured + screw_radius_print_fudge;
+
+sonar_binder_clip_holder_height = 2;
+
+module sonar_sensors_2d(sonar_radius,
+                        between_sonar_centers,
+                        between_sonar_centers_variation) {
+  hull(){
+    circle(sonar_radius);
+    translate([between_sonar_centers_variation, 0]){
+      circle(sonar_radius); } }
+  translate([between_sonar_centers, 0]) {
+    circle(sonar_radius); } }
+
+module sonar_holder_outline_2d(sonar_radius,
+                               between_sonar_centers,
+                               wall_thickness) {
+  holder_radius = sonar_radius + wall_thickness;
+  holder_diameter = holder_radius * 2;
+  hull() {
+    circle(holder_radius);
+    translate([between_sonar_centers - sonar_radius - wall_thickness,
+               -holder_radius]) {
+      square(holder_diameter); } } }
+
+module sonar_holder_2d(sonar_radius,
+                       between_sonar_centers,
+                       between_sonar_centers_variation,
+                       wall_thickness) {
+  difference() {
+    sonar_holder_outline_2d(sonar_radius,
+                            between_sonar_centers,
+                            wall_thickness);
+    sonar_sensors_2d(sonar_radius,
+                     between_sonar_centers,
+                     between_sonar_centers_variation); } }
+
+module binder_clip_holder_2d(binder_clip_holder_length,
+                             screw_radius,
+                             holder_radius){
+  difference() {
+  square([binder_clip_holder_length, holder_radius * 2]);
+  translate([binder_clip_holder_length - holder_radius, holder_radius]) {
+    circle(screw_radius); } } }
+
+module sonar_binder_clip_holder_2d(sonar_radius,
+                                   between_sonar_centers,
+                                   between_sonar_centers_variation,
+                                   wall_thickness) {
+  sonar_holder_2d(sonar_radius,
+                  between_sonar_centers,
+                  between_sonar_centers_variation,
+                  wall_thickness);
+  holder_radius = sonar_radius + wall_thickness;
+  binder_clip_holder_length = 2 * holder_radius;
+  translate([between_sonar_centers + holder_radius, -holder_radius]){
+    binder_clip_holder_2d(binder_clip_holder_length,
+                       screw_radius,
+                       holder_radius); } }
+
 module sonar_binder_clip_holder(sonar_radius,
-                                                                                                                               between_sonar_centers,
-                                                                                                                               between_sonar_centers_variation) {
-       hull(){
-               circle(sonar_radius);
-               translate([between_sonar_centers_variation, 0]){
-                       circle(sonar_radius); } }
-       translate([between_sonar_centers, 0]) {
-               circle(sonar_radius); } }
+                                between_sonar_centers,
+                                between_sonar_centers_variation,
+                                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,
+                                wall_thickness); } }
+
+module binder_clip_holder(binder_clip_holder_length,
+                          screw_radius,
+                          holder_radius,
+                          binder_clip_holder_height) {
+     linear_extrude(height = binder_clip_holder_height) {
+          binder_clip_holder_2d(binder_clip_holder_length,
+                                screw_radius,
+                                holder_radius); } }
 
 /*
   This file is part of challenge-bot.