From: Jan "Yenya" Kasprzak Date: Sun, 19 Nov 2023 19:20:18 +0000 (+0100) Subject: led strip ends X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?p=things.git;a=commitdiff_plain;h=c93523e597fac880dc2f16f9d04019186f237c2a led strip ends --- diff --git a/led-strip-end-slanted.scad b/led-strip-end-slanted.scad new file mode 100644 index 0000000..10d4d19 --- /dev/null +++ b/led-strip-end-slanted.scad @@ -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 index 0000000..ec45551 --- /dev/null +++ b/led-strip-end-wide.scad @@ -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();