1
0
mirror of https://github.com/nophead/NopSCADlib.git synced 2025-09-03 12:22:46 +02:00

Compare commits

...

52 Commits

Author SHA1 Message Date
Chris Palmer
2d091b9d16 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.
2023-10-29 21:56:08 +00:00
Chris
1afd7a21ce Updated changelog. 2023-07-28 10:40:47 +01:00
Chris
74293b6c22 Added axial diodes, radial transistors, discs and modules.
Verboard and perboard components get solder menisci added automatically.
Radial leads now made by bezier curves rather than straights and arcs.
2023-07-28 10:39:07 +01:00
Chris
9e45e4eb79 Updated changelog. 2023-07-22 23:59:58 +01:00
Chris
523fc9e9a5 Adafruit Feather 405 contributed by Chris Lott. 2023-07-22 23:56:42 +01:00
Chris
09d2ffb126 Typo in comment fixed. 2023-07-22 19:32:42 +01:00
Chris
3c370359c8 Make front page readme.md labels lower case as GitHub seems have stopped working with uppercase. 2023-07-22 19:08:53 +01:00
Chris
acf45d2aae Updated changelog. 2023-07-22 17:38:06 +01:00
Chris
568d63dd14 Merge branch 'jeroenrnl-SBR' 2023-07-22 17:35:34 +01:00
Chris
e3cde64b61 open_bearing_theta() now derived from open_bearing_width(). 2023-07-22 17:34:22 +01:00
Chris
e61ce02414 Moved things around for better test images. 2023-07-22 16:37:35 +01:00
Chris
f8e125654e Rendred the 3D difference. 2023-07-22 16:36:11 +01:00
Chris
62b1511c82 Removed 3D difference for speed. 2023-07-22 16:35:50 +01:00
Jeroen Roos
84d98a1081 Added SBR rails
This change adds
- SBR rails. For now only SBR16
- The bearing block that goes with it (SBR16UU)
- An 'open' linear bearing (LM16UUOP) that is used by the bearing block
- A 28mm circlip that has a wider opening than then normal circlip.
(circlip_28iw)
2023-06-30 12:57:13 +02:00
Chris
8efbb1d441 Updated changelog. 2023-06-29 11:20:45 +01:00
Chris
5899ffe88f More typos in comments. 2023-06-29 10:43:15 +01:00
Chris
b05131145c Comment typo. 2023-06-28 23:04:15 +01:00
Chris Palmer
5da0f97485 Updated changelog. 2023-05-08 20:19:50 +01:00
Chris Palmer
c3f3d629b1 Added PanelDue V3. 2023-05-08 20:14:18 +01:00
Chris Palmer
c7ba052ccf Added SMD QFP package. 2023-05-08 20:13:53 +01:00
Chris Palmer
c2c5f50986 Can now used smd_res() to draw chokes. 2023-05-08 20:07:18 +01:00
Chris Palmer
d0ae8ca216 Added the ability to have more than one grid on a PCB. 2023-05-08 19:56:53 +01:00
Chris Palmer
e81dcfdbd8 Added right angle option to box headers. 2023-05-08 19:52:51 +01:00
Chris Palmer
06a286dc98 Fixed missing BOM entry for JST connectors.
Fixed default colour for JST connectors.
Corrected BOM entry to show right angle options on Molex and pin headers.
2023-05-08 19:51:29 +01:00
Chris Palmer
f5496c373a Fixed typo in smd_diode(DO214AC) package name. 2023-05-08 19:42:05 +01:00
Chris Palmer
1c6d3d8e95 Updated changelog. 2023-05-01 12:22:10 +01:00
Chris Palmer
5e24a32a0b Added ESP32 camera. 2023-05-01 12:18:12 +01:00
Chris Palmer
fbd8d8c7cd Added smd_coax 2023-05-01 12:14:23 +01:00
Chris Palmer
c77b18ebc9 Updated changelog. 2023-04-29 09:23:57 +01:00
Chris Palmer
b1592f51d4 Fixed bom.py, views.py and tests.py so that vitamin descriptions can contain more than one colon. 2023-04-29 09:22:35 +01:00
Chris Palmer
deb0c14aa2 Updated changelog. 2023-04-23 20:33:27 +01:00
Chris Palmer
cc82cf2a6c Merge branch 'martinbudden-shoulder_screws' 2023-04-23 20:31:18 +01:00
Chris Palmer
61fc194995 Refactored for readability. 2023-04-23 20:30:12 +01:00
Chris Palmer
f8af61568a Updated images and readme. 2023-04-23 17:15:29 +01:00
Chris Palmer
05d16841c4 Fixed thread pitch. 2023-04-23 17:15:02 +01:00
Chris Palmer
61f1dcc509 Merge branch 'shoulder_screws' of https://github.com/martinbudden/NopSCADlib into martinbudden-shoulder_screws 2023-04-22 19:11:39 +01:00
Chris Palmer
5fc70e19ac Added SMD Tantalum caps and 0502 and 0402 resistor and capacitors. 2023-04-22 12:12:12 +01:00
Martin Budden
07e7eb77f7 Added support for shoulder screws. 2023-04-05 12:32:13 +01:00
Chris Palmer
1c5d9a8ef5 Removed utility functions used by invert() from documentation as not generally useful. 2023-03-29 13:21:26 +01:00
Chris Palmer
d3f0bfc17f Fixed typo in resistor comment. 2023-03-29 12:54:07 +01:00
Chris
81f3b084ab Updated changelog. 2023-03-11 18:38:38 +00:00
Chris
62bd2b5597 Merge branch 'dirkjankrijnders-master' 2023-03-11 18:35:11 +00:00
Chris
18cd33c663 Fixed typos, corrected vitamin call, added boilerplate, updated images and readme. 2023-03-11 17:50:16 +00:00
Chris
e899306a13 Merge branch 'master' of https://github.com/dirkjankrijnders/NopSCADlib into dirkjankrijnders-master 2023-03-11 14:10:22 +00:00
Dirkjan Krijnders
ebfb330ac6 Added comments and make holes a linear_extrude result 2023-03-11 15:00:10 +01:00
Chris
07da7d8dc7 Removed Python2.7 from usage.md as no longer works. 2023-03-11 13:57:23 +00:00
Chris
38b52d13ee Merge branch 'master' of https://github.com/dirkjankrijnders/NopSCADlib into dirkjankrijnders-master 2023-03-10 22:03:16 +00:00
Chris
5a3bbf967d Fixed broken cover image. 2023-03-10 22:02:00 +00:00
Chris
ddb2f16b99 Updated changlog. 2023-03-10 21:49:21 +00:00
Chris
9d4d5aba17 veroboard_assembly() renamed veroboard_fastened_assembly().
veroboard_assembly() now doesn't include the fasteners.
2023-03-10 21:24:42 +00:00
Dirkjan Krijnders
c5fab08a45 Added photo_interrupter to the test 2023-03-08 16:51:08 +01:00
Dirkjan Krijnders
fecc93746a Added vitamins for photo interrupters 2023-03-08 09:20:14 +01:00
238 changed files with 4078 additions and 836 deletions

View File

