1
0
mirror of https://github.com/nophead/NopSCADlib.git synced 2025-09-25 14:39:01 +02:00

Compare commits

..

17 Commits

Author SHA1 Message Date
Chris Palmer
9820d3eb10 Merge branch 'mmuman-rect-leds' 2024-10-17 16:22:01 +01:00
Chris Palmer
066242af58 Updated images and readme. 2024-10-17 16:19:29 +01:00
Chris Palmer
4b3468f78d Fixed LED bezels to cope with square LEDs. 2024-10-17 16:17:47 +01:00
Chris Palmer
001ea2a174 Fixed LED bezel test. 2024-10-17 16:17:17 +01:00
Chris Palmer
8e9d2dd367 Fixed LED test. 2024-10-17 16:16:47 +01:00
François Revol
f4a7065e1f Add rectangular LEDs
As per https://www.futurlec.com/LED/Red_2x5mm_LED.shtml
2024-10-17 13:36:18 +02:00
Chris Palmer
5ec0c6132d Updated changelog. 2024-10-10 00:33:29 +01:00
Chris Palmer
cef7560947 Merge branch 'nerdyjan-master' 2024-10-10 00:30:47 +01:00
Chris Palmer
7ffff8b7b7 Updated images and readme. 2024-10-10 00:29:58 +01:00
Chris Palmer
e001cc46a3 Restored Lumintop colour to white and made text black on white batteries. 2024-10-10 00:14:58 +01:00
Jan Giebels
7b421570b4 corrected c&p error 2024-10-08 18:47:59 +02:00
Jan Giebels
49ba60f159 added L4680, L32700, L16340 Li-Ion/LiFePo4 batteries 2024-10-08 18:40:54 +02:00
Chris Palmer
0989a02d95 Updated changelog. 2024-10-07 17:51:27 +01:00
Chris Palmer
9e45dbad04 Fixed incorrect parameters passed to tube() in ht_pipe().
Fixed lib.scad to include ht_pipes.scad instead of using it.
2024-10-07 17:50:20 +01:00
Chris Palmer
8cdc04b87b Updated changelog. 2024-10-07 09:05:28 +01:00
Chris Palmer
f65fe59831 Restored 30mm tube section on the bottom of the pipe fitting. 2024-10-07 09:04:01 +01:00
Chris Palmer
5761368e56 Updated changelog. 2024-10-06 23:01:41 +01:00
16 changed files with 151 additions and 46 deletions

View File

