grab deck holder with sonar sensor arm really well
authordaniel watson <ozzloy@gmail.com>
Tue, 12 Nov 2013 05:05:35 +0000 (21:05 -0800)
committerdaniel watson <ozzloy@gmail.com>
Tue, 12 Nov 2013 05:05:35 +0000 (21:05 -0800)
3d-printables/sonar-table-top-holder.scad

index 4d8b5288816d17bfefc4aaa4374075548dd6ca9e..6cf00428fab8a136de096fe9db37c965b984eb3b 100644 (file)
@@ -41,15 +41,30 @@ module sensors(){
     cylinder(r = sonar_sensor_radius, h = sonar_sensor_height);}}
 
 module sensor_holder(){
+  // arm_depth is deck_depth minus a little bit to make it fit
+  arm_depth = deck_depth - 0.7;
+  elbow_length = deck_depth + 0.8;
   difference(){
     cube([sonar_holder_length, sonar_holder_width, sonar_holder_depth]);
     translate([sonar_holder_length / 2, sonar_holder_width / 2, -0.05]){
       sensors();}}
   translate([sonar_holder_length, 0, 0]){
-    cube([sonar_holder_depth + 0.7, deck_depth, deck_depth - 0.7]);
-    translate([sonar_holder_depth + 0.7, 0, 0]){
-      // subtract a little bit (0.3) to make it fit
-      cube([deck_depth - 0.7, sonar_holder_width, deck_depth - 0.7]);}}}
+    cube([elbow_length, deck_depth, arm_depth]);
+    translate([elbow_length, 0, 0]){
+      linear_extrude(height = arm_depth){
+        polygon([[0, 0],
+                  [arm_depth, 0],
+                  [arm_depth, sonar_holder_width / 2],
+                  [0, sonar_holder_width / 2 + arm_depth]]);}
+      translate([0, (sonar_holder_width + arm_depth) / 2, 0]){
+        cube([arm_depth / 2,
+              (sonar_holder_width - arm_depth) / 2 + 0.8,
+              arm_depth]);}
+      translate([-1.7, sonar_holder_width + 0.8, 0]){
+        linear_extrude(height = arm_depth){
+          polygon([[0, 0],
+                   [arm_depth / 2 + 1.7, 4],
+                   [arm_depth / 2 + 1.7, 0]]);}}}}}
 
 module deck_holder(){
   deck_holder_width = sonar_holder_width - deck_depth;