Compare commits
153 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
3830836519 | ||
|
9c5014b73d | ||
|
5c289bb7f5 | ||
|
3211fe1f19 | ||
|
c8f1b808cf | ||
|
917f404c59 | ||
|
99ff256847 | ||
|
3d370ccf72 | ||
|
bd94182ff1 | ||
|
86df9a34d6 | ||
|
9758112e05 | ||
|
b46f49a5ce | ||
|
330c09f4d4 | ||
|
c2a56367eb | ||
|
f16dc84792 | ||
|
c065855b90 | ||
|
edc7e17437 | ||
|
7546203b03 | ||
|
a9b501a2d2 | ||
|
126343d5af | ||
|
1692fcc811 | ||
|
5c4fe8bfb9 | ||
|
33ac3820b0 | ||
|
6a58d37f77 | ||
|
029abc0cf8 | ||
|
4b018eb9ad | ||
|
3715585002 | ||
|
5d0eda87e4 | ||
|
ad963afb8d | ||
|
dbf8e6c7ae | ||
|
7d281cbcdd | ||
|
f1a651a2d2 | ||
|
9f9aa6723e | ||
|
83d2d511e3 | ||
|
6b6704b823 | ||
|
946a3bea1c | ||
|
117fb626e7 | ||
|
0382bad566 | ||
|
b572325a8f | ||
|
6dc82045ff | ||
|
fdbe0c7a9e | ||
|
9c7e8a99c7 | ||
|
c50f95a203 | ||
|
49bd6e0a04 | ||
|
921843cc09 | ||
|
c17cc1321b | ||
|
9862b3c3a3 | ||
|
e87e19aa18 | ||
|
4f68935b5b | ||
|
8992cce7a6 | ||
|
106666ec49 | ||
|
f731f0fe98 | ||
|
3a62198183 | ||
|
0123885711 | ||
|
b166ec47dd | ||
|
6467de5fac | ||
|
dc683ed701 | ||
|
99d6c2f891 | ||
|
fc49e8068e | ||
|
862357279a | ||
|
0b8ad93dc5 | ||
|
38890400ac | ||
|
9974c03fc9 | ||
|
0208965684 | ||
|
11e0cfcb43 | ||
|
6c4d5de350 | ||
|
8458e432fc | ||
|
7503e8c2cf | ||
|
0154b2a32c | ||
|
0b802187bb | ||
|
923c3b5c57 | ||
|
e11bb72814 | ||
|
70fd7fbe14 | ||
|
45e7962721 | ||
|
4d8911718c | ||
|
cb57b25b0b | ||
|
6deaa5da9c | ||
|
9820d3eb10 | ||
|
066242af58 | ||
|
4b3468f78d | ||
|
001ea2a174 | ||
|
8e9d2dd367 | ||
|
f4a7065e1f | ||
|
5ec0c6132d | ||
|
cef7560947 | ||
|
7ffff8b7b7 | ||
|
e001cc46a3 | ||
|
7b421570b4 | ||
|
49ba60f159 | ||
|
0989a02d95 | ||
|
9e45dbad04 | ||
|
8cdc04b87b | ||
|
f65fe59831 | ||
|
5761368e56 | ||
|
e949ef4ecb | ||
|
932c68a2c0 | ||
|
78e3360900 | ||
|
178f67f815 | ||
|
af1b057f59 | ||
|
195917a879 | ||
|
9ed6aab6c8 | ||
|
c61386caf9 | ||
|
a90eb42933 | ||
|
549dbc9380 | ||
|
a483494da9 | ||
|
afc50ffe5d | ||
|
8951b8b60e | ||
|
c33d954db6 | ||
|
8fb7ec0213 | ||
|
402fb83690 | ||
|
eb0ba21622 | ||
|
e4b1b686ff | ||
|
f6a371769d | ||
|
6eba75a41d | ||
|
c484ac2e8d | ||
|
f12ac7b569 | ||
|
cfc3b483e0 | ||
|
6da845215b | ||
|
7fe5aaac22 | ||
|
983511b906 | ||
|
4df5d608a2 | ||
|
4f073f97e8 | ||
|
f03e32cd1e | ||
|
fe3ce88086 | ||
|
37fe83e2e0 | ||
|
c7803ad935 | ||
|
472df8e369 | ||
|
bc7f294f99 | ||
|
e9292d9165 | ||
|
f86dfef919 | ||
|
e97f9fdacc | ||
|
ba45f85580 | ||
|
90fb9eb01f | ||
|
905fc01677 | ||
|
a695974ac5 | ||
|
a974e4fa9d | ||
|
dc1c3f1d5e | ||
|
07866f7284 | ||
|
ad74378e7e | ||
|
53d1ea93cd | ||
|
7eaca85e96 | ||
|
b00709da82 | ||
|
c76be23867 | ||
|
f6f348b76e | ||
|
11a1f65158 | ||
|
870b396574 | ||
|
00c19b08f1 | ||
|
22bbb85899 | ||
|
c1fdb2e701 | ||
|
728d5d32a9 | ||
|
771ba04e18 | ||
|
dbf930fd36 | ||
|
cbe2c085b7 |
1
.gitignore
vendored
@@ -12,3 +12,4 @@ times.txt
|
||||
*_diff.png
|
||||
*.echo
|
||||
cmd_times.txt
|
||||
*.gco
|
||||
|
252
CHANGELOG.md
@@ -3,6 +3,258 @@
|
||||
This changelog is generated by `changelog.py` using manually added semantic version tags to classify commits as breaking changes, additions or fixes.
|
||||
|
||||
|
||||
### [v21.38.0](https://github.com/nophead/NopSCADlib/releases/tag/v21.38.0 "show release") Additions [...](https://github.com/nophead/NopSCADlib/compare/v21.37.1...v21.38.0 "diff with v21.37.1")
|
||||
* 2025-04-15 [`bd94182`](https://github.com/nophead/NopSCADlib/commit/bd94182ff1ca85df7b667fc6985defb779846252 "show commit") [C.P.](# "Chris Palmer") Added simple Gridfinity generator and examples.
|
||||
|
||||
* 2025-04-15 [`86df9a3`](https://github.com/nophead/NopSCADlib/commit/86df9a34d641511a84026eaf0b3191437e4692be "show commit") [C.P.](# "Chris Palmer") Added chamfer test file.
|
||||
|
||||
* 2025-04-15 [`9758112`](https://github.com/nophead/NopSCADlib/commit/9758112e05d02c9cf156828ecd47b7770b602628 "show commit") [C.P.](# "Chris Palmer") Added `chamfer_hole()` utility module.
|
||||
|
||||
#### [v21.37.1](https://github.com/nophead/NopSCADlib/releases/tag/v21.37.1 "show release") Fixes [...](https://github.com/nophead/NopSCADlib/compare/v21.37.0...v21.37.1 "diff with v21.37.0")
|
||||
* 2025-04-14 [`7546203`](https://github.com/nophead/NopSCADlib/commit/7546203b0377930a75a45e2943af296dc1758dca "show commit") [R.S.](# "Robert Schiele") positional parameters should not follow named parameters
|
||||
|
||||
* Some versions of OpenSCAD (like the latest official release `2021.01` get
|
||||
confused if positional parameters follow named parameters. So let's use
|
||||
named parameters after the first named one was used.
|
||||
|
||||
### [v21.37.0](https://github.com/nophead/NopSCADlib/releases/tag/v21.37.0 "show release") Additions [...](https://github.com/nophead/NopSCADlib/compare/v21.36.0...v21.37.0 "diff with v21.36.0")
|
||||
* 2025-04-15 [`edc7e17`](https://github.com/nophead/NopSCADlib/commit/edc7e174370ac8dcd6d4a78b31640347ab266f60 "show commit") [C.P.](# "Chris Palmer") Included `pcbs.scad` in `displays.scad`.
|
||||
Moved `I2C_LCD_Backpack` from `tiny_pcbs` to pcbs to prevent connector clash.
|
||||
Updated images and readme.
|
||||
|
||||
* 2025-04-11 [`a9b501a`](https://github.com/nophead/NopSCADlib/commit/a9b501a2d2ce242c181c2cd5f5d1f86ba7150eec "show commit") [P.](# "pcremades") Added a 1602 LCD with I2C module
|
||||
|
||||
* 2025-04-11 [`126343d`](https://github.com/nophead/NopSCADlib/commit/126343d5af75a2aa458db112305a62b953e23694 "show commit") [P.](# "pcremades") Added a I2C TWI SPI Serial Interface for 1602 LCD
|
||||
|
||||
* 2025-04-11 [`1692fcc`](https://github.com/nophead/NopSCADlib/commit/1692fcc8116c9a0926231a95d0207a0085c814c5 "show commit") [P.](# "pcremades") Added `1/4"` square trimpot to `pcb.scad`
|
||||
|
||||
### [v21.36.0](https://github.com/nophead/NopSCADlib/releases/tag/v21.36.0 "show release") Additions [...](https://github.com/nophead/NopSCADlib/compare/v21.35.6...v21.36.0 "diff with v21.35.6")
|
||||
* 2025-04-09 [`33ac382`](https://github.com/nophead/NopSCADlib/commit/33ac3820b0df87df05d7c2dbb3d553e2aafa6828 "show commit") [C.P.](# "Chris Palmer") Added `pose_stl()` module because `pose()` only works for assembly views.
|
||||
|
||||
#### [v21.35.6](https://github.com/nophead/NopSCADlib/releases/tag/v21.35.6 "show release") Fixes [...](https://github.com/nophead/NopSCADlib/compare/v21.35.5...v21.35.6 "diff with v21.35.5")
|
||||
* 2025-03-30 [`5d0eda8`](https://github.com/nophead/NopSCADlib/commit/5d0eda87e44a70fdbed51407a43555a637e064f9 "show commit") [D.T.](# "Daniel Trnka") `barrel_jack:` added cutout
|
||||
|
||||
#### [v21.35.5](https://github.com/nophead/NopSCADlib/releases/tag/v21.35.5 "show release") Fixes [...](https://github.com/nophead/NopSCADlib/compare/v21.35.4...v21.35.5 "diff with v21.35.4")
|
||||
* 2025-04-01 [`3715585`](https://github.com/nophead/NopSCADlib/commit/3715585002ba56681103103faddd043b1553d095 "show commit") [C.P.](# "Chris Palmer") Made `pose()` work on STL renders to match the documentation.
|
||||
|
||||
#### [v21.35.4](https://github.com/nophead/NopSCADlib/releases/tag/v21.35.4 "show release") Fixes [...](https://github.com/nophead/NopSCADlib/compare/v21.35.3...v21.35.4 "diff with v21.35.3")
|
||||
* 2025-03-23 [`fdbe0c7`](https://github.com/nophead/NopSCADlib/commit/fdbe0c7a9eba96823683b8e1161bc160bd63231e "show commit") [J.R.](# "Jeroen Roos") Change variable names that start with a digit
|
||||
|
||||
* Change names of variables from `2a` and `2c` to `ax2` (a times 2) and
|
||||
`cx2`, because variable names starting with a digit are deprecated in
|
||||
OpenSCAD.
|
||||
|
||||
#### [v21.35.3](https://github.com/nophead/NopSCADlib/releases/tag/v21.35.3 "show release") Fixes [...](https://github.com/nophead/NopSCADlib/compare/v21.35.2...v21.35.3 "diff with v21.35.2")
|
||||
* 2025-03-27 [`9f9aa67`](https://github.com/nophead/NopSCADlib/commit/9f9aa6723eff9b7439e17758406e9f8e409828ee "show commit") [C.P.](# "Chris Palmer") Third attempt to fix dimension image.
|
||||
|
||||
#### [v21.35.2](https://github.com/nophead/NopSCADlib/releases/tag/v21.35.2 "show release") Fixes [...](https://github.com/nophead/NopSCADlib/compare/v21.35.1...v21.35.2 "diff with v21.35.1")
|
||||
* 2025-03-27 [`6b6704b`](https://github.com/nophead/NopSCADlib/commit/6b6704b823291119697bf4993eddb3f2e6873875 "show commit") [C.P.](# "Chris Palmer") Second attempt to fix dimension image.
|
||||
|
||||
#### [v21.35.1](https://github.com/nophead/NopSCADlib/releases/tag/v21.35.1 "show release") Fixes [...](https://github.com/nophead/NopSCADlib/compare/v21.35.0...v21.35.1 "diff with v21.35.0")
|
||||
* 2025-03-27 [`117fb62`](https://github.com/nophead/NopSCADlib/commit/117fb626e7023ca92339947a0f84a8aee5c6429e "show commit") [C.P.](# "Chris Palmer") Fixed dimension example image address.
|
||||
|
||||
### [v21.35.0](https://github.com/nophead/NopSCADlib/releases/tag/v21.35.0 "show release") Additions [...](https://github.com/nophead/NopSCADlib/compare/v21.34.0...v21.35.0 "diff with v21.34.0")
|
||||
* 2025-03-27 [`6dc8204`](https://github.com/nophead/NopSCADlib/commit/6dc82045fffeca383381724abb6d70d7025b2ae5 "show commit") [C.P.](# "Chris Palmer") Shortened the module comments by factoring out the parameter descriptions.
|
||||
Added the nut example picture.
|
||||
Fixed nut picture placement.
|
||||
Updated images and readme.
|
||||
|
||||
* 2025-03-22 [`c50f95a`](https://github.com/nophead/NopSCADlib/commit/c50f95a203ead9070407fbae7d1247a00938b255 "show commit") [A.V.](# "Alex Verschoot") added some documentation to the nut
|
||||
|
||||
* 2025-03-22 [`49bd6e0`](https://github.com/nophead/NopSCADlib/commit/49bd6e0a04885cf5cad7655aee038e16dc0a7e15 "show commit") [A.V.](# "Alex Verschoot") added negative offsets to test
|
||||
|
||||
* 2025-03-22 [`921843c`](https://github.com/nophead/NopSCADlib/commit/921843cc09e7ae2953090c30e7d5b9c644e3b966 "show commit") [A.V.](# "Alex Verschoot") made negative offset work as expected (go to the opposite side, and use min instead of max on coordinates)
|
||||
|
||||
* 2025-03-19 [`c17cc13`](https://github.com/nophead/NopSCADlib/commit/c17cc1321bcd06af439519435734f6e0eb8f5d43 "show commit") [A.V.](# "Alex Verschoot") Changed the module comments style
|
||||
|
||||
* 2025-03-16 [`9862b3c`](https://github.com/nophead/NopSCADlib/commit/9862b3c3a347fac5bb355b1d62a02bdc0970221b "show commit") [A.V.](# "Alex Verschoot") typos
|
||||
|
||||
* 2025-03-16 [`e87e19a`](https://github.com/nophead/NopSCADlib/commit/e87e19aa182acee64e3d47c282c81b7ef495bf81 "show commit") [A.V.](# "Alex Verschoot") removed `center` from experiment
|
||||
|
||||
* 2025-03-16 [`4f68935`](https://github.com/nophead/NopSCADlib/commit/4f68935b5b56b7405eb6c1e0fae5845e8f800489 "show commit") [A.V.](# "Alex Verschoot") some cleanup
|
||||
|
||||
* 2025-03-15 [`8992cce`](https://github.com/nophead/NopSCADlib/commit/8992cce7a62d2fec956aae64236ba19dc340603f "show commit") [A.V.](# "Alex Verschoot") added argument for text size, and improve auto size
|
||||
|
||||
* 2025-03-15 [`106666e`](https://github.com/nophead/NopSCADlib/commit/106666ec493f6b088ee398b276e8734d0790a451 "show commit") [A.V.](# "Alex Verschoot") simplified the math to use rotates instead, added examples, and allowed the user to choose witch plane the x,y and z dimensions are in
|
||||
|
||||
* 2025-03-13 [`f731f0f`](https://github.com/nophead/NopSCADlib/commit/f731f0fe98a3a3d975c34cd85ac4f618c2f1bf6b "show commit") [A.V.](# "Alex Verschoot") added a function to rotate around the dim axis
|
||||
|
||||
* 2025-03-13 [`3a62198`](https://github.com/nophead/NopSCADlib/commit/3a62198183b6a1dce74479ae44e00b4d5e690431 "show commit") [A.V.](# "Alex Verschoot") replaced the new math functions with rotate and transform
|
||||
|
||||
* 2025-03-07 [`0123885`](https://github.com/nophead/NopSCADlib/commit/012388571185c674293ba17de39e0db59a775ff4 "show commit") [A.V.](# "Alex Verschoot") Improved text alligment
|
||||
|
||||
* 2025-03-02 [`b166ec4`](https://github.com/nophead/NopSCADlib/commit/b166ec47dd7e34e6798c1287d0ce8612a84e9be1 "show commit") [A.V.](# "Alex Verschoot") Remove old commented code from `dimension.scad`
|
||||
|
||||
* 2025-03-02 [`6467de5`](https://github.com/nophead/NopSCADlib/commit/6467de5facdc2a5b6ccdbdbe32f703ba3faa70f4 "show commit") [A.V.](# "Alex Verschoot") Update `maths.scad`
|
||||
|
||||
* 2025-03-02 [`dc683ed`](https://github.com/nophead/NopSCADlib/commit/dc683ed701b016a1c79800db2ed41aed9cf8cac6 "show commit") [A.V.](# "Alex Verschoot") added dimensions
|
||||
|
||||
### [v21.34.0](https://github.com/nophead/NopSCADlib/releases/tag/v21.34.0 "show release") Additions [...](https://github.com/nophead/NopSCADlib/compare/v21.33.0...v21.34.0 "diff with v21.33.0")
|
||||
* 2025-02-22 [`8623572`](https://github.com/nophead/NopSCADlib/commit/862357279a98c9511e2db166585065c660eb331d "show commit") [C.P.](# "Chris Palmer") Updated images and readme.
|
||||
|
||||
* 2025-02-16 [`0b8ad93`](https://github.com/nophead/NopSCADlib/commit/0b8ad93dc5c1ed89c6525e846c02f756bfbe9b2b "show commit") [A.V.](# "Alex Verschoot") made the test cases work with the motor in the back
|
||||
|
||||
* 2025-02-16 [`3889040`](https://github.com/nophead/NopSCADlib/commit/38890400ac03c64635674412e621236ab28f0314 "show commit") [A.V.](# "Alex Verschoot") added new test cases for motor in the back
|
||||
|
||||
* 2025-02-15 [`9974c03`](https://github.com/nophead/NopSCADlib/commit/9974c03fc9c1ca0f67ce27fa5ea5f69c94d416ba "show commit") [A.V.](# "Alex Verschoot") improved the comments
|
||||
|
||||
* 2025-02-15 [`0208965`](https://github.com/nophead/NopSCADlib/commit/0208965684441bb2022fe2b513aa8ee28ce22f41 "show commit") [A.V.](# "Alex Verschoot") added an option to emplace the motor in the back
|
||||
|
||||
### [v21.33.0](https://github.com/nophead/NopSCADlib/releases/tag/v21.33.0 "show release") Additions [...](https://github.com/nophead/NopSCADlib/compare/v21.32.1...v21.33.0 "diff with v21.32.1")
|
||||
* 2025-01-22 [`8458e43`](https://github.com/nophead/NopSCADlib/commit/8458e432fcb472c0b2f7c880f9c06ea7d4f7511f "show commit") [C.P.](# "Chris Palmer") Updated images and readme.
|
||||
|
||||
* 2025-01-01 [`e11bb72`](https://github.com/nophead/NopSCADlib/commit/e11bb72814010692e22f0cbe891c77fac0bcebfe "show commit") [L.](# "loekwous") Added Black pill pcb
|
||||
|
||||
* 2025-01-21 [`0154b2a`](https://github.com/nophead/NopSCADlib/commit/0154b2a32ce6cd9fd0a5e8cd69e1b26f0358f816 "show commit") [C.P.](# "Chris Palmer") Added Sparkfun `9DOF_stick` PCB.
|
||||
|
||||
#### [v21.32.1](https://github.com/nophead/NopSCADlib/releases/tag/v21.32.1 "show release") Fixes [...](https://github.com/nophead/NopSCADlib/compare/v21.32.0...v21.32.1 "diff with v21.32.0")
|
||||
* 2025-01-21 [`0b80218`](https://github.com/nophead/NopSCADlib/commit/0b802187bb56726e84128df9ccb46c9a830e7dbc "show commit") [C.P.](# "Chris Palmer") Corrected the chip number on `ZC_A0591` pcb.
|
||||
|
||||
* 2025-01-21 [`923c3b5`](https://github.com/nophead/NopSCADlib/commit/923c3b5c573cde6f9bc4611e6bf0e5cc2922443e "show commit") [C.P.](# "Chris Palmer") Avoid making empty folders for dxfs, stls or png if there are no parts of that type.
|
||||
|
||||
### [v21.32.0](https://github.com/nophead/NopSCADlib/releases/tag/v21.32.0 "show release") Additions [...](https://github.com/nophead/NopSCADlib/compare/v21.31.0...v21.32.0 "diff with v21.31.0")
|
||||
* 2024-10-20 [`4d89117`](https://github.com/nophead/NopSCADlib/commit/4d8911718c54fdee5054d934c4aeeee34386d7f9 "show commit") [C.P.](# "Chris Palmer") Updated images and readme.
|
||||
|
||||
* 2024-10-17 [`cb57b25`](https://github.com/nophead/NopSCADlib/commit/cb57b25b0bbe23b5f5a7f5c910dbdd3cf53530dd "show commit") [F.R.](# "Fran<61>ois Revol") Add 10x15 micro rocker switches
|
||||
|
||||
* Spades are not exact but close enough.
|
||||
|
||||
### [v21.31.0](https://github.com/nophead/NopSCADlib/releases/tag/v21.31.0 "show release") Additions [...](https://github.com/nophead/NopSCADlib/compare/v21.30.0...v21.31.0 "diff with v21.30.0")
|
||||
* 2024-10-17 [`066242a`](https://github.com/nophead/NopSCADlib/commit/066242af588446037fc69606388ccc65d9884ad6 "show commit") [C.P.](# "Chris Palmer") Updated images and readme.
|
||||
|
||||
* 2024-10-17 [`4b3468f`](https://github.com/nophead/NopSCADlib/commit/4b3468f78d998fbd2e849d10bdc63dd3aeadc72a "show commit") [C.P.](# "Chris Palmer") Fixed LED bezels to cope with square LEDs.
|
||||
|
||||
* 2024-10-17 [`001ea2a`](https://github.com/nophead/NopSCADlib/commit/001ea2a174dbc4395636fb325628a53874e59943 "show commit") [C.P.](# "Chris Palmer") Fixed LED bezel test.
|
||||
|
||||
* 2024-10-17 [`8e9d2dd`](https://github.com/nophead/NopSCADlib/commit/8e9d2dd367015403aa542b16fa384d08856e8401 "show commit") [C.P.](# "Chris Palmer") Fixed LED test.
|
||||
|
||||
* 2024-10-17 [`f4a7065`](https://github.com/nophead/NopSCADlib/commit/f4a7065e1f1198add4e50754343fd0d97954e239 "show commit") [F.R.](# "Fran<61>ois Revol") Add rectangular LEDs
|
||||
|
||||
* As per `https://www.futurlec.com/LED/Red_2x5mm_LED.shtml`
|
||||
|
||||
### [v21.30.0](https://github.com/nophead/NopSCADlib/releases/tag/v21.30.0 "show release") Additions [...](https://github.com/nophead/NopSCADlib/compare/v21.29.2...v21.30.0 "diff with v21.29.2")
|
||||
* 2024-10-10 [`7ffff8b`](https://github.com/nophead/NopSCADlib/commit/7ffff8b7b7e111400dd7e3cb8e96bc95471a8ffa "show commit") [C.P.](# "Chris Palmer") Updated images and readme.
|
||||
|
||||
* 2024-10-10 [`e001cc4`](https://github.com/nophead/NopSCADlib/commit/e001cc46a34206801c7e1a474634b9b1f83dfc9a "show commit") [C.P.](# "Chris Palmer") Restored Lumintop colour to white and made text black on white batteries.
|
||||
|
||||
* 2024-10-08 [`7b42157`](https://github.com/nophead/NopSCADlib/commit/7b421570b46136de925963321ef44cb570e868b6 "show commit") [J.G.](# "Jan Giebels") corrected c&p error
|
||||
|
||||
* 2024-10-08 [`49ba60f`](https://github.com/nophead/NopSCADlib/commit/49ba60f159b2c3685696fff3f1dca5a9184d2553 "show commit") [J.G.](# "Jan Giebels") added L4680, L32700, L16340 `Li-Ion/LiFePo4` batteries
|
||||
|
||||
#### [v21.29.2](https://github.com/nophead/NopSCADlib/releases/tag/v21.29.2 "show release") Fixes [...](https://github.com/nophead/NopSCADlib/compare/v21.29.1...v21.29.2 "diff with v21.29.1")
|
||||
* 2024-10-07 [`9e45dba`](https://github.com/nophead/NopSCADlib/commit/9e45dbad04bb4752b9b3aceaa88ee71bb975d749 "show commit") [C.P.](# "Chris Palmer") Fixed incorrect parameters passed to `tube()` in `ht_pipe()`.
|
||||
Fixed `lib.scad` to include `ht_pipes.scad` instead of using it.
|
||||
|
||||
#### [v21.29.1](https://github.com/nophead/NopSCADlib/releases/tag/v21.29.1 "show release") Fixes [...](https://github.com/nophead/NopSCADlib/compare/v21.29.0...v21.29.1 "diff with v21.29.0")
|
||||
* 2024-10-07 [`f65fe59`](https://github.com/nophead/NopSCADlib/commit/f65fe598318d349a5a8764e2dbbe80acfdc0be2e "show commit") [C.P.](# "Chris Palmer") Restored 30mm tube section on the bottom of the pipe fitting.
|
||||
|
||||
### [v21.29.0](https://github.com/nophead/NopSCADlib/releases/tag/v21.29.0 "show release") Additions [...](https://github.com/nophead/NopSCADlib/compare/v21.28.2...v21.29.0 "diff with v21.28.2")
|
||||
* 2024-10-06 [`932c68a`](https://github.com/nophead/NopSCADlib/commit/932c68a2c01307fd22946b17f9419894f2de2e9f "show commit") [C.P.](# "Chris Palmer") Updated images and readme.
|
||||
Pipes are now made with tube instead of differencing cylinders.
|
||||
`HTpipeFitting()` now uses `rotate_extrude` and corrected internal shape.
|
||||
The seal ring is now tube diameter + 13.
|
||||
|
||||
* 2024-10-06 [`78e3360`](https://github.com/nophead/NopSCADlib/commit/78e3360900f61f30d5df7d53084a7e752ecd836a "show commit") [J.G.](# "Jan Giebels") changed naming of `ht_pipes` test script
|
||||
|
||||
* 2024-10-06 [`178f67f`](https://github.com/nophead/NopSCADlib/commit/178f67f815dca6edc65651c0b9cfb9d670c349ae "show commit") [J.G.](# "Jan Giebels") added more pipes and some cleanup
|
||||
|
||||
* 2024-10-06 [`af1b057`](https://github.com/nophead/NopSCADlib/commit/af1b057f597f75532b17f042e7711337731aa0c3 "show commit") [J.G.](# "Jan Giebels") added info and description
|
||||
|
||||
* 2024-10-06 [`195917a`](https://github.com/nophead/NopSCADlib/commit/195917a8790926515a6fffb2a02d7154855de568 "show commit") [J.G.](# "Jan Giebels") added HT pipes to lib
|
||||
|
||||
* 2024-10-06 [`9ed6aab`](https://github.com/nophead/NopSCADlib/commit/9ed6aab6c8cfd1a647f5eae2eac8d74832328065 "show commit") [J.G.](# "Jan Giebels") added test script and some more HT pipes
|
||||
|
||||
* 2024-10-05 [`c61386c`](https://github.com/nophead/NopSCADlib/commit/c61386caf937840e9a07e348b3ad96af71820dd2 "show commit") [J.G.](# "Jan Giebels") added HT waterpipes
|
||||
|
||||
* 2024-10-02 [`549dbc9`](https://github.com/nophead/NopSCADlib/commit/549dbc9380f39f8521554963f2051c3f05f5495f "show commit") [G.L.](# "Greg Land") Relative paths for vitamin `rod_end` includes
|
||||
|
||||
#### [v21.28.2](https://github.com/nophead/NopSCADlib/releases/tag/v21.28.2 "show release") Fixes [...](https://github.com/nophead/NopSCADlib/compare/v21.28.1...v21.28.2 "diff with v21.28.1")
|
||||
* 2024-10-02 [`afc50ff`](https://github.com/nophead/NopSCADlib/commit/afc50ffe5d01ee586b55630e0d34e44720f6b68a "show commit") [C.P.](# "Chris Palmer") Removed trailing comma in `let()` for compatibility with last release.
|
||||
|
||||
#### [v21.28.1](https://github.com/nophead/NopSCADlib/releases/tag/v21.28.1 "show release") Fixes [...](https://github.com/nophead/NopSCADlib/compare/v21.28.0...v21.28.1 "diff with v21.28.0")
|
||||
* 2024-09-30 [`8fb7ec0`](https://github.com/nophead/NopSCADlib/commit/8fb7ec02138f30c5f4b2a72c723ea01d753aeb61 "show commit") [C.P.](# "Chris Palmer") Updated images.
|
||||
|
||||
* 2024-09-25 [`f6a3717`](https://github.com/nophead/NopSCADlib/commit/f6a371769d2850037dc15c94366d14c126efe4ba "show commit") [J.](# "jijamik") Corrected HGH20CA `carriage_pitch_x` value.
|
||||
|
||||
### [v21.28.0](https://github.com/nophead/NopSCADlib/releases/tag/v21.28.0 "show release") Additions [...](https://github.com/nophead/NopSCADlib/compare/v21.27.1...v21.28.0 "diff with v21.27.1")
|
||||
* 2024-09-30 [`e4b1b68`](https://github.com/nophead/NopSCADlib/commit/e4b1b686ff12a415c6109f311c6c36104d8a7b0c "show commit") [C.P.](# "Chris Palmer") Added `rd_cm_choke(),` `rd_coil()` and `spiral_wrap()`.
|
||||
Added 10mm ceramic disc capacitors.
|
||||
|
||||
#### [v21.27.1](https://github.com/nophead/NopSCADlib/releases/tag/v21.27.1 "show release") Fixes [...](https://github.com/nophead/NopSCADlib/compare/v21.27.0...v21.27.1 "diff with v21.27.0")
|
||||
* 2024-09-13 [`c484ac2`](https://github.com/nophead/NopSCADlib/commit/c484ac2e8dbc8e9f9cb5051ce963250839a2705d "show commit") [C.P.](# "Chris Palmer") Updated libtest image with new D-connector.
|
||||
|
||||
### [v21.27.0](https://github.com/nophead/NopSCADlib/releases/tag/v21.27.0 "show release") Additions [...](https://github.com/nophead/NopSCADlib/compare/v21.26.0...v21.27.0 "diff with v21.26.0")
|
||||
* 2024-09-13 [`6da8452`](https://github.com/nophead/NopSCADlib/commit/6da845215bd2a4c3b7dc8a022579947cef27b8b8 "show commit") [C.P.](# "Chris Palmer") Updated readme.
|
||||
|
||||
* 2024-09-10 [`7fe5aaa`](https://github.com/nophead/NopSCADlib/commit/7fe5aaac22283c453b2c2e5a2239b65ddd4320c1 "show commit") [D.T.](# "Daniel Trnka") Added DCONN37 connector
|
||||
|
||||
### [v21.26.0](https://github.com/nophead/NopSCADlib/releases/tag/v21.26.0 "show release") Additions [...](https://github.com/nophead/NopSCADlib/compare/v21.25.0...v21.26.0 "diff with v21.25.0")
|
||||
* 2024-09-02 [`4f073f9`](https://github.com/nophead/NopSCADlib/commit/4f073f97e815e5c0b469a07d20526f7e2b88d79d "show commit") [C.P.](# "Chris Palmer") Added `rod_ends.scad` to `lib.scad` and `lib_test.scad`.
|
||||
Fixed `rod_end` colours.
|
||||
Added new pulleys to the test list and reodered.
|
||||
Printed pulleys nopw shown in two rows.
|
||||
Updated images and readme.
|
||||
|
||||
* 2024-08-23 [`fe3ce88`](https://github.com/nophead/NopSCADlib/commit/fe3ce88086de8480a88b69b7f7d2e6376b03caa6 "show commit") [T.](# "texas") adding test code for weld nuts and rod ends, adding ball bearings to test code list, and updating code for dome screw heads to use an angle to determine inset distance of the lower taper
|
||||
|
||||
* 2024-08-16 [`37fe83e`](https://github.com/nophead/NopSCADlib/commit/37fe83e2e08b6a0bd23042e37fbe89122d78516c "show commit") [T.](# "texas") added chamfer distance variable to taper in the bottom of the dome heads
|
||||
|
||||
* 2024-08-14 [`f86dfef`](https://github.com/nophead/NopSCADlib/commit/f86dfef919731f9731ca39f70ebd07b2c7204dfa "show commit") [T.](# "texas") fixed the calculations for dome screws to now use equations for a scaled sphere cap instead. This allows for larger and smaller sizes than were previously possible, and also eliminates the need for that lift value. Adding M6 and M8 dome screws as a result of this new ability
|
||||
|
||||
* 2024-08-14 [`e97f9fd`](https://github.com/nophead/NopSCADlib/commit/e97f9fdacc87bbc31cb9f0f3474132bc09f5ed91 "show commit") [=.](# "=") adding weld nuts
|
||||
|
||||
* 2024-08-13 [`ba45f85`](https://github.com/nophead/NopSCADlib/commit/ba45f8558007c7efe6bfd17bebacf285293ba4ad "show commit") [A.](# "alex") adding weld nuts, m4 and m6 for now
|
||||
|
||||
* 2024-03-18 [`90fb9eb`](https://github.com/nophead/NopSCADlib/commit/90fb9eb01f8721cb48589e59a14b3770da250cd5 "show commit") [A.](# "alex") adding F625 ball bearing
|
||||
|
||||
* 2024-03-13 [`905fc01`](https://github.com/nophead/NopSCADlib/commit/905fc016778d6a78774c05236425463fa2aa3323 "show commit") [A.](# "alex") adding rod end bearing and a yellow bed spring
|
||||
|
||||
* 2024-03-04 [`a695974`](https://github.com/nophead/NopSCADlib/commit/a695974ac562b88ed08cc3ea54a2a4e07f638c5f "show commit") [T.](# "Tex") updating after maybe breaking debian
|
||||
|
||||
### [v21.25.0](https://github.com/nophead/NopSCADlib/releases/tag/v21.25.0 "show release") Additions [...](https://github.com/nophead/NopSCADlib/compare/v21.24.1...v21.25.0 "diff with v21.24.1")
|
||||
* 2024-08-15 [`bc7f294`](https://github.com/nophead/NopSCADlib/commit/bc7f294f995d8aa8ba500a1ef666c8fb50f94fd3 "show commit") [C.P.](# "Chris Palmer") Added `smd_250V_fuse()` and `rd_box_cap()`.
|
||||
Fixed missing value parameters from a lot of the SMD component instantiation examples.
|
||||
|
||||
#### [v21.24.1](https://github.com/nophead/NopSCADlib/releases/tag/v21.24.1 "show release") Fixes [...](https://github.com/nophead/NopSCADlib/compare/v21.24.0...v21.24.1 "diff with v21.24.0")
|
||||
* 2024-06-30 [`07866f7`](https://github.com/nophead/NopSCADlib/commit/07866f72845c9e08c90e371c92315bab54f003c6 "show commit") [H.](# "Hermann-SW") Add `PT_camera` to examples and gallery
|
||||
|
||||
### [v21.24.0](https://github.com/nophead/NopSCADlib/releases/tag/v21.24.0 "show release") Additions [...](https://github.com/nophead/NopSCADlib/compare/v21.23.2...v21.24.0 "diff with v21.23.2")
|
||||
* 2024-06-30 [`53d1ea9`](https://github.com/nophead/NopSCADlib/commit/53d1ea93cd339d3fb6e085be9314d7ec0b547796 "show commit") [C.P.](# "Chris Palmer") Can now specify a rotation angle for a `geared_stepper's` shaft.
|
||||
|
||||
#### [v21.23.2](https://github.com/nophead/NopSCADlib/releases/tag/v21.23.2 "show release") Fixes [...](https://github.com/nophead/NopSCADlib/compare/v21.23.1...v21.23.2 "diff with v21.23.1")
|
||||
* 2024-06-12 [`b00709d`](https://github.com/nophead/NopSCADlib/commit/b00709da820e1241422b6e156b0c61157c18d63d "show commit") [C.P.](# "Chris Palmer") Image edge pixel changes due to new PC.
|
||||
|
||||
* 2024-06-12 [`c76be23`](https://github.com/nophead/NopSCADlib/commit/c76be2386715b80bbbc9a71c99214df7f3c71bc7 "show commit") [C.P.](# "Chris Palmer") Fixed thread bug on threaded inserts revealed by latest OpenSCAD snapshot.
|
||||
|
||||
* 2024-06-12 [`f6f348b`](https://github.com/nophead/NopSCADlib/commit/f6f348b76e7986927a571e1c07c3f866bcbeeafe "show commit") [C.P.](# "Chris Palmer") Fixed rocker slot height.
|
||||
|
||||
#### [v21.23.1](https://github.com/nophead/NopSCADlib/releases/tag/v21.23.1 "show release") Fixes [...](https://github.com/nophead/NopSCADlib/compare/v21.23.0...v21.23.1 "diff with v21.23.0")
|
||||
* 2024-05-08 [`870b396`](https://github.com/nophead/NopSCADlib/commit/870b396574935603305462f1fea88564c909aad8 "show commit") [C.](# "Chris") Revoved strailing comma in `let()` in `splines.scad`.
|
||||
|
||||
### [v21.23.0](https://github.com/nophead/NopSCADlib/releases/tag/v21.23.0 "show release") Additions [...](https://github.com/nophead/NopSCADlib/compare/v21.22.0...v21.23.0 "diff with v21.22.0")
|
||||
* 2024-04-21 [`c1fdb2e`](https://github.com/nophead/NopSCADlib/commit/c1fdb2e701672b2404e34f224e77f21fb2ff34da "show commit") [C.P.](# "Chris Palmer") Dpdated images and readme.
|
||||
|
||||
* 2024-04-20 [`cbe2c08`](https://github.com/nophead/NopSCADlib/commit/cbe2c085b72d0e5d9f0c6485d5fa7df0e172a4cc "show commit") [V.](# "V.Shcriabets") Add RCWL-0516 PCB
|
||||
|
||||
### [v21.22.0](https://github.com/nophead/NopSCADlib/releases/tag/v21.22.0 "show release") Additions [...](https://github.com/nophead/NopSCADlib/compare/v21.21.0...v21.22.0 "diff with v21.21.0")
|
||||
* 2024-04-21 [`dbf930f`](https://github.com/nophead/NopSCADlib/commit/dbf930fd366c28aa9e581d9fe01e3654b882923a "show commit") [C.P.](# "Chris Palmer") Added cubic splines and Catmull Rom splines.
|
||||
|
||||
### [v21.21.0](https://github.com/nophead/NopSCADlib/releases/tag/v21.21.0 "show release") Additions [...](https://github.com/nophead/NopSCADlib/compare/v21.20.0...v21.21.0 "diff with v21.20.0")
|
||||
* 2024-04-21 [`97cea65`](https://github.com/nophead/NopSCADlib/commit/97cea65f41714acd31a3a3b968d8c133ce1a91d2 "show commit") [C.P.](# "Chris Palmer") Cable clips can now use inserts or nut traps.
|
||||
|
||||
### [v21.20.0](https://github.com/nophead/NopSCADlib/releases/tag/v21.20.0 "show release") Additions [...](https://github.com/nophead/NopSCADlib/compare/v21.19.2...v21.20.0 "diff with v21.19.2")
|
||||
* 2024-04-21 [`c7e912c`](https://github.com/nophead/NopSCADlib/commit/c7e912cd77e189ef729f94956245f1c6a9f72012 "show commit") [C.P.](# "Chris Palmer") A optional path can now be specified for tubing.
|
||||
|
||||
#### [v21.19.2](https://github.com/nophead/NopSCADlib/releases/tag/v21.19.2 "show release") Fixes [...](https://github.com/nophead/NopSCADlib/compare/v21.19.1...v21.19.2 "diff with v21.19.1")
|
||||
* 2024-04-21 [`f563645`](https://github.com/nophead/NopSCADlib/commit/f563645e45817a4f89ef3cb1be9d932310c485c6 "show commit") [C.P.](# "Chris Palmer") Corrected M2 `nut_trap_depth,` was too big.
|
||||
|
||||
#### [v21.19.1](https://github.com/nophead/NopSCADlib/releases/tag/v21.19.1 "show release") Fixes [...](https://github.com/nophead/NopSCADlib/compare/v21.19.0...v21.19.1 "diff with v21.19.0")
|
||||
* 2024-04-21 [`2840cc2`](https://github.com/nophead/NopSCADlib/commit/2840cc2390a8e776add8ca3ef715abfc8d15dadc "show commit") [C.P.](# "Chris Palmer") Washer now uses `sweep.scad` instead of including it, leaking its interface.
|
||||
|
||||
### [v21.19.0](https://github.com/nophead/NopSCADlib/releases/tag/v21.19.0 "show release") Additions [...](https://github.com/nophead/NopSCADlib/compare/v21.18.0...v21.19.0 "diff with v21.18.0")
|
||||
* 2024-04-21 [`a5b2018`](https://github.com/nophead/NopSCADlib/commit/a5b20180083ba8d3014bc298cf0e28c20e6be437 "show commit") [C.P.](# "Chris Palmer") Added `offset_paths()` to `sweep.scad`.
|
||||
`show_path()` now takes an optional radius.
|
||||
|
||||
### [v21.18.0](https://github.com/nophead/NopSCADlib/releases/tag/v21.18.0 "show release") Additions [...](https://github.com/nophead/NopSCADlib/compare/v21.17.0...v21.18.0 "diff with v21.17.0")
|
||||
* 2024-03-14 [`19dadcb`](https://github.com/nophead/NopSCADlib/commit/19dadcb58db0dd7408726c69d46cf2b7b26c764b "show commit") [C.P.](# "Chris Palmer") Updated images and readme.
|
||||
|
||||
|
BIN
docs/sliding_t_nut.png
Normal file
After Width: | Height: | Size: 28 KiB |
BIN
docs/sliding_t_nut_small.png
Normal file
After Width: | Height: | Size: 5.6 KiB |
Before Width: | Height: | Size: 265 KiB After Width: | Height: | Size: 264 KiB |
Before Width: | Height: | Size: 326 KiB After Width: | Height: | Size: 324 KiB |
Before Width: | Height: | Size: 57 KiB After Width: | Height: | Size: 57 KiB |
Before Width: | Height: | Size: 336 KiB After Width: | Height: | Size: 334 KiB |
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 126 KiB After Width: | Height: | Size: 125 KiB |
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 132 KiB After Width: | Height: | Size: 129 KiB |
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 28 KiB |
Before Width: | Height: | Size: 201 KiB After Width: | Height: | Size: 201 KiB |
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 36 KiB |
Before Width: | Height: | Size: 249 KiB After Width: | Height: | Size: 248 KiB |
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 125 KiB After Width: | Height: | Size: 124 KiB |
Before Width: | Height: | Size: 185 KiB After Width: | Height: | Size: 185 KiB |
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 34 KiB |
Before Width: | Height: | Size: 234 KiB After Width: | Height: | Size: 234 KiB |
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 42 KiB |
Before Width: | Height: | Size: 236 KiB After Width: | Height: | Size: 235 KiB |
Before Width: | Height: | Size: 46 KiB After Width: | Height: | Size: 46 KiB |
Before Width: | Height: | Size: 218 KiB After Width: | Height: | Size: 217 KiB |
@@ -17,11 +17,13 @@
|
||||
"printed": {
|
||||
"fan_duct.stl": {
|
||||
"count": 1,
|
||||
"colour": "darkorange"
|
||||
"colour": "darkorange",
|
||||
"camera": "0,0,0,70,0,315,500"
|
||||
},
|
||||
"enviro_plus_case_base.stl": {
|
||||
"count": 1,
|
||||
"colour": "grey"
|
||||
"colour": "grey",
|
||||
"camera": "0,0,0,70,0,315,500"
|
||||
}
|
||||
},
|
||||
"routed": {}
|
||||
@@ -67,10 +69,10 @@
|
||||
"smd_resistor(RES0805, 3K3): SMD resistor 0805 3K3 0.125W": {
|
||||
"count": 1
|
||||
},
|
||||
"smd_capacitor(CAP1206): SMD capacitor 1206 10uF": {
|
||||
"smd_capacitor(CAP1206, value = \"10uF\"): SMD capacitor 1206 10uF": {
|
||||
"count": 1
|
||||
},
|
||||
"smd_sot(SOT223): SOT223 package FZT851": {
|
||||
"smd_sot(SOT223, \"FZT851\"): SOT223 package FZT851": {
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
@@ -115,15 +117,18 @@
|
||||
"printed": {
|
||||
"enviro_plus_case.stl": {
|
||||
"count": 1,
|
||||
"colour": "grey"
|
||||
"colour": "grey",
|
||||
"camera": "0,0,0,70,0,315,500"
|
||||
},
|
||||
"bulkhead.stl": {
|
||||
"count": 1,
|
||||
"colour": "[0.862745, 0.0784314, 0.235294]"
|
||||
"colour": "[0.862745, 0.0784314, 0.235294]",
|
||||
"camera": "0,0,0,70,0,315,500"
|
||||
},
|
||||
"foot.stl": {
|
||||
"count": 3,
|
||||
"colour": "darkorange"
|
||||
"colour": "darkorange",
|
||||
"camera": "0,0,0,70,0,315,500"
|
||||
}
|
||||
},
|
||||
"routed": {}
|
||||
|
@@ -72,7 +72,7 @@ Environmental monitor using Enviro+ sensor board and a Raspberry Pi Zero.
|
||||
|
||||
### 3D Printed parts
|
||||
|
||||
| 1 x enviro_plus_case_base.stl | 1 x fan_duct.stl |
|
||||
| 1 x [enviro_plus_case_base.stl](stls/enviro_plus_case_base.stl) | 1 x [fan_duct.stl](stls/fan_duct.stl) |
|
||||
|---|---|
|
||||
|  | 
|
||||
|
||||
@@ -190,7 +190,7 @@ It converts the PWM signal on GPI4 to a stead DC voltage so that the fan doesn't
|
||||
|
||||
### 3D Printed parts
|
||||
|
||||
| 1 x bulkhead.stl | 1 x enviro_plus_case.stl | 3 x foot.stl |
|
||||
| 1 x [bulkhead.stl](stls/bulkhead.stl) | 1 x [enviro_plus_case.stl](stls/enviro_plus_case.stl) | 3 x [foot.stl](stls/foot.stl) |
|
||||
|---|---|---|
|
||||
|  |  | 
|
||||
|
||||
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
BIN
examples/Gridfinity/assemblies/main_assembled.png
Normal file
After Width: | Height: | Size: 126 KiB |
BIN
examples/Gridfinity/assemblies/main_assembled_tn.png
Normal file
After Width: | Height: | Size: 25 KiB |
BIN
examples/Gridfinity/assemblies/main_assembly.png
Normal file
After Width: | Height: | Size: 126 KiB |
BIN
examples/Gridfinity/assemblies/main_assembly_tn.png
Normal file
After Width: | Height: | Size: 25 KiB |
0
examples/Gridfinity/bom/bom.csv
Normal file
|
49
examples/Gridfinity/bom/bom.json
Normal file
@@ -0,0 +1,49 @@
|
||||
[
|
||||
{
|
||||
"name": "main_assembly",
|
||||
"big": null,
|
||||
"ngb": false,
|
||||
"zoomed": 0,
|
||||
"count": 1,
|
||||
"assemblies": {},
|
||||
"vitamins": {},
|
||||
"printed": {
|
||||
"lathe_tool_stand.stl": {
|
||||
"count": 1,
|
||||
"colour": "[0, 0.572549, 0]",
|
||||
"camera": "0,0,0,70,0,315,500"
|
||||
},
|
||||
"MT2_stand.stl": {
|
||||
"count": 1,
|
||||
"colour": "[0, 0.572549, 0]",
|
||||
"camera": "0,0,0,70,0,315,500"
|
||||
},
|
||||
"chuck_stand.stl": {
|
||||
"count": 1,
|
||||
"colour": "[0, 0.572549, 0]",
|
||||
"camera": "0,0,0,70,0,315,500"
|
||||
},
|
||||
"chuck_jaw_bin.stl": {
|
||||
"count": 1,
|
||||
"colour": "[0, 0.572549, 0]",
|
||||
"camera": "0,0,0,70,0,315,500"
|
||||
},
|
||||
"1x1_bin.stl": {
|
||||
"count": 1,
|
||||
"colour": "[0, 0.572549, 0]",
|
||||
"camera": "0,0,0,70,0,315,500"
|
||||
},
|
||||
"123_block_stand.stl": {
|
||||
"count": 1,
|
||||
"colour": "[0, 0.572549, 0]",
|
||||
"camera": "0,0,0,70,0,315,500"
|
||||
},
|
||||
"faceplate_stand.stl": {
|
||||
"count": 1,
|
||||
"colour": "[0, 0.572549, 0]",
|
||||
"camera": "0,0,0,70,0,315,500"
|
||||
}
|
||||
},
|
||||
"routed": {}
|
||||
}
|
||||
]
|
15
examples/Gridfinity/bom/bom.txt
Normal file
@@ -0,0 +1,15 @@
|
||||
M
|
||||
a
|
||||
i
|
||||
n
|
||||
Printed:
|
||||
1| 1 123_block_stand.stl
|
||||
1| 1 1x1_bin.stl
|
||||
1| 1 MT2_stand.stl
|
||||
1| 1 chuck_jaw_bin.stl
|
||||
1| 1 chuck_stand.stl
|
||||
1| 1 faceplate_stand.stl
|
||||
1| 1 lathe_tool_stand.stl
|
||||
|
||||
Assemblies:
|
||||
1 main_assembly
|
9
examples/Gridfinity/bom/main_assembly.txt
Normal file
@@ -0,0 +1,9 @@
|
||||
main_assembly:
|
||||
Printed:
|
||||
1 123_block_stand.stl
|
||||
1 1x1_bin.stl
|
||||
1 MT2_stand.stl
|
||||
1 chuck_jaw_bin.stl
|
||||
1 chuck_stand.stl
|
||||
1 faceplate_stand.stl
|
||||
1 lathe_tool_stand.stl
|
64
examples/Gridfinity/readme.md
Normal file
@@ -0,0 +1,64 @@
|
||||
<a name="TOP"></a>
|
||||
# Gridfinity
|
||||
Gridfinity examples
|
||||
|
||||

|
||||
|
||||
<span></span>
|
||||
|
||||
---
|
||||
## Table of Contents
|
||||
1. [Parts list](#Parts_list)
|
||||
1. [Main Assembly](#main_assembly)
|
||||
|
||||
<span></span>
|
||||
[Top](#TOP)
|
||||
|
||||
---
|
||||
<a name="Parts_list"></a>
|
||||
## Parts list
|
||||
| <span style="writing-mode: vertical-rl; text-orientation: mixed;">Main</span> | <span style="writing-mode: vertical-rl; text-orientation: mixed;">TOTALS</span> | |
|
||||
|---:|---:|:---|
|
||||
| | | **3D printed parts** |
|
||||
| 1 | 1 | 123_block_stand.stl |
|
||||
| 1 | 1 | 1x1_bin.stl |
|
||||
| 1 | 1 | MT2_stand.stl |
|
||||
| 1 | 1 | chuck_jaw_bin.stl |
|
||||
| 1 | 1 | chuck_stand.stl |
|
||||
| 1 | 1 | faceplate_stand.stl |
|
||||
| 1 | 1 | lathe_tool_stand.stl |
|
||||
| 7 | 7 | Total 3D printed parts count |
|
||||
|
||||
<span></span>
|
||||
[Top](#TOP)
|
||||
|
||||
---
|
||||
<a name="main_assembly"></a>
|
||||
## Main Assembly
|
||||
### 3D Printed parts
|
||||
|
||||
| 1 x [123_block_stand.stl](stls/123_block_stand.stl) | 1 x [1x1_bin.stl](stls/1x1_bin.stl) | 1 x [MT2_stand.stl](stls/MT2_stand.stl) |
|
||||
|---|---|---|
|
||||
|  |  | 
|
||||
|
||||
|
||||
| 1 x [chuck_jaw_bin.stl](stls/chuck_jaw_bin.stl) | 1 x [chuck_stand.stl](stls/chuck_stand.stl) | 1 x [faceplate_stand.stl](stls/faceplate_stand.stl) |
|
||||
|---|---|---|
|
||||
|  |  | 
|
||||
|
||||
|
||||
| 1 x [lathe_tool_stand.stl](stls/lathe_tool_stand.stl) |
|
||||
|---|
|
||||
| 
|
||||
|
||||
|
||||
|
||||
### Assembly instructions
|
||||

|
||||
|
||||
Show all the Gridfinity parts
|
||||
|
||||

|
||||
|
||||
<span></span>
|
||||
[Top](#TOP)
|
58
examples/Gridfinity/scad/123_block_stand.scad
Normal file
@@ -0,0 +1,58 @@
|
||||
include <NopSCADlib/core.scad>
|
||||
|
||||
use <NopSCADlib/printed/gridfinity.scad>
|
||||
use <NopSCADlib/utils/maths.scad>
|
||||
use <NopSCADlib/utils/chamfer.scad>
|
||||
|
||||
tool_size = 8;
|
||||
|
||||
box = gridfinity_bin("123_block_stand", 2, 2, 5);
|
||||
|
||||
123_block = inch([3, 1, 2]);
|
||||
|
||||
102040_block = [20, 10, 40];
|
||||
|
||||
blocks = [123_block, 123_block, 102040_block];
|
||||
|
||||
box_mm = gridfinity_bin_size_mm(box);
|
||||
wall = 1.75;
|
||||
bwall = 1;
|
||||
clearance = 0.5;
|
||||
|
||||
gap = (box_mm.y - sumv([for(b = blocks) b.y])) / (len(blocks) + 1);
|
||||
|
||||
module holes() {
|
||||
let($b = blocks[0])
|
||||
translate([0, box_mm.y / 2 - gap - $b.y / 2])
|
||||
children();
|
||||
|
||||
let($b = blocks[1])
|
||||
translate([0, box_mm.y / 2 - gap - blocks[0].y - gap - $b.y / 2])
|
||||
children();
|
||||
|
||||
for(side = [-1, 1])
|
||||
let($b = blocks[2])
|
||||
translate([side * (blocks[2].x + 2 * gap) / 2,
|
||||
box_mm.y / 2 - gap - blocks[0].y - gap - blocks[1].y - gap - blocks[2].y / 2 ])
|
||||
children();
|
||||
}
|
||||
|
||||
module 123_block_stand_stl()
|
||||
gridfinity_bin(box) union() {
|
||||
holes() {
|
||||
translate_z(gridfinity_base_z() + bwall + $b.z / 2 + eps)
|
||||
cube([$b.x + clearance, $b.y + clearance, $b.z + 2 * eps], true);
|
||||
|
||||
chamfer = 1;
|
||||
translate_z(box_mm.z)
|
||||
chamfer_hole(chamfer)
|
||||
square([$b.x + clearance, $b.y + clearance], true);
|
||||
}
|
||||
translate_z(gridfinity_base_z() + bwall)
|
||||
difference() {
|
||||
rounded_rectangle([box_mm.x - 2 * wall, box_mm.y - 2 * wall, box_mm.z - gridfinity_base_z() - bwall - wall], gridfinity_corner_r() - wall);
|
||||
|
||||
holes()
|
||||
rounded_rectangle([$b.x + clearance + 2 * wall, $b.y + clearance + 2 * wall, 100], wall, center = true);
|
||||
}
|
||||
}
|
9
examples/Gridfinity/scad/1x1_bin.scad
Normal file
@@ -0,0 +1,9 @@
|
||||
include <NopSCADlib/core.scad>
|
||||
|
||||
use <NopSCADlib/printed/gridfinity.scad>
|
||||
|
||||
box = gridfinity_bin("1x1_bin", 1, 1, 5);
|
||||
|
||||
module 1x1_bin_stl()
|
||||
gridfinity_bin(box)
|
||||
gridfinity_partition(box, 1, 1);
|
80
examples/Gridfinity/scad/MT2_stand.scad
Normal file
@@ -0,0 +1,80 @@
|
||||
//
|
||||
// Stand for MT2 taper lathe tools
|
||||
//
|
||||
include <NopSCADlib/core.scad>
|
||||
use <NopSCADlib/utils/maths.scad>
|
||||
use <NopSCADlib/utils/chamfer.scad>
|
||||
|
||||
use <NopSCADlib/printed/gridfinity.scad>
|
||||
|
||||
box = gridfinity_bin("MT2_stand", 4, 2, 8);
|
||||
|
||||
box_mm = gridfinity_bin_size_mm(box);
|
||||
wall = 1.75;
|
||||
bwall = 1;
|
||||
|
||||
|
||||
diameters1 = [43, 47, 64];
|
||||
d2 = 20;
|
||||
|
||||
clearance = 1;
|
||||
clearance2 = 4;
|
||||
|
||||
MT2_base = 5; // smaller diameters
|
||||
MT2_D1 = 15; // diameter at the bottom of the taper at base height
|
||||
MT2_half_angle = 1.4302777777777778;
|
||||
|
||||
hole_depth = box_mm.z - gridfinity_base_z() - bwall;
|
||||
MT2_r1 = MT2_D1 / 2;
|
||||
MT2_r2 = MT2_r1 + (hole_depth - MT2_base) * tan(MT2_half_angle);
|
||||
|
||||
gap = (box_mm.x - sumv(diameters1) - 2 * clearance) / (len(diameters1) - 1);
|
||||
gap2 = 18;
|
||||
|
||||
module MT2_socket() {
|
||||
clearance = 0.3;
|
||||
|
||||
translate_z(-hole_depth) {
|
||||
poly_cylinder(MT2_r1 + clearance / 2, MT2_base + eps);
|
||||
|
||||
translate_z(MT2_base)
|
||||
hull() {
|
||||
poly_cylinder(MT2_r1 + clearance / 2, eps);
|
||||
|
||||
translate_z(hole_depth - MT2_base)
|
||||
poly_cylinder(MT2_r2 + clearance / 2, eps);
|
||||
}
|
||||
}
|
||||
chamfer_hole(1)
|
||||
poly_circle(MT2_r2 + clearance / 2);
|
||||
}
|
||||
|
||||
function pos(i) = [clearance + sumv(slice(diameters1, 0, i)) + i * gap + diameters1[i] / 2 - box_mm.x / 2, box_mm.y / 2 - clearance - diameters1[i] / 2, box_mm.z];
|
||||
function pos2(i) = [clearance2 + i * gap2 + (i + 0.5) * d2 - box_mm.x / 2, -box_mm.y / 2 + clearance2 + d2 / 2, box_mm.z];
|
||||
|
||||
module holes()
|
||||
for(i = [0 : len(diameters1) - 1]) {
|
||||
translate(pos(i))
|
||||
children();
|
||||
|
||||
translate(pos2(i))
|
||||
children();
|
||||
}
|
||||
|
||||
module MT2_stand_stl()
|
||||
gridfinity_bin(box) union() {
|
||||
holes()
|
||||
MT2_socket();
|
||||
|
||||
translate_z(gridfinity_base_z() + bwall)
|
||||
difference() {
|
||||
rounded_rectangle([box_mm.x - 2 * wall, box_mm.y - 2 * wall, box_mm.z - gridfinity_base_z() - bwall - wall], gridfinity_corner_r() - wall);
|
||||
|
||||
holes()
|
||||
cylinder(r = MT2_r2 + wall, h = 200, center = true);
|
||||
|
||||
for(x = [-box_mm.x / 2 : 20 : box_mm.x /2])
|
||||
translate([x, 0])
|
||||
cube([squeezed_wall, 200, 200], center = true);
|
||||
}
|
||||
}
|
36
examples/Gridfinity/scad/chuck_jaw_bin.scad
Normal file
@@ -0,0 +1,36 @@
|
||||
include <NopSCADlib/core.scad>
|
||||
use <NopSCADlib/utils/chamfer.scad>
|
||||
|
||||
use <NopSCADlib/printed/gridfinity.scad>
|
||||
|
||||
box = gridfinity_bin("chuck_jaw_bin", 1, 1, 5);
|
||||
|
||||
box_mm = gridfinity_bin_size_mm(box);
|
||||
|
||||
bwall = 1;
|
||||
|
||||
length = 37;
|
||||
width = 34;
|
||||
|
||||
|
||||
z_bot = gridfinity_base_z() + bwall;
|
||||
|
||||
depth = box_mm.z - z_bot;
|
||||
|
||||
module chuck_jaw_bin_stl()
|
||||
gridfinity_bin(box)
|
||||
translate_z(box_mm.z) {
|
||||
cube([length, width, depth * 2], true);
|
||||
|
||||
chamfer = 1;
|
||||
|
||||
chamfer_hole(chamfer)
|
||||
square([length, width], true);
|
||||
|
||||
*hull() {
|
||||
rounded_rectangle([length + 2 * chamfer, width + 2 * chamfer, eps], chamfer);
|
||||
|
||||
translate_z(-chamfer + eps / 2)
|
||||
cube([length, width, eps], true);
|
||||
}
|
||||
}
|
52
examples/Gridfinity/scad/chuck_stand.scad
Normal file
@@ -0,0 +1,52 @@
|
||||
include <NopSCADlib/core.scad>
|
||||
|
||||
use <NopSCADlib/printed/gridfinity.scad>
|
||||
use <NopSCADlib/utils/chamfer.scad>
|
||||
|
||||
box = gridfinity_bin("chuck_stand", 2, 2, 5);
|
||||
|
||||
box_mm = gridfinity_bin_size_mm(box);
|
||||
|
||||
bwall = 1;
|
||||
|
||||
chuck_d = 80;
|
||||
ring_od = 50;
|
||||
ring_id = 40;
|
||||
ring_h = 4;
|
||||
|
||||
hole_pitch = (60 + 72.5) / 2;
|
||||
hole_d = (72.5 - 60) / 2;
|
||||
hole_depth = 15;
|
||||
clearance = 0.5;
|
||||
chamfer = 1;
|
||||
|
||||
z_bot = gridfinity_base_z() + bwall;
|
||||
|
||||
module chuck_stand_stl()
|
||||
gridfinity_bin(box) union() {
|
||||
translate_z(z_bot) {
|
||||
for(a = [0 : 30 : 330])
|
||||
rotate(a)
|
||||
translate([0, hole_pitch / 2]) {
|
||||
poly_cylinder(hole_d / 2 + clearance / 2, h = 100);
|
||||
|
||||
translate_z(hole_depth)
|
||||
chamfer_hole(chamfer)
|
||||
poly_circle(hole_d / 2 + clearance / 2);
|
||||
}
|
||||
|
||||
translate_z(hole_depth) {
|
||||
poly_cylinder(r = chuck_d / 2 + clearance / 2, h = 100);
|
||||
|
||||
poly_tube(or = ring_od / 2 + clearance, ir = ring_id / 2 - clearance, h = 2 * ring_h, center = true);
|
||||
|
||||
chamfer_hole(chamfer)
|
||||
poly_circle(ring_od / 2 + clearance);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
translate_z(box_mm.z)
|
||||
chamfer_hole(chamfer)
|
||||
poly_circle(r = chuck_d / 2 + clearance / 2);
|
||||
}
|
56
examples/Gridfinity/scad/faceplate_stand.scad
Normal file
@@ -0,0 +1,56 @@
|
||||
include <NopSCADlib/core.scad>
|
||||
|
||||
use <NopSCADlib/printed/gridfinity.scad>
|
||||
use <NopSCADlib/utils/maths.scad>
|
||||
use <NopSCADlib/utils/chamfer.scad>
|
||||
|
||||
tool_size = 8;
|
||||
|
||||
box = gridfinity_bin("faceplate_stand", 3, 1, 5);
|
||||
|
||||
faceplate = [112, 16, 17];
|
||||
sanding_disc = [69, 6.7, 14.5];
|
||||
|
||||
discs = [faceplate, sanding_disc];
|
||||
|
||||
box_mm = gridfinity_bin_size_mm(box);
|
||||
wall = 1.8;
|
||||
bwall = 1;
|
||||
clearance = 0.5;
|
||||
|
||||
gap = (box_mm.y - sumv([for(b = discs) b.z])) / (len(discs) + 1);
|
||||
|
||||
module holes() {
|
||||
for(i = [0 : len(discs) - 1]) let($d = discs[i])
|
||||
translate([0, box_mm.y / 2 - gap - (i ? discs[0].z + gap : 0) - $d.z / 2])
|
||||
children();
|
||||
}
|
||||
|
||||
module faceplate_stand_stl()
|
||||
gridfinity_bin(box) union() {
|
||||
holes() {
|
||||
$fa = 1;
|
||||
r = $d.x / 2 + clearance / 2;
|
||||
z = gridfinity_base_z() + bwall + r;
|
||||
translate_z(z)
|
||||
rotate([90, 0, 0])
|
||||
teardrop_plus(r = r, h = $d.y + clearance, center = true);
|
||||
|
||||
chamfer = 1;
|
||||
h = z - box_mm.z + wall;
|
||||
translate_z(box_mm.z)
|
||||
chamfer_hole(chamfer)
|
||||
square([2 * sqrt(sqr(r) - sqr(h)), $d.y + clearance], true);
|
||||
}
|
||||
difference() {
|
||||
translate_z(gridfinity_base_z() + bwall)
|
||||
rounded_rectangle([box_mm.x - 2 * wall, box_mm.y - 2 * wall, box_mm.z - gridfinity_base_z() - bwall - wall], gridfinity_corner_r() - wall);
|
||||
|
||||
holes() {
|
||||
r = $d.x / 2 + clearance / 2;
|
||||
translate_z(gridfinity_base_z() + bwall + r)
|
||||
rotate([90, 0, 0])
|
||||
teardrop_plus(r = r + wall, h = $d.y + clearance + 2 * wall);
|
||||
}
|
||||
}
|
||||
}
|
45
examples/Gridfinity/scad/lathe_tool_stand.scad
Normal file
@@ -0,0 +1,45 @@
|
||||
include <NopSCADlib/core.scad>
|
||||
|
||||
use <NopSCADlib/printed/gridfinity.scad>
|
||||
use <NopSCADlib/utils/chamfer.scad>
|
||||
|
||||
tool_size = 8;
|
||||
|
||||
rows = 2;
|
||||
cols = 5;
|
||||
spacing = 8;
|
||||
|
||||
hole = tool_size + 0.2;
|
||||
|
||||
tool_pitch = hole + spacing;
|
||||
|
||||
box = gridfinity_bin("lathe_tool_stand", 2, 1, 5);
|
||||
|
||||
module holes()
|
||||
for(x = [0 : cols - 1], y = [0 : rows - 1])
|
||||
translate([x - (cols -1) / 2, y - (rows - 1) / 2] * tool_pitch)
|
||||
children();
|
||||
|
||||
box_mm = gridfinity_bin_size_mm(box);
|
||||
wall = 1.75;
|
||||
bwall = 1;
|
||||
|
||||
module lathe_tool_stand_stl()
|
||||
gridfinity_bin(box) union() {
|
||||
translate_z(box_mm.z)
|
||||
holes() {
|
||||
cube([hole, hole, 2 * (box_mm.z - gridfinity_base_z() - bwall)], true);
|
||||
|
||||
chamfer = 1;
|
||||
chamfer_hole(chamfer)
|
||||
square([hole, hole], true);
|
||||
}
|
||||
|
||||
translate_z(gridfinity_base_z() + bwall)
|
||||
difference() {
|
||||
rounded_rectangle([box_mm.x - 2 * wall, box_mm.y - 2 * wall, box_mm.z - gridfinity_base_z() - bwall - wall], gridfinity_corner_r() - wall);
|
||||
|
||||
holes()
|
||||
rounded_rectangle([hole + 2 * wall, hole + 2 * wall, 100], wall, center = true);
|
||||
}
|
||||
}
|
42
examples/Gridfinity/scad/main.scad
Normal file
@@ -0,0 +1,42 @@
|
||||
//
|
||||
//! Gridfinity examples
|
||||
//
|
||||
include <NopSCADlib/core.scad>
|
||||
|
||||
use <lathe_tool_stand.scad>
|
||||
use <MT2_stand.scad>
|
||||
use <chuck_stand.scad>
|
||||
use <chuck_jaw_bin.scad>
|
||||
use <1x1_bin.scad>
|
||||
use <123_block_stand.scad>
|
||||
use <faceplate_stand.scad>
|
||||
|
||||
|
||||
//! Show all the Gridfinity parts
|
||||
module main_assembly()
|
||||
assembly("main") {
|
||||
$manifold = true;
|
||||
|
||||
lathe_tool_stand_stl();
|
||||
|
||||
translate([42, 63])
|
||||
MT2_stand_stl();
|
||||
|
||||
translate([42 * 2, -42 / 2])
|
||||
chuck_stand_stl();
|
||||
|
||||
translate([-21, -42])
|
||||
chuck_jaw_bin_stl();
|
||||
|
||||
translate([21, -42])
|
||||
1x1_bin_stl();
|
||||
|
||||
translate([42 * 4, -42 / 2])
|
||||
123_block_stand_stl();
|
||||
|
||||
translate([42 * 6.5, 0])
|
||||
faceplate_stand_stl();
|
||||
}
|
||||
|
||||
|
||||
main_assembly();
|
BIN
examples/Gridfinity/stls/123_block_stand.png
Normal file
After Width: | Height: | Size: 15 KiB |
19882
examples/Gridfinity/stls/123_block_stand.stl
Normal file
BIN
examples/Gridfinity/stls/1x1_bin.png
Normal file
After Width: | Height: | Size: 14 KiB |
18734
examples/Gridfinity/stls/1x1_bin.stl
Normal file
BIN
examples/Gridfinity/stls/MT2_stand.png
Normal file
After Width: | Height: | Size: 14 KiB |
53622
examples/Gridfinity/stls/MT2_stand.stl
Normal file
BIN
examples/Gridfinity/stls/chuck_jaw_bin.png
Normal file
After Width: | Height: | Size: 14 KiB |
4006
examples/Gridfinity/stls/chuck_jaw_bin.stl
Normal file
BIN
examples/Gridfinity/stls/chuck_stand.png
Normal file
After Width: | Height: | Size: 16 KiB |
40434
examples/Gridfinity/stls/chuck_stand.stl
Normal file
BIN
examples/Gridfinity/stls/faceplate_stand.png
Normal file
After Width: | Height: | Size: 15 KiB |
20470
examples/Gridfinity/stls/faceplate_stand.stl
Normal file
BIN
examples/Gridfinity/stls/lathe_tool_stand.png
Normal file
After Width: | Height: | Size: 16 KiB |
26434
examples/Gridfinity/stls/lathe_tool_stand.stl
Normal file
Before Width: | Height: | Size: 96 KiB After Width: | Height: | Size: 96 KiB |
Before Width: | Height: | Size: 108 KiB After Width: | Height: | Size: 107 KiB |
Before Width: | Height: | Size: 104 KiB After Width: | Height: | Size: 104 KiB |
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 137 KiB After Width: | Height: | Size: 137 KiB |
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 27 KiB |
Before Width: | Height: | Size: 200 KiB After Width: | Height: | Size: 200 KiB |
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 34 KiB |
Before Width: | Height: | Size: 123 KiB After Width: | Height: | Size: 122 KiB |
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |
Before Width: | Height: | Size: 134 KiB After Width: | Height: | Size: 134 KiB |
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 26 KiB |
@@ -14,7 +14,8 @@
|
||||
"printed": {
|
||||
"socket_box.stl": {
|
||||
"count": 1,
|
||||
"colour": "dimgrey"
|
||||
"colour": "dimgrey",
|
||||
"camera": "0,0,0,70,0,315,500"
|
||||
}
|
||||
},
|
||||
"routed": {}
|
||||
@@ -42,7 +43,8 @@
|
||||
"printed": {
|
||||
"foot.stl": {
|
||||
"count": 4,
|
||||
"colour": "darkorange"
|
||||
"colour": "darkorange",
|
||||
"camera": "0,0,0,70,0,315,500"
|
||||
}
|
||||
},
|
||||
"routed": {}
|
||||
|
@@ -70,7 +70,7 @@ Earth leakage can be measured Canadian CSA style by disconnected the neutral lin
|
||||
|
||||
### 3D Printed parts
|
||||
|
||||
| 1 x socket_box.stl |
|
||||
| 1 x [socket_box.stl](stls/socket_box.stl) |
|
||||
|---|
|
||||
| 
|
||||
|
||||
@@ -100,7 +100,7 @@ Earth leakage can be measured Canadian CSA style by disconnected the neutral lin
|
||||
|
||||
### 3D Printed parts
|
||||
|
||||
| 4 x foot.stl |
|
||||
| 4 x [foot.stl](stls/foot.stl) |
|
||||
|---|
|
||||
| 
|
||||
|
||||
|
Before Width: | Height: | Size: 8.6 KiB After Width: | Height: | Size: 8.7 KiB |
54
examples/PT_camera/PT_camera.scad
Normal file
@@ -0,0 +1,54 @@
|
||||
include <../../vitamins/geared_steppers.scad>
|
||||
include <../../core.scad>
|
||||
include <../../vitamins/cameras.scad>
|
||||
use <../../vitamins/pcb.scad>
|
||||
|
||||
module ptc(ang2) {
|
||||
rotate([180,0,0])
|
||||
union(){
|
||||
geared_stepper(28BYJ_48,ang2);
|
||||
rotate([90,0,180-ang2])
|
||||
translate([9.8,-16.5,1.7])
|
||||
rotate([0,0,90])
|
||||
camera(cameras[0]);
|
||||
}
|
||||
}
|
||||
|
||||
module pt(ang,ang2) {
|
||||
rotate([180,0,0]) geared_stepper(28BYJ_48,ang);
|
||||
rotate([0,0,ang]) rotate([270,0,0]) translate([0,-29.0,-1.5]) ptc(ang2);
|
||||
}
|
||||
|
||||
deg=90;
|
||||
c=90;
|
||||
|
||||
if($t<0.125){
|
||||
a=180+$t/0.125*deg;
|
||||
pt(a,c);
|
||||
}else if ($t<0.25){
|
||||
a=180+deg-($t-0.125)/0.125*deg;
|
||||
pt(a,c);
|
||||
}else if ($t<0.375){
|
||||
b=c+($t-0.25)/0.125*deg;
|
||||
pt(180,b);
|
||||
}else if ($t<0.5){
|
||||
b=c+deg-($t-0.375)/0.125*deg;
|
||||
pt(180,b);
|
||||
}
|
||||
else if($t<0.625){
|
||||
a=180+($t-0.5)/0.125*deg;
|
||||
b=c+deg-90+($t-0.5)/0.125*deg;
|
||||
pt(a,b);
|
||||
}else if ($t<0.75){
|
||||
a=180+deg-($t-0.625)/0.125*deg;
|
||||
b=c+deg-($t-0.625)/0.125*deg;
|
||||
pt(a,b);
|
||||
}else if ($t<0.875){
|
||||
a=180-($t-0.75)/0.125*deg;
|
||||
b=c-($t-0.75)/0.125*deg;
|
||||
pt(a,b);
|
||||
}else{
|
||||
a=90+($t-0.875)/0.125*deg;
|
||||
b=c+deg-180+($t-0.875)/0.125*deg;
|
||||
pt(a,b);
|
||||
}
|
BIN
gallery/PT_camera.anim.gif
Normal file
After Width: | Height: | Size: 1.5 MiB |
@@ -106,6 +106,10 @@ A base and shroud to make PSU safe to sit on a desk
|
||||
|
||||

|
||||
|
||||
## PT_camera
|
||||
Two 28BYJ_48 geared stepper motors and a Raspberry v1 camera, combined with [4 drops of superglue](https://forums.raspberrypi.com/viewtopic.php?p=1810000#p1810000). Script [PT_camera.scad](../examples/PT_camera/PT_camera.scad) nicely demonstrates new 2nd optional arg (motor shaft angle) of ```geared_stepper()```.
|
||||

|
||||
|
||||
## PotBox
|
||||
Potentiometer box with course and fine controls and three 4mm binding posts
|
||||
|
||||
|
6
lib.scad
@@ -23,7 +23,7 @@
|
||||
include <core.scad>
|
||||
|
||||
include <vitamins/psus.scad>
|
||||
include <vitamins/pcbs.scad>
|
||||
include <vitamins/displays.scad> // Includes pcbs.scad
|
||||
|
||||
include <vitamins/antennas.scad>
|
||||
include <vitamins/batteries.scad>
|
||||
@@ -34,13 +34,13 @@ include <vitamins/box_sections.scad>
|
||||
include <vitamins/bulldogs.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/ht_pipes.scad>
|
||||
include <vitamins/inserts.scad>
|
||||
include <vitamins/ldrs.scad>
|
||||
include <vitamins/leadnuts.scad>
|
||||
@@ -58,6 +58,7 @@ include <vitamins/pulleys.scad>
|
||||
include <vitamins/ring_terminals.scad>
|
||||
include <vitamins/rails.scad>
|
||||
include <vitamins/rod.scad>
|
||||
include <vitamins/rod_ends.scad>
|
||||
include <vitamins/servo_motors.scad>
|
||||
include <vitamins/shaft_couplings.scad>
|
||||
include <vitamins/sheets.scad>
|
||||
@@ -97,6 +98,7 @@ use <utils/hanging_hole.scad>
|
||||
use <utils/fillet.scad>
|
||||
use <utils/rounded_polygon.scad>
|
||||
use <utils/rounded_triangle.scad>
|
||||
use <utils/splines.scad>
|
||||
use <utils/layout.scad>
|
||||
use <utils/round.scad>
|
||||
use <utils/offset.scad>
|
||||
|
BIN
libtest.png
Before Width: | Height: | Size: 1001 KiB After Width: | Height: | Size: 1.0 MiB |
55
libtest.scad
@@ -25,7 +25,7 @@
|
||||
//! STL files for all the printed parts, DXF files for CNC routed parts in a project and a manual containing assembly
|
||||
//! instructions and exploded views by scraping markdown embedded in OpenSCAD comments, [see scripts](scripts/readme.md).
|
||||
//!
|
||||
//! A simple example project can be found [here](examples/MainsBreakOutBox/readme.md).
|
||||
//! A simple example project can be found [here](examples/MainsBreakOutBox/readme.md) and more complex examples [here](examples).
|
||||
//!
|
||||
//! For more examples of what it can make see the [gallery](gallery/readme.md).
|
||||
//!
|
||||
@@ -68,6 +68,7 @@ use <tests/fastons.scad>
|
||||
use <tests/fuseholder.scad>
|
||||
use <tests/gear_motors.scad>
|
||||
use <tests/geared_steppers.scad>
|
||||
use <tests/gridfinity.scad>
|
||||
use <tests/hot_ends.scad>
|
||||
use <tests/IECs.scad>
|
||||
use <tests/inserts.scad>
|
||||
@@ -98,6 +99,7 @@ use <tests/rails.scad>
|
||||
use <tests/ring_terminals.scad>
|
||||
use <tests/rockers.scad>
|
||||
use <tests/rod.scad>
|
||||
use <tests/rod_ends.scad>
|
||||
use <tests/SBR_rails.scad>
|
||||
use <tests/screws.scad>
|
||||
use <tests/sealing_strip.scad>
|
||||
@@ -156,7 +158,7 @@ cable_grommets_y = 0;
|
||||
translate([x5, cable_grommets_y])
|
||||
cable_grommets();
|
||||
|
||||
translate([x5, cable_grommets_y + 30])
|
||||
translate([x5, cable_grommets_y + 45])
|
||||
led_bezels();
|
||||
|
||||
translate([x5 + 50, cable_grommets_y])
|
||||
@@ -178,7 +180,7 @@ translate([x5, screw_knobs_y])
|
||||
screw_knobs();
|
||||
|
||||
knobs_y = screw_knobs_y + 40;
|
||||
translate([640, knobs_y])
|
||||
translate([660, knobs_y])
|
||||
printed_pulley_test();
|
||||
|
||||
translate([x5, knobs_y])
|
||||
@@ -203,7 +205,11 @@ pocket_y = handle_y + 70;
|
||||
translate([x5 + 65, pocket_y])
|
||||
pocket_handles();
|
||||
|
||||
hinge_y = pocket_y + 100;
|
||||
gridfinity_y = pocket_y + 100;
|
||||
translate([950, gridfinity_y])
|
||||
gridfinity_test();
|
||||
|
||||
hinge_y = gridfinity_y + 100;
|
||||
translate([x5, hinge_y]) {
|
||||
door_hinges()
|
||||
door_latches();
|
||||
@@ -220,10 +226,9 @@ box_y = pbox_y + 150;
|
||||
translate([950, box_y])
|
||||
box_test();
|
||||
|
||||
|
||||
inserts_y = 0;
|
||||
nuts_y = inserts_y + 20;
|
||||
washers_y = nuts_y + 140;
|
||||
washers_y = nuts_y + 160;
|
||||
screws_y = washers_y + 120;
|
||||
threaded_inserts_y = screws_y + 180;
|
||||
circlips_y = threaded_inserts_y + 30;
|
||||
@@ -293,6 +298,9 @@ translate([x0, pulleys_y])
|
||||
translate([x0, leadnuts_y])
|
||||
leadnuts();
|
||||
|
||||
translate([x0 + 170, leadnuts_y])
|
||||
rod_ends();
|
||||
|
||||
translate([x0 + 120, leadnuts_y])
|
||||
leadnuthousings();
|
||||
|
||||
@@ -306,7 +314,7 @@ translate([x0, linear_bearings_y]) {
|
||||
translate([x0, steppers_y])
|
||||
stepper_motors();
|
||||
|
||||
translate([x0 + 400, steppers_y])
|
||||
translate([x0 + 450, steppers_y])
|
||||
gear_motors();
|
||||
|
||||
translate([x0, sheets_y])
|
||||
@@ -362,9 +370,12 @@ components_y = toggles_y + 40;
|
||||
translate([x2, leds_y])
|
||||
leds();
|
||||
|
||||
translate([x2 + 35, leds_y])
|
||||
translate([x2 + 55, leds_y])
|
||||
ldrs();
|
||||
|
||||
translate([x2 + 87, leds_y])
|
||||
fuseholders();
|
||||
|
||||
translate([x2 + 8, carriers_y])
|
||||
carriers();
|
||||
|
||||
@@ -374,9 +385,6 @@ translate([x2, magnets_y])
|
||||
translate([x2 + 20, carriers_y])
|
||||
led_meters();
|
||||
|
||||
translate([x2 + 70, leds_y])
|
||||
fuseholders();
|
||||
|
||||
translate([x2, spades_y])
|
||||
spades();
|
||||
|
||||
@@ -402,15 +410,17 @@ translate([x2, components_y])
|
||||
components();
|
||||
|
||||
veroboard_y = 0;
|
||||
d_connectors_y = veroboard_y + 110;
|
||||
iecs_y = d_connectors_y + 80;
|
||||
d_connectors_y = veroboard_y + 120;
|
||||
iecs_y = d_connectors_y + 70;
|
||||
modules_y = iecs_y + 60;
|
||||
ssrs_y = modules_y + 80;
|
||||
blowers_y = ssrs_y + 60;
|
||||
hot_ends_y = blowers_y + 100;
|
||||
batteries_y = hot_ends_y + 55;
|
||||
hot_ends_y = blowers_y + 90;
|
||||
batteries_y = hot_ends_y + 65;
|
||||
panel_meters_y = batteries_y + 70;
|
||||
extrusions_y = panel_meters_y + 100;
|
||||
extrusions_y = panel_meters_y + 130;
|
||||
box_sections_y = extrusions_y + 70;
|
||||
|
||||
|
||||
translate([x3, veroboard_y])
|
||||
veroboard_test();
|
||||
@@ -421,10 +431,10 @@ translate([x3 + 50, veroboard_y + 20])
|
||||
translate([x3 + 160, ssrs_y])
|
||||
pcb_mounts();
|
||||
|
||||
translate([x3 + 145, veroboard_y + 16])
|
||||
translate([x3 + 145, veroboard_y])
|
||||
cameras();
|
||||
|
||||
translate([x3 + 145, d_connectors_y - 10])
|
||||
translate([x3 + 145, veroboard_y + 45])
|
||||
camera_housings();
|
||||
|
||||
translate([x3, d_connectors_y])
|
||||
@@ -454,7 +464,7 @@ translate([x3, ssrs_y]) {
|
||||
translate([x3, blowers_y])
|
||||
blowers();
|
||||
|
||||
translate([x3, batteries_y])
|
||||
translate([x2, batteries_y])
|
||||
batteries();
|
||||
|
||||
translate([x3 + 10, hot_ends_y])
|
||||
@@ -466,6 +476,9 @@ translate([x2, panel_meters_y])
|
||||
translate([x2, extrusions_y])
|
||||
extrusions();
|
||||
|
||||
translate([x2, box_sections_y])
|
||||
box_sections();
|
||||
|
||||
translate([370, transformers_y])
|
||||
transformers();
|
||||
|
||||
@@ -482,7 +495,6 @@ extrusion_brackets_y = rails_y + 250;
|
||||
sk_brackets_y = extrusion_brackets_y + 80;
|
||||
kp_pillow_blocks_y = sk_brackets_y + 60;
|
||||
bearing_blocks_y = kp_pillow_blocks_y + 60;
|
||||
box_sections_y = batteries_y;
|
||||
BLDC_y = bearing_blocks_y + 180;
|
||||
pot_y = bearing_blocks_y;
|
||||
cable_strip_y = sheets_y + 30;
|
||||
@@ -534,8 +546,5 @@ translate([x4, BLDC_y])
|
||||
translate([x4, pot_y])
|
||||
potentiometers();
|
||||
|
||||
translate([x2, box_sections_y])
|
||||
box_sections();
|
||||
|
||||
translate([x6, 125])
|
||||
light_strips();
|
||||
|
104
printed/gridfinity.scad
Normal file
@@ -0,0 +1,104 @@
|
||||
//
|
||||
// NopSCADlib Copyright Chris Palmer 2024
|
||||
// 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/>.
|
||||
//
|
||||
|
||||
//
|
||||
//! Generate storage bins compatible with Zack Freedman's Gridfinity design, see <https://www.youtube.com/watch?v=ra_9zU-mnl8&t=37s>
|
||||
//!
|
||||
//! Based on <https://gridfinity.xyz/specification>
|
||||
//!
|
||||
//! More examples [here](examples/Gridfinity).
|
||||
//
|
||||
include <../core.scad>
|
||||
use <../utils/rounded_cylinder.scad>
|
||||
|
||||
pitch = 42;
|
||||
z_step = 7;
|
||||
width = 41.5;
|
||||
|
||||
foot_w = 37.2;
|
||||
foot_h = 1.8;
|
||||
|
||||
lower_chamfer = 0.8;
|
||||
upper_chamfer = 2.15;
|
||||
|
||||
corner_r = 7.5 / 2;
|
||||
foot_r = 3.2 / 2;
|
||||
chamfer_r = 1.6 / 2;
|
||||
|
||||
function gridfinity_bin(name, grid_x, grid_y, grid_z) = [name, [grid_x, grid_y, grid_z], lower_chamfer]; //! Constructor
|
||||
|
||||
function gridfinity_bin_name(type) = type[0]; //! Name for the STL file
|
||||
function gridfinity_bin_size(type) = type[1]; //! Size in grid units
|
||||
|
||||
function gridfinity_base_z() = foot_h + lower_chamfer + upper_chamfer; //! height of base
|
||||
function gridfinity_corner_r() = corner_r; //! Outside corner radius
|
||||
|
||||
function gridfinity_bin_size_mm(type) = //! Overall size of the bin
|
||||
let(s = gridfinity_bin_size(type))
|
||||
[(s.x - 1) * pitch + width, (s.y - 1) * pitch + width, s.z * z_step];
|
||||
|
||||
module gridfinity_bin(type) { //! Create a gridfinity bin, bits to cut out are passed as a child
|
||||
size = gridfinity_bin_size(type);
|
||||
w1 = width - 2 * (lower_chamfer + upper_chamfer);
|
||||
w2 = width - 2 * upper_chamfer;
|
||||
|
||||
stl(gridfinity_bin_name(type)) {
|
||||
translate([-(size.x - 1) / 2 * pitch, -(size.y - 1) / 2 * pitch])
|
||||
for(x = [0 : size.x - 1], y = [0 : size.y - 1])
|
||||
translate([x * pitch, y * pitch]) {
|
||||
hull() {
|
||||
rounded_rectangle([w1, w1, eps], chamfer_r);
|
||||
|
||||
translate_z(lower_chamfer)
|
||||
rounded_rectangle([w2, w2, foot_h + eps], foot_r);
|
||||
}
|
||||
|
||||
hull() {
|
||||
translate_z(lower_chamfer + foot_h)
|
||||
rounded_rectangle([w2, w2, foot_h + eps], foot_r);
|
||||
|
||||
translate_z(lower_chamfer + foot_h + upper_chamfer)
|
||||
rounded_rectangle([width, width, eps], corner_r);
|
||||
}
|
||||
}
|
||||
|
||||
difference() {
|
||||
base_z = gridfinity_base_z();
|
||||
translate_z(base_z)
|
||||
rounded_rectangle([(size.x - 1) * pitch + width, (size.y - 1) * pitch + width, size.z * z_step - base_z], corner_r);
|
||||
|
||||
if($children)
|
||||
children(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module gridfinity_partition(type, cols = 1, rows = 1, wall = 1.6, iwall = squeezed_wall, bwall = 1, corner_r = 4) { //! Passed as child to hollow out specified partitions
|
||||
size = gridfinity_bin_size_mm(type);
|
||||
wx = (size.x - 2 * wall - (cols - 1) * iwall) / cols;
|
||||
wy = (size.y - 2 * wall - (rows - 1) * iwall) / rows;
|
||||
h = size.z - gridfinity_base_z() - bwall;
|
||||
|
||||
for(x = [0 : cols - 1], y = [0 : rows - 1])
|
||||
translate([-size.x / 2 + wall + x * (wx + iwall) + wx / 2,
|
||||
-size.y / 2 + wall + y * (wy + iwall) + wy / 2,
|
||||
size.z + eps])
|
||||
vflip()
|
||||
rounded_top_rectangle([wx, wy, h + eps], corner_r, corner_r);
|
||||
}
|
@@ -40,32 +40,72 @@ function led_bezel_hole_r(type) = //! Panel hole radius
|
||||
module led_bezel(type) { //! Makes the STL for the bezel
|
||||
led = led_bezel_led(type);
|
||||
stl(str(led[0],"_bezel")) {
|
||||
rl = led_diameter(led) / 2;
|
||||
rr = led_rim_dia(led) / 2;
|
||||
wall = led_bezel_wall(type);
|
||||
poly_tube(or = rr + wall + led_bezel_flange(type), ir = rl, h = led_bezel_flange_t(type)); // Flange
|
||||
poly_tube(or = rl + wall, ir = rl, h = led_height(led) - rl - led_rim_t(led)); // Tube up to LED flange
|
||||
poly_tube(or = corrected_radius(rr) + wall, ir = rr, h = led_bezel_height(type)); // Tube beyond the flange
|
||||
if(is_num(led_diameter(led))) {
|
||||
rl = led_diameter(led) / 2;
|
||||
rr = led_rim_dia(led) / 2;
|
||||
poly_tube(or = rr + wall + led_bezel_flange(type), ir = rl, h = led_bezel_flange_t(type)); // Flange
|
||||
poly_tube(or = rl + wall, ir = rl, h = led_height(led) - rl - led_rim_t(led)); // Tube up to LED flange
|
||||
poly_tube(or = corrected_radius(rr) + wall, ir = rr, h = led_bezel_height(type)); // Tube beyond the flange
|
||||
}
|
||||
else {
|
||||
linear_extrude(led_bezel_flange_t(type)) // Flange
|
||||
difference() {
|
||||
offset(wall + led_bezel_flange(type))
|
||||
square(led_rim_dia(led), true);
|
||||
|
||||
square(led_diameter(led), true);
|
||||
}
|
||||
|
||||
linear_extrude(led_height(led) - led_rim_t(led)) // Tube up to the LED flange
|
||||
difference() {
|
||||
offset(wall)
|
||||
square(led_diameter(led), true);
|
||||
|
||||
square(led_diameter(led), true);
|
||||
}
|
||||
|
||||
linear_extrude(led_bezel_height(type)) // Tube beyond the LED flange
|
||||
difference() {
|
||||
offset(wall)
|
||||
square(led_rim_dia(led), true);
|
||||
|
||||
square(led_rim_dia(led), true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module led_bezel_retainer(type) { //! Makes the STL for the retaining ring
|
||||
led = led_bezel_led(type);
|
||||
stl(str(led[0],"_bezel_retainer")) {
|
||||
ir = led_bezel_r(type);
|
||||
poly_tube(or = ir + led_bezel_wall(type), ir = ir, h = 4);
|
||||
wall = led_bezel_wall(type);
|
||||
if(is_num(led_diameter(led))) {
|
||||
ir = led_bezel_r(type);
|
||||
poly_tube(or = ir + wall, ir = ir, h = 4);
|
||||
}
|
||||
else
|
||||
linear_extrude(4)
|
||||
difference() {
|
||||
offset(2 * wall)
|
||||
square(led_rim_dia(led), true);
|
||||
|
||||
offset(wall)
|
||||
square(led_rim_dia(led), true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module led_bezel_assembly(type, colour = "red") {//! Led bezel with LED
|
||||
led = led_bezel_led(type);
|
||||
d = led_diameter(led);
|
||||
assembly(str(led[0], "_", colour, "_bezel")) {
|
||||
translate_z(led_bezel_flange_t(type)) {
|
||||
vflip()
|
||||
stl_colour(pp1_colour)
|
||||
led_bezel(type);
|
||||
|
||||
translate_z(-led_height(led) + led_diameter(led) / 2)
|
||||
translate_z(-led_height(led) + (is_num(d) ? d / 2 : 0))
|
||||
explode(-20)
|
||||
led(led, colour);
|
||||
}
|
||||
|
587
readme.md
@@ -6,7 +6,7 @@ There are also Python scripts to generate Bills of Materials (BOMs),
|
||||
STL files for all the printed parts, DXF files for CNC routed parts in a project and a manual containing assembly
|
||||
instructions and exploded views by scraping markdown embedded in OpenSCAD comments, [see scripts](scripts/readme.md).
|
||||
|
||||
A simple example project can be found [here](examples/MainsBreakOutBox/readme.md).
|
||||
A simple example project can be found [here](examples/MainsBreakOutBox/readme.md) and more complex examples [here](examples).
|
||||
|
||||
For more examples of what it can make see the [gallery](gallery/readme.md).
|
||||
|
||||
@@ -24,30 +24,31 @@ A list of changes classified as breaking, additions or fixes is maintained in [C
|
||||
<tr><td> <a href = "#7_segments">7_segments</a> </td><td> <a href = "#iecs">IECs</a> </td><td> <a href = "#radials">Radials</a> </td><td> <a href = "#box">Box</a> </td><td> <a href = "#annotation">Annotation</a> </td><td> <a href = "#bom">BOM</a> </td></tr>
|
||||
<tr><td> <a href = "#antennas">Antennas</a> </td><td> <a href = "#inserts">Inserts</a> </td><td> <a href = "#rails">Rails</a> </td><td> <a href = "#butt_box">Butt_box</a> </td><td> <a href = "#bezier">Bezier</a> </td><td> <a href = "#clip">Clip</a> </td></tr>
|
||||
<tr><td> <a href = "#axials">Axials</a> </td><td> <a href = "#jack">Jack</a> </td><td> <a href = "#ring_terminals">Ring_terminals</a> </td><td> <a href = "#cable_clip">Cable_clip</a> </td><td> <a href = "#catenary">Catenary</a> </td><td> <a href = "#global">Global</a> </td></tr>
|
||||
<tr><td> <a href = "#bldc_motors">BLDC_motors</a> </td><td> <a href = "#ldrs">LDRs</a> </td><td> <a href = "#rockers">Rockers</a> </td><td> <a href = "#cable_grommets">Cable_grommets</a> </td><td> <a href = "#core_xy">Core_xy</a> </td><td> <a href = "#polyholes">Polyholes</a> </td></tr>
|
||||
<tr><td> <a href = "#ball_bearings">Ball_bearings</a> </td><td> <a href = "#led_meters">LED_meters</a> </td><td> <a href = "#rod">Rod</a> </td><td> <a href = "#camera_housing">Camera_housing</a> </td><td> <a href = "#dogbones">Dogbones</a> </td><td> <a href = "#rounded_rectangle">Rounded_rectangle</a> </td></tr>
|
||||
<tr><td> <a href = "#batteries">Batteries</a> </td><td> <a href = "#leds">LEDs</a> </td><td> <a href = "#sbr_rails">SBR_rails</a> </td><td> <a href = "#carriers">Carriers</a> </td><td> <a href = "#fillet">Fillet</a> </td><td> <a href = "#sphere">Sphere</a> </td></tr>
|
||||
<tr><td> <a href = "#bearing_blocks">Bearing_blocks</a> </td><td> <a href = "#leadnuts">Leadnuts</a> </td><td> <a href = "#sk_brackets">SK_brackets</a> </td><td> <a href = "#corner_block">Corner_block</a> </td><td> <a href = "#gears">Gears</a> </td><td> <a href = "#teardrops">Teardrops</a> </td></tr>
|
||||
<tr><td> <a href = "#belts">Belts</a> </td><td> <a href = "#light_strips">Light_strips</a> </td><td> <a href = "#smds">SMDs</a> </td><td> <a href = "#door_hinge">Door_hinge</a> </td><td> <a href = "#hanging_hole">Hanging_hole</a> </td><td></td></tr>
|
||||
<tr><td> <a href = "#blowers">Blowers</a> </td><td> <a href = "#linear_bearings">Linear_bearings</a> </td><td> <a href = "#ssrs">SSRs</a> </td><td> <a href = "#door_latch">Door_latch</a> </td><td> <a href = "#horiholes">Horiholes</a> </td><td></td></tr>
|
||||
<tr><td> <a href = "#box_sections">Box_sections</a> </td><td> <a href = "#magnets">Magnets</a> </td><td> <a href = "#screws">Screws</a> </td><td> <a href = "#drag_chain">Drag_chain</a> </td><td> <a href = "#layout">Layout</a> </td><td></td></tr>
|
||||
<tr><td> <a href = "#bulldogs">Bulldogs</a> </td><td> <a href = "#mains_sockets">Mains_sockets</a> </td><td> <a href = "#sealing_strip">Sealing_strip</a> </td><td> <a href = "#fan_guard">Fan_guard</a> </td><td> <a href = "#maths">Maths</a> </td><td></td></tr>
|
||||
<tr><td> <a href = "#buttons">Buttons</a> </td><td> <a href = "#microswitches">Microswitches</a> </td><td> <a href = "#servo_motors">Servo_motors</a> </td><td> <a href = "#fixing_block">Fixing_block</a> </td><td> <a href = "#offset">Offset</a> </td><td></td></tr>
|
||||
<tr><td> <a href = "#cable_strips">Cable_strips</a> </td><td> <a href = "#microview">Microview</a> </td><td> <a href = "#shaft_couplings">Shaft_couplings</a> </td><td> <a href = "#flat_hinge">Flat_hinge</a> </td><td> <a href = "#pcb_utils">PCB_utils</a> </td><td></td></tr>
|
||||
<tr><td> <a href = "#cameras">Cameras</a> </td><td> <a href = "#modules">Modules</a> </td><td> <a href = "#sheets">Sheets</a> </td><td> <a href = "#foot">Foot</a> </td><td> <a href = "#quadrant">Quadrant</a> </td><td></td></tr>
|
||||
<tr><td> <a href = "#circlips">Circlips</a> </td><td> <a href = "#nuts">Nuts</a> </td><td> <a href = "#spades">Spades</a> </td><td> <a href = "#handle">Handle</a> </td><td> <a href = "#round">Round</a> </td><td></td></tr>
|
||||
<tr><td> <a href = "#components">Components</a> </td><td> <a href = "#o_ring">O_ring</a> </td><td> <a href = "#spools">Spools</a> </td><td> <a href = "#knob">Knob</a> </td><td> <a href = "#rounded_cylinder">Rounded_cylinder</a> </td><td></td></tr>
|
||||
<tr><td> <a href = "#dip">DIP</a> </td><td> <a href = "#opengrab">Opengrab</a> </td><td> <a href = "#springs">Springs</a> </td><td> <a href = "#led_bezel">LED_bezel</a> </td><td> <a href = "#rounded_polygon">Rounded_polygon</a> </td><td></td></tr>
|
||||
<tr><td> <a href = "#d_connectors">D_connectors</a> </td><td> <a href = "#pcb">PCB</a> </td><td> <a href = "#stepper_motors">Stepper_motors</a> </td><td> <a href = "#pcb_mount">PCB_mount</a> </td><td> <a href = "#rounded_triangle">Rounded_triangle</a> </td><td></td></tr>
|
||||
<tr><td> <a href = "#displays">Displays</a> </td><td> <a href = "#pcbs">PCBs</a> </td><td> <a href = "#swiss_clips">Swiss_clips</a> </td><td> <a href = "#psu_shroud">PSU_shroud</a> </td><td> <a href = "#sector">Sector</a> </td><td></td></tr>
|
||||
<tr><td> <a href = "#extrusion_brackets">Extrusion_brackets</a> </td><td> <a href = "#psus">PSUs</a> </td><td> <a href = "#terminals">Terminals</a> </td><td> <a href = "#pocket_handle">Pocket_handle</a> </td><td> <a href = "#sweep">Sweep</a> </td><td></td></tr>
|
||||
<tr><td> <a href = "#extrusions">Extrusions</a> </td><td> <a href = "#panel_meters">Panel_meters</a> </td><td> <a href = "#toggles">Toggles</a> </td><td> <a href = "#press_fit">Press_fit</a> </td><td> <a href = "#thread">Thread</a> </td><td></td></tr>
|
||||
<tr><td> <a href = "#fans">Fans</a> </td><td> <a href = "#photo_interrupters">Photo_interrupters</a> </td><td> <a href = "#transformers">Transformers</a> </td><td> <a href = "#printed_box">Printed_box</a> </td><td> <a href = "#tube">Tube</a> </td><td></td></tr>
|
||||
<tr><td> <a href = "#fastons">Fastons</a> </td><td> <a href = "#pillars">Pillars</a> </td><td> <a href = "#ttracks">Ttracks</a> </td><td> <a href = "#printed_pulleys">Printed_pulleys</a> </td><td></td><td></td></tr>
|
||||
<tr><td> <a href = "#fuseholder">Fuseholder</a> </td><td> <a href = "#pillow_blocks">Pillow_blocks</a> </td><td> <a href = "#tubings">Tubings</a> </td><td> <a href = "#ribbon_clamp">Ribbon_clamp</a> </td><td></td><td></td></tr>
|
||||
<tr><td> <a href = "#gear_motors">Gear_motors</a> </td><td> <a href = "#pin_headers">Pin_headers</a> </td><td> <a href = "#variacs">Variacs</a> </td><td> <a href = "#ssr_shroud">SSR_shroud</a> </td><td></td><td></td></tr>
|
||||
<tr><td> <a href = "#geared_steppers">Geared_steppers</a> </td><td> <a href = "#potentiometers">Potentiometers</a> </td><td> <a href = "#veroboard">Veroboard</a> </td><td> <a href = "#screw_knob">Screw_knob</a> </td><td></td><td></td></tr>
|
||||
<tr><td> <a href = "#green_terminals">Green_terminals</a> </td><td> <a href = "#pulleys">Pulleys</a> </td><td> <a href = "#washers">Washers</a> </td><td> <a href = "#socket_box">Socket_box</a> </td><td></td><td></td></tr>
|
||||
<tr><td> <a href = "#bldc_motors">BLDC_motors</a> </td><td> <a href = "#ldrs">LDRs</a> </td><td> <a href = "#rockers">Rockers</a> </td><td> <a href = "#cable_grommets">Cable_grommets</a> </td><td> <a href = "#chamfer">Chamfer</a> </td><td> <a href = "#polyholes">Polyholes</a> </td></tr>
|
||||
<tr><td> <a href = "#ball_bearings">Ball_bearings</a> </td><td> <a href = "#led_meters">LED_meters</a> </td><td> <a href = "#rod">Rod</a> </td><td> <a href = "#camera_housing">Camera_housing</a> </td><td> <a href = "#core_xy">Core_xy</a> </td><td> <a href = "#rounded_rectangle">Rounded_rectangle</a> </td></tr>
|
||||
<tr><td> <a href = "#batteries">Batteries</a> </td><td> <a href = "#leds">LEDs</a> </td><td> <a href = "#rod_ends">Rod_ends</a> </td><td> <a href = "#carriers">Carriers</a> </td><td> <a href = "#dimension">Dimension</a> </td><td> <a href = "#sphere">Sphere</a> </td></tr>
|
||||
<tr><td> <a href = "#bearing_blocks">Bearing_blocks</a> </td><td> <a href = "#leadnuts">Leadnuts</a> </td><td> <a href = "#sbr_rails">SBR_rails</a> </td><td> <a href = "#corner_block">Corner_block</a> </td><td> <a href = "#dogbones">Dogbones</a> </td><td> <a href = "#teardrops">Teardrops</a> </td></tr>
|
||||
<tr><td> <a href = "#belts">Belts</a> </td><td> <a href = "#light_strips">Light_strips</a> </td><td> <a href = "#sk_brackets">SK_brackets</a> </td><td> <a href = "#door_hinge">Door_hinge</a> </td><td> <a href = "#fillet">Fillet</a> </td><td></td></tr>
|
||||
<tr><td> <a href = "#blowers">Blowers</a> </td><td> <a href = "#linear_bearings">Linear_bearings</a> </td><td> <a href = "#smds">SMDs</a> </td><td> <a href = "#door_latch">Door_latch</a> </td><td> <a href = "#gears">Gears</a> </td><td></td></tr>
|
||||
<tr><td> <a href = "#box_sections">Box_sections</a> </td><td> <a href = "#magnets">Magnets</a> </td><td> <a href = "#ssrs">SSRs</a> </td><td> <a href = "#drag_chain">Drag_chain</a> </td><td> <a href = "#hanging_hole">Hanging_hole</a> </td><td></td></tr>
|
||||
<tr><td> <a href = "#bulldogs">Bulldogs</a> </td><td> <a href = "#mains_sockets">Mains_sockets</a> </td><td> <a href = "#screws">Screws</a> </td><td> <a href = "#fan_guard">Fan_guard</a> </td><td> <a href = "#horiholes">Horiholes</a> </td><td></td></tr>
|
||||
<tr><td> <a href = "#buttons">Buttons</a> </td><td> <a href = "#microswitches">Microswitches</a> </td><td> <a href = "#sealing_strip">Sealing_strip</a> </td><td> <a href = "#fixing_block">Fixing_block</a> </td><td> <a href = "#layout">Layout</a> </td><td></td></tr>
|
||||
<tr><td> <a href = "#cable_strips">Cable_strips</a> </td><td> <a href = "#microview">Microview</a> </td><td> <a href = "#servo_motors">Servo_motors</a> </td><td> <a href = "#flat_hinge">Flat_hinge</a> </td><td> <a href = "#maths">Maths</a> </td><td></td></tr>
|
||||
<tr><td> <a href = "#cameras">Cameras</a> </td><td> <a href = "#modules">Modules</a> </td><td> <a href = "#shaft_couplings">Shaft_couplings</a> </td><td> <a href = "#foot">Foot</a> </td><td> <a href = "#offset">Offset</a> </td><td></td></tr>
|
||||
<tr><td> <a href = "#circlips">Circlips</a> </td><td> <a href = "#nuts">Nuts</a> </td><td> <a href = "#sheets">Sheets</a> </td><td> <a href = "#gridfinity">Gridfinity</a> </td><td> <a href = "#pcb_utils">PCB_utils</a> </td><td></td></tr>
|
||||
<tr><td> <a href = "#components">Components</a> </td><td> <a href = "#o_ring">O_ring</a> </td><td> <a href = "#spades">Spades</a> </td><td> <a href = "#handle">Handle</a> </td><td> <a href = "#quadrant">Quadrant</a> </td><td></td></tr>
|
||||
<tr><td> <a href = "#dip">DIP</a> </td><td> <a href = "#opengrab">Opengrab</a> </td><td> <a href = "#spools">Spools</a> </td><td> <a href = "#knob">Knob</a> </td><td> <a href = "#round">Round</a> </td><td></td></tr>
|
||||
<tr><td> <a href = "#d_connectors">D_connectors</a> </td><td> <a href = "#pcb">PCB</a> </td><td> <a href = "#springs">Springs</a> </td><td> <a href = "#led_bezel">LED_bezel</a> </td><td> <a href = "#rounded_cylinder">Rounded_cylinder</a> </td><td></td></tr>
|
||||
<tr><td> <a href = "#displays">Displays</a> </td><td> <a href = "#pcbs">PCBs</a> </td><td> <a href = "#stepper_motors">Stepper_motors</a> </td><td> <a href = "#pcb_mount">PCB_mount</a> </td><td> <a href = "#rounded_polygon">Rounded_polygon</a> </td><td></td></tr>
|
||||
<tr><td> <a href = "#extrusion_brackets">Extrusion_brackets</a> </td><td> <a href = "#psus">PSUs</a> </td><td> <a href = "#swiss_clips">Swiss_clips</a> </td><td> <a href = "#psu_shroud">PSU_shroud</a> </td><td> <a href = "#rounded_triangle">Rounded_triangle</a> </td><td></td></tr>
|
||||
<tr><td> <a href = "#extrusions">Extrusions</a> </td><td> <a href = "#panel_meters">Panel_meters</a> </td><td> <a href = "#terminals">Terminals</a> </td><td> <a href = "#pocket_handle">Pocket_handle</a> </td><td> <a href = "#sector">Sector</a> </td><td></td></tr>
|
||||
<tr><td> <a href = "#fans">Fans</a> </td><td> <a href = "#photo_interrupters">Photo_interrupters</a> </td><td> <a href = "#toggles">Toggles</a> </td><td> <a href = "#press_fit">Press_fit</a> </td><td> <a href = "#splines">Splines</a> </td><td></td></tr>
|
||||
<tr><td> <a href = "#fastons">Fastons</a> </td><td> <a href = "#pillars">Pillars</a> </td><td> <a href = "#transformers">Transformers</a> </td><td> <a href = "#printed_box">Printed_box</a> </td><td> <a href = "#sweep">Sweep</a> </td><td></td></tr>
|
||||
<tr><td> <a href = "#fuseholder">Fuseholder</a> </td><td> <a href = "#pillow_blocks">Pillow_blocks</a> </td><td> <a href = "#ttracks">Ttracks</a> </td><td> <a href = "#printed_pulleys">Printed_pulleys</a> </td><td> <a href = "#thread">Thread</a> </td><td></td></tr>
|
||||
<tr><td> <a href = "#gear_motors">Gear_motors</a> </td><td> <a href = "#pin_headers">Pin_headers</a> </td><td> <a href = "#tubings">Tubings</a> </td><td> <a href = "#ribbon_clamp">Ribbon_clamp</a> </td><td> <a href = "#tube">Tube</a> </td><td></td></tr>
|
||||
<tr><td> <a href = "#geared_steppers">Geared_steppers</a> </td><td> <a href = "#potentiometers">Potentiometers</a> </td><td> <a href = "#variacs">Variacs</a> </td><td> <a href = "#ssr_shroud">SSR_shroud</a> </td><td></td><td></td></tr>
|
||||
<tr><td> <a href = "#green_terminals">Green_terminals</a> </td><td> <a href = "#pulleys">Pulleys</a> </td><td> <a href = "#veroboard">Veroboard</a> </td><td> <a href = "#screw_knob">Screw_knob</a> </td><td></td><td></td></tr>
|
||||
<tr><td> <a href = "#ht_pipes">HT_pipes</a> </td><td></td><td> <a href = "#washers">Washers</a> </td><td> <a href = "#socket_box">Socket_box</a> </td><td></td><td></td></tr>
|
||||
<tr><td> <a href = "#hot_ends">Hot_ends</a> </td><td></td><td> <a href = "#wire">Wire</a> </td><td> <a href = "#strap_handle">Strap_handle</a> </td><td></td><td></td></tr>
|
||||
<tr><td> <a href = "#hygrometer">Hygrometer</a> </td><td></td><td> <a href = "#zipties">Zipties</a> </td><td></td><td></td><td></td></tr>
|
||||
</table>
|
||||
@@ -233,13 +234,16 @@ Also single bearing balls are modelled as just a silver sphere and a BOM entry.
|
||||
| 1 | `ball_bearing(BB686)` | Ball bearing 686ZZ 6mm x 13mm x 5mm |
|
||||
| 1 | `ball_bearing(BB696)` | Ball bearing 696ZZ 6mm x 16mm x 5mm |
|
||||
| 1 | `ball_bearing(BBF623)` | Ball bearing F623-2RS 3mm x 10mm x 4mm |
|
||||
| 1 | `ball_bearing(BBF625)` | Ball bearing F625ZZ 5mm x 16mm x 5mm |
|
||||
| 1 | `ball_bearing(BBF693)` | Ball bearing F693ZZ 3mm x 8mm x 3mm |
|
||||
| 1 | `ball_bearing(BBF695)` | Ball bearing F695ZZ 5mm x 13mm x 4mm |
|
||||
| 1 | `ball_bearing(BBMR63)` | Ball bearing MR63ZZ 3mm x 6mm x 2.5mm |
|
||||
| 1 | `ball_bearing(BBMR83)` | Ball bearing MR83ZZ 3mm x 8mm x 3mm |
|
||||
| 1 | `ball_bearing(BBMR85)` | Ball bearing MR85ZZ 5mm x 8mm x 2.5mm |
|
||||
| 1 | `ball_bearing(BBMR93)` | Ball bearing MR93ZZ 3mm x 9mm x 4mm |
|
||||
| 1 | `ball_bearing(BBMR95)` | Ball bearing MR95ZZ 5mm x 9mm x 3mm |
|
||||
| 1 | `ball_bearing(BBSMR95)` | Ball bearing SMR95ZZ 5mm x 9mm x 2.5mm |
|
||||
| 7 | ` bearing_ball(3)` | Steel ball 3mm |
|
||||
| 8 | ` bearing_ball(3)` | Steel ball 3mm |
|
||||
|
||||
|
||||
<a href="#top">Top</a>
|
||||
@@ -271,6 +275,7 @@ exposing enough information to make a battery box.
|
||||
| `battery_neg_dia(type)` | Negative terminal diameter |
|
||||
| `battery_pos_dia(type)` | Positive terminal diameter |
|
||||
| `battery_pos_height(type)` | Positive terminal height above the casing |
|
||||
| `battery_type(type)` | Battery type |
|
||||
| `battery_usb_offset(type)` | USB connector offset from the top |
|
||||
| `contact_height(type)` | Height of the flat part |
|
||||
| `contact_neg(type)` | Negative spring height above the plate when compressed and the spring type |
|
||||
@@ -292,8 +297,8 @@ exposing enough information to make a battery box.
|
||||
### Vitamins
|
||||
| Qty | Module call | BOM entry |
|
||||
| ---:|:--- |:---|
|
||||
| 7 | `battery_contact(bcontact, false)` | Battery negative contact |
|
||||
| 7 | `battery_contact(bcontact, true)` | Battery positive contact |
|
||||
| 10 | `battery_contact(bcontact, false)` | Battery negative contact |
|
||||
| 10 | `battery_contact(bcontact, true)` | Battery positive contact |
|
||||
| 1 | `battery(A23CELL)` | Cell A23 12v |
|
||||
| 1 | `battery(AACELL)` | Cell AA |
|
||||
| 1 | `battery(AAACELL)` | Cell AAA |
|
||||
@@ -301,6 +306,9 @@ exposing enough information to make a battery box.
|
||||
| 1 | `battery(DCELL)` | Cell D |
|
||||
| 1 | `battery(LUMINTOP)` | Cell LUMINTOP 18650 LION with charger |
|
||||
| 1 | `battery(S25R18650)` | Cell Samsung 25R 18650 LION |
|
||||
| 1 | `battery(L16340)` | Li-Ion/LiFePo4 16340 3.2v |
|
||||
| 1 | `battery(L32700)` | Li-Ion/LiFePo4 32700 3.2v |
|
||||
| 1 | `battery(L4680)` | Li-Ion/LiFePo4 4680 3.2v |
|
||||
|
||||
|
||||
<a href="#top">Top</a>
|
||||
@@ -1002,9 +1010,11 @@ D-connectors. Can be any number of ways, male or female, solder buckets, PCB mou
|
||||
| 1 | `d_socket(DCONN15, idc = true)` | D-type 15 way IDC socket |
|
||||
| 1 | `d_plug(DCONN25, pcb = true)` | D-type 25 way PCB mount plug |
|
||||
| 1 | `d_socket(DCONN25, pcb = true)` | D-type 25 way PCB mount socket |
|
||||
| 1 | `d_plug(DCONN37)` | D-type 37 way plug |
|
||||
| 1 | `d_socket(DCONN37)` | D-type 37 way socket |
|
||||
| 1 | `d_plug(DCONN9)` | D-type 9 way plug |
|
||||
| 1 | `d_socket(DCONN9)` | D-type 9 way socket |
|
||||
| 6 | `d_pillar()` | D-type connector pillar |
|
||||
| 8 | `d_pillar()` | D-type connector pillar |
|
||||
|
||||
|
||||
<a href="#top">Top</a>
|
||||
@@ -1096,7 +1106,7 @@ LCD displays.
|
||||
| 1 | `display(BigTreeTech_TFT35v3_0)` | BigTreeTech TFT35 v3.0 |
|
||||
| 1 | `display(HDMI5)` | HDMI display 5" |
|
||||
| 1 | `display(TFT128x160)` | LCD TFT ST7735 display 128x160 |
|
||||
| 1 | `display(LCD1602A)` | LCD display 1602A |
|
||||
| 2 | `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" |
|
||||
@@ -1459,7 +1469,7 @@ Geared tin can steppers
|
||||
### Modules
|
||||
| Module | Description |
|
||||
|:--- |:--- |
|
||||
| `geared_stepper(type)` | Draw the specified geared stepper |
|
||||
| `geared_stepper(type, angle = 0)` | Draw the specified geared stepper with optional shaft angle. |
|
||||
| `geared_stepper_screw_positions(type)` | Place children at the screw positions |
|
||||
|
||||

|
||||
@@ -1585,6 +1595,99 @@ Needs updating as mostly obsolete versions.
|
||||
| 4 | `ziptie(small_ziptie)` | Ziptie 2.5mm x 100mm min length |
|
||||
|
||||
|
||||
<a href="#top">Top</a>
|
||||
|
||||
---
|
||||
<a name="ht_pipes"></a>
|
||||
## HT_pipes
|
||||
Parametric PVC HT water pipes commonly found in hardware stores around germany. Great for building weather proof cases for IoT things.
|
||||
|
||||
[vitamins/ht_pipes.scad](vitamins/ht_pipes.scad) Object definitions.
|
||||
|
||||
[vitamins/ht_pipe.scad](vitamins/ht_pipe.scad) Implementation.
|
||||
|
||||
[tests/HT_pipes.scad](tests/HT_pipes.scad) Code for this example.
|
||||
|
||||
### Properties
|
||||
| Function | Description |
|
||||
|:--- |:--- |
|
||||
| `pipe_length(type)` | Pipe length |
|
||||
| `pipe_od(type)` | Outside diameter |
|
||||
| `pipe_td(type)` | T-Pipe diameter |
|
||||
| `pipe_wall(type)` | Wall thickness |
|
||||
|
||||
### Modules
|
||||
| Module | Description |
|
||||
|:--- |:--- |
|
||||
| `ht_cap(type)` | Draw specified cap |
|
||||
| `ht_pipe(type)` | Draw specified pipe |
|
||||
| `ht_tpipe(type)` | Draw specified T-pipe |
|
||||
|
||||

|
||||
|
||||
### Vitamins
|
||||
| Qty | Module call | BOM entry |
|
||||
| ---:|:--- |:---|
|
||||
| 1 | `ht_cap(HT_110_cap)` | PVC Waterpipe - HT 110 cap |
|
||||
| 1 | `ht_pipe(HT_110_pipe_1000)` | PVC Waterpipe - HT 110 pipe 1000 mm |
|
||||
| 1 | `ht_pipe(HT_110_pipe_150)` | PVC Waterpipe - HT 110 pipe 150 mm |
|
||||
| 1 | `ht_pipe(HT_110_pipe_1500)` | PVC Waterpipe - HT 110 pipe 1500 mm |
|
||||
| 1 | `ht_pipe(HT_110_pipe_2000)` | PVC Waterpipe - HT 110 pipe 2000 mm |
|
||||
| 1 | `ht_pipe(HT_110_pipe_250)` | PVC Waterpipe - HT 110 pipe 250 mm |
|
||||
| 1 | `ht_pipe(HT_110_pipe_500)` | PVC Waterpipe - HT 110 pipe 500 mm |
|
||||
| 1 | `ht_cap(HT_125_cap)` | PVC Waterpipe - HT 125 cap |
|
||||
| 1 | `ht_pipe(HT_125_pipe_1000)` | PVC Waterpipe - HT 125 pipe 1000 mm |
|
||||
| 1 | `ht_pipe(HT_125_pipe_150)` | PVC Waterpipe - HT 125 pipe 150 mm |
|
||||
| 1 | `ht_pipe(HT_125_pipe_1500)` | PVC Waterpipe - HT 125 pipe 1500 mm |
|
||||
| 1 | `ht_pipe(HT_125_pipe_2000)` | PVC Waterpipe - HT 125 pipe 2000 mm |
|
||||
| 1 | `ht_pipe(HT_125_pipe_250)` | PVC Waterpipe - HT 125 pipe 250 mm |
|
||||
| 1 | `ht_pipe(HT_125_pipe_500)` | PVC Waterpipe - HT 125 pipe 500 mm |
|
||||
| 1 | `ht_cap(HT_160_cap)` | PVC Waterpipe - HT 160 cap |
|
||||
| 1 | `ht_pipe(HT_160_pipe_1000)` | PVC Waterpipe - HT 160 pipe 1000 mm |
|
||||
| 1 | `ht_pipe(HT_160_pipe_150)` | PVC Waterpipe - HT 160 pipe 150 mm |
|
||||
| 1 | `ht_pipe(HT_160_pipe_1500)` | PVC Waterpipe - HT 160 pipe 1500 mm |
|
||||
| 1 | `ht_pipe(HT_160_pipe_2000)` | PVC Waterpipe - HT 160 pipe 2000 mm |
|
||||
| 1 | `ht_pipe(HT_160_pipe_250)` | PVC Waterpipe - HT 160 pipe 250 mm |
|
||||
| 1 | `ht_pipe(HT_160_pipe_500)` | PVC Waterpipe - HT 160 pipe 500 mm |
|
||||
| 1 | `ht_cap(HT_32_cap)` | PVC Waterpipe - HT 32 cap |
|
||||
| 1 | `ht_pipe(HT_32_pipe_1000)` | PVC Waterpipe - HT 32 pipe 1000 mm |
|
||||
| 1 | `ht_pipe(HT_32_pipe_150)` | PVC Waterpipe - HT 32 pipe 150 mm |
|
||||
| 1 | `ht_pipe(HT_32_pipe_1500)` | PVC Waterpipe - HT 32 pipe 1500 mm |
|
||||
| 1 | `ht_pipe(HT_32_pipe_2000)` | PVC Waterpipe - HT 32 pipe 2000 mm |
|
||||
| 1 | `ht_pipe(HT_32_pipe_250)` | PVC Waterpipe - HT 32 pipe 250 mm |
|
||||
| 1 | `ht_pipe(HT_32_pipe_500)` | PVC Waterpipe - HT 32 pipe 500 mm |
|
||||
| 1 | `ht_cap(HT_40_cap)` | PVC Waterpipe - HT 40 cap |
|
||||
| 1 | `ht_pipe(HT_40_pipe_1000)` | PVC Waterpipe - HT 40 pipe 1000 mm |
|
||||
| 1 | `ht_pipe(HT_40_pipe_150)` | PVC Waterpipe - HT 40 pipe 150 mm |
|
||||
| 1 | `ht_pipe(HT_40_pipe_1500)` | PVC Waterpipe - HT 40 pipe 1500 mm |
|
||||
| 1 | `ht_pipe(HT_40_pipe_2000)` | PVC Waterpipe - HT 40 pipe 2000 mm |
|
||||
| 1 | `ht_pipe(HT_40_pipe_250)` | PVC Waterpipe - HT 40 pipe 250 mm |
|
||||
| 1 | `ht_pipe(HT_40_pipe_500)` | PVC Waterpipe - HT 40 pipe 500 mm |
|
||||
| 1 | `ht_tpipe(HT_50_tpipe)` | PVC Waterpipe - HT 50 T pipe |
|
||||
| 1 | `ht_cap(HT_50_cap)` | PVC Waterpipe - HT 50 cap |
|
||||
| 1 | `ht_pipe(HT_50_pipe_1000)` | PVC Waterpipe - HT 50 pipe 1000 mm |
|
||||
| 1 | `ht_pipe(HT_50_pipe_150)` | PVC Waterpipe - HT 50 pipe 150 mm |
|
||||
| 1 | `ht_pipe(HT_50_pipe_1500)` | PVC Waterpipe - HT 50 pipe 1500 mm |
|
||||
| 1 | `ht_pipe(HT_50_pipe_2000)` | PVC Waterpipe - HT 50 pipe 2000 mm |
|
||||
| 1 | `ht_pipe(HT_50_pipe_250)` | PVC Waterpipe - HT 50 pipe 250 mm |
|
||||
| 1 | `ht_pipe(HT_50_pipe_500)` | PVC Waterpipe - HT 50 pipe 500 mm |
|
||||
| 1 | `ht_tpipe(HT_50_40_tpipe)` | PVC Waterpipe - HT 50/40 T pipe |
|
||||
| 1 | `ht_cap(HT_75_cap)` | PVC Waterpipe - HT 75 cap |
|
||||
| 1 | `ht_pipe(HT_75_pipe_1000)` | PVC Waterpipe - HT 75 pipe 1000 mm |
|
||||
| 1 | `ht_pipe(HT_75_pipe_150)` | PVC Waterpipe - HT 75 pipe 150 mm |
|
||||
| 1 | `ht_pipe(HT_75_pipe_1500)` | PVC Waterpipe - HT 75 pipe 1500 mm |
|
||||
| 1 | `ht_pipe(HT_75_pipe_2000)` | PVC Waterpipe - HT 75 pipe 2000 mm |
|
||||
| 1 | `ht_pipe(HT_75_pipe_250)` | PVC Waterpipe - HT 75 pipe 250 mm |
|
||||
| 1 | `ht_pipe(HT_75_pipe_500)` | PVC Waterpipe - HT 75 pipe 500 mm |
|
||||
| 1 | `ht_cap(HT_90_cap)` | PVC Waterpipe - HT 90 cap |
|
||||
| 1 | `ht_pipe(HT_90_pipe_1000)` | PVC Waterpipe - HT 90 pipe 1000 mm |
|
||||
| 1 | `ht_pipe(HT_90_pipe_150)` | PVC Waterpipe - HT 90 pipe 150 mm |
|
||||
| 1 | `ht_pipe(HT_90_pipe_1500)` | PVC Waterpipe - HT 90 pipe 1500 mm |
|
||||
| 1 | `ht_pipe(HT_90_pipe_2000)` | PVC Waterpipe - HT 90 pipe 2000 mm |
|
||||
| 1 | `ht_pipe(HT_90_pipe_250)` | PVC Waterpipe - HT 90 pipe 250 mm |
|
||||
| 1 | `ht_pipe(HT_90_pipe_500)` | PVC Waterpipe - HT 90 pipe 500 mm |
|
||||
|
||||
|
||||
<a href="#top">Top</a>
|
||||
|
||||
---
|
||||
@@ -2009,6 +2112,7 @@ Standard domed through hole LEDs. Can specify colour and lead length.
|
||||
| 1 | `led(LED3mm, "green")` | LED 3 mm green |
|
||||
| 1 | `led(LED5mm, "blue")` | LED 5 mm blue |
|
||||
| 1 | `led(LED8mm)` | LED 8 mm red |
|
||||
| 1 | `led(LED5x2mm, "green")` | LED [5, 2] mm green |
|
||||
|
||||
|
||||
<a href="#top">Top</a>
|
||||
@@ -2356,6 +2460,10 @@ Default is steel but can be drawn as brass or nylon. A utility for making nut tr
|
||||
|
||||
If a nut is given a child then it gets placed on its top surface.
|
||||
|
||||
The following diagram shows you the parameters for drawing a sliding_t_nut:
|
||||
|
||||

|
||||
|
||||
[vitamins/nuts.scad](vitamins/nuts.scad) Object definitions.
|
||||
|
||||
[vitamins/nut.scad](vitamins/nut.scad) Implementation.
|
||||
@@ -2374,6 +2482,8 @@ If a nut is given a child then it gets placed on its top surface.
|
||||
| `nut_square_width(type)` | Width of the square nut |
|
||||
| `nut_trap_depth(type)` | Depth of nut trap |
|
||||
| `nut_washer(type)` | Corresponding washer |
|
||||
| `nut_weld_base_r(type)` | Weld nut base radius |
|
||||
| `nut_weld_base_t(type)` | Weld nut base thickness |
|
||||
|
||||
### Functions
|
||||
| Function | Description |
|
||||
@@ -2393,7 +2503,9 @@ If a nut is given a child then it gets placed on its top surface.
|
||||
| `nut_and_washer(type, nyloc)` | Draw nut with corresponding washer |
|
||||
| `nut_square(type, brass = false, nylon = false)` | Draw specified square nut |
|
||||
| `nut_trap(screw, nut, depth = 0, horizontal = false, supported = false, h = 200)` | Make a nut trap |
|
||||
| `sliding_ball_t_nut(size, w, h, r)` | Draw a sliding ball t nut |
|
||||
| `sliding_t_nut(type)` | Draw a sliding T nut, T nut with a spring loaded ball or a hammer nut. |
|
||||
| `weld_nut(type)` | draw a weld nut |
|
||||
| `wingnut(type)` | Draw a wingnut |
|
||||
|
||||

|
||||
@@ -2436,6 +2548,8 @@ If a nut is given a child then it gets placed on its top surface.
|
||||
| 1 | `nut(M8_nut, nyloc = true)` | Nut M8 x 6.5mm nyloc |
|
||||
| 1 | `nut(M8nS_thin_nut)` | Nut M8nS 13 x 4mm |
|
||||
| 1 | `washer(M6_washer)` | Washer M6 x 12.5mm x 1.5mm |
|
||||
| 1 | `weld nut(M4_weld_nut)` | Weld Nut M4 |
|
||||
| 1 | `weld nut(M6_weld_nut)` | Weld Nut M6 |
|
||||
| 1 | `wingnut(M4_wingnut)` | Wingnut M4 |
|
||||
|
||||
|
||||
@@ -2668,6 +2782,9 @@ PCBs and perfboard with optional components. The shape can be a rectangle with o
|
||||
| 1 | `potentiometer(BTT_encoder)` | BTT_encoder |
|
||||
| 1 | `box_header(2p54header, 4, 2)` | Box header 4 x 2 |
|
||||
| 1 | `box_header(2p54header, 4, 2, right_angle = true)` | Box header 4 x 2 right angle |
|
||||
| 1 | `rd_disc(10mm_disc, "1nF Y2")` | Ceramic capacitor, 10mm_disc 1nF Y2 |
|
||||
| 1 | `rd_disc(6p4mm_disc, "100n")` | Ceramic capacitor, 6p4mm_disc 100n |
|
||||
| 1 | `rd_cm_choke(ATX_CM_CHOKE ,"3.5mH")` | Common mode choke 3.5mH |
|
||||
| 1 | `rd_xtal(ACT1100, "40MHz")` | Crystal ACT1100 40MHz |
|
||||
| 1 | `rd_xtal(ACT1700, "80MHz")` | Crystal ACT1700 80MHz |
|
||||
| 1 | `rd_xtal(C_002RX, "60KHz")` | Crystal C_002RX 60KHz |
|
||||
@@ -2675,14 +2792,15 @@ PCBs and perfboard with optional components. The shape can be a rectangle with o
|
||||
| 1 | `rd_xtal(HC49_4H, "10MHz")` | Crystal HC49_4H 10MHz |
|
||||
| 1 | `d_plug(DCONN9, pcb = true)` | D-type 9 way PCB mount plug |
|
||||
| 1 | `dil_socket(12, 15.24)` | DIL socket 24 x 0.6" |
|
||||
| 1 | `smd_diode(DO214AC)` | DO214AC package SS34 |
|
||||
| 1 | `smd_diode(DO214AC, "SS34")` | DO214AC package SS34 |
|
||||
| 2 | `ax_diode(DO_41, "1N4007")` | Diode 1N4007 |
|
||||
| 2 | `ax_diode(DO_35, "1N4148")` | Diode 1N4148 |
|
||||
| 1 | `rd_electrolytic(ECAP8x12, "220uF35V")` | Electolytic capacitor ECAP8x12 220uF35V |
|
||||
| 1 | `hdmi(hdmi_full)` | HDMI socket |
|
||||
| 1 | `pdip(24, 27C32, w = 15.24)` | IC 27C32 PDIP24 |
|
||||
| 1 | `pdip(8, NE555)` | IC NE555 PDIP8 |
|
||||
| 1 | `idc_transition(2p54header, 5)` | IDC transition header 5 x 2 |
|
||||
| 1 | `smd_inductor(IND2525)` | IND2525 package 4R7 |
|
||||
| 1 | `smd_inductor(IND2525 ,"4R7")` | IND2525 package 4R7 |
|
||||
| 1 | `jst_xh_header(jst_ph_header, 2)` | JST PH connector 2 way |
|
||||
| 1 | `jst_xh_header(jst_xh_header, 2)` | JST XH connector 2 way |
|
||||
| 1 | `jst_xh_header(jst_zh_header, 2)` | JST ZH connector 2 way |
|
||||
@@ -2702,41 +2820,44 @@ PCBs and perfboard with optional components. The shape can be a rectangle with o
|
||||
| 1 | `pin_socket(2p54header, 4, 1)` | Pin socket 4 x 1 |
|
||||
| 1 | `pin_socket(2p54header, 6, 1)` | Pin socket 6 x 1 |
|
||||
| 2 | `pin_socket(2p54header, 8, 1)` | Pin socket 8 x 1 |
|
||||
| 1 | `rd_coil(IND16x10 ,"4.7uH")` | Radial inductor 16x10 4.7uH |
|
||||
| 1 | `rd_transistor(TO92, "78L05")` | Regulator TO92 78L05 |
|
||||
| 1 | `rd_module(HF33F, "012-HSL-3F")` | Relay HF33F / 012-HSL-3F |
|
||||
| 1 | `ax_res(res1_2, 10, tol = 10)` | Resistor 10 Ohms 10% 0.5W |
|
||||
| 1 | `ax_res(res1_4, 100, tol = 2)` | Resistor 100 Ohms 2% 0.25W |
|
||||
| 1 | `ax_res(res1_8, 1000)` | Resistor 1000 Ohms 5% 0.125W |
|
||||
| 1 | `ax_res(res1_4, 10000)` | Resistor 10000 Ohms 5% 0.25W |
|
||||
| 1 | `ax_res(res1_2, 100000)` | Resistor 100000 Ohms 5% 0.5W |
|
||||
| 1 | `ax_res(res1_8, 1e+6, tol = 1)` | Resistor 1e+6 Ohms 1% 0.125W |
|
||||
| 1 | `smd_led(LED0603, orange)` | SMD LED 0603 orange |
|
||||
| 1 | `smd_led(LED0805, red)` | SMD LED 0805 red |
|
||||
| 1 | `smd_led(LED1206, blue)` | SMD LED 1306 blue |
|
||||
| 1 | `smd_tant(TANT_A)` | SMD Tantalum capacitor package A ,1uF, 2.5V |
|
||||
| 1 | `smd_tant(TANT_B)` | SMD Tantalum capacitor package B ,10uF, 10V |
|
||||
| 1 | `smd_tant(TANT_C)` | SMD Tantalum capacitor package C ,100uF, 16V |
|
||||
| 1 | `smd_capacitor(CAP0402)` | SMD capacitor 0402 10nF |
|
||||
| 1 | `smd_capacitor(CAP0502)` | SMD capacitor 0502 10nF |
|
||||
| 1 | `smd_capacitor(CAP0603)` | SMD capacitor 0603 10nF |
|
||||
| 1 | `smd_capacitor(CAP0805)` | SMD capacitor 0805 100nF |
|
||||
| 1 | `smd_capacitor(CAP1206)` | SMD capacitor 1206 1uF |
|
||||
| 1 | `smd_qfp(QFP50P1200X1200X160_64N)` | SMD chip: ATSAM4S4BA, package : QFP50P1200X1200X160_64N |
|
||||
| 1 | `smd_led(LED0603, "orange")` | SMD LED 0603 orange |
|
||||
| 1 | `smd_led(LED0805, "red")` | SMD LED 0805 red |
|
||||
| 1 | `smd_led(LED1206, "blue")` | SMD LED 1306 blue |
|
||||
| 1 | `smd_tant(TANT_A, value = "105e")` | SMD Tantalum capacitor package A ,1uF, 2.5V |
|
||||
| 1 | `smd_tant(TANT_B, value = "106A")` | SMD Tantalum capacitor package B ,10uF, 10V |
|
||||
| 1 | `smd_tant(TANT_C, value = "107C")` | SMD Tantalum capacitor package C ,100uF, 16V |
|
||||
| 1 | `smd_capacitor(CAP0402, value = "10nF")` | SMD capacitor 0402 10nF |
|
||||
| 1 | `smd_capacitor(CAP0502, value = "10nF")` | SMD capacitor 0502 10nF |
|
||||
| 1 | `smd_capacitor(CAP0603, value = "10nF")` | SMD capacitor 0603 10nF |
|
||||
| 1 | `smd_capacitor(CAP0805, value = "100nF")` | SMD capacitor 0805 100nF |
|
||||
| 1 | `smd_capacitor(CAP1206, value = "1uF")` | SMD capacitor 1206 1uF |
|
||||
| 1 | `smd_qfp(QFP50P1200X1200X160_64N, "ATSAM4S4BA")` | SMD chip: ATSAM4S4BA, package : QFP50P1200X1200X160_64N |
|
||||
| 1 | `smd_resistor(L2012C, 1u)` | SMD choke 0805 1u |
|
||||
| 1 | `smd_coax(U_FL_R_SMT_1)` | SMD coax connector type: U_FL_R_SMT_1 |
|
||||
| 1 | `smd_250V_fuse(OMT250, "2A 250V")` | SMD fuse: OMT250 2A 250V |
|
||||
| 1 | `smd_resistor(RES0402, 1)` | SMD resistor 0402 1 0.0625W |
|
||||
| 1 | `smd_resistor(RES0502, 10)` | SMD resistor 0502 10 0.05W |
|
||||
| 1 | `smd_resistor(RES0603, 100)` | SMD resistor 0603 100 0.1W |
|
||||
| 1 | `smd_resistor(RES0805, 1K)` | SMD resistor 0805 1K 0.125W |
|
||||
| 1 | `smd_resistor(RES1206, 1M)` | SMD resistor 1206 1M 0.25W |
|
||||
| 1 | `smd_soic(SOIC14)` | SOIC14 package 74HC00 |
|
||||
| 1 | `smd_soic(SOIC16)` | SOIC16 package ICL323 |
|
||||
| 1 | `smd_soic(SOIC18)` | SOIC18 package PIC18F88 |
|
||||
| 1 | `smd_soic(SOIC8)` | SOIC8 package M34063 |
|
||||
| 1 | `smd_sot(SOT223)` | SOT223 package LM117 |
|
||||
| 1 | `smd_sot(SOT23)` | SOT23 package 2N7000 |
|
||||
| 1 | `smd_soic(SOIC14, "74HC00")` | SOIC14 package 74HC00 |
|
||||
| 1 | `smd_soic(SOIC16, "ICL323")` | SOIC16 package ICL323 |
|
||||
| 1 | `smd_soic(SOIC18, "PIC18F88")` | SOIC18 package PIC18F88 |
|
||||
| 1 | `smd_soic(SOIC8, "M34063")` | SOIC8 package M34063 |
|
||||
| 1 | `smd_sot(SOT223, "LM117")` | SOT223 package LM117 |
|
||||
| 1 | `smd_sot(SOT23, "2N7000")` | SOT23 package 2N7000 |
|
||||
| 1 | `square_button(button_4p5mm)` | Square button 4.5mm |
|
||||
| 1 | `square_button(button_6mm)` | Square button 6mm |
|
||||
| 1 | `smd_pot(TC33X1)` | TC33X1 package 10K |
|
||||
| 1 | `smd_pot(TC33X1, "10K")` | TC33X1 package 10K |
|
||||
| 1 | `pcb(TMC2130)` | TMC2130 |
|
||||
| 1 | `green_terminal(gt_5p08, 2)` | Terminal block 2 way 0.2" |
|
||||
| 2 | `green_terminal(gt_6p35, 2)` | Terminal block 2 way 0.25" |
|
||||
@@ -2749,11 +2870,14 @@ PCBs and perfboard with optional components. The shape can be a rectangle with o
|
||||
| 1 | `terminal_35(4)` | Terminal block 4 way 3.5mm |
|
||||
| 1 | `pcb(test_pcb)` | Test PCB |
|
||||
| 1 | `rd_transistor(E_LINE, "ZTX853")` | Transistor E_LINE ZTX853 |
|
||||
| 1 | `rd_disc(ERZV07D471, "471")` | Varistor, ERZV07D471 471 |
|
||||
| 2 | `vero_pin()` | Vero board pin |
|
||||
| 1 | `wire_link(0.8, 5.08, h = 10.16)` | Wire link 0.8mm x 0.2" |
|
||||
| 1 | `wire_link(0.8, 10.16)` | Wire link 0.8mm x 0.4" |
|
||||
| 1 | `wire_link(0.8, 10.16, h = 0.75, sleeve = [1.5, "red"])` | Wire link 0.8mm x 0.4" with red sleeving |
|
||||
| 1 | `wire_link(0.8, 0, h = 5)` | Wire link 0.8mm x 8mm |
|
||||
| 1 | `rd_boxc(BOXC18x5x11, "X2 rated film capacitor", "0.1uF 250V" )` | X2 rated film capacitor 0.1uF 250V |
|
||||
| 1 | `rd_boxc(BOXC18x10x16, "X2 rated film capacitor", "0.47uF 250V" )` | X2 rated film capacitor 0.47uF 250V |
|
||||
|
||||
|
||||
<a href="#top">Top</a>
|
||||
@@ -2862,6 +2986,7 @@ PCBs and perfboard with optional components. The shape can be a rectangle with o
|
||||
| 1 | `pcb(BTT_SKR_E3_TURBO)` | BigTreeTech SKR E3 Turbo |
|
||||
| 1 | `pcb(BTT_SKR_MINI_E3_V2_0)` | BigTreeTech SKR Mini E3 v2.0 |
|
||||
| 1 | `pcb(BTT_SKR_V1_4_TURBO)` | BigTreeTech SKR v1.4 Turbo |
|
||||
| 1 | `pcb(BlackPill)` | Black Pill |
|
||||
| 1 | | Cat 5 patch cable 300mm |
|
||||
| 1 | `d_plug(DCONN15, pcb = true)` | D-type 15 way PCB mount plug - not shown |
|
||||
| 1 | `pcb(DuetE)` | Duet 2 Ethernet electronics |
|
||||
@@ -2875,6 +3000,7 @@ PCBs and perfboard with optional components. The shape can be a rectangle with o
|
||||
| 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(I2C_LCD_Backpack)` | I2C / SPI character LCD backpack |
|
||||
| 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 |
|
||||
@@ -2884,11 +3010,12 @@ PCBs and perfboard with optional components. The shape can be a rectangle with o
|
||||
| 1 | `pcb(Melzi)` | Melzi electronics - not shown |
|
||||
| 6 | | Micro SD card |
|
||||
| 1 | | Micro SD card - not shown |
|
||||
| 1 | `pcb(RCWL-0516)` | Microwave Radar Sensor |
|
||||
| 1 | `molex_254(2)` | Molex KK header 2 way - not shown |
|
||||
| 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 |
|
||||
| 47 | `nut(M3_nut, nyloc = true)` | Nut M3 x 2.4mm nyloc |
|
||||
| 48 | `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 |
|
||||
@@ -2911,20 +3038,21 @@ 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 |
|
||||
| 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 |
|
||||
| 8 | `screw(M2p5_cap_screw, 30)` | Screw M2.5 cap x 30mm |
|
||||
| 4 | `screw(M2p5_cap_screw, 35)` | Screw M2.5 cap x 35mm |
|
||||
| 8 | `screw(M2p5_cap_screw, 40)` | Screw M2.5 cap x 40mm |
|
||||
| 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 |
|
||||
| 4 | `screw(M2p5_pan_screw, 30)` | Screw M2.5 pan x 30mm |
|
||||
| 4 | `screw(M2p5_pan_screw, 35)` | Screw M2.5 pan x 35mm |
|
||||
| 19 | `screw(M3_cap_screw, 16)` | Screw M3 cap x 16mm |
|
||||
| 13 | `screw(M3_cap_screw, 20)` | Screw M3 cap x 20mm |
|
||||
| 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 |
|
||||
| 5 | `screw(M3_cap_screw, 25)` | Screw M3 cap x 25mm |
|
||||
| 11 | `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 |
|
||||
| 1 | `pcb(9DOF_stick)` | Sparkfun 9 degrees of freedom IMU |
|
||||
| 1 | `pcb(TP4056)` | TP4056 Li-lon Battery charger module |
|
||||
| 3 | `terminal_35(2)` | Terminal block 2 way 3.5mm - not shown |
|
||||
| 2 | `green_terminal(gt_2p54, 4)` | Terminal block 4 way 0.1" - not shown |
|
||||
@@ -2933,7 +3061,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 |
|
||||
| 47 | `washer(M3_washer)` | Washer M3 x 7mm x 0.5mm |
|
||||
| 48 | `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 |
|
||||
|
||||
@@ -2941,24 +3069,25 @@ PCBs and perfboard with optional components. The shape can be a rectangle with o
|
||||
| Qty | Filename |
|
||||
| ---:|:--- |
|
||||
| 4 | pcb_spacer20100.stl |
|
||||
| 4 | pcb_spacer20140.stl |
|
||||
| 4 | pcb_spacer20160.stl |
|
||||
| 4 | pcb_spacer2070.stl |
|
||||
| 4 | pcb_spacer2080.stl |
|
||||
| 4 | pcb_spacer2090.stl |
|
||||
| 2 | pcb_spacer25100.stl |
|
||||
| 4 | pcb_spacer25130.stl |
|
||||
| 4 | pcb_spacer25160.stl |
|
||||
| 4 | pcb_spacer25170.stl |
|
||||
| 4 | pcb_spacer25180_2.stl |
|
||||
| 4 | pcb_spacer25190_2.stl |
|
||||
| 4 | pcb_spacer25230.stl |
|
||||
| 4 | pcb_spacer25240.stl |
|
||||
| 4 | pcb_spacer25250.stl |
|
||||
| 2 | pcb_spacer25110.stl |
|
||||
| 4 | pcb_spacer25150.stl |
|
||||
| 4 | pcb_spacer25190.stl |
|
||||
| 4 | pcb_spacer25200.stl |
|
||||
| 4 | pcb_spacer25210_2.stl |
|
||||
| 4 | pcb_spacer25220_2.stl |
|
||||
| 4 | pcb_spacer25260.stl |
|
||||
| 4 | pcb_spacer25270.stl |
|
||||
| 4 | pcb_spacer25280.stl |
|
||||
| 4 | pcb_spacer2580.stl |
|
||||
| 4 | pcb_spacer30120.stl |
|
||||
| 4 | pcb_spacer30200.stl |
|
||||
| 4 | pcb_spacer30210.stl |
|
||||
| 3 | pcb_spacer30220.stl |
|
||||
| 1 | pcb_spacer30130.stl |
|
||||
| 4 | pcb_spacer30140.stl |
|
||||
| 4 | pcb_spacer30230.stl |
|
||||
| 4 | pcb_spacer30240.stl |
|
||||
| 3 | pcb_spacer30250.stl |
|
||||
| 10 | pcb_spacer3050.stl |
|
||||
| 9 | pcb_spacer3060.stl |
|
||||
| 9 | pcb_spacer3070.stl |
|
||||
@@ -3366,9 +3495,14 @@ Timing belt pulleys, both toothed and plain with internal bearings for idlers.
|
||||
### Vitamins
|
||||
| Qty | Module call | BOM entry |
|
||||
| ---:|:--- |:---|
|
||||
| 1 | `pulley(GT2x16_pulley_9)` | Pulley GT2 16 teeth |
|
||||
| 1 | `pulley(GT2x16_pulley)` | Pulley GT2 16 teeth |
|
||||
| 1 | `pulley(GT2x20_pulley_9)` | Pulley GT2 20 teeth |
|
||||
| 1 | `pulley(GT2x80_pulley)` | Pulley GT2 80 teeth |
|
||||
| 1 | `pulley(GT2x16_toothed_idler)` | Pulley GT2 idler 16 teeth |
|
||||
| 1 | `pulley(GT2x16_toothed_idler_9)` | Pulley GT2 idler 16 teeth |
|
||||
| 1 | `pulley(GT2x20_toothed_idler)` | Pulley GT2 idler 20 teeth |
|
||||
| 1 | `pulley(GT2x20_toothed_idler_9)` | Pulley GT2 idler 20 teeth |
|
||||
| 1 | `pulley(GT2x20_plain_idler)` | Pulley GT2 idler smooth 12mm |
|
||||
| 1 | `pulley(GT2x16_plain_idler)` | Pulley GT2 idler smooth 9.63mm |
|
||||
| 1 | `pulley(GT2x16x7_plain_idler)` | Pulley GT2 idler smooth 9.63mm |
|
||||
@@ -3380,8 +3514,9 @@ Timing belt pulleys, both toothed and plain with internal bearings for idlers.
|
||||
| 1 | `screw(M3_grub_screw, 3)` | Screw M3 grub x 3mm |
|
||||
| 2 | `screw(M3_grub_screw, 4.5)` | Screw M3 grub x 4.5mm |
|
||||
| 2 | `screw(M3_grub_screw, 4)` | Screw M3 grub x 4mm |
|
||||
| 4 | `screw(M3_grub_screw, 6)` | Screw M3 grub x 6mm |
|
||||
| 1 | `screw(M4_grub_screw, 6)` | Screw M4 grub x 6mm |
|
||||
| 6 | `screw(M3_grub_screw, 6)` | Screw M3 grub x 6mm |
|
||||
| 3 | `screw(M4_grub_screw, 6)` | Screw M4 grub x 6mm |
|
||||
| 2 | `screw(M5_grub_screw, 6)` | Screw M5 grub x 6mm |
|
||||
|
||||
|
||||
<a href="#top">Top</a>
|
||||
@@ -3400,6 +3535,20 @@ Radial components for PCBs.
|
||||
### Properties
|
||||
| Function | Description |
|
||||
|:--- |:--- |
|
||||
| `rd_boxc_colours(type)` | Case colour and resin fill colour |
|
||||
| `rd_boxc_leads(type)` | Lead pitch, diameter and length |
|
||||
| `rd_boxc_size(type)` | Overall size and corner radius |
|
||||
| `rd_boxc_skirt(type)` | Skirt slot, thickness, height |
|
||||
| `rd_boxc_z(type)` | Height of inner base above PCB. |
|
||||
| `rd_cm_choke_core(type)` | Core OD, ID, width, corner radius |
|
||||
| `rd_cm_choke_csep(type)` | Central separator thickness in slot, total thickness, height |
|
||||
| `rd_cm_choke_seam(type)` | Overlapping semicircular seams to join the two halves of the core width and thickness |
|
||||
| `rd_cm_choke_slot(type)` | Slot to hold central separator width, height, thickness |
|
||||
| `rd_cm_choke_wire(type)` | Wire positions, length and diameter |
|
||||
| `rd_coil_colour(type)` | Core colour |
|
||||
| `rd_coil_size(type)` | OD, ID, height, coil height |
|
||||
| `rd_coil_turns(type)` | Number of turns |
|
||||
| `rd_coil_wire(type)` | Wire pitch, diameter and length |
|
||||
| `rd_disc_colours(type)` | Colours of body and text |
|
||||
| `rd_disc_kind(type)` | Capacitor, etc |
|
||||
| `rd_disc_lead_d(type)` | Lead diameter and sleeve diameter |
|
||||
@@ -3429,6 +3578,9 @@ Radial components for PCBs.
|
||||
### Modules
|
||||
| Module | Description |
|
||||
|:--- |:--- |
|
||||
| `rd_box_cap(type, kind, value)` | Draw radial boxed film capacitor |
|
||||
| `rd_cm_choke(type, value)` | Draw specified common mode choke. |
|
||||
| `rd_coil(type, value, pitch = undef)` | Draw the specified vertical coil |
|
||||
| `rd_disc(type, value, pitch = undef, z = 0, tail = 3)` | Draw a radial disc component |
|
||||
| `rd_electrolytic(type, value, pitch = undef, z = 0, tail = 3)` | Draw a radial electrolytic capcacitor |
|
||||
| `rd_module(type, value)` | Draw a PCB mounted potted module, e.g. PSU or relay |
|
||||
@@ -3440,7 +3592,9 @@ Radial components for PCBs.
|
||||
### Vitamins
|
||||
| Qty | Module call | BOM entry |
|
||||
| ---:|:--- |:---|
|
||||
| 1 | `rd_disc(10mm_disc, "1nF Y2")` | Ceramic capacitor, 10mm_disc 1nF Y2 |
|
||||
| 1 | `rd_disc(6p4mm_disc, "10nF")` | Ceramic capacitor, 6p4mm_disc 10nF |
|
||||
| 1 | `rd_cm_choke(ATX_CM_CHOKE ,"3.5mH")` | Common mode choke 3.5mH |
|
||||
| 1 | `rd_xtal(ACT1100, "ACT1100")` | Crystal ACT1100 ACT1100 |
|
||||
| 1 | `rd_xtal(ACT1700, "ACT1700")` | Crystal ACT1700 ACT1700 |
|
||||
| 1 | `rd_xtal(C_002RX, "C_002RX")` | Crystal C_002RX C_002RX |
|
||||
@@ -3450,10 +3604,13 @@ Radial components for PCBs.
|
||||
| 1 | `rd_module(LDE10_20B, "12V 900ma")` | PSU LDE10_20B / 12V 900ma |
|
||||
| 1 | `rd_module(VCE03, "12V 250ma")` | PSU VCE03 / 12V 250ma |
|
||||
| 2 | `pcb(PERF70x50)` | Perfboard 70 x 50mm |
|
||||
| 1 | `rd_coil(IND16x10 ,"4.7uH")` | Radial inductor 16x10 4.7uH |
|
||||
| 1 | `rd_module(HF33F, "012-HSL3F")` | Relay HF33F / 012-HSL3F |
|
||||
| 1 | `rd_transistor(E_LINE, "ZTX853")` | Transistor E_LINE ZTX853 |
|
||||
| 1 | `rd_transistor(TO92, "BC337")` | Transistor TO92 BC337 |
|
||||
| 1 | `rd_disc(ERZV07D471, "470V")` | Varistor, ERZV07D471 470V |
|
||||
| 1 | `rd_boxc(BOXC18x5x11, "X2 rated film capacitor", "0.1uF 250V" )` | X2 rated film capacitor 0.1uF 250V |
|
||||
| 1 | `rd_boxc(BOXC18x10x16, "X2 rated film capacitor", "0.47uF 250V" )` | X2 rated film capacitor 0.47uF 250V |
|
||||
|
||||
|
||||
<a href="#top">Top</a>
|
||||
@@ -3658,6 +3815,7 @@ Rocker switch. Also used for neon indicator in the same form factor.
|
||||
| Qty | Module call | BOM entry |
|
||||
| ---:|:--- |:---|
|
||||
| 2 | `rocker(neon_indicator)` | Neon Indicator H8630FBNAL |
|
||||
| 2 | `rocker(micro_rocker)` | Rocker Switch 10x15 |
|
||||
| 2 | `rocker(small_rocker)` | Rocker Switch PRASA1-16F-BB0BW |
|
||||
|
||||
|
||||
@@ -3709,6 +3867,48 @@ These items are symmetrical, so by default the origin is in the centre but it ca
|
||||
| 1 | `studding(8, 80)` | Threaded rod M8 x 80mm |
|
||||
|
||||
|
||||
<a href="#top">Top</a>
|
||||
|
||||
---
|
||||
<a name="rod_ends"></a>
|
||||
## Rod_ends
|
||||
A rod end, sometimes called a spherical bearing or rod-end eye, is a component used in mechanical systems to create a flexible connection between two parts.
|
||||
|
||||
[vitamins/rod_ends.scad](vitamins/rod_ends.scad) Object definitions.
|
||||
|
||||
[vitamins/rod_end.scad](vitamins/rod_end.scad) Implementation.
|
||||
|
||||
[tests/rod_ends.scad](tests/rod_ends.scad) Code for this example.
|
||||
|
||||
### Properties
|
||||
| Function | Description |
|
||||
|:--- |:--- |
|
||||
| `rod_end_bearing_bore(type)` | radius of the bore hole in the bearing |
|
||||
| `rod_end_bearing_od(type)` | Outer diameter of the bearing |
|
||||
| `rod_end_bearing_rim(type)` | Outer rim thickness guesstimate |
|
||||
| `rod_end_bearing_shield_colour(type)` | Shield colour, "silver" for metal |
|
||||
| `rod_end_bearing_width(type)` | Width |
|
||||
| `rod_end_bore_width(type)` | Width |
|
||||
| `rod_end_overall_length(type)` | overall length of the rod end |
|
||||
| `rod_end_screw_length(type)` | length of the screw from eye center, not the bore |
|
||||
| `rod_end_screw_radius(type)` | radius of the screw end, not the bore |
|
||||
| `rod_end_sphere_radius(type)` | radius of the rod end sphere |
|
||||
| `rod_end_sphere_seg_width(type)` | the width of the pivoting part, effectively a (sphere - sphereCaps - center bore) |
|
||||
| `rod_end_thread_length(type)` | length of the threads |
|
||||
|
||||
### Modules
|
||||
| Module | Description |
|
||||
|:--- |:--- |
|
||||
| `rod_end_bearing(type)` | Draw a rod end bearing |
|
||||
|
||||

|
||||
|
||||
### Vitamins
|
||||
| Qty | Module call | BOM entry |
|
||||
| ---:|:--- |:---|
|
||||
| 1 | `Rod End Bearing(RE_m5_bearing, 33)` | Rod End Bearing 5 x 33mm |
|
||||
|
||||
|
||||
<a href="#top">Top</a>
|
||||
|
||||
---
|
||||
@@ -3842,11 +4042,13 @@ For an explanation of `screw_polysink()` see <https://hydraraptor.blogspot.com/2
|
||||
| 1 | `screw(M5_pan_screw, 30)` | Screw M5 pan x 30mm |
|
||||
| 1 | `screw(M6_cap_screw, 30)` | Screw M6 cap x 30mm |
|
||||
| 1 | `screw(M6_cs_cap_screw, 30)` | Screw M6 cs cap x 30mm |
|
||||
| 1 | `screw(M6_dome_screw, 30)` | Screw M6 dome x 30mm |
|
||||
| 1 | `screw(M6_grub_screw, 12)` | Screw M6 grub x 12mm |
|
||||
| 1 | `screw(M6_hex_screw, 30)` | Screw M6 hex x 30mm |
|
||||
| 1 | `screw(M6_pan_screw, 30)` | Screw M6 pan x 30mm |
|
||||
| 1 | `screw(M8_cap_screw, 35)` | Screw M8 cap x 35mm |
|
||||
| 1 | `screw(M8_cs_cap_screw, 35)` | Screw M8 cs cap x 35mm |
|
||||
| 1 | `screw(M8_dome_screw, 35)` | Screw M8 dome x 35mm |
|
||||
| 1 | `screw(M8_hex_screw, 30)` | Screw M8 hex x 30mm |
|
||||
| 1 | `screw(No2_screw, 10)` | Screw No2 pan wood x 10mm |
|
||||
| 1 | `screw(No4_screw, 10)` | Screw No4 pan wood x 10mm |
|
||||
@@ -4148,6 +4350,10 @@ E.g. 475A is 4.7uF 10V on the parts list.
|
||||
### Properties
|
||||
| Function | Description |
|
||||
|:--- |:--- |
|
||||
| `smd_250V_fuse_base(type)` | Base length |
|
||||
| `smd_250V_fuse_size(type)` | Bounding box of the body |
|
||||
| `smd_250V_fuse_step(type)` | End cutout length, width and height |
|
||||
| `smd_250V_fuse_z(type)` | Height of body above the PCB surface |
|
||||
| `smd_cap_end_cap(type)` | End cap width |
|
||||
| `smd_cap_size(type)` | Body length, width |
|
||||
| `smd_coax_base_r(type)` | Corner radius of the base |
|
||||
@@ -4212,6 +4418,7 @@ E.g. 475A is 4.7uF 10V on the parts list.
|
||||
### Modules
|
||||
| Module | Description |
|
||||
|:--- |:--- |
|
||||
| `smd_250V_fuse(type, value)` | Draw an SMD mains fuse |
|
||||
| `smd_capacitor(type, height, value = undef)` | Draw an SMD capacitor with specified height |
|
||||
| `smd_coax(type)` | Draw an SMD coaxial connector |
|
||||
| `smd_diode(type, value)` | Draw an SMD diode |
|
||||
@@ -4229,38 +4436,39 @@ E.g. 475A is 4.7uF 10V on the parts list.
|
||||
### Vitamins
|
||||
| Qty | Module call | BOM entry |
|
||||
| ---:|:--- |:---|
|
||||
| 1 | `smd_inductor(CDRH104)` | CDRH104 package 10R |
|
||||
| 1 | `smd_diode(DO214AC)` | DO214AC package SS34 |
|
||||
| 1 | `smd_inductor(IND2525)` | IND2525 package 4R7 |
|
||||
| 1 | `smd_led(LED0603, green)` | SMD LED 0603 green |
|
||||
| 1 | `smd_led(LED0805, blue)` | SMD LED 0805 blue |
|
||||
| 1 | `smd_led(LED1206, red)` | SMD LED 1306 red |
|
||||
| 1 | `smd_tant(TANT_A)` | SMD Tantalum capacitor package A ,1uF, 2.5V |
|
||||
| 1 | `smd_tant(TANT_B)` | SMD Tantalum capacitor package B ,10uF, 6.3V |
|
||||
| 1 | `smd_tant(TANT_C)` | SMD Tantalum capacitor package C ,100uF, 10V |
|
||||
| 1 | `smd_inductor(CDRH104 ,"10R")` | CDRH104 package 10R |
|
||||
| 1 | `smd_diode(DO214AC, "SS34")` | DO214AC package SS34 |
|
||||
| 1 | `smd_inductor(IND2525 ,"4R7")` | IND2525 package 4R7 |
|
||||
| 1 | `smd_led(LED0603, "green")` | SMD LED 0603 green |
|
||||
| 1 | `smd_led(LED0805, "blue")` | SMD LED 0805 blue |
|
||||
| 1 | `smd_led(LED1206, "red")` | SMD LED 1306 red |
|
||||
| 1 | `smd_tant(TANT_A, value = "105e")` | SMD Tantalum capacitor package A ,1uF, 2.5V |
|
||||
| 1 | `smd_tant(TANT_B, value = "106J")` | SMD Tantalum capacitor package B ,10uF, 6.3V |
|
||||
| 1 | `smd_tant(TANT_C, value = "107A")` | SMD Tantalum capacitor package C ,100uF, 10V |
|
||||
| 1 | `smd_capacitor(CAP0402)` | SMD capacitor 0402 |
|
||||
| 1 | `smd_capacitor(CAP0502)` | SMD capacitor 0502 |
|
||||
| 1 | `smd_capacitor(CAP0603)` | SMD capacitor 0603 |
|
||||
| 1 | `smd_capacitor(CAP0805)` | SMD capacitor 0805 |
|
||||
| 1 | `smd_capacitor(CAP1206)` | SMD capacitor 1206 |
|
||||
| 1 | `smd_capacitor(CAP1210)` | SMD capacitor 1210 |
|
||||
| 1 | `smd_qfp(QFP50P1200X1200X160_64N)` | SMD chip: ATSAM4S4BA, package : QFP50P1200X1200X160_64N |
|
||||
| 1 | `smd_qfp(QFP50P1200X1200X160_64N, "ATSAM4S4BA")` | SMD chip: ATSAM4S4BA, package : QFP50P1200X1200X160_64N |
|
||||
| 1 | `smd_resistor(L2012C, 10u)` | SMD choke 0805 10u |
|
||||
| 1 | `smd_coax(U_FL_R_SMT_1)` | SMD coax connector type: U_FL_R_SMT_1 |
|
||||
| 1 | `smd_250V_fuse(OMT250, "2A 250V")` | SMD fuse: OMT250 2A 250V |
|
||||
| 1 | `smd_resistor(RES0402, 1R0)` | SMD resistor 0402 1R0 0.0625W |
|
||||
| 1 | `smd_resistor(RES0502, 10)` | SMD resistor 0502 10 0.05W |
|
||||
| 1 | `smd_resistor(RES0603, 100)` | SMD resistor 0603 100 0.1W |
|
||||
| 1 | `smd_resistor(RES0805, 10M)` | SMD resistor 0805 10M 0.125W |
|
||||
| 1 | `smd_resistor(RES1206, 100K)` | SMD resistor 1206 100K 0.25W |
|
||||
| 1 | `smd_soic(SOIC14)` | SOIC14 package SOIC14 |
|
||||
| 1 | `smd_soic(SOIC16)` | SOIC16 package SOIC16 |
|
||||
| 1 | `smd_soic(SOIC18)` | SOIC18 package SOIC18 |
|
||||
| 1 | `smd_soic(SOIC8)` | SOIC8 package SOIC8 |
|
||||
| 1 | `smd_sot(SOT223)` | SOT223 package FZT851 |
|
||||
| 1 | `smd_sot(SOT23)` | SOT23 package 2N7000 |
|
||||
| 1 | `smd_soic(SOT23_6)` | SOT23_6 package SOT23_6 |
|
||||
| 1 | `smd_pot(TC33X1)` | TC33X1 package 10K |
|
||||
| 1 | `smd_soic(TSOT23_8)` | TSOT23_8 package TSOT23_8 |
|
||||
| 1 | `smd_soic(SOIC14, "SOIC14")` | SOIC14 package SOIC14 |
|
||||
| 1 | `smd_soic(SOIC16, "SOIC16")` | SOIC16 package SOIC16 |
|
||||
| 1 | `smd_soic(SOIC18, "SOIC18")` | SOIC18 package SOIC18 |
|
||||
| 1 | `smd_soic(SOIC8, "SOIC8")` | SOIC8 package SOIC8 |
|
||||
| 1 | `smd_sot(SOT223, "FZT851")` | SOT223 package FZT851 |
|
||||
| 1 | `smd_sot(SOT23, "2N7000")` | SOT23 package 2N7000 |
|
||||
| 1 | `smd_soic(SOT23_6, "SOT23_6")` | SOT23_6 package SOT23_6 |
|
||||
| 1 | `smd_pot(TC33X1, "10K")` | TC33X1 package 10K |
|
||||
| 1 | `smd_soic(TSOT23_8, "TSOT23_8")` | TSOT23_8 package TSOT23_8 |
|
||||
|
||||
|
||||
<a href="#top">Top</a>
|
||||
@@ -4385,6 +4593,7 @@ By default springs have their origin at the bottom but can be centered.
|
||||
| ---:|:--- |:---|
|
||||
| 1 | `comp_spring(batt_spring)` | Spring 5 - 6mm spiral OD, 0.5mm gauge x 8mm long, closed end |
|
||||
| 1 | `comp_spring(peg_spring)` | Spring 6.4mm OD, 0.9mm gauge x 15.5mm long, closed end |
|
||||
| 1 | `comp_spring(yellow_bed_spring)` | Spring 8mm OD, 0.9mm gauge x 20mm long, closed end |
|
||||
|
||||
|
||||
<a href="#top">Top</a>
|
||||
@@ -4484,18 +4693,19 @@ NEMA stepper motor model.
|
||||
| Qty | Module call | BOM entry |
|
||||
| ---:|:--- |:---|
|
||||
| 4 | `ring_terminal(M3_ringterm)` | Ring terminal 3mm |
|
||||
| 20 | `screw(M3_pan_screw, 8)` | Screw M3 pan x 8mm |
|
||||
| 1 | `NEMA(NEMA14_36)` | Stepper motor NEMA14 x 36mm |
|
||||
| 1 | `NEMA(NEMA16_19)` | Stepper motor NEMA16 x 19.2mm |
|
||||
| 1 | `NEMA(NEMA17_27)` | Stepper motor NEMA17 x 26.5mm |
|
||||
| 1 | `NEMA(NEMA17_34)` | Stepper motor NEMA17 x 34mm |
|
||||
| 1 | `NEMA(NEMA17_40)` | Stepper motor NEMA17 x 40mm |
|
||||
| 1 | `NEMA(NEMA17_47)` | Stepper motor NEMA17 x 47mm |
|
||||
| 1 | `NEMA(NEMA23_51)` | Stepper motor NEMA22 x 51.2mm |
|
||||
| 1 | `NEMA(NEMA8_30)` | Stepper motor NEMA8 x 30mm |
|
||||
| 1 | `NEMA(NEMA8_30BH)` | Stepper motor NEMA8 x 30mm |
|
||||
| 16 | `washer(M3_washer)` | Washer M3 x 7mm x 0.5mm |
|
||||
| 20 | `star_washer(M3_washer)` | Washer star M3 x 0.5mm |
|
||||
| 25 | `screw(M3_pan_screw, 8)` | Screw M3 pan x 8mm |
|
||||
| 1 | `NEMA(NEMA14_36)` | Stepper motor NEMA14 x 36mm (5x21 shaft) |
|
||||
| 1 | `NEMA(NEMA16_19)` | Stepper motor NEMA16 x 19.2mm (5x12 shaft) |
|
||||
| 1 | `NEMA(NEMA17_27)` | Stepper motor NEMA17 x 26.5mm (5x26.5 shaft) |
|
||||
| 1 | `NEMA(NEMA17_34)` | Stepper motor NEMA17 x 34mm (5x24 shaft) |
|
||||
| 1 | `NEMA(NEMA17_40)` | Stepper motor NEMA17 x 40mm (5x20 shaft) |
|
||||
| 1 | `NEMA(NEMA17_47)` | Stepper motor NEMA17 x 47mm (5x24 shaft) |
|
||||
| 1 | `NEMA(NEMA17_47L80)` | Stepper motor NEMA17 x 47mm (5x80 shaft) |
|
||||
| 1 | `NEMA(NEMA23_51)` | Stepper motor NEMA22 x 51.2mm (6.35x24 shaft) |
|
||||
| 1 | `NEMA(NEMA8_30)` | Stepper motor NEMA8 x 30mm (4x6 shaft) |
|
||||
| 1 | `NEMA(NEMA8_30BH)` | Stepper motor NEMA8 x 30mm (5x12 shaft) |
|
||||
| 21 | `washer(M3_washer)` | Washer M3 x 7mm x 0.5mm |
|
||||
| 25 | `star_washer(M3_washer)` | Washer star M3 x 0.5mm |
|
||||
|
||||
|
||||
<a href="#top">Top</a>
|
||||
@@ -6072,6 +6282,49 @@ inserts don't grip well in rubber.
|
||||
| 1 | insert_foot_assembly |
|
||||
|
||||
|
||||
<a href="#top">Top</a>
|
||||
|
||||
---
|
||||
<a name="gridfinity"></a>
|
||||
## Gridfinity
|
||||
Generate storage bins compatible with Zack Freedman's Gridfinity design, see <https://www.youtube.com/watch?v=ra_9zU-mnl8&t=37s>
|
||||
|
||||
Based on <https://gridfinity.xyz/specification>
|
||||
|
||||
More examples [here](examples/Gridfinity).
|
||||
|
||||
[printed/gridfinity.scad](printed/gridfinity.scad) Implementation.
|
||||
|
||||
[tests/gridfinity.scad](tests/gridfinity.scad) Code for this example.
|
||||
|
||||
### Properties
|
||||
| Function | Description |
|
||||
|:--- |:--- |
|
||||
| `gridfinity_bin_name(type)` | Name for the STL file |
|
||||
| `gridfinity_bin_size(type)` | Size in grid units |
|
||||
|
||||
### Functions
|
||||
| Function | Description |
|
||||
|:--- |:--- |
|
||||
| `gridfinity_base_z()` | height of base |
|
||||
| `gridfinity_bin(name, grid_x, grid_y, grid_z)` | Constructor |
|
||||
| `gridfinity_bin_size_mm(type)` | Overall size of the bin |
|
||||
| `gridfinity_corner_r()` | Outside corner radius |
|
||||
|
||||
### Modules
|
||||
| Module | Description |
|
||||
|:--- |:--- |
|
||||
| `gridfinity_bin(type)` | Create a gridfinity bin, bits to cut out are passed as a child |
|
||||
| `gridfinity_partition(type, cols = 1, rows = 1, wall = 1.6, iwall = squeezed_wall, bwall = 1, corner_r = 4)` | Passed as child to hollow out specified partitions |
|
||||
|
||||

|
||||
|
||||
### Printed
|
||||
| Qty | Filename |
|
||||
| ---:|:--- |
|
||||
| 1 | chuck_stand.stl |
|
||||
|
||||
|
||||
<a href="#top">Top</a>
|
||||
|
||||
---
|
||||
@@ -6234,6 +6487,7 @@ Printed LED bezels for panel mounting
|
||||
| 1 | `led(LED3mm, "yellow")` | LED 3 mm yellow |
|
||||
| 1 | `led(LED5mm, "blue")` | LED 5 mm blue |
|
||||
| 1 | `led(LED8mm)` | LED 8 mm red |
|
||||
| 1 | `led(LED5x2mm, "yellow")` | LED [5, 2] mm yellow |
|
||||
|
||||
### Printed
|
||||
| Qty | Filename |
|
||||
@@ -6244,6 +6498,8 @@ Printed LED bezels for panel mounting
|
||||
| 1 | LED3mm_bezel_retainer.stl |
|
||||
| 1 | LED5mm_bezel.stl |
|
||||
| 1 | LED5mm_bezel_retainer.stl |
|
||||
| 1 | LED5x2mm_bezel.stl |
|
||||
| 1 | LED5x2mm_bezel_retainer.stl |
|
||||
| 1 | LED8mm_bezel.stl |
|
||||
| 1 | LED8mm_bezel_retainer.stl |
|
||||
|
||||
@@ -6253,6 +6509,7 @@ Printed LED bezels for panel mounting
|
||||
| 1 | LED10mm_orange_bezel_assembly |
|
||||
| 1 | LED3mm_yellow_bezel_assembly |
|
||||
| 1 | LED5mm_blue_bezel_assembly |
|
||||
| 1 | LED5x2mm_yellow_bezel_assembly |
|
||||
| 1 | LED8mm_red_bezel_assembly |
|
||||
|
||||
|
||||
@@ -6492,8 +6749,9 @@ Creative Commons - Attribution - Share Alike license (see <https://creativecommo
|
||||
| 1 | `screw(M3_grub_screw, 3)` | Screw M3 grub x 3mm |
|
||||
| 2 | `screw(M3_grub_screw, 4.5)` | Screw M3 grub x 4.5mm |
|
||||
| 2 | `screw(M3_grub_screw, 4)` | Screw M3 grub x 4mm |
|
||||
| 4 | `screw(M3_grub_screw, 6)` | Screw M3 grub x 6mm |
|
||||
| 1 | `screw(M4_grub_screw, 6)` | Screw M4 grub x 6mm |
|
||||
| 6 | `screw(M3_grub_screw, 6)` | Screw M3 grub x 6mm |
|
||||
| 3 | `screw(M4_grub_screw, 6)` | Screw M4 grub x 6mm |
|
||||
| 2 | `screw(M5_grub_screw, 6)` | Screw M5 grub x 6mm |
|
||||
|
||||
### Printed
|
||||
| Qty | Filename |
|
||||
@@ -6501,12 +6759,17 @@ Creative Commons - Attribution - Share Alike license (see <https://creativecommo
|
||||
| 1 | printed_pulley_GT2x12_pulley.stl |
|
||||
| 1 | printed_pulley_GT2x16_plain_idler.stl |
|
||||
| 1 | printed_pulley_GT2x16_pulley.stl |
|
||||
| 1 | printed_pulley_GT2x16_pulley_9.stl |
|
||||
| 1 | printed_pulley_GT2x16_toothed_idler.stl |
|
||||
| 1 | printed_pulley_GT2x16_toothed_idler_9.stl |
|
||||
| 1 | printed_pulley_GT2x16x7_plain_idler.stl |
|
||||
| 1 | printed_pulley_GT2x20_plain_idler.stl |
|
||||
| 1 | printed_pulley_GT2x20_pulley_9.stl |
|
||||
| 1 | printed_pulley_GT2x20_toothed_idler.stl |
|
||||
| 1 | printed_pulley_GT2x20_toothed_idler_9.stl |
|
||||
| 1 | printed_pulley_GT2x20ob_pulley.stl |
|
||||
| 1 | printed_pulley_GT2x20um_pulley.stl |
|
||||
| 1 | printed_pulley_GT2x80_pulley.stl |
|
||||
| 1 | printed_pulley_T2p5x16_pulley.stl |
|
||||
| 1 | printed_pulley_T5x10_pulley.stl |
|
||||
|
||||
@@ -6515,13 +6778,18 @@ Creative Commons - Attribution - Share Alike license (see <https://creativecommo
|
||||
| ---:|:--- |
|
||||
| 1 | printed_pulley_GT2x12_pulley_assembly |
|
||||
| 1 | printed_pulley_GT2x16_plain_idler_assembly |
|
||||
| 1 | printed_pulley_GT2x16_pulley_9_assembly |
|
||||
| 1 | printed_pulley_GT2x16_pulley_assembly |
|
||||
| 1 | printed_pulley_GT2x16_toothed_idler_9_assembly |
|
||||
| 1 | printed_pulley_GT2x16_toothed_idler_assembly |
|
||||
| 1 | printed_pulley_GT2x16x7_plain_idler_assembly |
|
||||
| 1 | printed_pulley_GT2x20_plain_idler_assembly |
|
||||
| 1 | printed_pulley_GT2x20_pulley_9_assembly |
|
||||
| 1 | printed_pulley_GT2x20_toothed_idler_9_assembly |
|
||||
| 1 | printed_pulley_GT2x20_toothed_idler_assembly |
|
||||
| 1 | printed_pulley_GT2x20ob_pulley_assembly |
|
||||
| 1 | printed_pulley_GT2x20um_pulley_assembly |
|
||||
| 1 | printed_pulley_GT2x80_pulley_assembly |
|
||||
| 1 | printed_pulley_T2p5x16_pulley_assembly |
|
||||
| 1 | printed_pulley_T5x10_pulley_assembly |
|
||||
|
||||
@@ -6957,6 +7225,27 @@ The coordinates of the lowest point on the curve can be retrieved by calling `ca
|
||||

|
||||
|
||||
|
||||
<a href="#top">Top</a>
|
||||
|
||||
---
|
||||
<a name="chamfer"></a>
|
||||
## Chamfer
|
||||
45 degree chamfer the entrance to holes.
|
||||
|
||||
If the hole shape is concave then it must be described as a list of 2D convex children.
|
||||
|
||||
[utils/chamfer.scad](utils/chamfer.scad) Implementation.
|
||||
|
||||
[tests/chamfer.scad](tests/chamfer.scad) Code for this example.
|
||||
|
||||
### Modules
|
||||
| Module | Description |
|
||||
|:--- |:--- |
|
||||
| `chamfer_hole(depth = 1)` | Chamfer a hole given a 2D outline as a child |
|
||||
|
||||

|
||||
|
||||
|
||||
<a href="#top">Top</a>
|
||||
|
||||
---
|
||||
@@ -7002,9 +7291,9 @@ allows flexible positioning of the motors.
|
||||
### Modules
|
||||
| Module | Description |
|
||||
|:--- |:--- |
|
||||
| `coreXY(type, size, pos, separation, x_gap = 0, plain_idler_offset = [0, 0], upper_drive_pulley_offset = [0, 0], lower_drive_pulley_offset = [0, 0], show_pulleys = false, left_lower = false)` | Wrapper module to draw both belts of a coreXY setup |
|
||||
| `coreXY(type, size, pos, separation, x_gap = 0, plain_idler_offset = [0, 0], upper_drive_pulley_offset = [0, 0], lower_drive_pulley_offset = [0, 0], show_pulleys = false, left_lower = false, motor_back = false)` | Wrapper module to draw both belts of a coreXY setup |
|
||||
| `coreXY_belts(type, carriagePosition, coreXYPosBL, coreXYPosTR, separation, x_gap = 0, plain_idler_offset = [0, 0], upper_drive_pulley_offset = [0, 0], lower_drive_pulley_offset = [0, 0], show_pulleys = false, left_lower = false)` | Draw the coreXY belts |
|
||||
| `coreXY_half(type, size, pos, separation_y = 0, x_gap = 0, plain_idler_offset = [0, 0], drive_pulley_offset = [0, 0], show_pulleys = false, lower_belt = false, hflip = false)` | Draw one belt of a coreXY setup |
|
||||
| `coreXY_half(type, size, pos, separation_y = 0, x_gap = 0, plain_idler_offset = [0, 0], drive_pulley_offset = [0, 0], show_pulleys = false, lower_belt = false, hflip = false, motor_back = false)` | Draw one belt of a coreXY setup |
|
||||
|
||||

|
||||
|
||||
@@ -7013,12 +7302,44 @@ allows flexible positioning of the motors.
|
||||
| ---:|:--- |:---|
|
||||
| 1 | `belt(GT2x6, [ ... ])` | Belt GT2 x 6mm x 728mm |
|
||||
| 1 | `belt(GT2x6, [ ... ])` | Belt GT2 x 6mm x 790mm |
|
||||
| 7 | `pulley(GT2x16_toothed_idler)` | Pulley GT2 idler 16 teeth |
|
||||
| 3 | `pulley(GT2x16_plain_idler)` | Pulley GT2 idler smooth 9.63mm |
|
||||
| 2 | `pulley(GT2x20ob_pulley)` | Pulley GT2OB 20 teeth |
|
||||
| 1 | `belt(GT2x6, [ ... ])` | Belt GT2 x 6mm x 826mm |
|
||||
| 1 | `belt(GT2x6, [ ... ])` | Belt GT2 x 6mm x 826mm |
|
||||
| 2 | `belt(GT2x6, [ ... ])` | Belt GT2 x 6mm x 836mm |
|
||||
| 15 | `pulley(GT2x16_toothed_idler)` | Pulley GT2 idler 16 teeth |
|
||||
| 15 | `pulley(GT2x16_plain_idler)` | Pulley GT2 idler smooth 9.63mm |
|
||||
| 6 | `pulley(GT2x20ob_pulley)` | Pulley GT2OB 20 teeth |
|
||||
| 8 | `screw(M3_cap_screw, 20)` | Screw M3 cap x 20mm |
|
||||
| 4 | `screw(M3_grub_screw, 6)` | Screw M3 grub x 6mm |
|
||||
| 2 | `NEMA(NEMA17_40)` | Stepper motor NEMA17 x 40mm |
|
||||
| 12 | `screw(M3_grub_screw, 6)` | Screw M3 grub x 6mm |
|
||||
| 6 | `NEMA(NEMA17_40)` | Stepper motor NEMA17 x 40mm (5x20 shaft) |
|
||||
|
||||
|
||||
<a href="#top">Top</a>
|
||||
|
||||
---
|
||||
<a name="dimension"></a>
|
||||
## Dimension
|
||||
Modules for adding dimensions to assembly views.
|
||||
|
||||

|
||||
|
||||
* If `text` is empty, will display the measured distance.
|
||||
* `offset` will determine how much space is between the measured point and the dimension.
|
||||
* `thickness` is the thickness of the lines, and size of the arrows, if 0, will use 0.5% of the length of the dim.
|
||||
* `text_size` will determine the size of the text, if 0, will use percentage of the length of the dim.
|
||||
|
||||
[utils/dimension.scad](utils/dimension.scad) Implementation.
|
||||
|
||||
[tests/dimension.scad](tests/dimension.scad) Code for this example.
|
||||
|
||||
### Modules
|
||||
| Module | Description |
|
||||
|:--- |:--- |
|
||||
| `dimension(startpoint, endpoint, text = "", thickness = 0, text_size = 0 , rot_around_dim = 0)` | Creates a 3D dimension between two points. |
|
||||
| `dimension_x(startpoint, endpoint, offset = 1, text = "", thickness = 0, text_size = 0 , plane = "xy")` | Creates a dimension in the x direction. Plane options : xy, xz |
|
||||
| `dimension_y(startpoint, endpoint, offset = 1, text = "", thickness = 0, text_size = 0 , plane = "xy")` | Creates a dimension in the y direction. Plane options : xy, yz |
|
||||
| `dimension_z(startpoint, endpoint, offset = 1, text = "", thickness = 0, text_size = 0 , plane = "xz")` | Creates a dimension in the z direction. Plane options : xz, yz |
|
||||
|
||||

|
||||
|
||||
|
||||
<a href="#top">Top</a>
|
||||
@@ -7420,6 +7741,32 @@ A sector of a circle between two angles.
|
||||

|
||||
|
||||
|
||||
<a href="#top">Top</a>
|
||||
|
||||
---
|
||||
<a name="splines"></a>
|
||||
## Splines
|
||||
Cubic splines that interpolate between a list of 2D points passing through all of them.
|
||||
Translated from the Python version at <https://community.alteryx.com/t5/Engine-Works/Creating-a-Cubic-Spline-in-Python-and-Alteryx/ba-p/581173>.
|
||||
Note the x values of the points must be strictly increasing.
|
||||
|
||||
Catmull-Rom splines are well behaved but the ends points are control points and the curve only goes from the second point to the penultimate point.
|
||||
Coded from <https://en.wikipedia.org/wiki/Centripetal_Catmull%E2%80%93Rom_spline#Code_example_in_Python>.
|
||||
No restrictions on points and they can be 3D.
|
||||
|
||||
[utils/splines.scad](utils/splines.scad) Implementation.
|
||||
|
||||
[tests/splines.scad](tests/splines.scad) Code for this example.
|
||||
|
||||
### Functions
|
||||
| Function | Description |
|
||||
|:--- |:--- |
|
||||
| `catmull_rom_spline(points, n, alpha = 0.5)` | Interpolate n new points between the specified points with a Catmull-Rom spline, alpha = 0.5 for centripetal, 0 for uniform and 1 for chordal. |
|
||||
| `cubic_spline(points, N = 100)` | Interpolate the list of points given to produce N points on a cubic spline that passes through points given. |
|
||||
|
||||

|
||||
|
||||
|
||||
<a href="#top">Top</a>
|
||||
|
||||
---
|
||||
@@ -7459,6 +7806,7 @@ Each vertex, apart from the first and the last, has an associated radius and the
|
||||
| `segmented_path(path, min_segment)` | Add points to a path to enforce a minimum segment length |
|
||||
| `skin_faces(points, npoints, facets, loop, offset = 0)` | Create the mesh for the swept volume without end caps |
|
||||
| `spiral_paths(path, n, r, twists, start_angle)` | Create a new paths which spiral around the given path. Use for making twisted cables |
|
||||
| `spiral_wrap(path, profile, pitch, turns)` | Create a path that spirals around the specified profile with the given pitch. |
|
||||
| `sweep(path, profile, loop = false, twist = 0)` | Generate the point list and face list of the swept volume |
|
||||
|
||||
### Modules
|
||||
@@ -7566,6 +7914,8 @@ The `pose()` module allows assembly views in the readme to be posed differently
|
||||
* To get the parameter values make the GUI window square, pose the view with the mouse and then copy the viewport parameters from the Edit menu and paste them into the pose invocation.
|
||||
* Two `pose()` modules can be chained to allow different poses for exploded and assembled views.
|
||||
|
||||
The `pose_stl()` module allows an STL child to be posed for its rendered image used in the readme for the project.
|
||||
|
||||
[utils/core/bom.scad](utils/core/bom.scad) Implementation.
|
||||
|
||||
[tests/BOM.scad](tests/BOM.scad) Code for this example.
|
||||
@@ -7589,8 +7939,9 @@ The `pose()` module allows assembly views in the readme to be posed differently
|
||||
| `no_explode()` | Prevent children being exploded |
|
||||
| `no_pose()` | Force children not to be posed even if parent is |
|
||||
| `not_on_bom(on = false)` | Specify the following child parts are not on the BOM, for example when they are on a PCB that comes assembled |
|
||||
| `pose(a = [55, 0, 25], t = [0, 0, 0], exploded = undef, d = undef)` | Pose an STL or assembly for rendering to png by specifying rotation `a`, translation `t` and optionally `d`, `exploded = true for` just the exploded view or `false` for unexploded only. |
|
||||
| `pose(a = [55, 0, 25], t = [0, 0, 0], exploded = undef, d = undef)` | Pose an assembly for rendering to png by specifying rotation `a`, translation `t` and optionally `d`, `exploded = true for` just the exploded view or `false` for unexploded only. |
|
||||
| `pose_hflip(exploded = undef)` | Pose an STL or assembly for rendering to png by flipping around the Y axis, `exploded = true for` just the exploded view or `false` for unexploded only. |
|
||||
| `pose_stl(a = [70, 0, 315], t = [0, 0, 0], d = 500)` | Pose an STL for its render, `a`, `t`, & `d` are camera parameters. |
|
||||
| `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. |
|
||||
|
@@ -69,7 +69,10 @@ class Part:
|
||||
self.count = 1
|
||||
for arg in args:
|
||||
arg = arg.replace('true', 'True').replace('false', 'False').replace('undef', 'None')
|
||||
exec('self.' + arg)
|
||||
try:
|
||||
exec('self.' + arg)
|
||||
except:
|
||||
print(arg)
|
||||
|
||||
def data(self):
|
||||
return self.__dict__
|
||||
@@ -107,7 +110,7 @@ class BOM:
|
||||
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)]
|
||||
args = match.group(2).split('|')
|
||||
if s[-4:] == ".stl":
|
||||
parts = self.printed
|
||||
else:
|
||||
|
@@ -66,9 +66,16 @@ def make_parts(target, part_type, parts = None):
|
||||
top_dir = set_config(target, lambda: usage(part_type))
|
||||
target_dir = top_dir + part_type + 's'
|
||||
deps_dir = target_dir + "/deps"
|
||||
bom_dir = top_dir + "bom"
|
||||
tmp_dir = mktmpdir(top_dir)
|
||||
|
||||
#
|
||||
# Check we have some of this type
|
||||
#
|
||||
bom_dir = top_dir + "bom"
|
||||
all_parts = bom_to_parts(bom_dir, part_type)
|
||||
if not all_parts:
|
||||
return
|
||||
|
||||
tmp_dir = mktmpdir(top_dir)
|
||||
if not os.path.isdir(target_dir):
|
||||
os.makedirs(target_dir)
|
||||
|
||||
@@ -83,7 +90,6 @@ def make_parts(target, part_type, parts = None):
|
||||
#
|
||||
# Decide which files to make
|
||||
#
|
||||
all_parts = bom_to_parts(bom_dir, part_type)
|
||||
if parts:
|
||||
targets = list(parts) #copy the list so we dont modify the list passed in
|
||||
else:
|
||||
|
@@ -37,19 +37,21 @@ def usage():
|
||||
sys.exit(1)
|
||||
|
||||
def render(target, type):
|
||||
#
|
||||
# Make the target directory
|
||||
#
|
||||
top_dir = set_config(target, usage)
|
||||
tmp_dir = mktmpdir(top_dir)
|
||||
target_dir = top_dir + type + 's'
|
||||
bom_dir = top_dir + 'bom'
|
||||
if not os.path.isdir(target_dir):
|
||||
os.makedirs(target_dir)
|
||||
#
|
||||
# Find all the parts
|
||||
#
|
||||
parts = bom_to_parts(bom_dir, type)
|
||||
if not parts:
|
||||
return
|
||||
#
|
||||
# Make the target directory
|
||||
#
|
||||
tmp_dir = mktmpdir(top_dir)
|
||||
target_dir = top_dir + type + 's'
|
||||
if not os.path.isdir(target_dir):
|
||||
os.makedirs(target_dir)
|
||||
#
|
||||
# Read the json bom to get the colours
|
||||
#
|
||||
@@ -59,11 +61,14 @@ def render(target, type):
|
||||
|
||||
things = { 'stl' : 'printed', 'dxf' : 'routed', 'svg' : 'routed' }[type]
|
||||
colours = {}
|
||||
cameras = {}
|
||||
for ass in flat_bom:
|
||||
for part in ass[things]:
|
||||
obj = ass[things][part]
|
||||
if "colour" in obj:
|
||||
colours[part] = obj["colour"]
|
||||
if "camera" in obj:
|
||||
cameras[part] = obj["camera"]
|
||||
#
|
||||
# Remove unused png files
|
||||
#
|
||||
@@ -85,13 +90,16 @@ def render(target, type):
|
||||
png_maker_name = tmp_dir + "/png.scad"
|
||||
pp1 = [0, 146/255, 0]
|
||||
colour = pp1
|
||||
camera = "0,0,0,70,0,315,500"
|
||||
if part in cameras:
|
||||
camera = cameras[part]
|
||||
if part in colours:
|
||||
colour = colours[part]
|
||||
if not '[' in colour:
|
||||
colour = '"' + colour + '"'
|
||||
with open(png_maker_name, "w") as f:
|
||||
f.write('color(%s) import("%s");\n' % (colour, reltmp(part_file, target)))
|
||||
cam = "--camera=0,0,0,70,0,315,500" if type == 'stl' else "--camera=0,0,0,0,0,0,500"
|
||||
cam = "--camera=" + camera if type == 'stl' else "--camera=0,0,0,0,0,0,500"
|
||||
render = "--preview" if type == 'stl' or colour != pp1 else "--render"
|
||||
tmp_name = tmp_dir + '/' + part[:-4] + '.png'
|
||||
dummy_deps_name = tmp_dir + '/tmp.deps' # work around for OpenSCAD issue #3879
|
||||
|
@@ -353,7 +353,7 @@ def views(target, do_assemblies = None):
|
||||
print('### 3D Printed parts', file = doc_file)
|
||||
keys = sorted(list(printed.keys()))
|
||||
for i, p in enumerate(keys):
|
||||
print('%s %d x %s |' % ('\n|' if not (i % 3) else '', printed[p]["count"], p), file = doc_file, end = '')
|
||||
print('%s %d x [%s](stls/%s) |' % ('\n|' if not (i % 3) else '', printed[p]["count"], p, p), file = doc_file, end = '')
|
||||
if (i % 3) == 2 or i == len(printed) - 1:
|
||||
n = (i % 3) + 1
|
||||
print('\n|%s' % ('---|' * n), file = doc_file)
|
||||
@@ -368,7 +368,10 @@ def views(target, do_assemblies = None):
|
||||
print("### CNC Routed parts", file = doc_file)
|
||||
keys = sorted(list(routed.keys()))
|
||||
for i, r in enumerate(keys):
|
||||
print('%s %d x %s |' % ('\n|' if not (i % 3) else '', routed[r]["count"], r), file = doc_file, end = '')
|
||||
if(r.endswith('dxf')):
|
||||
print('%s %d x [%s](dxfs/%s) |' % ('\n|' if not (i % 3) else '', routed[r]["count"], r, r), file = doc_file, end = '')
|
||||
elif(r.endswith('svg')):
|
||||
print('%s %d x [%s](svgs/%s) |' % ('\n|' if not (i % 3) else '', routed[r]["count"], r, r), file = doc_file, end = '')
|
||||
if (i % 3) == 2 or i == len(routed) - 1:
|
||||
n = (i % 3) + 1
|
||||
print('\n|%s' % ('---|' * n), file = doc_file)
|
||||
@@ -379,7 +382,7 @@ def views(target, do_assemblies = None):
|
||||
elif (part[-4:] == ".svg"):
|
||||
print('|  %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("Unknown file type ", part[-4:], " for file ", part)
|
||||
print('\n', file = doc_file)
|
||||
print('\n', file = doc_file)
|
||||
|
||||
|
37
tests/HT_pipes.scad
Normal file
@@ -0,0 +1,37 @@
|
||||
//
|
||||
// NopSCADlib Copyright Jan Giebels 2024
|
||||
//
|
||||
// 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/layout.scad>
|
||||
|
||||
include <../vitamins/ht_pipes.scad>
|
||||
|
||||
module ht_pipes()
|
||||
color("grey")
|
||||
layout([for(p = ht_pipes) 40 + pipe_od(p)]) let(p = ht_pipes[$i], len = pipe_length(p)) {
|
||||
if(len <= 34)
|
||||
translate_z(len)
|
||||
ht_cap(p);
|
||||
|
||||
if(len >= 101)
|
||||
ht_pipe(p);
|
||||
|
||||
if(len == 100)
|
||||
ht_tpipe(p);
|
||||
}
|
||||
|
||||
if($preview)
|
||||
ht_pipes();
|
@@ -23,7 +23,7 @@ include <../vitamins/leds.scad>
|
||||
use <../printed/led_bezel.scad>
|
||||
|
||||
module led_bezels()
|
||||
layout([for(l = LEDs) led_diameter(l)], 6) let(l = LEDs[$i], b = led_bezel(l))
|
||||
layout([for(l = LEDs) max(led_diameter(l))], 6) let(l = LEDs[$i], b = led_bezel(l))
|
||||
if($preview)
|
||||
led_bezel_fastened_assembly(b, 3, ["yellow", "blue", "red", "orange"][$i % 4]);
|
||||
else {
|
||||
|
@@ -22,7 +22,7 @@ use <../utils/layout.scad>
|
||||
include <../vitamins/leds.scad>
|
||||
|
||||
module leds()
|
||||
layout([for(l = LEDs) led_diameter(l)], 5)
|
||||
layout([for(l = LEDs) max(led_diameter(l))], 5)
|
||||
led(LEDs[$i], ["green", "blue", "red", "orange"][$i % 4]);
|
||||
|
||||
if($preview)
|
||||
|
@@ -61,7 +61,7 @@ test_pcb = ["test_pcb", "Test PCB",
|
||||
// components
|
||||
[
|
||||
[ 20, -5, 180, "trimpot10"],
|
||||
[ 20, -15, 90, "trimpot10", true],
|
||||
[ 20, -18, 90, "trimpot10", true],
|
||||
[ 19, 2, 90, "smd_led", LED1206, "blue"],
|
||||
[ 16, 2, 90, "smd_led", LED0805, "red"],
|
||||
[ 13, 2, 90, "smd_led", LED0603, "orange"],
|
||||
@@ -82,6 +82,7 @@ test_pcb = ["test_pcb", "Test PCB",
|
||||
[ 32, 3, -90, "smd_diode",DO214AC, "SS34"],
|
||||
[ 26, 2, -90, "smd_pot", TC33X1, "10K"],
|
||||
[ 26, 6, -90, "smd_coax",U_FL_R_SMT_1],
|
||||
[ 8, 23, 0, "smd_250V_fuse", OMT250, "2A 250V"],
|
||||
|
||||
[ 26, 10, -90, "smd_sot", SOT23, "2N7000"],
|
||||
[ 28, 16, -90, "smd_sot", SOT223, "LM117"],
|
||||
@@ -116,8 +117,8 @@ test_pcb = ["test_pcb", "Test PCB",
|
||||
[ 5, 220, 180, "hdmi"],
|
||||
[ 3, 235, 180, "mini_hdmi"],
|
||||
[ 38, 190, -90, "text", 25, 4, "Silkscreen", "Liberation Sans:style=Bold"],
|
||||
[ 25, 200, 0, "buzzer", 4.5, 8.5],
|
||||
[ 25, 218, 0, "buzzer"],
|
||||
[ 25, 205, 0, "buzzer", 4.5, 8.5],
|
||||
[ 25, 220, 0, "buzzer"],
|
||||
|
||||
[ 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
|
||||
@@ -130,6 +131,11 @@ test_pcb = ["test_pcb", "Test PCB",
|
||||
[ 35, 17, 0, "vero_pin", true],
|
||||
[ 35, 8, 180, "rd_transistor", TO92, "78L05", undef, undef, "Regulator"],
|
||||
[ 35, 13, 180, "rd_transistor", E_LINE, "ZTX853"],
|
||||
[ 25, 190, 0, "rd_electrolytic", ECAP8x11, "220uF35V"],
|
||||
[ 25, 180, 90, "rd_disc", ERZV07D471, "471"],
|
||||
[ 25, 170, 90, "rd_disc", 6p4mm_disc, "100n"],
|
||||
[ 30, 170, 90, "rd_disc", 10mm_disc, "1nF Y2"],
|
||||
[ 90, 135, -90, "rd_module", HF33F, "012-HSL-3F"],
|
||||
[ 35, 3, 0, "link", 0, 5], // Vertical wire
|
||||
|
||||
[ 60, 3, 0, "link", inch(0.2), inch(0.4)], // Raised link
|
||||
@@ -147,6 +153,9 @@ test_pcb = ["test_pcb", "Test PCB",
|
||||
[ 30, 130,-90, "rd_xtal", ACT1100, "40MHz", 0.5 ],
|
||||
[ 30, 150,-90, "rd_xtal", ACT1700, "80MHz", 0.5 ],
|
||||
|
||||
[ 93, 230,-90, "rd_box_cap", BOXC18x10x16, "X2 rated film capacitor", "0.47uF 250V" ],
|
||||
[ 93, 210,-90, "rd_box_cap", BOXC18x5x11, "X2 rated film capacitor", "0.1uF 250V" ],
|
||||
|
||||
[ 77, 15, -90, "flex"],
|
||||
[ 95, 15, -90, "flat_flex"],
|
||||
[ 87, 15, -90, "flat_flex", true],
|
||||
@@ -179,9 +188,9 @@ test_pcb = ["test_pcb", "Test PCB",
|
||||
[ 55, 170, 0, "button_4p5mm"],
|
||||
[ 50, 185, 0, "microswitch", small_microswitch],
|
||||
[ 52, 200, 0, "pcb", 11, TMC2130 ],
|
||||
[ 80, 210, 0, "pdip", 24, "27C32", true, inch(0.6) ],
|
||||
[ 76, 210, 0, "pdip", 24, "27C32", true, inch(0.6) ],
|
||||
[ 80, 180, 0, "pdip", 8, "NE555" ],
|
||||
[ 71, 180, 0, "smd_inductor", IND2525, "4R7"],
|
||||
[ 71, 180, 0, "smd_inductor", IND2525, "4R7"],
|
||||
|
||||
[ 87, 166, -90, "smd_soic", SOIC18, "PIC18F88"],
|
||||
[ 78, 166, -90, "smd_soic", SOIC14, "74HC00"],
|
||||
@@ -189,14 +198,16 @@ test_pcb = ["test_pcb", "Test PCB",
|
||||
[ 64, 166, -90, "smd_soic", SOIC8, "M34063"],
|
||||
[ 70, 150, 0, "chip", 10, 5, 1, grey(20)],
|
||||
|
||||
[90, 140, -90, "relay", HF33F, "012-HSL-3F"],
|
||||
[ 90, 140, -90, "relay", HF33F, "012-HSL-3F"],
|
||||
|
||||
|
||||
[ 52, 206, 0, "2p54socket", 8, 1 ],
|
||||
[ 52, 194, 0, "2p54socket", 8, 1, false, 0, false, "red" ],
|
||||
[ 50, 220, 0, "standoff", 5, 4.5, 12.5, 2.54],
|
||||
[ 50, 240, 0, "potentiometer"],
|
||||
[ 55, 220, 0, "standoff", 5, 4.5, 12.5, 2.54],
|
||||
[ 60, 240, 0, "potentiometer"],
|
||||
[ 75, 240, 0, "potentiometer", KY_040_encoder, 8],
|
||||
[ 40, 235, -90, "rd_cm_choke", ATX_CM_CHOKE, "3.5mH"],
|
||||
[ 40, 217, 0, "rd_coil", IND16x10, "4.7uH"],
|
||||
[ 30, 85, -90, "7seg", WT5011BSR, 2],
|
||||
[ 30, 55, -90, "D_plug", DCONN9],
|
||||
],
|
||||
|
@@ -64,7 +64,12 @@ module smds() {
|
||||
let(s = smd_soics[$i])
|
||||
smd_soic(s, s[0]);
|
||||
|
||||
translate([0, 39])
|
||||
translate([0, 36.5])
|
||||
layout([for(i = smd_250V_fuses) smd_250V_fuse_size(i).x], 1)
|
||||
let(i = smd_250V_fuses[$i])
|
||||
smd_250V_fuse(i, "2A 250V");
|
||||
|
||||
translate([0, 45])
|
||||
layout([for(i = smd_inductors) smd_inductor_leads(i).x], 1)
|
||||
let(i = smd_inductors[$i])
|
||||
smd_inductor(i, ["4R7", "10R"][$i % 2]);
|
||||
|
@@ -26,7 +26,7 @@ include <../vitamins/cameras.scad>
|
||||
use <../vitamins/pcb.scad>
|
||||
|
||||
module camera_housings()
|
||||
layout([for(c = cameras) pcb_length(camera_pcb(c))], 10, false) let(c = cameras[$i])
|
||||
layout([for(c = cameras) pcb_length(camera_pcb(c))], 15, false) let(c = cameras[$i])
|
||||
if(pcb_screw(camera_pcb(c)))
|
||||
camera_fastened_assembly(c, 3);
|
||||
|
||||
|
37
tests/chamfer.scad
Normal file
@@ -0,0 +1,37 @@
|
||||
//
|
||||
// NopSCADlib Copyright Chris Palmer 2025
|
||||
// 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/chamfer.scad>
|
||||
|
||||
module chamfer() {
|
||||
difference() {
|
||||
h = 1;
|
||||
rounded_rectangle([20, 20, h], 2);
|
||||
|
||||
translate_z(h)
|
||||
chamfer_hole(h + eps) {
|
||||
circle(2);
|
||||
|
||||
translate([-1, 0])
|
||||
square([2, 5]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
chamfer();
|
@@ -132,5 +132,57 @@ module coreXY_belts_test() {
|
||||
}
|
||||
}
|
||||
|
||||
if ($preview)
|
||||
module coreXY_motor_in_back_test1() {
|
||||
size = [200,200];
|
||||
pos = [100,100];
|
||||
separation = [20,5,10];
|
||||
|
||||
|
||||
coreXY(coreXY_GT2_20_16, size, pos, separation, x_gap = 0, plain_idler_offset = [0, 0], upper_drive_pulley_offset = [0, 0], lower_drive_pulley_offset = [0, 0], show_pulleys = true, left_lower = false, motor_back = true);
|
||||
|
||||
rotate([180,0,0])
|
||||
translate (
|
||||
[ separation.x/2
|
||||
, 0
|
||||
, -separation.z/2 -15 ])
|
||||
NEMA(NEMA17_40);
|
||||
translate (
|
||||
[ size.x - separation.x/2
|
||||
, 0
|
||||
, -separation.z/2 - 15 ])
|
||||
NEMA(NEMA17_40);
|
||||
}
|
||||
|
||||
module coreXY_motor_in_back_test2() {
|
||||
size = [200,200];
|
||||
pos = [100,100];
|
||||
separation = [0,5,10];
|
||||
upper_drive_pulley_offset = [20, 5];
|
||||
lower_drive_pulley_offset = [20, 5];
|
||||
|
||||
|
||||
coreXY(coreXY_GT2_20_16, size, pos, separation, x_gap = 0, plain_idler_offset = [20, 0], upper_drive_pulley_offset = upper_drive_pulley_offset, lower_drive_pulley_offset = lower_drive_pulley_offset, show_pulleys = true, left_lower = false, motor_back = true);
|
||||
|
||||
translate (
|
||||
[ size.x - separation.x/2 - lower_drive_pulley_offset.x
|
||||
, lower_drive_pulley_offset.y
|
||||
, -separation.z/2 - 15 ])
|
||||
NEMA(NEMA17_40);
|
||||
|
||||
translate (
|
||||
[ separation.x/2 + upper_drive_pulley_offset.x
|
||||
, upper_drive_pulley_offset.y
|
||||
, separation.z/2 - 25 ])
|
||||
NEMA(NEMA17_40);
|
||||
}
|
||||
|
||||
|
||||
if ($preview) {
|
||||
coreXY_belts_test();
|
||||
|
||||
translate ([-250, 0,0])
|
||||
coreXY_motor_in_back_test1();
|
||||
|
||||
translate ([-250, -250,0])
|
||||
coreXY_motor_in_back_test2();
|
||||
}
|
||||
|