@@ -3,6 +3,42 @@
This changelog is generated by `changelog.py` using manually added semantic version tags to classify commits as breaking changes, additions or fixes.
### [v21.30.0](https://github.com/nophead/NopSCADlib/releases/tag/v21.30.0 "show release") Additions [...](https://github.com/nophead/NopSCADlib/compare/v21.29.2...v21.30.0 "diff with v21.29.2")
* 2024-10-10 [`7ffff8b`](https://github.com/nophead/NopSCADlib/commit/7ffff8b7b7e111400dd7e3cb8e96bc95471a8ffa "show commit") [C.P.](# "Chris Palmer") Updated images and readme.
* 2024-10-10 [`e001cc4`](https://github.com/nophead/NopSCADlib/commit/e001cc46a34206801c7e1a474634b9b1f83dfc9a "show commit") [C.P.](# "Chris Palmer") Restored Lumintop colour to white and made text black on white batteries.
* 2024-10-08 [`7b42157`](https://github.com/nophead/NopSCADlib/commit/7b421570b46136de925963321ef44cb570e868b6 "show commit") [J.G.](# "Jan Giebels") corrected c&p error
* 2024-10-08 [`49ba60f`](https://github.com/nophead/NopSCADlib/commit/49ba60f159b2c3685696fff3f1dca5a9184d2553 "show commit") [J.G.](# "Jan Giebels") added L4680, L32700, L16340 `Li-Ion/LiFePo4` batteries
#### [v21.29.2](https://github.com/nophead/NopSCADlib/releases/tag/v21.29.2 "show release") Fixes [...](https://github.com/nophead/NopSCADlib/compare/v21.29.1...v21.29.2 "diff with v21.29.1")
* 2024-10-07 [`9e45dba`](https://github.com/nophead/NopSCADlib/commit/9e45dbad04bb4752b9b3aceaa88ee71bb975d749 "show commit") [C.P.](# "Chris Palmer") Fixed incorrect parameters passed to `tube()` in `ht_pipe()`.
Fixed `lib.scad` to include `ht_pipes.scad` instead of using it.
#### [v21.29.1](https://github.com/nophead/NopSCADlib/releases/tag/v21.29.1 "show release") Fixes [...](https://github.com/nophead/NopSCADlib/compare/v21.29.0...v21.29.1 "diff with v21.29.0")
* 2024-10-07 [`f65fe59`](https://github.com/nophead/NopSCADlib/commit/f65fe598318d349a5a8764e2dbbe80acfdc0be2e "show commit") [C.P.](# "Chris Palmer") Restored 30mm tube section on the bottom of the pipe fitting.
### [v21.29.0](https://github.com/nophead/NopSCADlib/releases/tag/v21.29.0 "show release") Additions [...](https://github.com/nophead/NopSCADlib/compare/v21.28.2...v21.29.0 "diff with v21.28.2")
* 2024-10-06 [`932c68a`](https://github.com/nophead/NopSCADlib/commit/932c68a2c01307fd22946b17f9419894f2de2e9f "show commit") [C.P.](# "Chris Palmer") Updated images and readme.
Pipes are now made with tube instead of differencing cylinders.
`HTpipeFitting()` now uses `rotate_extrude` and corrected internal shape.
The seal ring is now tube diameter + 13.
* 2024-10-06 [`78e3360`](https://github.com/nophead/NopSCADlib/commit/78e3360900f61f30d5df7d53084a7e752ecd836a "show commit") [J.G.](# "Jan Giebels") changed naming of `ht_pipes` test script
* 2024-10-06 [`178f67f`](https://github.com/nophead/NopSCADlib/commit/178f67f815dca6edc65651c0b9cfb9d670c349ae "show commit") [J.G.](# "Jan Giebels") added more pipes and some cleanup
* 2024-10-06 [`af1b057`](https://github.com/nophead/NopSCADlib/commit/af1b057f597f75532b17f042e7711337731aa0c3 "show commit") [J.G.](# "Jan Giebels") added info and description
* 2024-10-06 [`195917a`](https://github.com/nophead/NopSCADlib/commit/195917a8790926515a6fffb2a02d7154855de568 "show commit") [J.G.](# "Jan Giebels") added HT pipes to lib
* 2024-10-06 [`9ed6aab`](https://github.com/nophead/NopSCADlib/commit/9ed6aab6c8cfd1a647f5eae2eac8d74832328065 "show commit") [J.G.](# "Jan Giebels") added test script and some more HT pipes
* 2024-10-05 [`c61386c`](https://github.com/nophead/NopSCADlib/commit/c61386caf937840e9a07e348b3ad96af71820dd2 "show commit") [J.G.](# "Jan Giebels") added HT waterpipes
* 2024-10-02 [`549dbc9`](https://github.com/nophead/NopSCADlib/commit/549dbc9380f39f8521554963f2051c3f05f5495f "show commit") [G.L.](# "Greg Land") Relative paths for vitamin `rod_end` includes
#### [v21.28.2](https://github.com/nophead/NopSCADlib/releases/tag/v21.28.2 "show release") Fixes [...](https://github.com/nophead/NopSCADlib/compare/v21.28.1...v21.28.2 "diff with v21.28.1")
* 2024-10-02 [`afc50ff`](https://github.com/nophead/NopSCADlib/commit/afc50ffe5d01ee586b55630e0d34e44720f6b68a "show commit") [C.P.](# "Chris Palmer") Removed trailing comma in `let()` for compatibility with last release.

View File

@@ -41,6 +41,7 @@ include <vitamins/fastons.scad>
include <vitamins/gear_motors.scad>
include <vitamins/geared_steppers.scad>
include <vitamins/hot_ends.scad>
include <vitamins/ht_pipes.scad>
include <vitamins/inserts.scad>
include <vitamins/ldrs.scad>
include <vitamins/leadnuts.scad>
@@ -106,4 +107,3 @@ use <utils/pcb_utils.scad>
use <utils/sector.scad>
use <utils/thread.scad>
use <vitamins/photo_interrupter.scad>
use <vitamins/ht_pipes.scad>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1010 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();
@@ -411,10 +411,12 @@ iecs_y = d_connectors_y + 70;
modules_y = iecs_y + 60;
ssrs_y = modules_y + 80;
blowers_y = ssrs_y + 60;
hot_ends_y = blowers_y + 100;
batteries_y = hot_ends_y + 55;
hot_ends_y = blowers_y + 90;
batteries_y = hot_ends_y + 65;
panel_meters_y = batteries_y + 70;
extrusions_y = panel_meters_y + 130;
box_sections_y = extrusions_y + 70;
translate([x3, veroboard_y])
veroboard_test();
@@ -458,7 +460,7 @@ translate([x3, ssrs_y]) {
translate([x3, blowers_y])
blowers();
translate([x3, batteries_y])
translate([x2, batteries_y])
batteries();
translate([x3 + 10, hot_ends_y])
@@ -470,6 +472,9 @@ translate([x2, panel_meters_y])
translate([x2, extrusions_y])
extrusions();
translate([x2, box_sections_y])
box_sections();
translate([370, transformers_y])
transformers();
@@ -486,7 +491,6 @@ extrusion_brackets_y = rails_y + 250;
sk_brackets_y = extrusion_brackets_y + 80;
kp_pillow_blocks_y = sk_brackets_y + 60;
bearing_blocks_y = kp_pillow_blocks_y + 60;
box_sections_y = batteries_y;
BLDC_y = bearing_blocks_y + 180;
pot_y = bearing_blocks_y;
cable_strip_y = sheets_y + 30;
@@ -538,8 +542,5 @@ translate([x4, BLDC_y])
translate([x4, pot_y])
potentiometers();
translate([x2, box_sections_y])
box_sections();
translate([x6, 125])
light_strips();

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

@@ -275,6 +275,7 @@ exposing enough information to make a battery box.
| `battery_neg_dia(type)` | Negative terminal diameter |
| `battery_pos_dia(type)` | Positive terminal diameter |
| `battery_pos_height(type)` | Positive terminal height above the casing |
| `battery_type(type)` | Battery type |
| `battery_usb_offset(type)` | USB connector offset from the top |
| `contact_height(type)` | Height of the flat part |
| `contact_neg(type)` | Negative spring height above the plate when compressed and the spring type |
@@ -296,8 +297,8 @@ exposing enough information to make a battery box.
### Vitamins
| Qty | Module call | BOM entry |
| ---:|:--- |:---|
| 7 | `battery_contact(bcontact, false)` | Battery negative contact |
| 7 | `battery_contact(bcontact, true)` | Battery positive contact |
| 10 | `battery_contact(bcontact, false)` | Battery negative contact |
| 10 | `battery_contact(bcontact, true)` | Battery positive contact |
| 1 | `battery(A23CELL)` | Cell A23 12v |
| 1 | `battery(AACELL)` | Cell AA |
| 1 | `battery(AAACELL)` | Cell AAA |
@@ -305,6 +306,9 @@ exposing enough information to make a battery box.
| 1 | `battery(DCELL)` | Cell D |
| 1 | `battery(LUMINTOP)` | Cell LUMINTOP 18650 LION with charger |
| 1 | `battery(S25R18650)` | Cell Samsung 25R 18650 LION |
| 1 | `battery(L16340)` | Li-Ion/LiFePo4 16340 3.2v |
| 1 | `battery(L32700)` | Li-Ion/LiFePo4 32700 3.2v |
| 1 | `battery(L4680)` | Li-Ion/LiFePo4 4680 3.2v |
<a href="#top">Top</a>
@@ -2108,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>
@@ -6428,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 |
@@ -6438,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 |
@@ -6447,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: 94 KiB

After

Width:  |  Height:  |  Size: 147 KiB

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

@@ -45,7 +45,10 @@ AAACELL = ["AAACELL", "Cell AAA", 44.5, 10.5
CCELL = ["CCELL", "Cell C", 50, 26.2, 20, 7.5, 1.5, "brown", [], 0, bcontact];
DCELL = ["DCELL", "Cell D", 61.5, 34.2, 22, 8.2, 2.4, "brown", [], 0, bcontact];
A23CELL = ["A23CELL", "Cell A23 12v", 28.5, 10.3, 5.2,5.2, 1.0, "silver", [], 0, bcontact];
LI4680 = ["L4680", "Li-Ion/LiFePo4 4680 3.2v", 80.2, 46.2, 35,35, 0, "green", [], 0, bcontact];
LI32700 = ["L32700", "Li-Ion/LiFePo4 32700 3.2v", 70.2, 32.4, 25,13, 0, "blue", [], 0, bcontact];
LI16340 = ["L16340", "Li-Ion/LiFePo4 16340 3.2v", 35.2, 16.4, 14,6, 1.0, "blue", [], 0, bcontact];
batteries = [AAACELL, AACELL, CCELL, DCELL, LUMINTOP, S25R18650, A23CELL];
batteries = [AAACELL, AACELL, CCELL, DCELL, LUMINTOP, S25R18650, A23CELL, LI4680, LI32700, LI16340];
use <battery.scad>

View File

@@ -28,7 +28,9 @@
include <../utils/core/core.scad>
use <spring.scad>
use <../utils/rounded_cylinder.scad>
use <../utils/pcb_utils.scad>
function battery_type(type) = type[0]; //! Battery type
function battery_length(type) = type[2]; //! Total length including terminals
function battery_diameter(type) = type[3]; //! Casing diameter
function battery_neg_dia(type) = type[4]; //! Negative terminal diameter
@@ -109,6 +111,13 @@ module battery(type) { //! Draw a battery
battery_led_positions(type)
color(["red","green","blue"][$i])
cylinder(d = 1.5, h = eps);
color(battery_colour(type) == "white" ? "black" : "white")
rotate([0, 0, 90])
cylindrical_wrap(battery_diameter(type)/2)
resize([0, battery_diameter(type)], auto = true)
rotate(90)
text(battery_type(type), halign = "center", valign = "center");
}
function contact_width(type) = type[1]; //! Width of the flat part

View File

@@ -43,7 +43,7 @@ module ht_pipe(type) { //! Draw specified pipe
vitamin(str("ht_pipe(", type[0], "): PVC Waterpipe - ", type[1]));
tube_id = pipe_od(type) - pipe_wall(type) * 2;
tube(h = pipe_length(type), or = tube_id/2 + pipe_wall(type), ir = tube_id/2, tube_id/2);
tube(h = pipe_length(type), or = tube_id/2 + pipe_wall(type), ir = tube_id/2, center = false);
translate_z(pipe_length(type))
HTpipeFitting(pipe_od(type), tube_id);

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>