@@ -3,6 +3,123 @@
This changelog is generated by `changelog.py` using manually added semantic version tags to classify commits as breaking changes, additions or fixes.
### [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.
Radial leads now made by bezier curves rather than straights and arcs.
### [v21.7.0](https://github.com/nophead/NopSCADlib/releases/tag/v21.7.0 "show release") Additions [...](https://github.com/nophead/NopSCADlib/compare/v21.6.1...v21.7.0 "diff with v21.6.1")
* 2023-07-22 [`523fc9e`](https://github.com/nophead/NopSCADlib/commit/523fc9e9a5c8a566bde2bfe8555d5f6dddd8f05b "show commit") [C.](# "Chris") Adafruit Feather 405 contributed by Chris Lott.
#### [v21.6.1](https://github.com/nophead/NopSCADlib/releases/tag/v21.6.1 "show release") Fixes [...](https://github.com/nophead/NopSCADlib/compare/v21.6.0...v21.6.1 "diff with v21.6.0")
* 2023-07-22 [`09d2ffb`](https://github.com/nophead/NopSCADlib/commit/09d2ffb126cf9d9ad2d68171583e11708227b704 "show commit") [C.](# "Chris") Typo in comment fixed.
* 2023-07-22 [`3c37035`](https://github.com/nophead/NopSCADlib/commit/3c370359c838a48d85e25709bcbced61249c237d "show commit") [C.](# "Chris") Make front page `readme.md` labels lower case as GitHub seems have stopped working with uppercase.
### [v21.6.0](https://github.com/nophead/NopSCADlib/releases/tag/v21.6.0 "show release") Additions [...](https://github.com/nophead/NopSCADlib/compare/v21.5.1...v21.6.0 "diff with v21.5.1")
* 2023-07-22 [`e3cde64`](https://github.com/nophead/NopSCADlib/commit/e3cde64b61b6abfc4a2883e8aa32b66346fde1c4 "show commit") [C.](# "Chris") `open_bearing_theta()` now derived from `open_bearing_width()`.
* 2023-07-22 [`e61ce02`](https://github.com/nophead/NopSCADlib/commit/e61ce0241443fb2c1f0585953bd3f7383b217086 "show commit") [C.](# "Chris") Moved things around for better test images.
* 2023-07-22 [`f8e1256`](https://github.com/nophead/NopSCADlib/commit/f8e125654ed60842d6ca7f33a91377d9cb5f1dc9 "show commit") [C.](# "Chris") Rendred the 3D difference.
* 2023-07-22 [`62b1511`](https://github.com/nophead/NopSCADlib/commit/62b1511c82eacb5124302aed36a52fe0d8104385 "show commit") [C.](# "Chris") Removed 3D difference for speed.
* 2023-06-27 [`84d98a1`](https://github.com/nophead/NopSCADlib/commit/84d98a1081d38c56d5b02645a99223b7616fcd70 "show commit") [J.R.](# "Jeroen Roos") Added SBR rails
* This change adds
- SBR rails. For now only SBR16
- The bearing block that goes with it (SBR16UU)
- An 'open' linear bearing (LM16UUOP) that is used by the bearing block
- A 28mm circlip that has a wider opening than then normal circlip.
`(circlip_28iw)`
#### [v21.5.1](https://github.com/nophead/NopSCADlib/releases/tag/v21.5.1 "show release") Fixes [...](https://github.com/nophead/NopSCADlib/compare/v21.5.0...v21.5.1 "diff with v21.5.0")
* 2023-06-29 [`5899ffe`](https://github.com/nophead/NopSCADlib/commit/5899ffe88f7952108ce928a5a6188b4aad5044c5 "show commit") [C.](# "Chris") More typos in comments.
* 2023-06-28 [`b051311`](https://github.com/nophead/NopSCADlib/commit/b05131145caf500cd9198b1e9b9fafc69506b50f "show commit") [C.](# "Chris") Comment typo.
### [v21.5.0](https://github.com/nophead/NopSCADlib/releases/tag/v21.5.0 "show release") Additions [...](https://github.com/nophead/NopSCADlib/compare/v21.4.1...v21.5.0 "diff with v21.4.1")
* 2023-05-08 [`c3f3d62`](https://github.com/nophead/NopSCADlib/commit/c3f3d629b1ff79d40cc5ad3efcb33e940d6c8056 "show commit") [C.P.](# "Chris Palmer") Added PanelDue V3.
* 2023-05-08 [`c7ba052`](https://github.com/nophead/NopSCADlib/commit/c7ba052ccf24d764aa6460d4559e92596c9e4cf4 "show commit") [C.P.](# "Chris Palmer") Added SMD QFP package.
* 2023-05-08 [`c2c5f50`](https://github.com/nophead/NopSCADlib/commit/c2c5f509860b909ca8fca5ffcc65dbef2f7177c5 "show commit") [C.P.](# "Chris Palmer") Can now used `smd_res()` to draw chokes.
* 2023-05-08 [`d0ae8ca`](https://github.com/nophead/NopSCADlib/commit/d0ae8ca216108f53c9b8e60896ea9b59b845b7e0 "show commit") [C.P.](# "Chris Palmer") Added the ability to have more than one grid on a PCB.
* 2023-05-08 [`e81dcfd`](https://github.com/nophead/NopSCADlib/commit/e81dcfdbd8163ce8e2db450f3a20c296c21327a8 "show commit") [C.P.](# "Chris Palmer") Added right angle option to box headers.
#### [v21.4.1](https://github.com/nophead/NopSCADlib/releases/tag/v21.4.1 "show release") Fixes [...](https://github.com/nophead/NopSCADlib/compare/v21.4.0...v21.4.1 "diff with v21.4.0")
* 2023-05-08 [`06a286d`](https://github.com/nophead/NopSCADlib/commit/06a286dc989e9cc8cf7918049cd16a862b1a9b94 "show commit") [C.P.](# "Chris Palmer") Fixed missing BOM entry for JST connectors.
Fixed default colour for JST connectors.
Corrected BOM entry to show right angle options on Molex and pin headers.
* 2023-05-08 [`f5496c3`](https://github.com/nophead/NopSCADlib/commit/f5496c373a1ab8ae47d07cc0a52d76e4299876cc "show commit") [C.P.](# "Chris Palmer") Fixed typo in `smd_diode(DO214AC)` package name.
### [v21.4.0](https://github.com/nophead/NopSCADlib/releases/tag/v21.4.0 "show release") Additions [...](https://github.com/nophead/NopSCADlib/compare/v21.3.1...v21.4.0 "diff with v21.3.1")
* 2023-05-01 [`5e24a32`](https://github.com/nophead/NopSCADlib/commit/5e24a32a0b422e8032c3c5d377c1a756ff6f1022 "show commit") [C.P.](# "Chris Palmer") Added ESP32 camera.
* 2023-05-01 [`fbd8d8c`](https://github.com/nophead/NopSCADlib/commit/fbd8d8c7cdff0bd7de0d42aa74bf0ab6551c205b "show commit") [C.P.](# "Chris Palmer") Added `smd_coax`
#### [v21.3.1](https://github.com/nophead/NopSCADlib/releases/tag/v21.3.1 "show release") Fixes [...](https://github.com/nophead/NopSCADlib/compare/v21.3.0...v21.3.1 "diff with v21.3.0")
* 2023-04-29 [`b1592f5`](https://github.com/nophead/NopSCADlib/commit/b1592f51d4b16a125d9b28edae56f758fcac2f02 "show commit") [C.P.](# "Chris Palmer") Fixed `bom.py,` `views.py` and `tests.py` so that vitamin descriptions can contain more than one colon.
### [v21.3.0](https://github.com/nophead/NopSCADlib/releases/tag/v21.3.0 "show release") Additions [...](https://github.com/nophead/NopSCADlib/compare/v21.2.0...v21.3.0 "diff with v21.2.0")
* 2023-04-23 [`61fc194`](https://github.com/nophead/NopSCADlib/commit/61fc19499524a2b750d17a90627a697bf626bbf0 "show commit") [C.P.](# "Chris Palmer") Refactored for readability.
* 2023-04-23 [`f8af615`](https://github.com/nophead/NopSCADlib/commit/f8af61568a8362cf470bc9eb8de8323c8fc001c7 "show commit") [C.P.](# "Chris Palmer") Updated images and readme.
* 2023-04-23 [`05d1684`](https://github.com/nophead/NopSCADlib/commit/05d16841c4d48c5c8f453e438af0ff6eb5bffe53 "show commit") [C.P.](# "Chris Palmer") Fixed thread pitch.
* 2023-04-05 [`07e7eb7`](https://github.com/nophead/NopSCADlib/commit/07e7eb77f73fcaab4291388b49781b0e2de5a64c "show commit") [M.B.](# "Martin Budden") Added support for shoulder screws.
### [v21.2.0](https://github.com/nophead/NopSCADlib/releases/tag/v21.2.0 "show release") Additions [...](https://github.com/nophead/NopSCADlib/compare/v21.1.2...v21.2.0 "diff with v21.1.2")
* 2023-04-22 [`5fc70e1`](https://github.com/nophead/NopSCADlib/commit/5fc70e19ac5d320290f4a2151665e83f0829d796 "show commit") [C.P.](# "Chris Palmer") Added SMD Tantalum caps and 0502 and 0402 resistor and capacitors.
#### [v21.1.2](https://github.com/nophead/NopSCADlib/releases/tag/v21.1.2 "show release") Fixes [...](https://github.com/nophead/NopSCADlib/compare/v21.1.1...v21.1.2 "diff with v21.1.1")
* 2023-03-29 [`1c5d9a8`](https://github.com/nophead/NopSCADlib/commit/1c5d9a8ef5892caf9b2c4d0d84dc3d20eba699d3 "show commit") [C.P.](# "Chris Palmer") Removed utility functions used by `invert()` from documentation as not generally useful.
#### [v21.1.1](https://github.com/nophead/NopSCADlib/releases/tag/v21.1.1 "show release") Fixes [...](https://github.com/nophead/NopSCADlib/compare/v21.1.0...v21.1.1 "diff with v21.1.0")
* 2023-03-29 [`d3f0bfc`](https://github.com/nophead/NopSCADlib/commit/d3f0bfc17f82b42f2d81f2d72a54c3f0cc375604 "show commit") [C.P.](# "Chris Palmer") Fixed typo in resistor comment.
### [v21.1.0](https://github.com/nophead/NopSCADlib/releases/tag/v21.1.0 "show release") Additions [...](https://github.com/nophead/NopSCADlib/compare/v21.0.1...v21.1.0 "diff with v21.0.1")
* 2023-03-11 [`18cd33c`](https://github.com/nophead/NopSCADlib/commit/18cd33c66388d4d4e7be664c0f883cff0854524b "show commit") [C.](# "Chris") Fixed typos, corrected vitamin call, added boilerplate, updated images and readme.
* 2023-03-11 [`ebfb330`](https://github.com/nophead/NopSCADlib/commit/ebfb330ac69f4e90de84ecffea94ce067d041031 "show commit") [D.K.](# "Dirkjan Krijnders") Added comments and make holes a `linear_extrude` result
* 2023-03-08 [`c5fab08`](https://github.com/nophead/NopSCADlib/commit/c5fab08a454383b295be2b151fd715ee79b85db3 "show commit") [D.K.](# "Dirkjan Krijnders") Added `photo_interrupter` to the test
* 2023-03-08 [`fecc937`](https://github.com/nophead/NopSCADlib/commit/fecc93746ab80ad1fc74f0fe3465de92ffee7b36 "show commit") [D.K.](# "Dirkjan Krijnders") Added vitamins for photo interrupters
#### [v21.0.1](https://github.com/nophead/NopSCADlib/releases/tag/v21.0.1 "show release") Fixes [...](https://github.com/nophead/NopSCADlib/compare/v21.0.0...v21.0.1 "diff with v21.0.0")
* 2023-03-11 [`07da7d8`](https://github.com/nophead/NopSCADlib/commit/07da7d8dc7d3fb769e57a6b9ca86465357007b6c "show commit") [C.](# "Chris") Removed `Python2.7` from `usage.md` as no longer works.
* 2023-03-10 [`5a3bbf9`](https://github.com/nophead/NopSCADlib/commit/5a3bbf967dc967eca4726af517382e7eb875dde1 "show commit") [C.](# "Chris") Fixed broken cover image.
## [v21.0.0](https://github.com/nophead/NopSCADlib/releases/tag/v21.0.0 "show release") Breaking Changes [...](https://github.com/nophead/NopSCADlib/compare/v20.24.0...v21.0.0 "diff with v20.24.0")
* 2023-03-10 [`9d4d5ab`](https://github.com/nophead/NopSCADlib/commit/9d4d5aba17974e7b5911e723d48d7b9403a4bcb4 "show commit") [C.](# "Chris") `veroboard_assembly()` renamed `veroboard_fastened_assembly()`.
`veroboard_assembly()` now doesn't include the fasteners.
### [v20.24.0](https://github.com/nophead/NopSCADlib/releases/tag/v20.24.0 "show release") Additions [...](https://github.com/nophead/NopSCADlib/compare/v20.23.0...v20.24.0 "diff with v20.23.0")
* 2023-03-10 [`d939401`](https://github.com/nophead/NopSCADlib/commit/d939401183d12af3452e17aa5b020dab50f8edb0 "show commit") [C.](# "Chris") Added `vero_grid_pos()` function.
* 2023-03-10 [`584542f`](https://github.com/nophead/NopSCADlib/commit/584542f87a27efe06ff3ba597dbaff1f3c32c4fd "show commit") [C.](# "Chris") Added fastons.
* 2023-03-10 [`62372a0`](https://github.com/nophead/NopSCADlib/commit/62372a049b9ac7a0fecebfd3618df91ff6ffa87a "show commit") [C.](# "Chris") The `wire()` module can now draw wires if a path is specified.
* 2023-03-10 [`14698e5`](https://github.com/nophead/NopSCADlib/commit/14698e5203e1e860230ddb3729816730e221f49c "show commit") [C.](# "Chris") Added PTFE heatshrink sleeving.
* 2023-03-10 [`14f6bb5`](https://github.com/nophead/NopSCADlib/commit/14f6bb533a3dcc1d36b2b764906cdca7d8d24484 "show commit") [C.](# "Chris") Added `sleeving_length` to `al_clad_resistor_assembly()`.
* 2023-03-10 [`01e9aae`](https://github.com/nophead/NopSCADlib/commit/01e9aae698f57bac6046d1a04aaa11b0c88006b5 "show commit") [C.](# "Chris") Added `TO220_size()` and `TO220_lead_pos(i,` l).
* 2023-02-04 [`27f9b24`](https://github.com/nophead/NopSCADlib/commit/27f9b242f250c0083344a05527055bb2fbb56f91 "show commit") [C.P.](# "Chris Palmer") Added crystal, transistors, diode and LEDs to Arduino Uno.
* 2023-02-03 [`f07fda7`](https://github.com/nophead/NopSCADlib/commit/f07fda70cdfc743cd2462636fcc1eb13a092f9e4 "show commit") [C.P.](# "Chris Palmer") Wire links can now be sleeved.
* 2023-02-01 [`abf1f1a`](https://github.com/nophead/NopSCADlib/commit/abf1f1ab3f3eddc2f274df649e8481a4117901eb "show commit") [C.P.](# "Chris Palmer") PCB blocks can now have rounded edges for more realistic cans.
### [v20.23.0](https://github.com/nophead/NopSCADlib/releases/tag/v20.23.0 "show release") Additions [...](https://github.com/nophead/NopSCADlib/compare/v20.22.0...v20.23.0 "diff with v20.22.0")
* 2023-02-01 [`470d6d6`](https://github.com/nophead/NopSCADlib/commit/470d6d6216b1cef8ce6cafd4b14300edb62eac4a "show commit") [C.P.](# "Chris Palmer") Started radial components with crystals.
@@ -44,7 +161,7 @@ This changelog is generated by `changelog.py` using manually added semantic vers
* 2023-01-24 [`77e948f`](https://github.com/nophead/NopSCADlib/commit/77e948f43c911442211bcbf6d1b1520184d2c70b "show commit") [C.P.](# "Chris Palmer") Added can bus connectors to OpenGrab model.
Tweaked some PCB component positions.
* 2023-01-24 [`543cdb4`](https://github.com/nophead/NopSCADlib/commit/543cdb4e01d38308a06d4368ebabadb85c696567 "show commit") [C.P.](# "Chris Palmer") Incresed the clearance of holes made for pin header.
* 2023-01-24 [`543cdb4`](https://github.com/nophead/NopSCADlib/commit/543cdb4e01d38308a06d4368ebabadb85c696567 "show commit") [C.P.](# "Chris Palmer") Increased the clearance of holes made for pin header.
### [v20.19.0](https://github.com/nophead/NopSCADlib/releases/tag/v20.19.0 "show release") Additions [...](https://github.com/nophead/NopSCADlib/compare/v20.18.1...v20.19.0 "diff with v20.18.1")
* 2023-01-12 [`ebd50ba`](https://github.com/nophead/NopSCADlib/commit/ebd50bae535283b94b310ee74c9b98b2e3b7f8be "show commit") [C.P.](# "Chris Palmer") Added SMD diodes, inductors and potentiometers.
@@ -79,8 +196,6 @@ Client code now calls `dxf()` so that the generated files can be used to speed u
* Change comment about nut sizes from radius to diameter.
* 2022-09-29 [`d95e1e6`](https://github.com/nophead/NopSCADlib/commit/d95e1e64edba4ef51852a1e72d00497154c80c88 "show commit") [C.](# "Chris") Udated changelog.
### [v20.14.0](https://github.com/nophead/NopSCADlib/releases/tag/v20.14.0 "show release") Additions [...](https://github.com/nophead/NopSCADlib/compare/v20.13.0...v20.14.0 "diff with v20.13.0")
* 2022-09-29 [`f1737d2`](https://github.com/nophead/NopSCADlib/commit/f1737d257b54957772ab6faea102f8ddb829119b "show commit") [C.](# "Chris") Updated images and readme.
@@ -480,7 +595,7 @@ Lead length removed from TO220 and TO247 vitamin string.
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.
Trainling commas in `let()`.
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.
@@ -1142,7 +1257,7 @@ Updated pics and readme.
* 2020-12-28 [`f6f4fcc`](https://github.com/nophead/NopSCADlib/commit/f6f4fcc7e84e40669446708e2352ea68c49b7961 "show commit") [M.B.](# "Martin Budden") Added `M5_cs_cap` screw
#### [v10.21.1](https://github.com/nophead/NopSCADlib/releases/tag/v10.21.1 "show release") Fixes [...](https://github.com/nophead/NopSCADlib/compare/v10.21.0...v10.21.1 "diff with v10.21.0")
* 2020-12-28 [`ba586b3`](https://github.com/nophead/NopSCADlib/commit/ba586b368582db163af143ebb60afed270f77b1c "show commit") [C.P.](# "Chris Palmer") Example images update to match new contersink screws and teardrops.
* 2020-12-28 [`ba586b3`](https://github.com/nophead/NopSCADlib/commit/ba586b368582db163af143ebb60afed270f77b1c "show commit") [C.P.](# "Chris Palmer") Example images update to match new countersink screws and teardrops.
### [v10.21.0](https://github.com/nophead/NopSCADlib/releases/tag/v10.21.0 "show release") Additions [...](https://github.com/nophead/NopSCADlib/compare/v10.20.1...v10.21.0 "diff with v10.20.1")
* 2020-12-28 [`8d22940`](https://github.com/nophead/NopSCADlib/commit/8d22940506df525ac52ef6f8a00ea03661f3b682 "show commit") [C.P.](# "Chris Palmer") Project blurb can now be split with into sections with markdown horizontal rules
@@ -1420,7 +1535,7 @@ Reverted the jst header pin position change.
* 2020-09-20 [`933fea6`](https://github.com/nophead/NopSCADlib/commit/933fea687c54d7d8ec48fe92aae12ffca0666789 "show commit") [C.P.](# "Chris Palmer") Removed debug code
* 2020-09-19 [`a7803b1`](https://github.com/nophead/NopSCADlib/commit/a7803b1efbf92c5e27f3171d7e2a92634fa2d84f "show commit") [C.P.](# "Chris Palmer") Improved numerical accuarcy of catenary calculations.
* 2020-09-19 [`a7803b1`](https://github.com/nophead/NopSCADlib/commit/a7803b1efbf92c5e27f3171d7e2a92634fa2d84f "show commit") [C.P.](# "Chris Palmer") Improved numerical accuracy of catenary calculations.
### [v9.7.0](https://github.com/nophead/NopSCADlib/releases/tag/v9.7.0 "show release") Additions [...](https://github.com/nophead/NopSCADlib/compare/v9.6.1...v9.7.0 "diff with v9.6.1")
* 2020-09-19 [`1255e71`](https://github.com/nophead/NopSCADlib/commit/1255e712719ce66fd3b231e5c212ea69b0bb9f1c "show commit") [C.P.](# "Chris Palmer") Added catenary curves.

View File

@@ -2,7 +2,7 @@
## Requirements
1. OpenSCAD 2021.01 or later, download it from here: https://www.openscad.org/downloads.html
1. Python 2.7+ or 3.6+ from https://www.python.org/downloads/
1. Python 3.6+ from https://www.python.org/downloads/
1. ImageMagick 7 www.imagemagick.org
These are all cross platform tools so NopSCADlib should work on any platform that supports them, although it has currently only been tested on Win7.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 265 KiB

After

Width:  |  Height:  |  Size: 265 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: 57 KiB

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 336 KiB

After

Width:  |  Height:  |  Size: 337 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

After

Width:  |  Height:  |  Size: 58 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: 202 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: 68 KiB

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 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: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 187 KiB

After

Width:  |  Height:  |  Size: 187 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 236 KiB

After

Width:  |  Height:  |  Size: 236 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 229 KiB

After

Width:  |  Height:  |  Size: 233 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 130 KiB

After

Width:  |  Height:  |  Size: 130 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 29 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: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 219 KiB

After

Width:  |  Height:  |  Size: 218 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 38 KiB

View File

@@ -1,6 +1,6 @@
'Micro SD card', 1
'Fan 17mm x 8mm', 1
'Heatfit insert M2', 4
'Heatfit insert M2 x 4mm', 4
'Nut M2.5 x 2.2mm nyloc', 4
'Enviro+', 1
'Raspberry Pi Zero', 1
@@ -13,7 +13,7 @@
'SMD capacitor 1206 10uF', 1
'SMD resistor 0805 3K3 0.125W', 1
'SOT223 package FZT851', 1
'Veroboard 6 holes x 6strips', 1
'Veroboard 6 holes x 6 strips', 1
'Washer M2 x 5mm x 0.3mm', 4
'Washer M2.5 x 5.9mm x 0.5mm', 4
'Washer M3 x 7mm x 0.5mm', 3
1 'Micro SD card' 1
2 'Fan 17mm x 8mm' 1
3 'Heatfit insert M2' 'Heatfit insert M2 x 4mm' 4
4 'Nut M2.5 x 2.2mm nyloc' 4
5 'Enviro+' 1
6 'Raspberry Pi Zero' 1
13 'SMD capacitor 1206 10uF' 1
14 'SMD resistor 0805 3K3 0.125W' 1
15 'SOT223 package FZT851' 1
16 'Veroboard 6 holes x 6strips' 'Veroboard 6 holes x 6 strips' 1
17 'Washer M2 x 5mm x 0.3mm' 4
18 'Washer M2.5 x 5.9mm x 0.5mm' 4
19 'Washer M3 x 7mm x 0.5mm' 3

View File

@@ -55,7 +55,7 @@
"count": 1,
"assemblies": {},
"vitamins": {
"veroboard(fan_vb): Veroboard 6 holes x 6strips": {
"veroboard(fan_vb): Veroboard 6 holes x 6 strips": {
"count": 1
},
"wire_link(0.8, 10.16, tail = 2.5): Wire link 0.8mm x 0.4\"": {
@@ -102,7 +102,7 @@
"count": 1,
"assemblies": {},
"vitamins": {
"insert(F1BM2): Heatfit insert M2": {
"insert(F1BM2): Heatfit insert M2 x 4mm": {
"count": 4
},
"washer(M3_washer): Washer M3 x 7mm x 0.5mm": {

View File

@@ -15,7 +15,7 @@ Vitamins:
i e k e o e r n
1| | | | | | | | 1 Micro SD card
| | 1| | | | | | 1 Fan 17mm x 8mm
| | | 4| | | | | 4 Heatfit insert M2
| | | 4| | | | | 4 Heatfit insert M2 x 4mm
| | | | | 4| | | 4 Nut M2.5 x 2.2mm nyloc
| | | | 1| | | | 1 Enviro+
1| | | | | | | | 1 Raspberry Pi Zero
@@ -28,7 +28,7 @@ Vitamins:
| | | | | | 1| | 1 SMD capacitor 1206 10uF
| | | | | | 1| | 1 SMD resistor 0805 3K3 0.125W
| | | | | | 1| | 1 SOT223 package FZT851
| | | | | | 1| | 1 Veroboard 6 holes x 6strips
| | | | | | 1| | 1 Veroboard 6 holes x 6 strips
| | | | | | | 4| 4 Washer M2 x 5mm x 0.3mm
| | | | | 4| | | 4 Washer M2.5 x 5.9mm x 0.5mm
| | | 3| | | | | 3 Washer M3 x 7mm x 0.5mm

View File

@@ -1,6 +1,6 @@
case_assembly:
Vitamins:
4 Heatfit insert M2
4 Heatfit insert M2 x 4mm
3 Screw M3 pan x 6mm
3 Washer M3 x 7mm x 0.5mm

View File

@@ -3,6 +3,6 @@ Vitamins:
1 SMD capacitor 1206 10uF
1 SMD resistor 0805 3K3 0.125W
1 SOT223 package FZT851
1 Veroboard 6 holes x 6strips
1 Veroboard 6 holes x 6 strips
3 Wire link 0.8mm x 6.5mm
1 Wire link 0.8mm x 0.4"

View File

@@ -29,7 +29,7 @@ Environmental monitor using Enviro+ sensor board and a Raspberry Pi Zero.
| | | | | | | | | | **Vitamins** |
|   .  |   .  |   .  |   1  |   .  |   .  |   .  |   .  |   1  |    Enviro+ |
|   1  |   .  |   .  |   .  |   .  |   .  |   .  |   .  |   1  |    Fan 17mm x 8mm |
|   .  |   .  |   .  |   .  |   4  |   .  |   .  |   .  |   4  |    Heatfit insert M2 |
|   .  |   .  |   .  |   .  |   4  |   .  |   .  |   .  |   4  |    Heatfit insert M2 x 4mm |
|   .  |   1  |   .  |   .  |   .  |   .  |   .  |   .  |   1  |    Micro SD card |
|   .  |   .  |   .  |   .  |   .  |   4  |   .  |   .  |   4  |    Nut M2.5 x 2.2mm nyloc |
|   1  |   .  |   .  |   .  |   .  |   .  |   .  |   .  |   1  |    PMS5003 particle detector |
@@ -42,7 +42,7 @@ Environmental monitor using Enviro+ sensor board and a Raspberry Pi Zero.
|   .  |   .  |   .  |   .  |   .  |   .  |   2  |   .  |   2  |    Screw M2.5 pan x 6.4mm |
|   .  |   .  |   .  |   .  |   .  |   4  |   .  |   .  |   4  |    Screw M2.5 pan x 8mm |
|   .  |   .  |   .  |   .  |   3  |   .  |   .  |   .  |   3  |    Screw M3 pan x 6mm |
|   .  |   .  |   1  |   .  |   .  |   .  |   .  |   .  |   1  |    Veroboard 6 holes x 6strips |
|   .  |   .  |   1  |   .  |   .  |   .  |   .  |   .  |   1  |    Veroboard 6 holes x 6 strips |
|   .  |   .  |   .  |   .  |   .  |   .  |   .  |   4  |   4  |    Washer M2 x 5mm x 0.3mm |
|   .  |   .  |   .  |   .  |   .  |   4  |   .  |   .  |   4  |    Washer M2.5 x 5.9mm x 0.5mm |
|   .  |   .  |   .  |   .  |   3  |   .  |   .  |   .  |   3  |    Washer M3 x 7mm x 0.5mm |
@@ -121,7 +121,7 @@ Environmental monitor using Enviro+ sensor board and a Raspberry Pi Zero.
|1| SMD capacitor 1206 10uF|
|1| SMD resistor 0805 3K3 0.125W|
|1| SOT223 package FZT851|
|1| Veroboard 6 holes x 6strips|
|1| Veroboard 6 holes x 6 strips|
|1| Wire link 0.8mm x 0.4"|
|3| Wire link 0.8mm x 6.5mm|
@@ -183,7 +183,7 @@ It converts the PWM signal on GPI4 to a stead DC voltage so that the fan doesn't
### Vitamins
|Qty|Description|
|---:|:----------|
|4| Heatfit insert M2|
|4| Heatfit insert M2 x 4mm|
|3| Screw M3 pan x 6mm|
|3| Washer M3 x 7mm x 0.5mm|

View File

@@ -7,7 +7,6 @@
//
// Top level model
//
include <NopSCADlib/core.scad>
use <NopSCADlib/vitamins/veroboard.scad>
include <NopSCADlib/vitamins/smds.scad>
@@ -19,10 +18,9 @@ fan_vb = vero("fan_vb", "fan_controller", 6, 6, breaks = [[2, 1], [2 + eps, 5]],
[0, 1, 0, "link", 0, 4, undef, 2.5],
[0, 0, 0, "link", 0, 4, undef, 2.5],
[2, 5, 0, "-smd_res", RES0805, "3K3"],
[4, 4.7, 90, "-smd_cap", CAP1206, 1.2, "10uF"],
[4, 4.5, 90, "-smd_cap", CAP1206, 1.2, "10uF"],
[2, 2.5, 180, "-smd_sot", SOT223, "FZT851"],
],
joints = [[5, 1], [5, 5], [0, [0, 1, 5]]]
]
);
//! The fan controller is a single transistor wired as a Miller integrator that effectively multiplies the capacitor value by the gain of the transistor.
@@ -40,6 +38,6 @@ fan_vb = vero("fan_vb", "fan_controller", 6, 6, breaks = [[2, 1], [2 + eps, 5]],
//!
//! ![SMT](docs/smt.jpg)
//!
module fan_controller_assembly() rotate(90) vflip(!exploded()) veroboard_assembly(fan_vb, -vero_thickness(fan_vb) - 1.4, 0);
module fan_controller_assembly() rotate(90) vflip() veroboard_fastened_assembly(fan_vb, -vero_thickness(fan_vb) - 1.4, 0);
fan_controller_assembly();

View File

@@ -25,6 +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/printed/foot.scad>
use <NopSCADlib/printed/printed_box.scad>
use <fan_controller.scad>
@@ -402,7 +403,7 @@ assembly("enviro") {
if(!exploded())
for(x = [8, 7, 3])
pcb_grid(pcb, x, 0, 0.05)
solder_meniscus(pcb, 0.39, 1);
solder_meniscus(0.39, 1);
}
//! * Screw the Enviro+ PCB to the front of the case using M2.5 x 8mm pan screws with washer and nuts on the inside.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 105 KiB

After

Width:  |  Height:  |  Size: 105 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: 28 KiB

After

Width:  |  Height:  |  Size: 27 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: 23 KiB

After

Width:  |  Height:  |  Size: 23 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: 33 KiB

After

Width:  |  Height:  |  Size: 34 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: 25 KiB

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 135 KiB

After

Width:  |  Height:  |  Size: 134 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 26 KiB

View File

@@ -1,6 +1,6 @@
base_assembly:
Vitamins:
2 Heatfit insert M3
2 Heatfit insert M3 x 5.8mm
Printed:
1 socket_box.stl

View File

@@ -3,7 +3,7 @@
'Wire brown 30/0.25mm strands, length 150mm - not shown', 2
'Wire green & yellow 30/0.25mm strands, length 150mm - not shown', 2
'IEC inlet for ATX', 1
'Heatfit insert M3', 2
'Heatfit insert M3 x 5.8mm', 2
'4mm shielded jack socket blue', 2
'4mm shielded jack socket brown', 1
'4mm shielded jack socket green', 2
1 'Ferrule for 1.5mm^2 wire - not shown', 3
3 'Wire brown 30/0.25mm strands, length 150mm - not shown', 2
4 'Wire green & yellow 30/0.25mm strands, length 150mm - not shown', 2
5 'IEC inlet for ATX', 1
6 'Heatfit insert M3', 2 'Heatfit insert M3 x 5.8mm', 2
7 '4mm shielded jack socket blue', 2
8 '4mm shielded jack socket brown', 1
9 '4mm shielded jack socket green', 2

View File

@@ -7,7 +7,7 @@
"count": 1,
"assemblies": {},
"vitamins": {
"insert(F1BM3): Heatfit insert M3": {
"insert(F1BM3): Heatfit insert M3 x 5.8mm": {
"count": 2
}
},

View File

@@ -12,7 +12,7 @@ Vitamins:
| | | 2| 2 Wire brown 30/0.25mm strands, length 150mm - not shown
| | 1| 1| 2 Wire green & yellow 30/0.25mm strands, length 150mm - not shown
| | | 1| 1 IEC inlet for ATX
2| | | | 2 Heatfit insert M3
2| | | | 2 Heatfit insert M3 x 5.8mm
| | 2| | 2 4mm shielded jack socket blue
| | 1| | 1 4mm shielded jack socket brown
| | 2| | 2 4mm shielded jack socket green

View File

@@ -38,7 +38,7 @@ Earth leakage can be measured Canadian CSA style by disconnected the neutral lin
| &nbsp;&nbsp;.&nbsp; | &nbsp;&nbsp;.&nbsp; | &nbsp;&nbsp;.&nbsp; | &nbsp;&nbsp;1&nbsp; | &nbsp;&nbsp;1&nbsp; | &nbsp;&nbsp; 4mm shielded jack socket brown |
| &nbsp;&nbsp;.&nbsp; | &nbsp;&nbsp;.&nbsp; | &nbsp;&nbsp;.&nbsp; | &nbsp;&nbsp;2&nbsp; | &nbsp;&nbsp;2&nbsp; | &nbsp;&nbsp; 4mm shielded jack socket green |
| &nbsp;&nbsp;.&nbsp; | &nbsp;&nbsp;.&nbsp; | &nbsp;&nbsp;.&nbsp; | &nbsp;&nbsp;3&nbsp; | &nbsp;&nbsp;3&nbsp; | &nbsp;&nbsp; Ferrule for 1.5mm^2 wire - not shown |
| &nbsp;&nbsp;2&nbsp; | &nbsp;&nbsp;.&nbsp; | &nbsp;&nbsp;.&nbsp; | &nbsp;&nbsp;.&nbsp; | &nbsp;&nbsp;2&nbsp; | &nbsp;&nbsp; Heatfit insert M3 |
| &nbsp;&nbsp;2&nbsp; | &nbsp;&nbsp;.&nbsp; | &nbsp;&nbsp;.&nbsp; | &nbsp;&nbsp;.&nbsp; | &nbsp;&nbsp;2&nbsp; | &nbsp;&nbsp; Heatfit insert M3 x 5.8mm |
| &nbsp;&nbsp;.&nbsp; | &nbsp;&nbsp;.&nbsp; | &nbsp;&nbsp;3&nbsp; | &nbsp;&nbsp;5&nbsp; | &nbsp;&nbsp;8&nbsp; | &nbsp;&nbsp; Heatshrink sleeving ID 3.2mm x 15mm - not shown |
| &nbsp;&nbsp;.&nbsp; | &nbsp;&nbsp;.&nbsp; | &nbsp;&nbsp;1&nbsp; | &nbsp;&nbsp;.&nbsp; | &nbsp;&nbsp;1&nbsp; | &nbsp;&nbsp; IEC inlet for ATX |
| &nbsp;&nbsp;.&nbsp; | &nbsp;&nbsp;.&nbsp; | &nbsp;&nbsp;.&nbsp; | &nbsp;&nbsp;1&nbsp; | &nbsp;&nbsp;1&nbsp; | &nbsp;&nbsp; Mains socket 13A |
@@ -65,7 +65,7 @@ Earth leakage can be measured Canadian CSA style by disconnected the neutral lin
### Vitamins
|Qty|Description|
|---:|:----------|
|2| Heatfit insert M3|
|2| Heatfit insert M3 x 5.8mm|
### 3D Printed parts

View File

@@ -49,8 +49,14 @@ squeezed_wall = $preview ? 2 * extrusion_width - layer_height * (1 - PI / 4)
inf = 1e10; // very big
eps = 1/128; // small fudge factor to stop CSG barfing on coincident faces.
$fa = 6;
$fs = extrusion_width / 2;
fa = is_undef($vitamin_fa) ? 6 : $vitamin_fa; // Used for drawing vitamins, rather than printing.
fs = is_undef($vitamin_fs) ? 0.25 : $vitamin_fs;
fn = 32;
$fa = $fa == 12 ? 6 : $fa; // Defaults for printing
$fs = $fs == 2 ? extrusion_width / 2 : $fs;
// Some additional named colours
silver = [0.75, 0.75, 0.75];

View File

@@ -25,19 +25,20 @@ include <core.scad>
include <vitamins/psus.scad>
include <vitamins/pcbs.scad>
include <vitamins/antennas.scad>
include <vitamins/batteries.scad>
include <vitamins/bearing_blocks.scad>
include <vitamins/blowers.scad>
include <vitamins/bldc_motors.scad>
include <vitamins/box_sections.scad>
include <vitamins/bulldogs.scad>
include <vitamins/buttons.scad>
include <vitamins/cameras.scad>
include <vitamins/components.scad>
include <vitamins/displays.scad>
include <vitamins/extrusions.scad>
include <vitamins/extrusion_brackets.scad>
include <vitamins/fastons.scad>
include <vitamins/gear_motors.scad>
include <vitamins/geared_steppers.scad>
include <vitamins/hot_ends.scad>
include <vitamins/inserts.scad>
@@ -49,6 +50,7 @@ include <vitamins/magnets.scad>
include <vitamins/mains_sockets.scad>
include <vitamins/modules.scad>
include <vitamins/panel_meters.scad>
include <vitamins/photo_interrupters.scad>
include <vitamins/pillars.scad>
include <vitamins/pillow_blocks.scad>
include <vitamins/pin_headers.scad>
@@ -98,5 +100,7 @@ use <utils/rounded_triangle.scad>
use <utils/layout.scad>
use <utils/round.scad>
use <utils/offset.scad>
use <utils/pcb_utils.scad>
use <utils/sector.scad>
use <utils/thread.scad>
use <vitamins/photo_interrupter.scad>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 0 B

After

Width:  |  Height:  |  Size: 968 KiB

View File

@@ -42,6 +42,7 @@
include <lib.scad>
use <tests/7_segments.scad>
use <tests/antennas.scad>
use <tests/ball_bearings.scad>
use <tests/batteries.scad>
use <tests/bearing_blocks.scad>
@@ -65,6 +66,7 @@ use <tests/extrusion_brackets.scad>
use <tests/fans.scad>
use <tests/fastons.scad>
use <tests/fuseholder.scad>
use <tests/gear_motors.scad>
use <tests/geared_steppers.scad>
use <tests/hot_ends.scad>
use <tests/IECs.scad>
@@ -85,6 +87,7 @@ use <tests/o_ring.scad>
use <tests/opengrab.scad>
use <tests/panel_meters.scad>
use <tests/PCBs.scad>
use <tests/photo_interrupters.scad>
use <tests/pillars.scad>
use <tests/pillow_blocks.scad>
use <tests/potentiometers.scad>
@@ -95,6 +98,7 @@ use <tests/rails.scad>
use <tests/ring_terminals.scad>
use <tests/rockers.scad>
use <tests/rod.scad>
use <tests/SBR_rails.scad>
use <tests/screws.scad>
use <tests/sealing_strip.scad>
use <tests/servo_motors.scad>
@@ -143,7 +147,7 @@ x1 = x0 + 110;
x2 = x1 + 90;
x3 = x2 + 130;
x4 = x3 + 200;
x5 = 850;
x5 = 900;
x6 = x5 + 150;
cable_grommets_y = 0;
@@ -224,7 +228,7 @@ inserts_y = 0;
nuts_y = inserts_y + 20;
washers_y = nuts_y + 120;
screws_y = washers_y + 120;
circlips_y = screws_y + 160;
circlips_y = screws_y + 180;
springs_y = circlips_y + 20;
o_rings_y = springs_y;
sealing_strip_y = springs_y + 20;
@@ -232,8 +236,8 @@ tubings_y = sealing_strip_y + 20;
pillars_y = tubings_y + 20;
ball_bearings_y = pillars_y + 40;
pulleys_y = ball_bearings_y + 40;
leadnuts_y = pulleys_y + 60;
linear_bearings_y = leadnuts_y + 50;
leadnuts_y = pulleys_y + 35;
linear_bearings_y = leadnuts_y + 65;
steppers_y = linear_bearings_y + 110;
sheets_y = steppers_y + 55;
pcbs_y = sheets_y + 60;
@@ -288,13 +292,18 @@ translate([x0 + 120, leadnuts_y])
leadnuthousings();
translate([x0, linear_bearings_y]) {
linear_bearings();
translate([0, -30])
linear_bearings();
rods();
}
translate([x0, steppers_y])
stepper_motors();
translate([x0 + 400, steppers_y])
gear_motors();
translate([x0, sheets_y])
sheets();
@@ -396,26 +405,26 @@ blowers_y = ssrs_y + 60;
hot_ends_y = blowers_y + 100;
batteries_y = hot_ends_y + 55;
panel_meters_y = batteries_y + 70;
extrusions_y = panel_meters_y + 80;
extrusions_y = panel_meters_y + 100;
translate([x3, veroboard_y])
veroboard_test();
translate([x3 + 60, veroboard_y + 20])
translate([x3 + 50, veroboard_y + 20])
geared_steppers();
translate([x3 + 160, ssrs_y])
pcb_mounts();
translate([x3 + 170, veroboard_y + 16])
translate([x3 + 145, veroboard_y + 16])
cameras();
translate([x3 + 145, d_connectors_y - 10])
camera_housings();
translate([x3, d_connectors_y])
d_connectors();
translate([x3 + 170, d_connectors_y - 10])
camera_housings();
translate([x3, iecs_y])
iecs();
@@ -428,6 +437,9 @@ translate([x3 + 60, modules_y])
translate([x3 + 90, modules_y])
modules();
translate([x3 + 150, modules_y])
photo_interrupters();
translate([x3, ssrs_y]) {
ssrs();
@@ -449,10 +461,10 @@ translate([x2, panel_meters_y])
translate([x2, extrusions_y])
extrusions();
translate([400, transformers_y])
translate([370, transformers_y])
transformers();
translate([x4 + 50, transformers_y])
translate([x4, transformers_y])
no_explode() socket_boxes();
@@ -461,11 +473,11 @@ rails_y = belts_y + 200;
extrusion_brackets_y = rails_y + 250;
sk_brackets_y = extrusion_brackets_y + 80;
kp_pillow_blocks_y = sk_brackets_y + 60;
scs_bearing_blocks_y = kp_pillow_blocks_y + 60;
bearing_blocks_y = kp_pillow_blocks_y + 60;
box_sections_y = batteries_y;
BLDC_y = scs_bearing_blocks_y + 120;
pot_y = BLDC_y + 40;
cable_strip_y = pot_y + 50;
BLDC_y = bearing_blocks_y + 180;
pot_y = bearing_blocks_y;
cable_strip_y = sheets_y + 30;
translate([0, transformers_y])
servo_motors();
@@ -480,12 +492,19 @@ translate([x4 + 200, belts_y + 58]) {
translate([x4 + 175, belts_y, -20])
drag_chains();
translate([x4, rails_y + 130])
translate([x4, rails_y + 130]) {
rails();
translate([305, 0])
sbr_rails();
}
translate([x4, cable_strip_y])
cable_strips();
translate([x4 + 150, cable_strip_y])
antennas();
translate([x4, kp_pillow_blocks_y])
kp_pillow_blocks();
@@ -498,8 +517,8 @@ translate([x4, extrusion_brackets_y])
translate([x1, swiss_clips_y + 50])
shaft_couplings();
translate([x4, scs_bearing_blocks_y])
scs_bearing_blocks();
translate([x4, bearing_blocks_y])
bearing_blocks();
translate([x4, BLDC_y])
bldc_motors();

853
readme.md

File diff suppressed because it is too large Load Diff

View File

@@ -140,7 +140,7 @@ class BOM:
for part in sorted(self.vitamins):
i += 1
if ': ' in part:
part_no, description = part.split(': ')
part_no, description = part.split(': ', 1)
else:
part_no, description = "", part
qty = self.vitamins[part].count
@@ -183,7 +183,7 @@ class BOM:
for part in sorted(self.vitamins):
if ': ' in part:
part_no, description = part.split(': ')
part_no, description = part.split(': ', 1)
else:
part_no, description = "", part
if breakdown:

View File

@@ -80,9 +80,16 @@ def codify(word, url):
return '`' + word + '`'
return word
typos = [ # Typos that are ambiguous to codespell
('cnc_bit+_r', 'cnc_bit_r'),
('Udated', 'Updated'),
('decription', 'description'),
('Trainling', 'Trailing'),
]
def fixup_comment(comment, url):
comment = comment.replace('cnc_bit+_r', 'cnc_bit_r')
for typo in typos:
comment = comment.replace(typo[0], typo[1])
""" markup code words and fix new paragraphs """
result = ''
word = ''
@@ -162,6 +169,6 @@ if __name__ == '__main__':
# Print commits excluding merges
if not c.comment.startswith('Merge branch') and not c.comment.startswith('Merge pull') and not re.match(r'U..ated ch.*log.*', c.comment):
if not c.comment.startswith('Merge branch') and not c.comment.startswith('Merge pull') and not re.match(r'U.?.ated ch.*log.*', c.comment):
print('* %s [`%s`](%s "show commit") %s %s\n' % (c.date, c.hash[:7], url + '/commit/' + c.hash, initials(c.author), fixup_comment(c.comment, url)), file = file)
do_cmd(('codespell -w -L od ' + filename).split())

View File

@@ -24,7 +24,11 @@ from colorama import Fore, init
def check_options(dir = '.'):
global options, options_mtime
options = { "show_threads": str(os.getenv("NOPSCADLIB_SHOW_THREADS")) }
options = {
"show_threads": str(os.getenv("NOPSCADLIB_SHOW_THREADS")),
"vitamin_fa": str(os.getenv("NOPSCADLIB_VITAMIN_FA")),
"vitamin_fs": str(os.getenv("NOPSCADLIB_VITAMIN_FS"))
}
options_fname = dir + '/options.json'
try:
with open(options_fname) as json_file:

View File

@@ -201,7 +201,7 @@ def tests(tests):
body = bodies[type]
index[type] += [cap_name]
body += ['<a name="%s"></a>' % cap_name]
body += ['<a name="%s"></a>' % cap_name.lower()]
body += ["## " + cap_name]
doc = None
@@ -259,11 +259,11 @@ def tests(tests):
things = BOM[thing]
if things:
body += ['### %s\n| Qty | %s |\n| ---:|:--- |%s' % (thing.title(), heading, ':---|' if '|' in heading else '')]
for item in sorted(things, key = lambda s: s.split(":")[-1]):
for item in sorted(things, key = lambda s: s.split(":",1)[-1]):
name = item
desc = ''
if thing == "vitamins":
vit = item.split(':')
vit = item.split(':', 1)
name = '`' + vit[0] + '`' if vit[0] else ''
while '[[' in name and ']]' in name:
i = name.find('[[')
@@ -301,7 +301,7 @@ def tests(tests):
for type in types:
if i < len(index[type]):
name = sorted(index[type])[i]
print('<td> <a href = "#' + name + '">' + name + '</a> </td>', file = doc_file, end = '')
print('<td> <a href = "#' + name.lower() + '">' + name + '</a> </td>', file = doc_file, end = '')
else:
print('<td></td>', file = doc_file, end = '')
print('</tr>', file = doc_file)

View File

@@ -303,7 +303,7 @@ def views(target, do_assemblies = None):
grand_total2 = 0
heading = headings[t][0].upper() + headings[t][1:]
print(('| ' * len(global_bom) + '| | **%s** |') % heading, file = doc_file)
for thing in sorted(things[t], key = lambda s: s.split(":")[-1]):
for thing in sorted(things[t], key = lambda s: s.split(":",1)[-1]):
for ass in global_bom:
count = ass[t][thing]["count"] if thing in ass[t] else 0
print('| %s ' % pad(count if count else '.', 2, 1), file = doc_file, end = '')
@@ -313,7 +313,7 @@ def views(target, do_assemblies = None):
else:
totals[name] = count
grand_total2 += count
print('| %s | %s |' % (pad(things[t][thing], 2, 1), pad(thing.split(":")[-1], 2)), file = doc_file)
print('| %s | %s |' % (pad(things[t][thing], 2, 1), pad(thing.split(":",1)[-1], 2)), file = doc_file)
grand_total = 0
for ass in global_bom:
@@ -344,8 +344,8 @@ def views(target, do_assemblies = None):
print("### Vitamins", file = doc_file)
print("|Qty|Description|", file = doc_file)
print("|---:|:----------|", file = doc_file)
for v in sorted(vitamins, key = lambda s: s.split(":")[-1]):
print("|%d|%s|" % (vitamins[v]["count"], v.split(":")[1]), file = doc_file)
for v in sorted(vitamins, key = lambda s: s.split(":",1)[-1]):
print("|%d|%s|" % (vitamins[v]["count"], v.split(":",1)[1]), file = doc_file)
print("\n", file = doc_file)
printed = ass["printed"]

View File

@@ -62,30 +62,44 @@ test_pcb = ["test_pcb", "Test PCB",
[
[ 20, -5, 180, "trimpot10"],
[ 20, -15, 90, "trimpot10", true],
[ 7, 2, 90, "smd_led", LED1206, "blue"],
[ 10, 2, 90, "smd_led", LED0805, "red"],
[ 19, 2, 90, "smd_led", LED1206, "blue"],
[ 16, 2, 90, "smd_led", LED0805, "red"],
[ 13, 2, 90, "smd_led", LED0603, "orange"],
[ 16, 2, 90, "smd_res", RES1206, "1K"],
[ 19, 2, 90, "smd_res", RES0805, "1K"],
[ 22, 2, 90, "smd_res", RES0603, "1K"],
[ 25, 2, 90, "smd_cap", CAP1206, 1.5, "1uF"],
[ 28, 2, 90, "smd_cap", CAP0805, 1.0, "100nF"],
[ 31, 2, 90, "smd_cap", CAP0603, 0.7, "10nF"],
[ 34, 3, 90, "smd_diode",DO241AC, "SS34"],
[ 21, 6, -90, "smd_pot", TC33X1, "10K"],
[ 16, 6, -90, "smd_sot", SOT23, "2N7000"],
[ 28, 8, -90, "smd_sot", SOT223, "LM117"],
[ 10, 2, -90, "smd_res", L2012C, "1u"],
[ 19, 6, -90, "smd_res", RES1206, "1M"],
[ 16, 6, -90, "smd_res", RES0805, "1K"],
[ 13, 6, -90, "smd_res", RES0603, "100"],
[ 10, 6, -90, "smd_res", RES0502, "10"],
[ 7, 6, -90, "smd_res", RES0402, "1"],
[ 19, 10, 90, "smd_cap", CAP1206, 1.5, "1uF"],
[ 16, 10, 90, "smd_cap", CAP0805, 1.0, "100nF"],
[ 13, 10, 90, "smd_cap", CAP0603, 0.7, "10nF"],
[ 10, 10, 90, "smd_cap", CAP0502, 0.6, "10nF"],
[ 7, 10, 90, "smd_cap", CAP0402, 0.5, "10nF"],
[ 19, 16, -90, "smd_tant", TANT_C, "107C"],
[ 13, 16, -90, "smd_tant", TANT_B, "106A"],
[ 7, 16, -90, "smd_tant", TANT_A, "105e"],
[ 32, 3, -90, "smd_diode",DO214AC, "SS34"],
[ 26, 2, -90, "smd_pot", TC33X1, "10K"],
[ 26, 6, -90, "smd_coax",U_FL_R_SMT_1],
[ 26, 10, -90, "smd_sot", SOT23, "2N7000"],
[ 28, 16, -90, "smd_sot", SOT223, "LM117"],
[ 30, 30, -90, "smd_qfp", QFP50P1200X1200X160_64N, "ATSAM4S4BA"],
[ 45, 35, 0, "2p54header", 4, 1],
[ 60, 35, 0, "2p54header", 5, 1, false, "blue" ],
[ 60, 40, 180, "2p54header", 5, 1, false, undef, true],
[ 80, 33, 0, "2p54boxhdr", 4, 2],
[ 80, 40, 0, "2p54boxhdr", 4, 2, false, true, true],
[ 45, 30, 0, "2p54socket", 4, 1, false, 0, false, "red" ],
[ 60, 30, 0, "2p54socket", 6, 1],
[ 59, 50, 180, "led", LED3mm, "red"],
[ 66, 50, 180, "led", LED5mm, "orange"],
[ 77, 50, 180, "led", LED8mm, "blue"],
[ 90, 50, 180, "led", LED10mm, "yellow"],
[ 59, 60, 180, "led", LED3mm, "red"],
[ 66, 60, 180, "led", LED5mm, "orange"],
[ 77, 60, 180, "led", LED8mm, "blue"],
[ 90, 60, 180, "led", LED10mm, "yellow"],
[ 10, 35, 180, "rj45"],
[ 7, 50, 180, "usb_vAx1"],
[ 8, 65, 180, "usb_A"],
@@ -105,23 +119,30 @@ test_pcb = ["test_pcb", "Test PCB",
[ 25, 200, 0, "buzzer", 4.5, 8.5],
[ 25, 218, 0, "buzzer"],
[ 45, 5, 0, "link", inch(0.4), 0.75, undef, undef, [1.5, "red"]], // Sleeved link
[ 45, 9, 0, "link", inch(0.4)], // Flat link
[ 45, 12, 0, "ax_res", res1_8, 1000],
[ 45, 17, 0, "ax_res", res1_4, 10000],
[ 45, 1, 0, "link", inch(0.4), 0.75, undef, undef, [1.5, "red"]], // Sleeved link
[ 45, 3, 0, "link", inch(0.4)], // Flat link
[ 45, 6, 0, "ax_diode", DO_41, "1N4007"],
[ 45, 10, 0, "ax_diode", DO_35, "1N4148"],
[ 45, 14, 0, "ax_res", res1_8, 1000],
[ 45, 18, 0, "ax_res", res1_4, 10000],
[ 45, 22, 0, "ax_res", res1_2, 100000],
[ 35, 22, 0, "vero_pin"],
[ 35, 17, 0, "vero_pin", true],
[ 35, 9, 0, "link", 0, 5], // Vertical wire
[ 35, 8, 180, "rd_transistor", TO92, "78L05", undef, undef, "Regulator"],
[ 35, 13, 180, "rd_transistor", E_LINE, "ZTX853"],
[ 35, 3, 0, "link", 0, 5], // Vertical wire
[ 60, 9, 0, "link", inch(0.2), inch(0.4)], // Raised link
[ 60, 12, 0, "ax_res", res1_8, 1000000, 1, inch(0.1)],
[ 60, 17, 0, "ax_res", res1_4, 100, 2, inch(0.1)],
[ 60, 3, 0, "link", inch(0.2), inch(0.4)], // Raised link
[ 60, 6, 0, "ax_diode", DO_41, "1N4007", inch(0.1)],
[ 60, 10, 0, "ax_diode", DO_35, "1N4148", inch(0.1)],
[ 60, 14, 0, "ax_res", res1_8, 1000000, 1, inch(0.1)],
[ 60, 18, 0, "ax_res", res1_4, 100, 2, inch(0.1)],
[ 60, 22, 0, "ax_res", res1_2, 10, 10, inch(0.2)],
[ 33, 110, -90, "rd_xtal", HC49, "4MHz" ],
[ 28, 110, -90, "rd_xtal", HC49_4H, "10MHz" ],
[ 28, 103, -90, "rd_xtal", C_002RX, "60KHz", 2 ],
[ 28, 102, -90, "rd_xtal", C_002RX, "60KHz", 3, inch(0.1) ],
[ 30, 130,-90, "rd_xtal", ACT1100, "40MHz", 0.5 ],
[ 30, 150,-90, "rd_xtal", ACT1700, "80MHz", 0.5 ],
@@ -130,11 +151,16 @@ test_pcb = ["test_pcb", "Test PCB",
[ 95, 15, -90, "flat_flex"],
[ 87, 15, -90, "flat_flex", true],
[ 50, 50, 0, "molex_hdr", 2],
[ 50, 60, 0, "jst_xh", 2],
[ 50, 70, 180, "term254", 3],
[ 63, 70, 180, "term254", 3, undef, grey(20)],
[ 75, 70, 180, "gterm508",2, undef, "blue"],
[ 47, 55, 0, "molex_hdr", 2],
[ 51, 48, 0, "molex_hdr", 2, 1],
[ 51, 41, 0, "molex_hdr", 2, -1],
[ 45, 65, 0, "jst_xh", 2],
[ 54, 65, 0, "jst_ph", 2],
[ 61, 65, 0, "jst_zh", 2],
[ 50, 75, 180, "term254", 3],
[ 63, 75, 180, "term254", 3, undef, grey(20)],
[ 75, 75, 180, "gterm508",2, undef, "blue"],
[ 50, 90, 180, "gterm35", 4, [1,2]],
[ 63, 90, 180, "gterm35", 4, [1,2], "red"],
@@ -161,7 +187,10 @@ test_pcb = ["test_pcb", "Test PCB",
[ 78, 166, -90, "smd_soic", SOIC14, "74HC00"],
[ 71, 166, -90, "smd_soic", SOIC16, "ICL323"],
[ 64, 166, -90, "smd_soic", SOIC8, "M34063"],
[ 80, 150, 0, "chip", 10, 5, 1, grey(20)],
[ 70, 150, 0, "chip", 10, 5, 1, grey(20)],
[90, 140, -90, "relay", HF33F, "012-HSL-3F"],
[ 52, 206, 0, "2p54socket", 8, 1 ],
[ 52, 194, 0, "2p54socket", 8, 1, false, 0, false, "red" ],
@@ -177,5 +206,5 @@ test_pcb = ["test_pcb", "Test PCB",
if($preview)
let($show_threads = true)
let($show_threads = true, $solder = pcb_solder(test_pcb))
pcb(test_pcb);

46
tests/SBR_rails.scad Normal file
View File

@@ -0,0 +1,46 @@
//
// NopSCADlib Copyright Chris Palmer 2023
// nop.head@gmail.com
// hydraraptor.blogspot.com
//
// This file is part of NopSCADlib.
//
// NopSCADlib is free software: you can redistribute it and/or modify it under the terms of the
// GNU General Public License as published by the Free Software Foundation, either version 3 of
// the License, or (at your option) any later version.
//
// NopSCADlib is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
// without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
// See the GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License along with NopSCADlib.
// If not, see <https://www.gnu.org/licenses/>.
//
include <../core.scad>
include <../vitamins/sbr_rails.scad>
use <../utils/layout.scad>
use <../vitamins/bearing_block.scad>
length = 200;
sheet = 3;
module sbr_rails()
layout([for(r = sbr_rails) sbr_rail_base_width(r)], 10)
rotate([90, 180,0]) {
rail = sbr_rails[$i];
sbr_rail(rail, length);
carriage = sbr_rail_carriage(rail);
screw = sbr_rail_screw(rail);
sbr_bearing_block_assembly(carriage, sheet);
sbr_screw_positions(rail, length)
explode(20)
rotate([90,0,0])
screw(sbr_rail_screw(rail), 18);
}
if($preview)
sbr_rails();

View File

@@ -23,7 +23,7 @@ include <../vitamins/smds.scad>
module smds() {
layout([for(r = smd_resistors) smd_res_size(r).x], 1)
smd_resistor(smd_resistors[$i], ["1R0", "10M", "100K"][$i % 3]);
smd_resistor(smd_resistors[$i], ["1R0", "10", "100", "10M", "100K", "10u"][$i % 6]);
translate([0, 3])
layout([for(l = smd_leds) smd_led_size(l).x], 1)
@@ -35,29 +35,44 @@ module smds() {
smd_capacitor(c, smd_cap_size(c).y * 0.8);
translate([0, 9])
layout([for(d = smd_diodes) smd_diode_size(d).x], 1)
layout([for(t = smd_tants) smd_tant_leads(t).x], 1)
let(t = smd_tants[$i])
smd_tant(t, ["105e","106J", "107A"][$i]);
translate([0, 12.5])
layout([for(d = smd_diodes) smd_diode_leads(d).x], 1)
let(d = smd_diodes[$i])
smd_diode(d, ["SS34"][$i]);
translate([0, 15])
translate([0, 24])
layout([for(s = smd_sots) smd_sot_size(s).x], 1)
let(s = smd_sots[$i])
smd_sot(s, ["2N7000", "FZT851"][$i]);
translate([0, 21])
translate([0, 18])
layout([for(p = smd_pots) smd_pot_size(p).x], 1)
let(p = smd_pots[$i])
smd_pot(p, "10K");
translate([0, 28])
translate([6, 18])
layout([for(c = smd_coaxs) smd_coax_base_size(c).x], 1)
let(c = smd_coaxs[$i])
smd_coax(c);
translate([0, 31])
layout([for(s = smd_soics) smd_soic_size(s).x], 1)
let(s = smd_soics[$i])
smd_soic(s, s[0]);
translate([0, 36])
layout([for(i = smd_inductors) smd_inductor_size(i).x], 1)
translate([0, 39])
layout([for(i = smd_inductors) smd_inductor_leads(i).x], 1)
let(i = smd_inductors[$i])
smd_inductor(i, "4R7");
translate([20, 6])
layout([for(q = smd_qfps) smd_qfp_body_size(q).x], 3)
let(q = smd_qfps[$i])
smd_qfp(q, ["ATSAM4S4BA"][$i]);
}
if($preview)

31
tests/antennas.scad Normal file
View File

@@ -0,0 +1,31 @@
//
// NopSCADlib Copyright Chris Palmer 2023
// nop.head@gmail.com
// hydraraptor.blogspot.com
//
// This file is part of NopSCADlib.
//
// NopSCADlib is free software: you can redistribute it and/or modify it under the terms of the
// GNU General Public License as published by the Free Software Foundation, either version 3 of
// the License, or (at your option) any later version.
//
// NopSCADlib is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
// without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
// See the GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License along with NopSCADlib.
// If not, see <https://www.gnu.org/licenses/>.
//
include <../core.scad>
use <../utils/layout.scad>
include <../vitamins/antennas.scad>
module antennas()
layout([for(a = antennas) cos(10) * antenna_length(a) ], 5, true) {
antenna(antennas[$i], 3, 10);
}
if($preview)
antennas();

View File

@@ -23,6 +23,7 @@ include <../vitamins/pcbs.scad>
module axials() {
pcb = PERF60x40;
pcb(pcb);
$solder = pcb_solder(pcb);
pcb_grid(pcb, 0, 2)
rotate(90)
@@ -36,14 +37,26 @@ module axials() {
wire_link(0.8, 0, 5);
for(i = [0 : len(ax_resistors) - 1]) {
pcb_grid(pcb, 2 * i + 2, 1 + [0, 0.5, 1.5][i])
x = 2 * i + 3 + len(ax_diodes);
pcb_grid(pcb, x, 1 + [0, 0.5, 1.5][i])
rotate(90)
ax_res(ax_resistors[i], [1000, 47000, 8200][i], 5);
pcb_grid(pcb, 2 * i + 2, 6.5)
pcb_grid(pcb, x, 6.5)
rotate(-90)
ax_res(ax_resistors[i], [2200, 39000, 8250][i], 1, inch(0.1));
}
d_values = ["1N4148", "1N4007"];
for(i = [0 : len(ax_diodes) - 1]) {
pcb_grid(pcb, i + 2, 1 + [0, 0.5, 1.5][i])
rotate(90)
ax_diode(ax_diodes[i], d_values[i]);
pcb_grid(pcb, i + 2, 6.5)
rotate(-90)
ax_diode(ax_diodes[i], d_values[i], inch(0.1));
}
}
if($preview)

View File

@@ -22,20 +22,24 @@ use <../utils/layout.scad>
include <../vitamins/ball_bearings.scad>
module do_bearings(list)
layout([for(b = list) bb_diameter(b)])
ball_bearing(list[$i])
if (bb_width(list[$i]) >= 5)
bearing_ball(3);
module do_bearings(list) {
diameters = [for(b = list) bb_diameter(b)];
max = max(diameters);
layout(diameters) let(b = list[$i])
//translate([0, (max - bb_diameter(b)) / 2])
ball_bearing(list[$i])
if (bb_width(list[$i]) >= 5)
bearing_ball(3);
}
module ball_bearings() {
small_bearings = [for(b = ball_bearings) if(bb_diameter(b) < 12) b];
small_bearings = [for(b = ball_bearings) if(bb_diameter(b) <= 13) b];
big_bearings = [for(b = ball_bearings) if(!in(small_bearings, b)) b];
translate([0, 0])
do_bearings(big_bearings);
translate([0, -20])
translate([0, -25])
do_bearings(small_bearings);
}

View File

@@ -24,12 +24,26 @@ use <../utils/layout.scad>
module scs_bearing_blocks()
layout([for(s = scs_bearing_blocks) scs_size(s).x], 10) {
part_thickness = 5;
scs_bearing_block_assembly(scs_bearing_blocks[$i], part_thickness);
translate([0, 60])
scs_bearing_block_assembly(scs_bearing_blocks[$i], part_thickness);
if($i > 0) // skip $i==0, since no SCS6LUU long variant to match SCS6UU
translate([0, 60])
translate([0, 120])
scs_bearing_block_assembly(scs_bearing_blocks_long[$i - 1], part_thickness);
}
if($preview)
module sbr_bearing_blocks()
layout([for(s = sbr_bearing_blocks) sbr_size(s).x], 10) {
part_thickness = 5;
sbr_bearing_block_assembly(sbr_bearing_blocks[$i], part_thickness);
}
module bearing_blocks() {
scs_bearing_blocks();
translate([190, 0])
sbr_bearing_blocks();
}
if($preview)
bearing_blocks();

View File

@@ -22,8 +22,15 @@ use <../utils/layout.scad>
include <../vitamins/box_sections.scad>
module box_sections() {
layout([for(b = box_sections) box_section_size(b).x], 20)
box_section(box_sections[$i], 100);
woven = [for(b = box_sections) if(box_section_is_woven(b)) b];
plain = [for(b = box_sections) if(!box_section_is_woven(b)) b];
layout([for(b = woven) box_section_size(b).x * 0], 10)
box_section(box_sections[$i], 100 - $i * 20);
translate([50, 0])
for(i = [0 : len(plain) - 1])
box_section(plain[i], 100 - i * 20);
}
if($preview)

View File

@@ -26,8 +26,9 @@ include <../vitamins/cameras.scad>
use <../vitamins/pcb.scad>
module camera_housings()
layout([for(c = cameras) pcb_length(camera_pcb(c))], 15, false) let(c = cameras[$i])
camera_fastened_assembly(c, 3);
layout([for(c = cameras) pcb_length(camera_pcb(c))], 10, false) let(c = cameras[$i])
if(pcb_screw(camera_pcb(c)))
camera_fastened_assembly(c, 3);
if($preview)
camera_housings();

View File

@@ -22,7 +22,7 @@ use <../utils/layout.scad>
include <../vitamins/circlips.scad>
module circlips(all = false)
layout([for(c = circlips) circlip_d3(c)], 10, false) let(c = circlips[$i]) {
layout([for(c = circlips) circlip_d3(c)], 5, false) let(c = circlips[$i]) {
gap = circlip_d3(c) + 2;
internal_circlip(c, 1);

View File

@@ -55,6 +55,10 @@ module components() {
translate([0, 130])
al_clad_resistors();
translate([80, 10])
multiwatt11("L6203");
}
if($preview)

31
tests/gear_motors.scad Normal file
View File

@@ -0,0 +1,31 @@
//
// NopSCADlib Copyright Chris Palmer 2023
// nop.head@gmail.com
// hydraraptor.blogspot.com
//
// This file is part of NopSCADlib.
//
// NopSCADlib is free software: you can redistribute it and/or modify it under the terms of the
// GNU General Public License as published by the Free Software Foundation, either version 3 of
// the License, or (at your option) any later version.
//
// NopSCADlib is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
// without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
// See the GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License along with NopSCADlib.
// If not, see <https://www.gnu.org/licenses/>.
//
include <../core.scad>
include <../vitamins/gear_motors.scad>
use <../utils/layout.scad>
module gear_motors()
layout([for(g = gear_motors) gm_box(g).x], 10)
gear_motor(gear_motors[$i]);
if($preview)
gear_motors();

View File

@@ -32,6 +32,9 @@ module jacks() {
translate([60, 0])
post_4mm("red",3);
translate([80, 0])
power_jack(3);
}
if($preview)

View File

@@ -21,13 +21,18 @@ use <../utils/layout.scad>
include <../vitamins/linear_bearings.scad>
module linear_bearings()
module linear_bearings() {
layout([for(b = linear_bearings) 2 * bearing_radius(b)]) {
linear_bearing(linear_bearings[$i]);
translate([0, 30])
linear_bearing(linear_bearings[$i]);
translate([0, 60])
linear_bearing(long_linear_bearings[$i]);
}
layout([for(b = open_linear_bearings) 2 * bearing_radius(b)])
translate([105, 0])
linear_bearing(open_linear_bearings[$i]);
}
if($preview)
linear_bearings();

View File

@@ -57,7 +57,8 @@ module nuts() {
sliding_t_nut(M6_sliding_t_nut);
if(n == M8_nut)
sliding_t_nut(M8_sliding_ball_t_nut);
rotate(90)
sliding_t_nut(M8_sliding_ball_t_nut);
}
translate([0, 80]) {

48
tests/pcb_utils.scad Normal file
View File

@@ -0,0 +1,48 @@
//
// NopSCADlib Copyright Chris Palmer 2023
// nop.head@gmail.com
// hydraraptor.blogspot.com
//
// This file is part of NopSCADlib.
//
// NopSCADlib is free software: you can redistribute it and/or modify it under the terms of the
// GNU General Public License as published by the Free Software Foundation, either version 3 of
// the License, or (at your option) any later version.
//
// NopSCADlib is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
// without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
// See the GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License along with NopSCADlib.
// If not, see <https://www.gnu.org/licenses/>.
//
include <../utils/core/core.scad>
use <../utils/pcb_utils.scad>
module pcb_utils() {
let($solder = [1, 0, 1.6])
solder();
r = 2;
h = 10;
color(grey(20))
cylinder(r = r, h = h);
color("silver")
vflip()
cylinder(d = 0.6, h = 3, $fs = fs, $fa = fa);
color("white")
translate_z(h / 2)
cylindrical_wrap(r = r)
resize([0, h * .8], auto = true)
rotate(90)
text("Hello", halign = "center", valign = "center");
}
if($preview)
rotate(-45)
pcb_utils();

View File

@@ -0,0 +1,28 @@
//
// NopSCADlib Copyright Chris Palmer 2023
// nop.head@gmail.com
// hydraraptor.blogspot.com
//
// This file is part of NopSCADlib.
//
// NopSCADlib is free software: you can redistribute it and/or modify it under the terms of the
// GNU General Public License as published by the Free Software Foundation, either version 3 of
// the License, or (at your option) any later version.
//
// NopSCADlib is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
// without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
// See the GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License along with NopSCADlib.
// If not, see <https://www.gnu.org/licenses/>.
//
include <../utils/core/core.scad>
include <../vitamins/photo_interrupters.scad>
use <../utils/layout.scad>
module photo_interrupters()
layout([for(l = photo_interrupters) pi_base_length(l)], 5, true)
photo_interrupter(photo_interrupters[$i]);
photo_interrupters();

View File

@@ -45,9 +45,15 @@ module pin_headers() {
translate([0, 50])
box_header(pin_headers[$i], 8, 1);
translate([40, 40])
box_header(pin_headers[$i], 8, 1, right_angle = true);
translate([0, 60])
box_header(pin_headers[$i], 10, 2);
translate([40, 60])
box_header(pin_headers[$i], 10, 2, right_angle = true);
translate([0, 70])
pin_socket(pin_headers[$i], 8, 1);

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.5 KiB

After

Width:  |  Height:  |  Size: 6.5 KiB

BIN
tests/png/antennas.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 276 KiB

After

Width:  |  Height:  |  Size: 274 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 114 KiB

After

Width:  |  Height:  |  Size: 135 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 90 KiB

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 92 KiB

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 164 KiB

After

Width:  |  Height:  |  Size: 164 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: 51 KiB

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 107 KiB

After

Width:  |  Height:  |  Size: 103 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 72 KiB

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 130 KiB

After

Width:  |  Height:  |  Size: 127 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 117 KiB

After

Width:  |  Height:  |  Size: 123 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 KiB

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 115 KiB

After

Width:  |  Height:  |  Size: 127 KiB

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