]> www.fi.muni.cz Git - things.git/commitdiff
Base plate for the ziptie-spring mounted camera
authorJan "Yenya" Kasprzak <kas@fi.muni.cz>
Mon, 14 Aug 2017 14:37:17 +0000 (16:37 +0200)
committerJan "Yenya" Kasprzak <kas@fi.muni.cz>
Mon, 14 Aug 2017 14:37:17 +0000 (16:37 +0200)
camera-spring-base.scad [new file with mode: 0644]

diff --git a/camera-spring-base.scad b/camera-spring-base.scad
new file mode 100644 (file)
index 0000000..6dab411
--- /dev/null
@@ -0,0 +1,57 @@
+infty = 200;
+eps = 0.01;
+
+wall = 1.5;
+
+ziptie_w = 4;
+ziptie_h = 3;
+
+x_sep = 36;
+
+corner_l = 9;
+corner_w = 3;
+
+hole1_yoff = 20;
+hole2_yoff = 10;
+
+body_w = 2*(hole1_yoff+ziptie_h/2+corner_w);
+body_l = x_sep + 2*ziptie_w + 2*corner_w;
+
+hook_w = 2;
+hook_hole = 1.5;
+
+difference() {
+       union() {
+               translate([-body_l/2, -body_w/2, 0])
+                       cube([body_l, body_w, wall]);
+               
+               // support raised corners
+               for (x = [-1, 1]) for (y = [-1, 1]) scale([x, y, 1]) {
+                       translate([body_l/2-corner_w, body_w/2-corner_l, 0])
+                               cube([corner_w, corner_l, 2*wall]);
+                       translate([x_sep/2-corner_w, body_w/2-corner_l, 0])
+                               cube([corner_w, corner_l, 2*wall]);
+               }
+
+               // rubber hooks
+               for (x = [-1, 1]) for (y = [-1, 1]) scale([x, y, 1]) {
+                       translate([body_l/2-eps, body_w/2-hook_w, 0])
+                               cube([hook_w+hook_hole+eps, hook_w, wall]);
+                       translate([body_l/2+hook_hole, body_w/2-hook_w-hook_hole, 0])
+                               cube([hook_w, 2*hook_hole+2*hook_w, wall]);
+                       translate([body_l/2, body_w/2+hook_hole, 0])
+                               cube([hook_w+hook_hole, hook_w, wall]);
+               }
+       }
+
+       // center hole
+       translate([-x_sep/2+corner_w, -body_w/2+corner_l, -eps])
+               cube([x_sep-2*corner_w, body_w-2*corner_l, 2*wall+2*eps]);
+
+       // ziptie angles
+       for (x = [-1, 1]) for (y = [-1, 1]) for (y1 = [-hole2_yoff, hole1_yoff])
+               scale([x, y, 1]) translate([x_sep/2, y1, wall])
+                       rotate([-40, 0, 0])
+                       translate([0, -ziptie_h/2, -infty/2])
+                       cube([ziptie_w, ziptie_h, infty]);
+}