1
0
mirror of https://github.com/nophead/NopSCADlib.git synced 2025-08-24 16:13:07 +02:00

Merge branch 'mmuman-rect-leds'

This commit is contained in:
Chris Palmer
2024-10-17 16:22:01 +01:00
10 changed files with 86 additions and 34 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1015 KiB

After

Width:  |  Height:  |  Size: 1016 KiB

View File

@@ -157,7 +157,7 @@ cable_grommets_y = 0;
translate([x5, cable_grommets_y])
cable_grommets();
translate([x5, cable_grommets_y + 30])
translate([x5, cable_grommets_y + 45])
led_bezels();
translate([x5 + 50, cable_grommets_y])
@@ -366,9 +366,12 @@ components_y = toggles_y + 40;
translate([x2, leds_y])
leds();
translate([x2 + 35, leds_y])
translate([x2 + 55, leds_y])
ldrs();
translate([x2 + 87, leds_y])
fuseholders();
translate([x2 + 8, carriers_y])
carriers();
@@ -378,9 +381,6 @@ translate([x2, magnets_y])
translate([x2 + 20, carriers_y])
led_meters();
translate([x2 + 70, leds_y])
fuseholders();
translate([x2, spades_y])
spades();

View File

@@ -40,32 +40,72 @@ function led_bezel_hole_r(type) = //! Panel hole radius
module led_bezel(type) { //! Makes the STL for the bezel
led = led_bezel_led(type);
stl(str(led[0],"_bezel")) {
rl = led_diameter(led) / 2;
rr = led_rim_dia(led) / 2;
wall = led_bezel_wall(type);
poly_tube(or = rr + wall + led_bezel_flange(type), ir = rl, h = led_bezel_flange_t(type)); // Flange
poly_tube(or = rl + wall, ir = rl, h = led_height(led) - rl - led_rim_t(led)); // Tube up to LED flange
poly_tube(or = corrected_radius(rr) + wall, ir = rr, h = led_bezel_height(type)); // Tube beyond the flange
if(is_num(led_diameter(led))) {
rl = led_diameter(led) / 2;
rr = led_rim_dia(led) / 2;
poly_tube(or = rr + wall + led_bezel_flange(type), ir = rl, h = led_bezel_flange_t(type)); // Flange
poly_tube(or = rl + wall, ir = rl, h = led_height(led) - rl - led_rim_t(led)); // Tube up to LED flange
poly_tube(or = corrected_radius(rr) + wall, ir = rr, h = led_bezel_height(type)); // Tube beyond the flange
}
else {
linear_extrude(led_bezel_flange_t(type)) // Flange
difference() {
offset(wall + led_bezel_flange(type))
square(led_rim_dia(led), true);
square(led_diameter(led), true);
}
linear_extrude(led_height(led) - led_rim_t(led)) // Tube up to the LED flange
difference() {
offset(wall)
square(led_diameter(led), true);
square(led_diameter(led), true);
}
linear_extrude(led_bezel_height(type)) // Tube beyond the LED flange
difference() {
offset(wall)
square(led_rim_dia(led), true);
square(led_rim_dia(led), true);
}
}
}
}
module led_bezel_retainer(type) { //! Makes the STL for the retaining ring
led = led_bezel_led(type);
stl(str(led[0],"_bezel_retainer")) {
ir = led_bezel_r(type);
poly_tube(or = ir + led_bezel_wall(type), ir = ir, h = 4);
wall = led_bezel_wall(type);
if(is_num(led_diameter(led))) {
ir = led_bezel_r(type);
poly_tube(or = ir + wall, ir = ir, h = 4);
}
else
linear_extrude(4)
difference() {
offset(2 * wall)
square(led_rim_dia(led), true);
offset(wall)
square(led_rim_dia(led), true);
}
}
}
module led_bezel_assembly(type, colour = "red") {//! Led bezel with LED
led = led_bezel_led(type);
d = led_diameter(led);
assembly(str(led[0], "_", colour, "_bezel")) {
translate_z(led_bezel_flange_t(type)) {
vflip()
stl_colour(pp1_colour)
led_bezel(type);
translate_z(-led_height(led) + led_diameter(led) / 2)
translate_z(-led_height(led) + (is_num(d) ? d / 2 : 0))
explode(-20)
led(led, colour);
}

View File

@@ -2112,6 +2112,7 @@ Standard domed through hole LEDs. Can specify colour and lead length.
| 1 | `led(LED3mm, "green")` | LED 3 mm green |
| 1 | `led(LED5mm, "blue")` | LED 5 mm blue |
| 1 | `led(LED8mm)` | LED 8 mm red |
| 1 | `led(LED5x2mm, "green")` | LED [5, 2] mm green |
<a href="#top">Top</a>
@@ -6432,6 +6433,7 @@ Printed LED bezels for panel mounting
| 1 | `led(LED3mm, "yellow")` | LED 3 mm yellow |
| 1 | `led(LED5mm, "blue")` | LED 5 mm blue |
| 1 | `led(LED8mm)` | LED 8 mm red |
| 1 | `led(LED5x2mm, "yellow")` | LED [5, 2] mm yellow |
### Printed
| Qty | Filename |
@@ -6442,6 +6444,8 @@ Printed LED bezels for panel mounting
| 1 | LED3mm_bezel_retainer.stl |
| 1 | LED5mm_bezel.stl |
| 1 | LED5mm_bezel_retainer.stl |
| 1 | LED5x2mm_bezel.stl |
| 1 | LED5x2mm_bezel_retainer.stl |
| 1 | LED8mm_bezel.stl |
| 1 | LED8mm_bezel_retainer.stl |
@@ -6451,6 +6455,7 @@ Printed LED bezels for panel mounting
| 1 | LED10mm_orange_bezel_assembly |
| 1 | LED3mm_yellow_bezel_assembly |
| 1 | LED5mm_blue_bezel_assembly |
| 1 | LED5x2mm_yellow_bezel_assembly |
| 1 | LED8mm_red_bezel_assembly |

View File

@@ -23,7 +23,7 @@ include <../vitamins/leds.scad>
use <../printed/led_bezel.scad>
module led_bezels()
layout([for(l = LEDs) led_diameter(l)], 6) let(l = LEDs[$i], b = led_bezel(l))
layout([for(l = LEDs) max(led_diameter(l))], 6) let(l = LEDs[$i], b = led_bezel(l))
if($preview)
led_bezel_fastened_assembly(b, 3, ["yellow", "blue", "red", "orange"][$i % 4]);
else {

View File

@@ -22,7 +22,7 @@ use <../utils/layout.scad>
include <../vitamins/leds.scad>
module leds()
layout([for(l = LEDs) led_diameter(l)], 5)
layout(echoit([for(l = LEDs) max(led_diameter(l))]), 5)
led(LEDs[$i], ["green", "blue", "red", "orange"][$i % 4]);
if($preview)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 113 KiB

After

Width:  |  Height:  |  Size: 110 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 75 KiB

After

Width:  |  Height:  |  Size: 82 KiB

View File

@@ -41,16 +41,21 @@ module led(type, colour = "red", lead = 5, right_angle = 0) { //! Draw specified
rotate([right_angle ? 90 : 0, 0, 0])
translate_z(right_angle ? right_angle - led_rim_t(type) : 0)
color(colour) {
rotate_extrude()
rounded_corner(r = d / 2, h = led_height(type), r2 = d / 2);
if (is_num(d)) {
rotate_extrude()
rounded_corner(r = d / 2, h = led_height(type), r2 = d / 2);
linear_extrude(led_rim_t(type))
difference() {
circle(d = led_rim_dia(type));
linear_extrude(led_rim_t(type))
difference() {
circle(d = led_rim_dia(type));
translate([d / 2 + eps, -5])
square(10);
}
translate([d / 2 + eps, -5])
square(10);
}
} else {
translate_z(led_height(type)/2) cube([d.x, d.y, led_height(type)], center = true);
translate_z(led_rim_t(type)/2) cube([led_rim_dia(type).x, led_rim_dia(type).y, led_rim_t(type)], center = true);
}
}
t = led_lead_t(type);
len = lead - (right_angle ? t : 0);

View File

@@ -18,18 +18,20 @@
//
//
// d r r h p l
// i i i e i e
// a m m i t a
// g c d
// d t h h
// t t
// d r r h p l
// i i i e i e
// a m m i t a
// g c d
// d t h h
// t t
//
LED3mm = ["LED3mm", 3, 3.15, 1.15, 4.6, 2.54, 0.4];
LED5mm = ["LED5mm", 5, 5.9, 1.1, 9.0, 2.54, 0.4];
LED8mm = ["LED8mm", 8, 9.2, 1.95,11.0, 2.54, 0.4];
LED10mm = ["LED10mm", 10, 11.0, 2.0, 13.5, 2.54, 0.4];
LED3mm = ["LED3mm", 3, 3.15, 1.15, 4.6, 2.54, 0.4];
LED5mm = ["LED5mm", 5, 5.9, 1.1, 9.0, 2.54, 0.4];
LED8mm = ["LED8mm", 8, 9.2, 1.95, 11.0, 2.54, 0.4];
LED10mm = ["LED10mm", 10, 11.0, 2.0, 13.5, 2.54, 0.4];
LEDs = [LED3mm, LED5mm, LED8mm, LED10mm];
LED5x2mm = ["LED5x2mm", [5,2], [5,2.7], 0.7, 7.0, 2.54, 0.5];
LEDs = [LED3mm, LED5mm, LED8mm, LED10mm, LED5x2mm];
use <led.scad>