From 90611c0206ff16431ae9fc3ecc47bcc510111b3c Mon Sep 17 00:00:00 2001 From: mattmcw Date: Fri, 11 Oct 2024 17:39:05 -0400 Subject: [PATCH] New concept for the single light LED lamp --- scad/contact_printer.scad | 79 ++++++++++++++++++++++++++++++--------- 1 file changed, 61 insertions(+), 18 deletions(-) diff --git a/scad/contact_printer.scad b/scad/contact_printer.scad index 3efde99..0dfb501 100644 --- a/scad/contact_printer.scad +++ b/scad/contact_printer.scad @@ -402,12 +402,20 @@ module sound_gate_bracket (pos = [0, 0, 0], rot = [0, 0, 0]) { module gate_blank () { X = LampGateX; //front - translate([0, -6.25, 0]) cube([X-7.2, 1.2, 19.25], center = true); + //translate([0, -6.25, 0]) cube([X-7.2, 1.2, 19.25], center = true); //middle - translate([0, -5.1, -0.5]) cube([X-4.2, 1.4, 19], center = true); + difference () { + union () { + translate([0, -5.1, -0.5]) cube([7.8, 1.8, 18], center = true); + translate([0, -8, -.75]) cube([4.8, 4, 17.5], center = true); + translate([0, -8.75, -.75]) cube([7.8, 3, 17.5], center = true); + } + translate([0, -9, -7.5]) cube([8, 4, 5], center = true); + translate([0, (-42.39 / 2) - 9.5, 0]) cylinder(r = R(42.39), h = 18 + 1, center = true, $fn = 240); + } //top - translate([0, -5.9, 9]) cube([X-4.2, 3, 2], center = true); + //translate([0, -5.9, 9]) cube([X-4.2, 3, 2], center = true); } //standard, super, full, sound module picture_gate (pos = [0, 0, 0], rot = [0, 0, 0], Type = "full", Width = 2) { @@ -485,11 +493,11 @@ module lamp_single (pos = [0, 0, 0]) { translate([0, 45, 0]) cylinder(r = R(130), h = 4 + 1, center = true, $fn = 200); } //walls - translate([0, 15, WallZ]) difference () { + /*translate([0, 15, WallZ]) difference () { rounded_cube([70, 40, 18], d = 4, center = true); cube([70-6, 40-6, 18 + 1], center = true); translate([0, -20, 0]) cube([10, 40-6, 18 + 1], center = true); - } + }*/ lamp_posts([0, 15, PostsZ]); // //picture_gate_bracket([0, -7, GateZ]); @@ -1136,19 +1144,52 @@ module sprocketed_roller_invert_solid (pos = [0, 0, 0]) { } } -module lamp_LEDs (pos = [0, 0, 0], rot = [0, 0, 0]) { +module lamp_LED_side (pos = [0, 0, 0], rot = [0, 0, 0]) { D = 5.1; - X = LampGateX; translate(pos) rotate(rot) { difference () { - cube([X-4.2, 10, 16], center = true); + cube([LampGateX - 4.2, 10, 18], center = true); rotate([90, 0, 0]) cylinder(r = R(D), h = 11, center = true); - translate([0, 0, 5.2]) rotate([90, 0, 0]) cylinder(r = R(D), h = 11, center = true); - translate([0, 0, -5.2]) rotate([90, 0, 0]) cylinder(r = R(D), h = 11, center = true); + translate([0, 0, 5.5]) rotate([90, 0, 0]) cylinder(r = R(D), h = 11, center = true); + translate([0, 0, -5.5]) rotate([90, 0, 0]) cylinder(r = R(D), h = 11, center = true); - translate([0, -6, 0]) cube([5.2, 10, 16 + 1], center = true); + translate([0, -6, 0]) cube([5.2 + 4, 10, 18 + 1], center = true); } } +} + +module lamp_LEDs (pos = [0, 0, 0], rot = [0, 0, 0]) { + LightChannelY = 24; + LEDOffsetY = -2; + translate(pos) rotate(rot) { + union () { + lamp_LED_side([3.1, LEDOffsetY, 0], [0, 0, -7.5]); + lamp_LED_side([-3.1, LEDOffsetY, 0], [0, 0, 7.5]); + translate([0, 3.4 + LEDOffsetY, 0]) cube([0.8, 4, 18], center = true); + } + + translate([0, -LightChannelY / 2, 0]) difference() { + cube([15, LightChannelY, 18], center = true); + translate([0, 7.6, 0]) cube([11, LightChannelY, 18 + 1], center = true); + translate([0, -1, 0]) cube([5, LightChannelY, 18 + 1], center = true); + //void for diffusion + translate([0, (LightChannelY / 2) -18.9, 0]) cube([12, 0.5, 18 + 1], center = true); + + translate([6.5, (LightChannelY / 2) -18.9, 2]) cube([3, 1.5, 18], center = true); + translate([-6.5, (LightChannelY / 2) -18.9, 2]) cube([3, 1.5, 18], center = true); + + translate([3.1, (LightChannelY / 2) + LEDOffsetY, 0]) rotate([0, 0, -7.5]) cube([LampGateX - 4.2, 15.5, 18 + 1], center = true); + translate([-3.1, (LightChannelY / 2) + LEDOffsetY, 0]) rotate([0, 0, 7.5]) cube([LampGateX - 4.2, 15.5, 18 + 1], center = true); + + //bevel light + translate([0, (LightChannelY / 2) - 18.9 + 2.5, 0]) rotate([0, 0, 45]) cube([7, 7, 18 + 1], center = true); + + //slide for gate + translate([0, (LightChannelY / 2) -22, 0]) cube([8, 2, 18 + 1], center = true); + } + + //translate([0, -18.9, 0]) cube([5, 1/16, 16], center = true); + } } @@ -1249,23 +1290,25 @@ module debug () { //lamp //difference () { //lamp_dual([0, LampY, 0 + 1]); - lamp_single([0, 10, 0 + 1]); + //lamp_single([0, 10, 0 + 1]); + lamp_LEDs([0, 19, 10]); + picture_gate([0, 2.1, 10.5]); // translate([45, LampY, 0 + 2]) cube([100, 100, 100], center = true); //} - color("green") lamp_cover([0, LampY + 5, 21]); + //color("green") lamp_cover([0, LampY + 5, 21]); color("red") lamp_bolts_voids([0, LampY + 5, (LampBoltH/2) - 1.5 - 2.5]); //gates //translate([-5.35, LampY -7.1, 11 + 1 + .1]) rotate([0, 0, 7]) color("blue") picture_gate(); //idle rollers - idle_roller([ IdleRollerPrintX, IdleRollerPrintY, 3]); + /*idle_roller([ IdleRollerPrintX, IdleRollerPrintY, 3]); idle_roller([-IdleRollerPrintX, IdleRollerPrintY, 3]); idle_roller([ IdleRollerStockX, IdleRollerStockY, 3]); - idle_roller([-IdleRollerStockX, IdleRollerStockY, 3]); + idle_roller([-IdleRollerStockX, IdleRollerStockY, 3]);*/ //idle roller path - translate([0, IdleRollerPrintY - 8, 10]) cube([200, .1, 16], center = true); - translate([0, IdleRollerStockY + 8, 10]) cube([200, .1, 16], center = true); + // translate([0, IdleRollerPrintY - 8, 10]) cube([200, .1, 16], center = true); + //translate([0, IdleRollerStockY + 8, 10]) cube([200, .1, 16], center = true); if (UseDaylight) { //feed @@ -1365,7 +1408,7 @@ module debug () { electronics_panel([0, -100, -3]); } -PART = "electronics_panel"; +PART = "picture_gatex"; LIBRARY = true; if (PART == "panel") {