1
0
mirror of https://github.com/nophead/NopSCADlib.git synced 2025-09-19 03:31:42 +02:00

Compare commits

...

39 Commits

Author SHA1 Message Date
Chris Palmer
f8a9c16360 Merge branch 'jeroenrnl-extra_mdf' 2024-02-05 00:59:29 +00:00
Chris Palmer
38988bacfa Updated images. 2024-02-05 00:55:17 +00:00
Chris Palmer
f26ed7443d Merge branch 'extra_mdf' of https://github.com/jeroenrnl/NopSCADlib into jeroenrnl-extra_mdf 2024-02-05 00:33:04 +00:00
Chris Palmer
453b68aaf9 Merge branch 'jeroenrnl-svg' 2024-02-05 00:22:41 +00:00
Chris Palmer
1ce7b64c73 Updated image. 2024-02-05 00:21:58 +00:00
Chris Palmer
9230fa78d7 Merge branch 'svg' of https://github.com/jeroenrnl/NopSCADlib into jeroenrnl-svg 2024-02-04 23:41:03 +00:00
Chris Palmer
a85c5cfa4b Merge branch 'igramul-feature/add-HW-803-1-way-relais-module' 2024-02-04 23:39:39 +00:00
Chris Palmer
926dd8ca90 Reordered the PCB lists to fix the layout.
Updated the images.
2024-02-04 23:32:13 +00:00
Chris Palmer
2ccfc1b506 Merge branch 'feature/add-HW-803-1-way-relais-module' of https://github.com/igramul/NopSCADlib into igramul-feature/add-HW-803-1-way-relais-module 2024-02-04 22:58:56 +00:00
Chris Palmer
fff0e9e3cb Merge branch 'igramul-feature/add-display-LCD2004A' 2024-02-04 22:57:32 +00:00
Chris Palmer
43b101ae1e Reordered the display list into reducing height for better layout.
Updated the images.
2024-02-04 22:56:09 +00:00
Jeroen Roos
f85fdca051 Add generating SVG file for CNC usage
Generate SVG files, like DXF files for CNC usage
2024-02-04 23:41:55 +01:00
Chris Palmer
1fc2be04d5 Merge branch 'feature/add-display-LCD2004A' of https://github.com/igramul/NopSCADlib into igramul-feature/add-display-LCD2004A 2024-02-04 21:19:16 +00:00
Chris
e3ad32713d Rename pcb_utils.scad to PCB_utils.scad
Fixed the filename case of PCB_utils.scad.
2024-02-04 19:02:14 +00:00
Jeroen Roos
82980392c9 Add extra MDF thicknesses 2024-02-04 19:22:21 +01:00
Lukas Burger
3961d7f1a4 add HW-803 5V 1 way relay module 2024-02-02 20:31:19 +01:00
Lukas Burger
1996189ab2 update readme file 2024-01-31 20:43:50 +01:00
Lukas Burger
9f8c309643 add display LCD2004A 2024-01-30 21:18:01 +01:00
Chris Palmer
3995f685dd Removed debug echo(). 2024-01-14 23:03:10 +00:00
Chris Palmer
e2ba69be46 Updated changelog. 2024-01-14 22:53:29 +00:00
Chris Palmer
41859ec224 Added screw_thread_radius() and screw_angle() functions. 2024-01-14 22:51:18 +00:00
Chris Palmer
cd95ef95ab Added GT2x12, GT3x6, GT3x9 and GT3x12 belts. 2024-01-14 22:50:26 +00:00
Chris Palmer
7a9e73830e Belt part number is not always the same as the pitch. 2024-01-12 22:30:34 +00:00
Chris Palmer
ad82ca21c5 Updated changelog. 2023-12-01 22:38:46 +00:00
Chris Palmer
ebe2dfd4fd Fixed explode line position on short inserts. 2023-12-01 22:15:41 +00:00
Chris Palmer
49cc8333fd Updated changelog. 2023-11-28 00:06:55 +00:00
Chris Palmer
e3722f88da Merge branch 'xrxca-Add-ESP-01M-PCB' 2023-11-27 23:50:24 +00:00
Chris Palmer
b5afd7bd41 ESP-01M added. 2023-11-27 23:46:29 +00:00
Chris Palmer
0137a43a63 Updated images and readme. 2023-11-27 23:29:44 +00:00
Chris Palmer
027c1b393d Merge branch 'Add-ESP-01M-PCB' of https://github.com/xrxca/NopSCADlib into xrxca-Add-ESP-01M-PCB 2023-11-27 20:35:05 +00:00
Chris Palmer
21324561c0 Updated changelog. 2023-11-26 23:31:58 +00:00
Chris Palmer
b9d101749e Updated images due to pixel differences on new PC 2023-11-26 23:29:32 +00:00
Chris Palmer
17979d3205 Fixed typo in comment. 2023-11-26 19:13:17 +00:00
XrXca
72e5d1abfb Update pcbs.scad
Update pcbs.scad

Update pcbs.scad

Update pcbs.scad
2023-11-12 15:42:34 -07:00
Chris Palmer
73567eda39 MULTIWATT11 package now generates a BOM entry. 2023-10-30 17:47:25 +00:00
Chris Palmer
f5c74a8561 Corrected gallery. 2023-10-30 16:25:07 +00:00
Chris Palmer
04090b816b Updated the gallery. 2023-10-30 09:17:50 +00:00
Chris Palmer
06d4918630 Updated examples. 2023-10-29 23:22:02 +00:00
Chris Palmer
9d502e4773 Updated changelog. 2023-10-29 21:58:32 +00:00
119 changed files with 36152 additions and 45388 deletions

View File

