]> www.fi.muni.cz Git - things.git/commitdiff
led strip ends
authorJan "Yenya" Kasprzak <kas@fi.muni.cz>
Sun, 19 Nov 2023 19:20:18 +0000 (20:20 +0100)
committerJan "Yenya" Kasprzak <kas@fi.muni.cz>
Sun, 19 Nov 2023 19:20:18 +0000 (20:20 +0100)
led-strip-end-slanted.scad [new file with mode: 0644]
led-strip-end-wide.scad [new file with mode: 0644]

diff --git a/led-strip-end-slanted.scad b/led-strip-end-slanted.scad
new file mode 100644 (file)
index 0000000..10d4d19
--- /dev/null
@@ -0,0 +1,72 @@
+eps = 0.01;
+infty = 100;
+
+wall = 1.5;
+
+magnet_w = 5 + 0.3;
+magnet_l = 10 + 0.3;
+magnet_h = 2.5;
+magnet_clip_w = 0.5;
+
+angle = 5;
+angled_w = 3;
+
+inner_bottom_l = 21;
+inner_bottom_w = 2;
+inner_bottom_off = 2.0;
+inner_side_l = 4;
+inner_side_w = wall;
+inner_side_off = 1;
+inner_h = 5;
+
+outer_l = inner_bottom_l + 4;
+outer_w = 10;
+
+cable_h = 3;
+cable_w = 5.5;
+
+module body() {
+       difference() {
+               // base plate
+               cube([outer_l, outer_w, wall]);
+               // cable hole
+               translate([outer_l/2-cable_w/2, inner_bottom_off+inner_bottom_w, -eps])
+                       cube([cable_w, cable_h, wall+2*eps]);
+       }
+
+       // inner bottom
+       translate([outer_l/2-inner_bottom_l/2, inner_bottom_off, 0])
+               cube([inner_bottom_l, inner_bottom_w, inner_h+wall]);
+       // inner sides
+       for (x = [-1, 1]) {
+               translate([outer_l/2, inner_bottom_off+inner_bottom_w, 0])
+               scale([x, 1, 1])
+               translate([inner_bottom_l/2-inner_side_off-inner_side_w, 0, 0])
+                       cube([inner_side_w, inner_side_l, inner_h+wall]);
+       }
+
+       difference() {
+               // angled outer bottom
+               hull() {
+                       cube([outer_l, eps, 2*wall+magnet_w]);
+                       translate([0, -angled_w, 0])
+                       rotate([0, 0, -angle])
+                       cube([outer_l, eps, 2*wall+magnet_w]);
+               }
+               // magnet hole
+               rotate([0, 0, -angle])
+                       translate([outer_l/2-magnet_l/2, -angled_w-eps, wall])
+                       difference() {
+                               cube([magnet_l, magnet_h, magnet_w]);
+                               for (z = [0, magnet_w])
+                                       translate([magnet_l/3, 0, z])
+                                       rotate([0, 90, 0])
+                                       cylinder(r=magnet_clip_w,
+                                               h=magnet_l/3, $fn=4);
+                       }
+       }
+}
+
+body();
+
+
diff --git a/led-strip-end-wide.scad b/led-strip-end-wide.scad
new file mode 100644 (file)
index 0000000..ec45551
--- /dev/null
@@ -0,0 +1,54 @@
+eps = 0.01;
+infty = 100;
+
+wall = 1.5;
+
+alu_w = 32 + 0.5;
+alu_h = 11 + 0.5;
+alu_wall = 1.8;
+alu_side = 4 + 0.5;
+inside_l = 4.5;
+inside_h = 5;
+alu_side2 = 2;
+inside_h2 = 0.8;
+
+module alu_end() {
+       translate([-alu_w/2, -alu_h/2, 0])
+               cube([alu_w, alu_h, wall]);
+
+       translate([-alu_w/2+alu_side2, -alu_h/2+alu_wall, 0])
+               cube([alu_w - 2*alu_side2, inside_h2, wall+inside_l]);
+
+       translate([-alu_w/2+alu_side, -alu_h/2+alu_wall, 0])
+               cube([alu_w - 2*alu_side, inside_h, wall+inside_l]);
+}
+
+// translate([0, -1.5*alu_h, 0]) alu_end();
+
+end2_h = wall + 10;
+end2_l = 40;
+cable_w = 2.5;
+cable_h = 8;
+
+module alu_end2() {
+       difference() {
+               union() {
+                       alu_end();
+                       // rear
+                       translate([-alu_w/2, alu_h/2, 0])
+                               cube([alu_w, end2_h, wall]);
+                       // bottom
+                       translate([-alu_w/2, alu_h/2+end2_h-wall, 0])
+                               cube([alu_w, wall, end2_l]);
+                       // sides
+                       for (x = [-1, 1]) scale([x, 1, 1])
+                       translate([alu_w/2-wall, alu_h/2, 0])
+                               cube([wall, end2_h, end2_l]);
+               }
+               translate([-alu_w/2-eps, alu_h/2-cable_w, -eps])
+                       cube([cable_h+eps, cable_w, wall+2*eps]);
+       }
+}
+
+// alu_end2();
+alu_end();