From 5d2333f846f902b26008fd6de3f4b95fc41a88d6 Mon Sep 17 00:00:00 2001 From: "Jan \"Yenya\" Kasprzak" Date: Mon, 14 Aug 2017 16:37:17 +0200 Subject: [PATCH] Base plate for the ziptie-spring mounted camera --- camera-spring-base.scad | 57 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 camera-spring-base.scad diff --git a/camera-spring-base.scad b/camera-spring-base.scad new file mode 100644 index 0000000..6dab411 --- /dev/null +++ b/camera-spring-base.scad @@ -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]); +} -- 2.43.0