@@ -3,6 +3,74 @@
This changelog is generated by `changelog.py` using manually added semantic version tags to classify commits as breaking changes, additions or fixes.
### [v21.11.0](https://github.com/nophead/NopSCADlib/releases/tag/v21.11.0 "show release") Additions [...](https://github.com/nophead/NopSCADlib/compare/v21.10.1...v21.11.0 "diff with v21.10.1")
* 2024-01-14 [`41859ec`](https://github.com/nophead/NopSCADlib/commit/41859ec2245e3fee41cb9c79fb5a627193a4fec8 "show commit") [C.P.](# "Chris Palmer") Added `screw_thread_radius()` and `screw_angle()` functions.
* 2024-01-14 [`cd95ef9`](https://github.com/nophead/NopSCADlib/commit/cd95ef95abed30e4004905972c9abcacdad0dc5e "show commit") [C.P.](# "Chris Palmer") Added GT2x12, GT3x6, GT3x9 and GT3x12 belts.
* 2024-01-12 [`7a9e738`](https://github.com/nophead/NopSCADlib/commit/7a9e73830e16a843a14debb8d9b770243067cf63 "show commit") [C.P.](# "Chris Palmer") Belt part number is not always the same as the pitch.
#### [v21.10.1](https://github.com/nophead/NopSCADlib/releases/tag/v21.10.1 "show release") Fixes [...](https://github.com/nophead/NopSCADlib/compare/v21.10.0...v21.10.1 "diff with v21.10.0")
* 2023-12-01 [`ebe2dfd`](https://github.com/nophead/NopSCADlib/commit/ebe2dfd4fd8ba042b634030f7d463d0ba0d8c4cd "show commit") [C.P.](# "Chris Palmer") Fixed explode line position on short inserts.
### [v21.10.0](https://github.com/nophead/NopSCADlib/releases/tag/v21.10.0 "show release") Additions [...](https://github.com/nophead/NopSCADlib/compare/v21.9.1...v21.10.0 "diff with v21.9.1")
* 2023-11-27 [`0137a43`](https://github.com/nophead/NopSCADlib/commit/0137a43a638777ecdf6b311579006c0922650a9c "show commit") [C.P.](# "Chris Palmer") Updated images and readme.
* 2023-11-12 [`72e5d1a`](https://github.com/nophead/NopSCADlib/commit/72e5d1abfb744ddcdf665b02ba7a1cf2b6bcff38 "show commit") [X.](# "XrXca") Update `pcbs.scad`
* Update `pcbs.scad`
* Update `pcbs.scad`
* Update `pcbs.scad`
* 2023-11-27 [`b5afd7b`](https://github.com/nophead/NopSCADlib/commit/b5afd7bd41a1a46b7a1745c30755b3fb6c25b9a1 "show commit") [C.P.](# "Chris Palmer") ESP-01M added.
#### [v21.9.1](https://github.com/nophead/NopSCADlib/releases/tag/v21.9.1 "show release") Fixes [...](https://github.com/nophead/NopSCADlib/compare/v21.9.0...v21.9.1 "diff with v21.9.0")
* 2023-11-26 [`b9d1017`](https://github.com/nophead/NopSCADlib/commit/b9d101749eb2b19963299d85b75f0fa489fba552 "show commit") [C.P.](# "Chris Palmer") Updated images due to pixel differences on new PC
* 2023-11-26 [`17979d3`](https://github.com/nophead/NopSCADlib/commit/17979d320539ca861300ecd4e42c01a913861066 "show commit") [C.P.](# "Chris Palmer") Fixed typo in comment.
* 2023-10-30 [`73567ed`](https://github.com/nophead/NopSCADlib/commit/73567eda396214f1f882d62fb1d8a0ecbf2e7d94 "show commit") [C.P.](# "Chris Palmer") MULTIWATT11 package now generates a BOM entry.
* 2023-10-30 [`f5c74a8`](https://github.com/nophead/NopSCADlib/commit/f5c74a8561f1e76f331c2d0027ecfd34bb2e7f3b "show commit") [C.P.](# "Chris Palmer") Corrected gallery.
* 2023-10-30 [`04090b8`](https://github.com/nophead/NopSCADlib/commit/04090b816bfa3b6587cf6dcddbd54e5a94cb2420 "show commit") [C.P.](# "Chris Palmer") Updated the gallery.
* 2023-10-29 [`06d4918`](https://github.com/nophead/NopSCADlib/commit/06d49186300b03bf4699cefbbcef0c0b8f7e9caa "show commit") [C.P.](# "Chris Palmer") Updated examples.
### [v21.9.0](https://github.com/nophead/NopSCADlib/releases/tag/v21.9.0 "show release") Additions [...](https://github.com/nophead/NopSCADlib/compare/v21.8.0...v21.9.0 "diff with v21.8.0")
* 2023-10-29 [`2d091b9`](https://github.com/nophead/NopSCADlib/commit/2d091b9d16d33cf8b8751b2a436019c9032422a3 "show commit") [C.P.](# "Chris Palmer") Added a constructor function for PCBs.
PCB text can now specify a colour.
Added `SOT23_6,` `TSOT23_8` and CAP1210 SMD packages.
Added ESP-201 Wifi Module PCB.
Added ESP12F Wifi module.
Added `tiny_buck` converter PCB.
Made 2p54joiner a bit longer.
Fixed SOIC gullwing shape.
Added Wifi antennas.
Added Yunpen filtered IEC mains inlet.
Added power jack socket.
Added right angle option for LEDs.
Added `gear_motors`.
Added 686ZZ and 696ZZ ball bearings.
Added two larger box section tubes.
Added right angle option to `square_buttons`. Doesn't draw the frame yet.
Added multiwatt11 package for L6203.
Added ONS9143A 13A mains socket.
Added radial electrolytic capacitors.
Added `LDE10_20B` PSU module.
Added `screw_tearsink()` to make horizontal countersunk holes.
Can now have solid tracks on veroboard.
Added `veroboard_base()` module to make an STL for a base with spacers.
Corrected M6 spring washer thickness.
Can now specify the height of a solder meniscus.
`slot()` now has a `center` option.
Added `button_6mm_7` with a taller button.
Added default fa, fs and fn constants used for drawing vitamins.
These can be set via `$default_fa` and `$default_fs` that can also be set
by environment variables: `NOPSCADLIB_DEFAULT_FA` and `NOPSCADLIB_DEFAULT_FS`.
### [v21.8.0](https://github.com/nophead/NopSCADlib/releases/tag/v21.8.0 "show release") Additions [...](https://github.com/nophead/NopSCADlib/compare/v21.7.0...v21.8.0 "diff with v21.7.0")
* 2023-07-28 [`74293b6`](https://github.com/nophead/NopSCADlib/commit/74293b6c22c51c326e2d541d1a68a1cd63659c2b "show commit") [C.](# "Chris") Added axial diodes, radial transistors, discs and modules.
Verboard and perboard components get solder menisci added automatically.
@@ -576,7 +644,7 @@ veroboard track cuts made slightly bigger.
* 2021-10-01 [`042d809`](https://github.com/nophead/NopSCADlib/commit/042d809ed056ba55c32f1d850b81dcf559fe9134 "show commit") [C.P.](# "Chris Palmer") Resistor and thermistor wires made more round.
* 2021-10-01 [`3864839`](https://github.com/nophead/NopSCADlib/commit/3864839e521eb64189cba8453ea8835d6ffadd75 "show commit") [C.P.](# "Chris Palmer") Fixed encoder breakout descripion typo.
* 2021-10-01 [`3864839`](https://github.com/nophead/NopSCADlib/commit/3864839e521eb64189cba8453ea8835d6ffadd75 "show commit") [C.P.](# "Chris Palmer") Fixed encoder breakout description typo.
* 2021-10-01 [`2ba2c2c`](https://github.com/nophead/NopSCADlib/commit/2ba2c2c115d4ab6c2371c662a3e54d7c77aa7785 "show commit") [C.P.](# "Chris Palmer") Removed some unused dependencies.
@@ -597,7 +665,7 @@ Mainly text spacing changes.
* 2021-09-27 [`9b5ec6a`](https://github.com/nophead/NopSCADlib/commit/9b5ec6af1aba313df6812a5313470ebb7e8fbdd7 "show commit") [C.P.](# "Chris Palmer") Fixed new `rounded_polygon` to work with last OpenSCAD release.
Trailing commas in `let()`.
* 2021-09-27 [`50958b0`](https://github.com/nophead/NopSCADlib/commit/50958b064d5a6d5ca3fd6525a8c3d3a2c5b20199 "show commit") [C.P.](# "Chris Palmer") Added `$show_plugs` to show crude reprentations of housings on `pin_headers` and Molex KK headers.
* 2021-09-27 [`50958b0`](https://github.com/nophead/NopSCADlib/commit/50958b064d5a6d5ca3fd6525a8c3d3a2c5b20199 "show commit") [C.P.](# "Chris Palmer") Added `$show_plugs` to show crude representations of housings on `pin_headers` and Molex KK headers.
* 2021-09-27 [`c37373c`](https://github.com/nophead/NopSCADlib/commit/c37373c920d3b438895ef535b0c06d0d00675609 "show commit") [C.P.](# "Chris Palmer") Added `TO247()` and `TO247_size()` to `component.scad`.
@@ -938,7 +1006,7 @@ Changelog updated.
* 2021-03-06 [`b83e567`](https://github.com/nophead/NopSCADlib/commit/b83e56713fbde2ac25e9750c369ae9cec4d67913 "show commit") [M.B.](# "Martin Budden") Reordered openscad command line parameters.
* 2021-03-04 [`da4f9fb`](https://github.com/nophead/NopSCADlib/commit/da4f9fbdc31d2ceaa853c2fa0270e6961fde28b9 "show commit") [C.P.](# "Chris Palmer") Typo in `changlog.py` doc string.
* 2021-03-04 [`da4f9fb`](https://github.com/nophead/NopSCADlib/commit/da4f9fbdc31d2ceaa853c2fa0270e6961fde28b9 "show commit") [C.P.](# "Chris Palmer") Typo in `changelog.py` doc string.
* 2021-03-03 [`614e5f3`](https://github.com/nophead/NopSCADlib/commit/614e5f3a72db309a3dee996d7241317556883e8d "show commit") [C.P.](# "Chris Palmer") Issues in the changelog now link to to the issue.
@@ -1121,7 +1189,7 @@ Smaller PCBs closer together to make space.
* 2021-01-15 [`7f9122a`](https://github.com/nophead/NopSCADlib/commit/7f9122ae662ab0bd660e5c2f5ab6c507797030da "show commit") [C.P.](# "Chris Palmer") Added `--hardwarnings` to `openscad.py`
### [v10.33.0](https://github.com/nophead/NopSCADlib/releases/tag/v10.33.0 "show release") Additions [...](https://github.com/nophead/NopSCADlib/compare/v10.32.0...v10.33.0 "diff with v10.32.0")
* 2021-01-15 [`93b260b`](https://github.com/nophead/NopSCADlib/commit/93b260b7b9a016e2afe1ab7df22f5c0c8c906708 "show commit") [C.P.](# "Chris Palmer") Added `screw_length()` to calculuate screw lengths includin washers, inserts and nuts.
* 2021-01-15 [`93b260b`](https://github.com/nophead/NopSCADlib/commit/93b260b7b9a016e2afe1ab7df22f5c0c8c906708 "show commit") [C.P.](# "Chris Palmer") Added `screw_length()` to calculate screw lengths includin washers, inserts and nuts.
### [v10.32.0](https://github.com/nophead/NopSCADlib/releases/tag/v10.32.0 "show release") Additions [...](https://github.com/nophead/NopSCADlib/compare/v10.31.1...v10.32.0 "diff with v10.31.1")
* 2021-01-13 [`8fea8f4`](https://github.com/nophead/NopSCADlib/commit/8fea8f437b4c4efe1aecf24cf8ddb6c8f006cad2 "show commit") [C.P.](# "Chris Palmer") Updated images and readme for green terminals.
@@ -1479,7 +1547,7 @@ Updated images and readme.
* 2020-11-13 [`0c9ae8d`](https://github.com/nophead/NopSCADlib/commit/0c9ae8d60c96d8c5b16adfce98081adc8e20b001 "show commit") [C.P.](# "Chris Palmer") PCBs now drawn before components so that transparent LEDs draw correctly.
* 2020-11-12 [`9a0bad4`](https://github.com/nophead/NopSCADlib/commit/9a0bad4e61acbd0ae27ef5c2d324d88deb7ee672 "show commit") [C.P.](# "Chris Palmer") Made stepper motor encap paramatric.
* 2020-11-12 [`9a0bad4`](https://github.com/nophead/NopSCADlib/commit/9a0bad4e61acbd0ae27ef5c2d324d88deb7ee672 "show commit") [C.P.](# "Chris Palmer") Made stepper motor encap parametric.
Made connector position based on encap height and added PCB.
* 2020-11-12 [`9004781`](https://github.com/nophead/NopSCADlib/commit/90047815b0189c628c96807785d0d93a4895d411 "show commit") [C.P.](# "Chris Palmer") Added JST PH connectors.
@@ -1608,7 +1676,7 @@ Reduced J-Head inset.
Removed J-Head MK4.
### [v9.2.0](https://github.com/nophead/NopSCADlib/releases/tag/v9.2.0 "show release") Additions [...](https://github.com/nophead/NopSCADlib/compare/v9.1.1...v9.2.0 "diff with v9.1.1")
* 2020-08-13 [`2419d50`](https://github.com/nophead/NopSCADlib/commit/2419d5064182d63634183a5762c995d0bdfacf0a "show commit") [C.P.](# "Chris Palmer") Added more PTFE tube sizes and amde them whiter.
* 2020-08-13 [`2419d50`](https://github.com/nophead/NopSCADlib/commit/2419d5064182d63634183a5762c995d0bdfacf0a "show commit") [C.P.](# "Chris Palmer") Added more PTFE tube sizes and made them whiter.
* 2020-08-13 [`02211c2`](https://github.com/nophead/NopSCADlib/commit/02211c20348ef4f134c0d3c734a5d922fe9a9a3c "show commit") [C.P.](# "Chris Palmer") Added `tubing_or()` and `center` option.
@@ -2143,7 +2211,7 @@ already included by other vitamins.
* 2020-02-24 [`065ec0a`](https://github.com/nophead/NopSCADlib/commit/065ec0a430da6c62cbd6d06b3de822e8a6751425 "show commit") [C.P.](# "Chris Palmer") Corrected nut placement
* 2020-02-24 [`e7eea05`](https://github.com/nophead/NopSCADlib/commit/e7eea0520c7e4bd20e505084d7c17a64a915ef75 "show commit") [C.P.](# "Chris Palmer") T nut thickness no longer includes the stem to simplyfy placement and screw
* 2020-02-24 [`e7eea05`](https://github.com/nophead/NopSCADlib/commit/e7eea0520c7e4bd20e505084d7c17a64a915ef75 "show commit") [C.P.](# "Chris Palmer") T nut thickness no longer includes the stem to simplify placement and screw
length calculations.
* 2020-02-24 [`5cb994b`](https://github.com/nophead/NopSCADlib/commit/5cb994b58b204a9f59d17001e4061aa5f60328bc "show commit") [C.P.](# "Chris Palmer") Retabulated nut table
@@ -2363,7 +2431,7 @@ Both added to the insert test.
* 2019-08-18 [`e35fb69`](https://github.com/nophead/NopSCADlib/commit/e35fb695a21a42216b7f5b58c12b6bc5d3a43eff "show commit") [C.P.](# "Chris Palmer") Ziptie width added to BOM description.
* 2019-08-18 [`61bec65`](https://github.com/nophead/NopSCADlib/commit/61bec656d7d9328a6eb90ca003d5ae5888e5a18c "show commit") [C.P.](# "Chris Palmer") Fixed box header BOM descripion.
* 2019-08-18 [`61bec65`](https://github.com/nophead/NopSCADlib/commit/61bec656d7d9328a6eb90ca003d5ae5888e5a18c "show commit") [C.P.](# "Chris Palmer") Fixed box header BOM description.
* 2019-08-18 [`854adab`](https://github.com/nophead/NopSCADlib/commit/854adab6650e7617588e2da821cd91fa97657eaa "show commit") [C.P.](# "Chris Palmer") Fix for Python 2

View File

@@ -30,7 +30,7 @@ The `NopSCADlib/scripts` directory needs to be added to the executable search pa
Note that on Linux and OSX the full file name including the `.py` will be needed.
The installation can be tested by opening `NopSCADlib/libtest.scad` in the OpenSCAD GUI. It should render all the objects in the library in about 1 minute.
The installation can be tested by opening `NopSCADlib/libtest.scad` in the OpenSCAD GUI. It should render all the objects in the library in about 2 minutes.
Running `tests` from the command line will run all the tests in the `tests` directory and build the `readme.md` catalog for GitHub and render it to `readme.html`
for local preview.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 203 KiB

After

Width:  |  Height:  |  Size: 203 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 265 KiB

After

Width:  |  Height:  |  Size: 265 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 326 KiB

After

Width:  |  Height:  |  Size: 326 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 337 KiB

After

Width:  |  Height:  |  Size: 336 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 126 KiB

After

Width:  |  Height:  |  Size: 126 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 202 KiB

After

Width:  |  Height:  |  Size: 201 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 249 KiB

After

Width:  |  Height:  |  Size: 249 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 KiB

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 125 KiB

After

Width:  |  Height:  |  Size: 125 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 187 KiB

After

Width:  |  Height:  |  Size: 185 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 236 KiB

After

Width:  |  Height:  |  Size: 234 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 233 KiB

After

Width:  |  Height:  |  Size: 236 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 130 KiB

After

Width:  |  Height:  |  Size: 136 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 120 KiB

After

Width:  |  Height:  |  Size: 120 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 218 KiB

After

Width:  |  Height:  |  Size: 218 KiB

View File

@@ -49,7 +49,7 @@
},
{
"name": "fan_controller_assembly",
"big": null,
"big": true,
"ngb": false,
"zoomed": 0,
"count": 1,

View File

@@ -127,7 +127,7 @@ Environmental monitor using Enviro+ sensor board and a Raspberry Pi Zero.
### Assembly instructions
![fan_controller_assembly](assemblies/fan_controller_assembly_tn.png)
![fan_controller_assembly](assemblies/fan_controller_assembly.png)
The fan controller is a single transistor wired as a Miller integrator that effectively multiplies the capacitor value by the gain of the transistor.
It converts the PWM signal on GPI4 to a stead DC voltage so that the fan doesn't whine, or stutter.
@@ -145,7 +145,7 @@ It converts the PWM signal on GPI4 to a stead DC voltage so that the fan doesn't
![SMT](docs/smt.jpg)
![fan_controller_assembled](assemblies/fan_controller_assembled_tn.png)
![fan_controller_assembled](assemblies/fan_controller_assembled.png)
<span></span>
[Top](#TOP)
@@ -168,11 +168,11 @@ It converts the PWM signal on GPI4 to a stead DC voltage so that the fan doesn't
### Assembly instructions
![enviro_assembly](assemblies/enviro_assembly_tn.png)
![enviro_assembly](assemblies/enviro_assembly.png)
* Solder the fan_controller to the Enviro+ expansion connector at the 5V, GND and #4 pins.
![enviro_assembled](assemblies/enviro_assembled_tn.png)
![enviro_assembled](assemblies/enviro_assembled.png)
<span></span>
[Top](#TOP)

View File

@@ -25,7 +25,7 @@ include <NopSCADlib/vitamins/fans.scad>
use <NopSCADlib/vitamins/insert.scad>
use <NopSCADlib/vitamins/veroboard.scad>
use <NopSCADlib/utils/round.scad>
use <NopSCADlib/utils/pcb.scad>
use <NopSCADlib/utils/pcb_utils.scad>
use <NopSCADlib/printed/foot.scad>
use <NopSCADlib/printed/printed_box.scad>
use <fan_controller.scad>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 105 KiB

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 137 KiB

After

Width:  |  Height:  |  Size: 137 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 120 KiB

After

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 200 KiB

After

Width:  |  Height:  |  Size: 200 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 123 KiB

After

Width:  |  Height:  |  Size: 123 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 134 KiB

After

Width:  |  Height:  |  Size: 134 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 23 KiB

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

BIN
gallery/Blinder.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB

BIN
gallery/ClockSetter.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 121 KiB

After

Width:  |  Height:  |  Size: 120 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 168 KiB

After

Width:  |  Height:  |  Size: 169 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 259 KiB

After

Width:  |  Height:  |  Size: 259 KiB

BIN
gallery/LED_box.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 287 KiB

After

Width:  |  Height:  |  Size: 287 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 121 KiB

After

Width:  |  Height:  |  Size: 121 KiB

BIN
gallery/MultiSwitch.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 188 KiB

BIN
gallery/MultiSwitch2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

BIN
gallery/PSU_tube.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 164 KiB

After

Width:  |  Height:  |  Size: 214 KiB

BIN
gallery/PowerBank.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 282 KiB

View File

@@ -4,6 +4,18 @@ Arduino thermostat to control a beer fridge to use it as an environmental chambe
![](ArduinoThermostat.png)
## Blinder
Tasmota roller blind open / close mechanism
![](Blinder.png)
## ClockSetter
An IOT device for programming UK wireless clocks that are out of reach of the UK MSF time signal but are on UK time, e.g. in Tenerife.
![](ClockSetter.png)
## EnviroPlus
Environmental monitor using Enviro+ sensor board and a Raspberry Pi Zero.
@@ -19,7 +31,6 @@ Current state of HydraRaptor after being modified for laser engraving.
![](HydraBot.png)
## IOT 50V PSU
WiFi controllable PSU
@@ -30,6 +41,11 @@ WiFi controllable programmable load
![](IOT_LOAD.png)
## LED Box
Indicator LEDs used to debug a Bosch diswasher problem.
![](LED_box.png)
## Lab ATX PSU
Bench power supply built around an ATX PSU.
@@ -70,16 +86,36 @@ Mains isolated and variable supply with metering.
## MultiSwitch
Multi Tasmota switch to replace 5 Sonoffs
![](MultiSwitch.png)
## MultiSwitch2
Multi Tasmota switch to replace 5 Sonoffs
![](MultiSwitch2.png)
## PSU Cover
A base and shroud to make PSU safe to sit on a desk
![](PSU_cover.png)
## PSU Tube
12V power supply made in an aluminium tube for fire safety
![](PSU_tube.png)
## PotBox
Potentiometer box with course and fine controls and three 4mm binding posts
![](PotBox.png)
## PowerBank
LION powerbank with e-paper charge status display
![](PowerBank.png)
## SunBot
A solar tracker to keep a solar panel pointing at the sun.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 968 KiB

After

Width:  |  Height:  |  Size: 976 KiB

View File

@@ -482,7 +482,7 @@ cable_strip_y = sheets_y + 30;
translate([0, transformers_y])
servo_motors();
translate([x4 + 200, belts_y + 58]) {
translate([x4 + 200 + 16, belts_y + 58]) {
belt_test();
translate([0, 60])

View File

@@ -437,10 +437,14 @@ Individual teeth are not drawn, instead they are represented by a lighter colour
### Vitamins
| Qty | Module call | BOM entry |
| ---:|:--- |:---|
| 1 | `belt(GT2x12, [ ... ])` | Belt GT2 x 12mm x 128mm |
| 1 | `belt(GT2x6, [ ... ])` | Belt GT2 x 6mm x 128mm |
| 1 | `belt(GT2x6, [ ... ])` | Belt GT2 x 6mm x 552mm |
| 2 | `belt(GT2x6, [ ... ])` | Belt GT2 x 6mm x 556mm |
| 1 | `belt(GT2x6, [ ... ])` | Belt GT2 x 6mm x 584mm |
| 2 | `belt(GT2x6, [ ... ])` | Belt GT2 x 6mm x 588mm |
| 1 | `belt(GT2x9, [ ... ])` | Belt GT2 x 9mm x 128mm |
| 1 | `belt(GT3x12, [ ... ])` | Belt GT3 x 12mm x 128mm |
| 1 | `belt(GT3x6, [ ... ])` | Belt GT3 x 6mm x 128mm |
| 1 | `belt(GT3x9, [ ... ])` | Belt GT3 x 9mm x 128mm |
| 1 | `belt(T2p5x6, [ ... ])` | Belt T2.5 x 6mm x 130mm |
| 1 | `belt(T5x10, [ ... ])` | Belt T5 x 10mm x 130mm |
| 1 | `belt(T5x6, [ ... ])` | Belt T5 x 6mm x 130mm |
@@ -924,6 +928,7 @@ Various electronic components used in hot ends and heated beds.
| 1 | `TO220("Generic TO220 package")` | Generic TO220 package |
| 1 | `TO247("Generic TO247 package")` | Generic TO247 package |
| 8 | `tubing(HSHRNK32)` | Heatshrink sleeving ID 3.2mm x 15mm |
| 1 | `multiwatt11("L6203")` | MULTIWATT11 L6203 |
| 1 | `resistor(RWM04106R80J)` | Resistor RWM04106R80J 6R8 3W vitreous enamel |
| 1 | `resistor(RIE1212UB5C5R6)` | Resistor UB5C 5R6F 5R6 3W vitreous enamel |
| 1 | `al_clad_resistor(THS10, 4.7)` | Resistor aluminium clad THS10 4.7 |
@@ -1086,6 +1091,7 @@ LCD displays.
| 1 | `display(HDMI5)` | HDMI display 5" |
| 1 | `display(TFT128x160)` | LCD TFT ST7735 display 128x160 |
| 1 | `display(LCD1602A)` | LCD display 1602A |
| 1 | `display(LCD2004A)` | LCD display 2004A |
| 1 | `display(LCDS7282B)` | LCD display S-7282B |
| 1 | `display(SSD1963_4p3)` | LCD display SSD1963 4.3" |
@@ -1301,7 +1307,7 @@ Faston receptacles to mate with spade connectors
| `faston_insul_crimp_l(type)` | Length of the insulation crimp |
| `faston_insul_crimp_o(type)` | Offset of insulation crimp |
| `faston_insul_crimp_p(type)` | Position of the tip of the insulation crimp |
| `faston_size(type)` | Size of the receptical part |
| `faston_size(type)` | Size of the receptacle part |
| `faston_t(type)` | Thickness |
| `faston_wall_h(type)` | Height of transition web wall |
| `faston_width(type)` | Width of matching spade |
@@ -2836,12 +2842,14 @@ PCBs and perfboard with optional components. The shape can be a rectangle with o
| 1 | `pcb(DuetE)` | Duet 2 Ethernet electronics |
| 1 | `pcb(Duex2)` | Duex2 expansion board - not shown |
| 1 | `pcb(Duex5)` | Duex5 expansion board |
| 1 | `pcb(ESP-01)` | ESP-01 |
| 1 | `pcb(ESP_01)` | ESP-01 |
| 1 | `pcb(ESP_01M)` | ESP-01M WiFi module (ESP8285) |
| 1 | `pcb(ESP_12F)` | ESP-12F ESP8266 WiFi module |
| 1 | `pcb(ESP_201)` | ESP-201 ESP8266 WiFi module |
| 1 | `pcb(ESP32_DOIT_V1)` | ESP32 DOIT DEV KIT V1 |
| 1 | `pcb(EnviroPlus)` | Enviro+ |
| 1 | `pcb(ExtruderPCB)` | Extruder connection PCB - not shown |
| 1 | `pcb(HW803_1WAY_RELAY)` | HW-803 5V 1 way relay module |
| 1 | `pcb(KY_040)` | KY-040 rotart encoder breakout |
| 1 | `pcb(Keyes5p1)` | Keyes5.1 Arduino Uno expansion board - not shown |
| 1 | `pcb(L9110S)` | L9110S 2-Channel motor driver module |
@@ -2855,7 +2863,7 @@ PCBs and perfboard with optional components. The shape can be a rectangle with o
| 1 | `molex_254(3)` | Molex KK header 3 way - not shown |
| 20 | `nut(M2_nut, nyloc = true)` | Nut M2 x 1.6mm nyloc |
| 38 | `nut(M2p5_nut, nyloc = true)` | Nut M2.5 x 2.2mm nyloc |
| 43 | `nut(M3_nut, nyloc = true)` | Nut M3 x 2.4mm nyloc |
| 47 | `nut(M3_nut, nyloc = true)` | Nut M3 x 2.4mm nyloc |
| 8 | `nut(M4_nut, nyloc = true)` | Nut M4 x 3.2mm nyloc |
| 1 | `pcb(OPZ2)` | Orange Pi Zero 2 |
| 1 | `pcb(PI_IO)` | PI_IO V2 - not shown |
@@ -2878,14 +2886,17 @@ PCBs and perfboard with optional components. The shape can be a rectangle with o
| 8 | `screw(M2_cap_screw, 20)` | Screw M2 cap x 20mm |
| 4 | `screw(M2_cap_screw, 25)` | Screw M2 cap x 25mm |
| 2 | `screw(M2p5_cap_screw, 20)` | Screw M2.5 cap x 20mm |
| 8 | `screw(M2p5_cap_screw, 25)` | Screw M2.5 cap x 25mm |
| 4 | `screw(M2p5_cap_screw, 25)` | Screw M2.5 cap x 25mm |
| 4 | `screw(M2p5_cap_screw, 30)` | Screw M2.5 cap x 30mm |
| 12 | `screw(M2p5_cap_screw, 35)` | Screw M2.5 cap x 35mm |
| 4 | `screw(M2p5_dome_screw, 25)` | Screw M2.5 dome x 25mm |
| 4 | `screw(M2p5_pan_screw, 20)` | Screw M2.5 pan x 20mm |
| 8 | `screw(M2p5_pan_screw, 30)` | Screw M2.5 pan x 30mm |
| 19 | `screw(M3_cap_screw, 16)` | Screw M3 cap x 16mm |
| 13 | `screw(M3_cap_screw, 20)` | Screw M3 cap x 20mm |
| 11 | `screw(M3_cap_screw, 30)` | Screw M3 cap x 30mm |
| 4 | `screw(M3_cap_screw, 25)` | Screw M3 cap x 25mm |
| 8 | `screw(M3_cap_screw, 30)` | Screw M3 cap x 30mm |
| 3 | `screw(M3_cap_screw, 35)` | Screw M3 cap x 35mm |
| 4 | `screw(M4_cap_screw, 20)` | Screw M4 cap x 20mm |
| 4 | `screw(M4_cap_screw, 25)` | Screw M4 cap x 25mm |
| 1 | `pcb(XIAO)` | Seeeduino XIAO |
@@ -2897,7 +2908,7 @@ PCBs and perfboard with optional components. The shape can be a rectangle with o
| 1 | `pcb(WD2002SJ)` | WD2002SJ Buck Boost DC-DC converter |
| 20 | `washer(M2_washer)` | Washer M2 x 5mm x 0.3mm |
| 38 | `washer(M2p5_washer)` | Washer M2.5 x 5.9mm x 0.5mm |
| 43 | `washer(M3_washer)` | Washer M3 x 7mm x 0.5mm |
| 47 | `washer(M3_washer)` | Washer M3 x 7mm x 0.5mm |
| 8 | `washer(M4_washer)` | Washer M4 x 9mm x 0.8mm |
| 1 | `pcb(ZC_A0591)` | ZC-A0591 ULN2003 driver PCB |
@@ -2905,23 +2916,24 @@ PCBs and perfboard with optional components. The shape can be a rectangle with o
| Qty | Filename |
| ---:|:--- |
| 4 | pcb_spacer20100.stl |
| 4 | pcb_spacer20130.stl |
| 4 | pcb_spacer20140.stl |
| 4 | pcb_spacer2070.stl |
| 4 | pcb_spacer2080.stl |
| 4 | pcb_spacer2090.stl |
| 4 | pcb_spacer25120.stl |
| 4 | pcb_spacer25150.stl |
| 2 | pcb_spacer25100.stl |
| 4 | pcb_spacer25130.stl |
| 4 | pcb_spacer25160.stl |
| 4 | pcb_spacer25170_2.stl |
| 4 | pcb_spacer25170.stl |
| 4 | pcb_spacer25180_2.stl |
| 4 | pcb_spacer25220.stl |
| 4 | pcb_spacer25190_2.stl |
| 4 | pcb_spacer25230.stl |
| 4 | pcb_spacer25240.stl |
| 4 | pcb_spacer25250.stl |
| 4 | pcb_spacer2580.stl |
| 2 | pcb_spacer2590.stl |
| 4 | pcb_spacer30190.stl |
| 4 | pcb_spacer30120.stl |
| 4 | pcb_spacer30200.stl |
| 3 | pcb_spacer30210.stl |
| 4 | pcb_spacer30210.stl |
| 3 | pcb_spacer30220.stl |
| 10 | pcb_spacer3050.stl |
| 9 | pcb_spacer3060.stl |
| 9 | pcb_spacer3070.stl |
@@ -3748,6 +3760,7 @@ For an explanation of `screw_polysink()` see <https://hydraraptor.blogspot.com/2
### Functions
| Function | Description |
|:--- |:--- |
| `screw_angle(type, length, nut_distance)` | How much to rotate the screw to align it with a nut at the specified `distance` from the head |
| `screw_boss_diameter(type)` | Boss big enough for nut trap and washer |
| `screw_head_depth(type, d = 0)` | How far a counter sink head will go into a straight hole diameter d |
| `screw_insert(screw, short = false, i = 0)` | Find insert to fit specified screw, defaults to longest but can specify the shortest |
@@ -3756,6 +3769,7 @@ For an explanation of `screw_polysink()` see <https://hydraraptor.blogspot.com/2
| `screw_nut_radius(type)` | Radius of matching nut |
| `screw_polysink_r(type, z)` | Countersink hole profile corrected for rounded staircase extrusions. |
| `screw_shorter_than(x)` | Returns the length of the longest screw shorter than or equal to x |
| `screw_thread_radius(type)` | Thread radius |
### Modules
| Module | Description |
@@ -4004,6 +4018,8 @@ When woven sheets (e.g. carbon fibre) are rendered it is necessary to specify th
| 1 | `sheet(MDF10, 30, 30, 2)` | Sheet MDF 30mm x 30mm x 10mm |
| 1 | `sheet(MDF12, 30, 30, 2)` | Sheet MDF 30mm x 30mm x 12mm |
| 1 | `sheet(MDF19, 30, 30, 2)` | Sheet MDF 30mm x 30mm x 19mm |
| 1 | `sheet(MDF22, 30, 30, 2)` | Sheet MDF 30mm x 30mm x 22mm |
| 1 | `sheet(MDF3, 30, 30, 2)` | Sheet MDF 30mm x 30mm x 3mm |
| 1 | `sheet(MDF6, 30, 30, 2)` | Sheet MDF 30mm x 30mm x 6mm |
| 1 | `sheet(PMMA1p25, 30, 30, 2)` | Sheet acrylic 30mm x 30mm x 1.25mm |
| 1 | `sheet(PMMA10, 30, 30, 2)` | Sheet acrylic 30mm x 30mm x 10mm |
@@ -7428,7 +7444,7 @@ This is to prevent the global BOM page becoming too wide in large projects by ha
The example below shows how to define a vitamin and incorporate it into an assembly with sub-assemblies and make an exploded view.
The resulting flat BOM is shown but hierarchical BOMs are also generated for real projects.
If the code to make an STL or DXF is made a child of the `stl()` or `dxf()` module then the STL or DXF will be used in the assembly views generated by `views.py` instead of generating
If the code to make an STL, DXF or SVG is made a child of the `stl()`, `dxf()` or `svg()` module then the STL, DXF or SVG will be used in the assembly views generated by `views.py` instead of generating
it with code.
This can speed up the generation of the build instructions greatly but isn't compatible with STLs that include support structures.
@@ -7467,8 +7483,10 @@ The `pose()` module allows assembly views in the readme to be posed differently
| `pose_vflip(exploded = undef)` | Pose an STL or assembly for rendering to png by flipping around the X axis, `exploded = true for` just the exploded view or `false` for unexploded only. |
| `stl(name)` | Name an stl that will appear on the BOM, there needs to a module named `<name>_stl` to make it |
| `stl_colour(colour = pp1_colour, alpha = 1)` | Colour an stl where it is placed in an assembly. `alpha` can be used to make it appear transparent. |
| `svg(name)` | Name an svg that will appear on the BOM, there needs to a module named `<name>_svg` to make it |
| `use_dxf(name)` | Import a DXF to make a build panel |
| `use_stl(name)` | Import an STL to make a build platter |
| `use_svg(name)` | Import an SVG to make a build panel |
| `vitamin(description)` | Describe a vitamin for the BOM entry and precede it with a module call that creates it, eg. "widget(42): Widget size 42" |
![bom](tests/png/bom.png)
@@ -7479,6 +7497,8 @@ The `pose()` module allows assembly views in the readme to be posed differently
| 1 | `insert(F1BM3)` | Heatfit insert M3 x 5.8mm |
| 1 | `widget(3)` | Rivet like thing for 3mm sheets |
| 1 | `screw(M3_cap_screw, 8)` | Screw M3 cap x 8mm |
| 4 | `screw(M3_cap_screw, 10)` | Screw M3 cap x 10mm |
| 1 | `sheet(MDF6, 40, 40)` | Sheet MDF 40mm x 40mm x 6mm |
| 1 | `sheet(PMMA3, 20, 20, 1)` | Sheet acrylic 20mm x 20mm x 3mm |
| 1 | `washer(M3_washer)` | Washer M3 x 7mm x 0.5mm |
| 1 | `star_washer(M3_washer)` | Washer star M3 x 0.5mm |
@@ -7491,6 +7511,7 @@ The `pose()` module allows assembly views in the readme to be posed differently
### Routed
| Qty | Filename |
| ---:|:--- |
| 1 | mdf.svg |
| 1 | widget.dxf |
### Assemblies

View File

@@ -104,14 +104,14 @@ class BOM:
def add_part(self, s):
args = []
match = re.match(r'^(.*?\.stl|.*?\.dxf)\((.*)\)$', s) #look for name.stl(...) or name.dxf(...)
match = re.match(r'^(.*?\.stl|.*?\.dxf|.*?\.svg)\((.*)\)$', s) #look for name.stl(...), name.dxf(...) or name.svg(...)
if match:
s = match.group(1)
args = [match.group(2)]
if s[-4:] == ".stl":
parts = self.printed
else:
if s[-4:] == ".dxf":
if s[-4:] == ".dxf" or s[-4:] == ".svg":
parts = self.routed
else:
parts = self.vitamins

View File

@@ -35,7 +35,7 @@ def read_deps(dname):
for line in lines:
if line.startswith('\t'):
dep = line[1 : -1].rstrip(' \\').replace('\\ ', ' ')
if not os.path.basename(dep) in ['stl.scad', 'dxf.scad', 'svf.scad', 'png.scad', 'target.scad']:
if not os.path.basename(dep) in ['stl.scad', 'dxf.scad', 'svg.scad', 'png.scad', 'target.scad']:
deps.append(dep)
return deps

View File

@@ -39,7 +39,7 @@ def bom_to_parts(bom_dir, part_type, assembly = None):
#
part_files = []
bom = assembly + '.txt' if assembly else "bom.txt"
suffix = ".dxf" if part_type == 'svg' else '.' + part_type
suffix = '.' + part_type
with open(bom_dir + '/' + bom, "rt") as f:
for line in f.readlines():
words = line.split()
@@ -106,7 +106,7 @@ def make_parts(target, part_type, parts = None):
#
# Find all the scad files
#
module_suffix = '_dxf' if part_type == 'svg' else '_' + part_type
module_suffix = '_' + part_type
for dir in source_dirs(bom_dir):
if targets and os.path.isdir(dir):
for filename in os.listdir(dir):
@@ -141,7 +141,7 @@ def make_parts(target, part_type, parts = None):
with open(part_maker_name, "w") as f:
f.write("include <NopSCADlib/global_defs.scad>\n")
f.write("use <%s/%s>\n" % (reltmp(dir, target), filename))
f.write("%s();\n" % module);
f.write("%s();\n" % module)
t = time.time()
openscad.run("-o", part_file, part_maker_name, "-D$bom=1", "-d", dname)
times.add_time(part, t)

View File

@@ -39,7 +39,7 @@ if __name__ == '__main__':
target = None if len(sys.argv) == 1 else sys.argv[1]
set_config(target, usage)
boms(target)
for part in ['stl', 'dxf']:
for part in ['stl', 'dxf', 'svg']:
make_parts(target, part)
render(target, part)
plateup(target, part)

View File

@@ -31,8 +31,8 @@ import re
import time
import times
source_dirs = { "stl" : "platters", "dxf" : "panels" }
target_dirs = { "stl" : "printed", "dxf" : "routed" }
source_dirs = { "stl" : "platters", "dxf" : "panels", "svg" : "panels" }
target_dirs = { "stl" : "printed", "dxf" : "routed", "svg" : "routed" }
def plateup(target, part_type, usage = None):
#

View File

@@ -33,7 +33,7 @@ import json
from tmpdir import *
def usage():
print("\nusage:\n\trender [target_config] - Render images of the stl and dxf files.");
print("\nusage:\n\trender [target_config] - Render images of the stl, dxf and svg files.");
sys.exit(1)
def render(target, type):
@@ -57,7 +57,7 @@ def render(target, type):
with open(bom_file) as json_file:
flat_bom = json.load(json_file)
things = { 'stl' : 'printed', 'dxf' : 'routed' }[type]
things = { 'stl' : 'printed', 'dxf' : 'routed', 'svg' : 'routed' }[type]
colours = {}
for ass in flat_bom:
for part in ass[things]:
@@ -112,3 +112,4 @@ if __name__ == '__main__':
target = sys.argv[1] if len(sys.argv) > 1 else None
render(target, 'stl')
render(target, 'dxf')
render(target, 'svg')

View File

@@ -374,7 +374,12 @@ def views(target, do_assemblies = None):
print('\n|%s' % ('---|' * n), file = doc_file)
for j in range(n):
part = keys[i - n + j + 1]
print('| ![%s](dxfs/%s) %s' % (part, part.replace('.dxf','.png'), '|\n' if j == j - 1 else ''), end = '', file = doc_file)
if (part[-4:] == ".dxf"):
print('| ![%s](dxfs/%s) %s' % (part, part.replace('.dxf','.png'), '|\n' if j == j - 1 else ''), end = '', file = doc_file)
elif (part[-4:] == ".svg"):
print('| ![%s](svgs/%s) %s' % (part, part.replace('.svg','.png'), '|\n' if j == j - 1 else ''), end = '', file = doc_file)
else:
print("Unkown file type ", part[-4:], " for file ", part)
print('\n', file = doc_file)
print('\n', file = doc_file)

View File

@@ -25,11 +25,11 @@ include <../core.scad>
include <../vitamins/sheets.scad>
use <../vitamins/insert.scad>
screw = M3_cap_screw;
screwM3 = M3_cap_screw;
sheet = PMMA3;
height = 10;
insert = screw_insert(screw);
insert = screw_insert(screwM3);
module widget(thickness) {
vitamin(str("widget(", thickness, "): Rivet like thing for ", thickness, "mm sheets"));
@@ -46,7 +46,13 @@ module widget(thickness) {
module widget_stl() {
stl("widget")
union() {
rounded_rectangle([30, 30, 3], 2, true);
difference() {
rounded_rectangle([30, 30, 3], 2, true);
for(x = [-10,10])
for (y=[-10,10])
translate([x,y,-1.5])
cylinder(r=2, h=3.5);
}
render() insert_boss(insert, height, 2.2);
}
@@ -57,7 +63,18 @@ module widget_dxf() {
difference() {
sheet_2D(sheet, 20, 20, 1);
drill(screw_clearance_radius(screw), 0);
drill(screw_clearance_radius(screwM3), 0);
}
}
module mdf_svg() {
svg("mdf")
difference() {
sheet_2D(MDF6, 40,40);
for(x = [-10,10])
for (y=[-10,10])
translate([x,y,0])
drill(screw_clearance_radius(screwM3), 0);
}
}
@@ -85,11 +102,23 @@ assembly("widget_top") {
module widget_assembly()
assembly("widget") {
widget_base_assembly(); // Note this is not exploded because it is sub-assembly
translate_z(-6) {
render_2D_sheet(MDF6)
mdf_svg();
explode(0)
for(x = [-10,10])
for (y=[-10,10])
translate([x,y,-10])
screw(screwM3, 10);
}
explode(3)
widget_base_assembly(); // Note this is not exploded because it is sub-assembly
translate_z(height) {
translate_z(sheet_thickness(sheet))
screw_and_washer(screw, screw_length(screw, sheet_thickness(sheet) + 3, 2, longer = true), true);
screw_and_washer(screwM3, screw_length(screwM3, sheet_thickness(sheet) + 3, 2, longer = true), true);
explode(5)
translate_z(sheet_thickness(sheet) / 2 + eps)

View File

@@ -21,14 +21,20 @@ include <../core.scad>
include <../vitamins/pulleys.scad>
use <../vitamins/insert.scad>
use <../utils/layout.scad>
use <../utils/maths.scad>
module belt_test() {
p2 = [-75, -50];
p3 = [-75, 100];
p4 = [ 75, 100];
widths = [for(b = belts) belt_width(b)];
gap = 5;
belts_width = sumv(widths) + (len(belts) - 1) * gap;
width = belts_width + 50;
p5 = [ 75 + pulley_pr(GT2x20ob_pulley) - pulley_pr(GT2x16_plain_idler), +pulley_pr(GT2x16_plain_idler)];
p6 = [-75 + pulley_pr(GT2x20ob_pulley) + pulley_pr(GT2x16_plain_idler), -pulley_pr(GT2x16_plain_idler)];
p2 = [-width / 2, -50];
p3 = [-width / 2, 100];
p4 = [ width / 2, 100];
p5 = [ width / 2 + pulley_pr(GT2x20ob_pulley) - pulley_pr(GT2x16_plain_idler), +pulley_pr(GT2x16_plain_idler)];
p6 = [-width / 2 + pulley_pr(GT2x20ob_pulley) + pulley_pr(GT2x16_plain_idler), -pulley_pr(GT2x16_plain_idler)];
module pulleys(flip = false) {
translate(p2) rotate([0, flip ? 180 : 0, 0]) pulley_assembly(GT2x20ob_pulley);
@@ -70,15 +76,15 @@ module belt_test() {
pulleys(flip=true);
}
translate([-25, 0, 10])
layout([for(b = belts) belt_width(b)], 10)
translate([-belts_width / 2, 0, 10])
layout(widths, gap)
rotate([0, 90, 0])
belt(belts[$i], [[0, 0, 20], [0, 1, 20]], belt_colour = $i%2==0 ? grey(90) : grey(20), tooth_colour = $i%2==0 ? grey(70) : grey(50));
// new example with open loop - this is a simplified example of the style used for example for the BLV 3D printer
pulley = GT2x20ob_pulley;
idler = GT2x16_plain_idler;
corners = [[-75,-50],[75,100]];
corners = [[-width / 2,-50],[width / 2,100]];
carriagepos = [0,0];
carriagew = 80;
@@ -94,7 +100,7 @@ module belt_test() {
translate_z(-30) {
belt(belt, points, open=true, auto_twist=true);
for (p = points)
if (is_list(p.z))
if(is_list(p.z))
translate([p.x, p.y, 0])
pulley_assembly(p.z);
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.5 KiB

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 274 KiB

After

Width:  |  Height:  |  Size: 274 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 81 KiB

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 164 KiB

After

Width:  |  Height:  |  Size: 177 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 85 KiB

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 142 KiB

After

Width:  |  Height:  |  Size: 142 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 119 KiB

After

Width:  |  Height:  |  Size: 116 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 84 KiB

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 127 KiB

After

Width:  |  Height:  |  Size: 127 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 133 KiB

After

Width:  |  Height:  |  Size: 130 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 118 KiB

After

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 KiB

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 154 KiB

After

Width:  |  Height:  |  Size: 152 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 85 KiB

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 119 KiB

After

Width:  |  Height:  |  Size: 114 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 114 KiB

After

Width:  |  Height:  |  Size: 113 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 70 KiB

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 102 KiB

After

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 73 KiB

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 100 KiB

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 113 KiB

After

Width:  |  Height:  |  Size: 113 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 95 KiB

After

Width:  |  Height:  |  Size: 93 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 198 KiB

After

Width:  |  Height:  |  Size: 197 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 250 KiB

After

Width:  |  Height:  |  Size: 244 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 168 KiB

After

Width:  |  Height:  |  Size: 169 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 137 KiB

After

Width:  |  Height:  |  Size: 136 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 201 KiB

After

Width:  |  Height:  |  Size: 200 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 166 KiB

After

Width:  |  Height:  |  Size: 164 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 112 KiB

After

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 40 KiB

Some files were not shown because too many files have changed in this diff Show More