mirror of
https://github.com/DJSundog/NopSCADlib.git
synced 2024-11-27 09:10:02 -05:00
Filenames of tests can now be capitalised to get the correct titles.
The implementation files are still lower case for backwards compatibility.
This commit is contained in:
parent
bd60b50b09
commit
53292c9f89
24
libtest.scad
24
libtest.scad
@ -38,13 +38,13 @@ use <tests/fans.scad>
|
|||||||
use <tests/fuseholder.scad>
|
use <tests/fuseholder.scad>
|
||||||
use <tests/geared_steppers.scad>
|
use <tests/geared_steppers.scad>
|
||||||
use <tests/hot_ends.scad>
|
use <tests/hot_ends.scad>
|
||||||
use <tests/iecs.scad>
|
use <tests/IECs.scad>
|
||||||
use <tests/inserts.scad>
|
use <tests/inserts.scad>
|
||||||
use <tests/jack.scad>
|
use <tests/jack.scad>
|
||||||
use <tests/kp_pillow_blocks.scad>
|
use <tests/KP_pillow_blocks.scad>
|
||||||
use <tests/leadnuts.scad>
|
use <tests/leadnuts.scad>
|
||||||
use <tests/leds.scad>
|
use <tests/LDRs.scad>
|
||||||
use <tests/ldrs.scad>
|
use <tests/LEDs.scad>
|
||||||
use <tests/light_strips.scad>
|
use <tests/light_strips.scad>
|
||||||
use <tests/linear_bearings.scad>
|
use <tests/linear_bearings.scad>
|
||||||
use <tests/meter.scad>
|
use <tests/meter.scad>
|
||||||
@ -53,22 +53,22 @@ use <tests/modules.scad>
|
|||||||
use <tests/nuts.scad>
|
use <tests/nuts.scad>
|
||||||
use <tests/o_ring.scad>
|
use <tests/o_ring.scad>
|
||||||
use <tests/opengrab.scad>
|
use <tests/opengrab.scad>
|
||||||
use <tests/pcbs.scad>
|
use <tests/PCBs.scad>
|
||||||
use <tests/pillars.scad>
|
use <tests/pillars.scad>
|
||||||
use <tests/psus.scad>
|
use <tests/PSUs.scad>
|
||||||
use <tests/pulleys.scad>
|
use <tests/pulleys.scad>
|
||||||
use <tests/rails.scad>
|
use <tests/rails.scad>
|
||||||
use <tests/ring_terminals.scad>
|
use <tests/ring_terminals.scad>
|
||||||
use <tests/rockers.scad>
|
use <tests/rockers.scad>
|
||||||
use <tests/rod.scad>
|
use <tests/rod.scad>
|
||||||
use <tests/screws.scad>
|
use <tests/screws.scad>
|
||||||
use <tests/scs_bearing_blocks.scad>
|
use <tests/SCS_bearing_blocks.scad>
|
||||||
use <tests/sealing_strip.scad>
|
use <tests/sealing_strip.scad>
|
||||||
use <tests/sheets.scad>
|
use <tests/sheets.scad>
|
||||||
use <tests/sk_brackets.scad>
|
use <tests/SK_brackets.scad>
|
||||||
use <tests/spades.scad>
|
use <tests/spades.scad>
|
||||||
use <tests/springs.scad>
|
use <tests/springs.scad>
|
||||||
use <tests/ssrs.scad>
|
use <tests/SSRs.scad>
|
||||||
use <tests/stepper_motors.scad>
|
use <tests/stepper_motors.scad>
|
||||||
use <tests/toggles.scad>
|
use <tests/toggles.scad>
|
||||||
use <tests/transformers.scad>
|
use <tests/transformers.scad>
|
||||||
@ -90,14 +90,14 @@ use <tests/fixing_block.scad>
|
|||||||
use <tests/flat_hinge.scad>
|
use <tests/flat_hinge.scad>
|
||||||
use <tests/foot.scad>
|
use <tests/foot.scad>
|
||||||
use <tests/handle.scad>
|
use <tests/handle.scad>
|
||||||
use <tests/pcb_mount.scad>
|
use <tests/PCB_mount.scad>
|
||||||
use <tests/printed_box.scad>
|
use <tests/printed_box.scad>
|
||||||
use <tests/ribbon_clamp.scad>
|
use <tests/ribbon_clamp.scad>
|
||||||
use <tests/screw_knob.scad>
|
use <tests/screw_knob.scad>
|
||||||
use <tests/socket_box.scad>
|
use <tests/socket_box.scad>
|
||||||
use <tests/strap_handle.scad>
|
use <tests/strap_handle.scad>
|
||||||
use <tests/ssr_shroud.scad>
|
use <tests/SSR_shroud.scad>
|
||||||
use <tests/psu_shroud.scad>
|
use <tests/PSU_shroud.scad>
|
||||||
|
|
||||||
x0 = 0;
|
x0 = 0;
|
||||||
x1 = x0 + 100;
|
x1 = x0 + 100;
|
||||||
|
122
readme.md
122
readme.md
@ -18,25 +18,25 @@ See [usage](docs/usage.md) for requirements, installation instructions and a usa
|
|||||||
## Table of Contents<a name="top"/>
|
## Table of Contents<a name="top"/>
|
||||||
<table><tr>
|
<table><tr>
|
||||||
<th align="left"> Vitamins A-J </th><th align="left"> Vitamins K-Q </th><th align="left"> Vitamins R-Z </th><th align="left"> Printed </th><th align="left"> Utilities </th><th align="left"> Core Utilities </th></tr>
|
<th align="left"> Vitamins A-J </th><th align="left"> Vitamins K-Q </th><th align="left"> Vitamins R-Z </th><th align="left"> Printed </th><th align="left"> Utilities </th><th align="left"> Core Utilities </th></tr>
|
||||||
<tr><td> <a href = "#Ball_bearings">Ball_bearings</a> </td><td> <a href = "#Kp_pillow_blocks">Kp_pillow_blocks</a> </td><td> <a href = "#Rails">Rails</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 = "#Ball_bearings">Ball_bearings</a> </td><td> <a href = "#KP_pillow_blocks">KP_pillow_blocks</a> </td><td> <a href = "#Rails">Rails</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 = "#Batteries">Batteries</a> </td><td> <a href = "#Ldrs">Ldrs</a> </td><td> <a href = "#Ring_terminals">Ring_terminals</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 = "#Batteries">Batteries</a> </td><td> <a href = "#LDRs">LDRs</a> </td><td> <a href = "#Ring_terminals">Ring_terminals</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 = "#Belts">Belts</a> </td><td> <a href = "#Leadnuts">Leadnuts</a> </td><td> <a href = "#Rockers">Rockers</a> </td><td> <a href = "#Cable_grommets">Cable_grommets</a> </td><td> <a href = "#Dogbones">Dogbones</a> </td><td> <a href = "#Global">Global</a> </td></tr>
|
<tr><td> <a href = "#Belts">Belts</a> </td><td> <a href = "#LEDs">LEDs</a> </td><td> <a href = "#Rockers">Rockers</a> </td><td> <a href = "#Cable_grommets">Cable_grommets</a> </td><td> <a href = "#Dogbones">Dogbones</a> </td><td> <a href = "#Global">Global</a> </td></tr>
|
||||||
<tr><td> <a href = "#Blowers">Blowers</a> </td><td> <a href = "#Leds">Leds</a> </td><td> <a href = "#Rod">Rod</a> </td><td> <a href = "#Carriers">Carriers</a> </td><td> <a href = "#Fillet">Fillet</a> </td><td> <a href = "#Polyholes">Polyholes</a> </td></tr>
|
<tr><td> <a href = "#Blowers">Blowers</a> </td><td> <a href = "#Leadnuts">Leadnuts</a> </td><td> <a href = "#Rod">Rod</a> </td><td> <a href = "#Carriers">Carriers</a> </td><td> <a href = "#Fillet">Fillet</a> </td><td> <a href = "#Polyholes">Polyholes</a> </td></tr>
|
||||||
<tr><td> <a href = "#Bulldogs">Bulldogs</a> </td><td> <a href = "#Light_strips">Light_strips</a> </td><td> <a href = "#Screws">Screws</a> </td><td> <a href = "#Corner_block">Corner_block</a> </td><td> <a href = "#Hanging_hole">Hanging_hole</a> </td><td> <a href = "#Rounded_rectangle">Rounded_rectangle</a> </td></tr>
|
<tr><td> <a href = "#Bulldogs">Bulldogs</a> </td><td> <a href = "#Light_strips">Light_strips</a> </td><td> <a href = "#SCS_bearing_blocks">SCS_bearing_blocks</a> </td><td> <a href = "#Corner_block">Corner_block</a> </td><td> <a href = "#Hanging_hole">Hanging_hole</a> </td><td> <a href = "#Rounded_rectangle">Rounded_rectangle</a> </td></tr>
|
||||||
<tr><td> <a href = "#Buttons">Buttons</a> </td><td> <a href = "#Linear_bearings">Linear_bearings</a> </td><td> <a href = "#Scs_bearing_blocks">Scs_bearing_blocks</a> </td><td> <a href = "#Door_hinge">Door_hinge</a> </td><td> <a href = "#Layout">Layout</a> </td><td> <a href = "#Sphere">Sphere</a> </td></tr>
|
<tr><td> <a href = "#Buttons">Buttons</a> </td><td> <a href = "#Linear_bearings">Linear_bearings</a> </td><td> <a href = "#SK_brackets">SK_brackets</a> </td><td> <a href = "#Door_hinge">Door_hinge</a> </td><td> <a href = "#Layout">Layout</a> </td><td> <a href = "#Sphere">Sphere</a> </td></tr>
|
||||||
<tr><td> <a href = "#Cable_strips">Cable_strips</a> </td><td> <a href = "#Mains_sockets">Mains_sockets</a> </td><td> <a href = "#Sealing_strip">Sealing_strip</a> </td><td> <a href = "#Door_latch">Door_latch</a> </td><td> <a href = "#Maths">Maths</a> </td><td> <a href = "#Teardrops">Teardrops</a> </td></tr>
|
<tr><td> <a href = "#Cable_strips">Cable_strips</a> </td><td> <a href = "#Mains_sockets">Mains_sockets</a> </td><td> <a href = "#SSRs">SSRs</a> </td><td> <a href = "#Door_latch">Door_latch</a> </td><td> <a href = "#Maths">Maths</a> </td><td> <a href = "#Teardrops">Teardrops</a> </td></tr>
|
||||||
<tr><td> <a href = "#Components">Components</a> </td><td> <a href = "#Meter">Meter</a> </td><td> <a href = "#Sheets">Sheets</a> </td><td> <a href = "#Fan_guard">Fan_guard</a> </td><td> <a href = "#Offset">Offset</a> </td><td></td></tr>
|
<tr><td> <a href = "#Components">Components</a> </td><td> <a href = "#Meter">Meter</a> </td><td> <a href = "#Screws">Screws</a> </td><td> <a href = "#Fan_guard">Fan_guard</a> </td><td> <a href = "#Offset">Offset</a> </td><td></td></tr>
|
||||||
<tr><td> <a href = "#D_connectors">D_connectors</a> </td><td> <a href = "#Microswitches">Microswitches</a> </td><td> <a href = "#Sk_brackets">Sk_brackets</a> </td><td> <a href = "#Fixing_block">Fixing_block</a> </td><td> <a href = "#Quadrant">Quadrant</a> </td><td></td></tr>
|
<tr><td> <a href = "#D_connectors">D_connectors</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 = "#Quadrant">Quadrant</a> </td><td></td></tr>
|
||||||
<tr><td> <a href = "#Displays">Displays</a> </td><td> <a href = "#Microview">Microview</a> </td><td> <a href = "#Spades">Spades</a> </td><td> <a href = "#Flat_hinge">Flat_hinge</a> </td><td> <a href = "#Round">Round</a> </td><td></td></tr>
|
<tr><td> <a href = "#Displays">Displays</a> </td><td> <a href = "#Microview">Microview</a> </td><td> <a href = "#Sheets">Sheets</a> </td><td> <a href = "#Flat_hinge">Flat_hinge</a> </td><td> <a href = "#Round">Round</a> </td><td></td></tr>
|
||||||
<tr><td> <a href = "#Extrusion_brackets">Extrusion_brackets</a> </td><td> <a href = "#Modules">Modules</a> </td><td> <a href = "#Spools">Spools</a> </td><td> <a href = "#Foot">Foot</a> </td><td> <a href = "#Rounded_cylinder">Rounded_cylinder</a> </td><td></td></tr>
|
<tr><td> <a href = "#Extrusion_brackets">Extrusion_brackets</a> </td><td> <a href = "#Modules">Modules</a> </td><td> <a href = "#Spades">Spades</a> </td><td> <a href = "#Foot">Foot</a> </td><td> <a href = "#Rounded_cylinder">Rounded_cylinder</a> </td><td></td></tr>
|
||||||
<tr><td> <a href = "#Extrusions">Extrusions</a> </td><td> <a href = "#Nuts">Nuts</a> </td><td> <a href = "#Springs">Springs</a> </td><td> <a href = "#Handle">Handle</a> </td><td> <a href = "#Rounded_polygon">Rounded_polygon</a> </td><td></td></tr>
|
<tr><td> <a href = "#Extrusions">Extrusions</a> </td><td> <a href = "#Nuts">Nuts</a> </td><td> <a href = "#Spools">Spools</a> </td><td> <a href = "#Handle">Handle</a> </td><td> <a href = "#Rounded_polygon">Rounded_polygon</a> </td><td></td></tr>
|
||||||
<tr><td> <a href = "#Fans">Fans</a> </td><td> <a href = "#O_ring">O_ring</a> </td><td> <a href = "#Ssrs">Ssrs</a> </td><td> <a href = "#Pcb_mount">Pcb_mount</a> </td><td> <a href = "#Sector">Sector</a> </td><td></td></tr>
|
<tr><td> <a href = "#Fans">Fans</a> </td><td> <a href = "#O_ring">O_ring</a> </td><td> <a href = "#Springs">Springs</a> </td><td> <a href = "#PCB_mount">PCB_mount</a> </td><td> <a href = "#Sector">Sector</a> </td><td></td></tr>
|
||||||
<tr><td> <a href = "#Fuseholder">Fuseholder</a> </td><td> <a href = "#Opengrab">Opengrab</a> </td><td> <a href = "#Stepper_motors">Stepper_motors</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 = "#Opengrab">Opengrab</a> </td><td> <a href = "#Stepper_motors">Stepper_motors</a> </td><td> <a href = "#PSU_shroud">PSU_shroud</a> </td><td> <a href = "#Sweep">Sweep</a> </td><td></td></tr>
|
||||||
<tr><td> <a href = "#Geared_steppers">Geared_steppers</a> </td><td> <a href = "#Pcb">Pcb</a> </td><td> <a href = "#Toggles">Toggles</a> </td><td> <a href = "#Psu_shroud">Psu_shroud</a> </td><td> <a href = "#Thread">Thread</a> </td><td></td></tr>
|
<tr><td> <a href = "#Geared_steppers">Geared_steppers</a> </td><td> <a href = "#PCB">PCB</a> </td><td> <a href = "#Toggles">Toggles</a> </td><td> <a href = "#Printed_box">Printed_box</a> </td><td> <a href = "#Thread">Thread</a> </td><td></td></tr>
|
||||||
<tr><td> <a href = "#Green_terminals">Green_terminals</a> </td><td> <a href = "#Pcbs">Pcbs</a> </td><td> <a href = "#Transformers">Transformers</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 = "#Green_terminals">Green_terminals</a> </td><td> <a href = "#PCBs">PCBs</a> </td><td> <a href = "#Transformers">Transformers</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 = "#Hot_ends">Hot_ends</a> </td><td> <a href = "#Pillars">Pillars</a> </td><td> <a href = "#Tubings">Tubings</a> </td><td> <a href = "#Screw_knob">Screw_knob</a> </td><td></td><td></td></tr>
|
<tr><td> <a href = "#Hot_ends">Hot_ends</a> </td><td> <a href = "#PSUs">PSUs</a> </td><td> <a href = "#Tubings">Tubings</a> </td><td> <a href = "#SSR_shroud">SSR_shroud</a> </td><td></td><td></td></tr>
|
||||||
<tr><td> <a href = "#Hygrometer">Hygrometer</a> </td><td> <a href = "#Pin_headers">Pin_headers</a> </td><td> <a href = "#Variacs">Variacs</a> </td><td> <a href = "#Socket_box">Socket_box</a> </td><td></td><td></td></tr>
|
<tr><td> <a href = "#Hygrometer">Hygrometer</a> </td><td> <a href = "#Pillars">Pillars</a> </td><td> <a href = "#Variacs">Variacs</a> </td><td> <a href = "#Screw_knob">Screw_knob</a> </td><td></td><td></td></tr>
|
||||||
<tr><td> <a href = "#Iecs">Iecs</a> </td><td> <a href = "#Psus">Psus</a> </td><td> <a href = "#Veroboard">Veroboard</a> </td><td> <a href = "#Ssr_shroud">Ssr_shroud</a> </td><td></td><td></td></tr>
|
<tr><td> <a href = "#IECs">IECs</a> </td><td> <a href = "#Pin_headers">Pin_headers</a> </td><td> <a href = "#Veroboard">Veroboard</a> </td><td> <a href = "#Socket_box">Socket_box</a> </td><td></td><td></td></tr>
|
||||||
<tr><td> <a href = "#Inserts">Inserts</a> </td><td> <a href = "#Pulleys">Pulleys</a> </td><td> <a href = "#Washers">Washers</a> </td><td> <a href = "#Strap_handle">Strap_handle</a> </td><td></td><td></td></tr>
|
<tr><td> <a href = "#Inserts">Inserts</a> </td><td> <a href = "#Pulleys">Pulleys</a> </td><td> <a href = "#Washers">Washers</a> </td><td> <a href = "#Strap_handle">Strap_handle</a> </td><td></td><td></td></tr>
|
||||||
<tr><td> <a href = "#Jack">Jack</a> </td><td></td><td> <a href = "#Wire">Wire</a> </td><td></td><td></td><td></td></tr>
|
<tr><td> <a href = "#Jack">Jack</a> </td><td></td><td> <a href = "#Wire">Wire</a> </td><td></td><td></td><td></td></tr>
|
||||||
<tr><td></td><td></td><td> <a href = "#Zipties">Zipties</a> </td><td></td><td></td><td></td></tr>
|
<tr><td></td><td></td><td> <a href = "#Zipties">Zipties</a> </td><td></td><td></td><td></td></tr>
|
||||||
@ -976,8 +976,8 @@ Mini LCD Celsius Digital Thermometer Hygrometer Temperature Humidity Meter Gauge
|
|||||||
<a href="#top">Top</a>
|
<a href="#top">Top</a>
|
||||||
|
|
||||||
---
|
---
|
||||||
<a name="Iecs"></a>
|
<a name="IECs"></a>
|
||||||
## Iecs
|
## IECs
|
||||||
IEC mains inlets and outlet.
|
IEC mains inlets and outlet.
|
||||||
|
|
||||||
|
|
||||||
@ -985,7 +985,7 @@ IEC mains inlets and outlet.
|
|||||||
|
|
||||||
[vitamins/iec.scad](vitamins/iec.scad) Implementation.
|
[vitamins/iec.scad](vitamins/iec.scad) Implementation.
|
||||||
|
|
||||||
[tests/iecs.scad](tests/iecs.scad) Code for this example.
|
[tests/IECs.scad](tests/IECs.scad) Code for this example.
|
||||||
|
|
||||||
### Properties
|
### Properties
|
||||||
| Function | Description |
|
| Function | Description |
|
||||||
@ -1132,8 +1132,8 @@ E.g. a "brown" socket for mains live needs to be displayed as "sienna" to look r
|
|||||||
<a href="#top">Top</a>
|
<a href="#top">Top</a>
|
||||||
|
|
||||||
---
|
---
|
||||||
<a name="Kp_pillow_blocks"></a>
|
<a name="KP_pillow_blocks"></a>
|
||||||
## Kp_pillow_blocks
|
## KP_pillow_blocks
|
||||||
KP pillow block bearings
|
KP pillow block bearings
|
||||||
|
|
||||||
|
|
||||||
@ -1141,7 +1141,7 @@ KP pillow block bearings
|
|||||||
|
|
||||||
[vitamins/kp_pillow_block.scad](vitamins/kp_pillow_block.scad) Implementation.
|
[vitamins/kp_pillow_block.scad](vitamins/kp_pillow_block.scad) Implementation.
|
||||||
|
|
||||||
[tests/kp_pillow_blocks.scad](tests/kp_pillow_blocks.scad) Code for this example.
|
[tests/KP_pillow_blocks.scad](tests/KP_pillow_blocks.scad) Code for this example.
|
||||||
|
|
||||||
### Properties
|
### Properties
|
||||||
| Function | Description |
|
| Function | Description |
|
||||||
@ -1185,8 +1185,8 @@ KP pillow block bearings
|
|||||||
<a href="#top">Top</a>
|
<a href="#top">Top</a>
|
||||||
|
|
||||||
---
|
---
|
||||||
<a name="Ldrs"></a>
|
<a name="LDRs"></a>
|
||||||
## Ldrs
|
## LDRs
|
||||||
Light dependent resistors.
|
Light dependent resistors.
|
||||||
|
|
||||||
Larger ones seem to have both a higher dark resistance and a lower bright light resistance.
|
Larger ones seem to have both a higher dark resistance and a lower bright light resistance.
|
||||||
@ -1196,7 +1196,7 @@ Larger ones seem to have both a higher dark resistance and a lower bright light
|
|||||||
|
|
||||||
[vitamins/ldr.scad](vitamins/ldr.scad) Implementation.
|
[vitamins/ldr.scad](vitamins/ldr.scad) Implementation.
|
||||||
|
|
||||||
[tests/ldrs.scad](tests/ldrs.scad) Code for this example.
|
[tests/LDRs.scad](tests/LDRs.scad) Code for this example.
|
||||||
|
|
||||||
### Properties
|
### Properties
|
||||||
| Function | Description |
|
| Function | Description |
|
||||||
@ -1276,8 +1276,8 @@ Nuts for leadscrews.
|
|||||||
<a href="#top">Top</a>
|
<a href="#top">Top</a>
|
||||||
|
|
||||||
---
|
---
|
||||||
<a name="Leds"></a>
|
<a name="LEDs"></a>
|
||||||
## Leds
|
## LEDs
|
||||||
Standard domed through hole LEDs. Can specify colour and lead length.
|
Standard domed through hole LEDs. Can specify colour and lead length.
|
||||||
|
|
||||||
|
|
||||||
@ -1285,7 +1285,7 @@ Standard domed through hole LEDs. Can specify colour and lead length.
|
|||||||
|
|
||||||
[vitamins/led.scad](vitamins/led.scad) Implementation.
|
[vitamins/led.scad](vitamins/led.scad) Implementation.
|
||||||
|
|
||||||
[tests/leds.scad](tests/leds.scad) Code for this example.
|
[tests/LEDs.scad](tests/LEDs.scad) Code for this example.
|
||||||
|
|
||||||
### Properties
|
### Properties
|
||||||
| Function | Description |
|
| Function | Description |
|
||||||
@ -1807,14 +1807,14 @@ A permanent magnet that can be magnatized and de-magnatized electronically.
|
|||||||
<a href="#top">Top</a>
|
<a href="#top">Top</a>
|
||||||
|
|
||||||
---
|
---
|
||||||
<a name="Pcb"></a>
|
<a name="PCB"></a>
|
||||||
## Pcb
|
## PCB
|
||||||
PCBs and perfboard with optional components. The shape can be a rectangle with optionally rounded corners or a polygon for odd shapes like Arduino.
|
PCBs and perfboard with optional components. The shape can be a rectangle with optionally rounded corners or a polygon for odd shapes like Arduino.
|
||||||
|
|
||||||
|
|
||||||
[vitamins/pcb.scad](vitamins/pcb.scad) Implementation.
|
[vitamins/pcb.scad](vitamins/pcb.scad) Implementation.
|
||||||
|
|
||||||
[tests/pcb.scad](tests/pcb.scad) Code for this example.
|
[tests/PCB.scad](tests/PCB.scad) Code for this example.
|
||||||
|
|
||||||
### Properties
|
### Properties
|
||||||
| Function | Description |
|
| Function | Description |
|
||||||
@ -1889,8 +1889,8 @@ PCBs and perfboard with optional components. The shape can be a rectangle with o
|
|||||||
<a href="#top">Top</a>
|
<a href="#top">Top</a>
|
||||||
|
|
||||||
---
|
---
|
||||||
<a name="Pcbs"></a>
|
<a name="PCBs"></a>
|
||||||
## Pcbs
|
## PCBs
|
||||||
PCBs and perfboard with optional components. The shape can be a rectangle with optionally rounded corners or a polygon for odd shapes like Arduino.
|
PCBs and perfboard with optional components. The shape can be a rectangle with optionally rounded corners or a polygon for odd shapes like Arduino.
|
||||||
|
|
||||||
|
|
||||||
@ -1898,7 +1898,7 @@ PCBs and perfboard with optional components. The shape can be a rectangle with o
|
|||||||
|
|
||||||
[vitamins/pcb.scad](vitamins/pcb.scad) Implementation.
|
[vitamins/pcb.scad](vitamins/pcb.scad) Implementation.
|
||||||
|
|
||||||
[tests/pcbs.scad](tests/pcbs.scad) Code for this example.
|
[tests/PCBs.scad](tests/PCBs.scad) Code for this example.
|
||||||
|
|
||||||
### Properties
|
### Properties
|
||||||
| Function | Description |
|
| Function | Description |
|
||||||
@ -2136,8 +2136,8 @@ Pin headers and sockets, etc.
|
|||||||
<a href="#top">Top</a>
|
<a href="#top">Top</a>
|
||||||
|
|
||||||
---
|
---
|
||||||
<a name="Psus"></a>
|
<a name="PSUs"></a>
|
||||||
## Psus
|
## PSUs
|
||||||
Powersupplies. Can be a simple cube or can be defined by a list of six faces, each with thickness, holes, cutouts, etc.
|
Powersupplies. Can be a simple cube or can be defined by a list of six faces, each with thickness, holes, cutouts, etc.
|
||||||
|
|
||||||
Face order is bottom, top, left, right, front, back.
|
Face order is bottom, top, left, right, front, back.
|
||||||
@ -2147,7 +2147,7 @@ Face order is bottom, top, left, right, front, back.
|
|||||||
|
|
||||||
[vitamins/psu.scad](vitamins/psu.scad) Implementation.
|
[vitamins/psu.scad](vitamins/psu.scad) Implementation.
|
||||||
|
|
||||||
[tests/psus.scad](tests/psus.scad) Code for this example.
|
[tests/PSUs.scad](tests/PSUs.scad) Code for this example.
|
||||||
|
|
||||||
### Properties
|
### Properties
|
||||||
| Function | Description |
|
| Function | Description |
|
||||||
@ -2590,8 +2590,8 @@ Machine screws and wood screws with various head styles.
|
|||||||
<a href="#top">Top</a>
|
<a href="#top">Top</a>
|
||||||
|
|
||||||
---
|
---
|
||||||
<a name="Scs_bearing_blocks"></a>
|
<a name="SCS_bearing_blocks"></a>
|
||||||
## Scs_bearing_blocks
|
## SCS_bearing_blocks
|
||||||
SCSnUU and SCSnLUU bearing blocks
|
SCSnUU and SCSnLUU bearing blocks
|
||||||
|
|
||||||
|
|
||||||
@ -2599,7 +2599,7 @@ SCSnUU and SCSnLUU bearing blocks
|
|||||||
|
|
||||||
[vitamins/scs_bearing_block.scad](vitamins/scs_bearing_block.scad) Implementation.
|
[vitamins/scs_bearing_block.scad](vitamins/scs_bearing_block.scad) Implementation.
|
||||||
|
|
||||||
[tests/scs_bearing_blocks.scad](tests/scs_bearing_blocks.scad) Code for this example.
|
[tests/SCS_bearing_blocks.scad](tests/SCS_bearing_blocks.scad) Code for this example.
|
||||||
|
|
||||||
### Properties
|
### Properties
|
||||||
| Function | Description |
|
| Function | Description |
|
||||||
@ -2740,8 +2740,8 @@ Note that modules that drill holes will return a 2D object if ```h``` is set to
|
|||||||
<a href="#top">Top</a>
|
<a href="#top">Top</a>
|
||||||
|
|
||||||
---
|
---
|
||||||
<a name="Sk_brackets"></a>
|
<a name="SK_brackets"></a>
|
||||||
## Sk_brackets
|
## SK_brackets
|
||||||
SK shaft support brackets
|
SK shaft support brackets
|
||||||
|
|
||||||
|
|
||||||
@ -2749,7 +2749,7 @@ SK shaft support brackets
|
|||||||
|
|
||||||
[vitamins/sk_bracket.scad](vitamins/sk_bracket.scad) Implementation.
|
[vitamins/sk_bracket.scad](vitamins/sk_bracket.scad) Implementation.
|
||||||
|
|
||||||
[tests/sk_brackets.scad](tests/sk_brackets.scad) Code for this example.
|
[tests/SK_brackets.scad](tests/SK_brackets.scad) Code for this example.
|
||||||
|
|
||||||
### Properties
|
### Properties
|
||||||
| Function | Description |
|
| Function | Description |
|
||||||
@ -2923,8 +2923,8 @@ By default springs have their origin at the bottom but can be centered.
|
|||||||
<a href="#top">Top</a>
|
<a href="#top">Top</a>
|
||||||
|
|
||||||
---
|
---
|
||||||
<a name="Ssrs"></a>
|
<a name="SSRs"></a>
|
||||||
## Ssrs
|
## SSRs
|
||||||
Solid state relays.
|
Solid state relays.
|
||||||
|
|
||||||
|
|
||||||
@ -2932,7 +2932,7 @@ Solid state relays.
|
|||||||
|
|
||||||
[vitamins/ssr.scad](vitamins/ssr.scad) Implementation.
|
[vitamins/ssr.scad](vitamins/ssr.scad) Implementation.
|
||||||
|
|
||||||
[tests/ssrs.scad](tests/ssrs.scad) Code for this example.
|
[tests/SSRs.scad](tests/SSRs.scad) Code for this example.
|
||||||
|
|
||||||
### Properties
|
### Properties
|
||||||
| Function | Description |
|
| Function | Description |
|
||||||
@ -4241,15 +4241,15 @@ Printed handle that can be printed without needing support material due to its t
|
|||||||
<a href="#top">Top</a>
|
<a href="#top">Top</a>
|
||||||
|
|
||||||
---
|
---
|
||||||
<a name="Pcb_mount"></a>
|
<a name="PCB_mount"></a>
|
||||||
## Pcb_mount
|
## PCB_mount
|
||||||
A frame to mount a PCB by its corners when it has no mounting holes.
|
A frame to mount a PCB by its corners when it has no mounting holes.
|
||||||
The stl must be given a parameterless wrapper in the project that uses it.
|
The stl must be given a parameterless wrapper in the project that uses it.
|
||||||
|
|
||||||
|
|
||||||
[printed/pcb_mount.scad](printed/pcb_mount.scad) Implementation.
|
[printed/pcb_mount.scad](printed/pcb_mount.scad) Implementation.
|
||||||
|
|
||||||
[tests/pcb_mount.scad](tests/pcb_mount.scad) Code for this example.
|
[tests/PCB_mount.scad](tests/PCB_mount.scad) Code for this example.
|
||||||
|
|
||||||
### Functions
|
### Functions
|
||||||
| Function | Description |
|
| Function | Description |
|
||||||
@ -4370,15 +4370,15 @@ It can also have printed feet on the base with the screws doubling up to hold th
|
|||||||
<a href="#top">Top</a>
|
<a href="#top">Top</a>
|
||||||
|
|
||||||
---
|
---
|
||||||
<a name="Psu_shroud"></a>
|
<a name="PSU_shroud"></a>
|
||||||
## Psu_shroud
|
## PSU_shroud
|
||||||
A cover to go over the mains end of a PSU terminal strip to make it safe.
|
A cover to go over the mains end of a PSU terminal strip to make it safe.
|
||||||
The stl and assembly must be given a name and parameterless wrappers for the stl and assembly added to the project.
|
The stl and assembly must be given a name and parameterless wrappers for the stl and assembly added to the project.
|
||||||
|
|
||||||
|
|
||||||
[printed/psu_shroud.scad](printed/psu_shroud.scad) Implementation.
|
[printed/psu_shroud.scad](printed/psu_shroud.scad) Implementation.
|
||||||
|
|
||||||
[tests/psu_shroud.scad](tests/psu_shroud.scad) Code for this example.
|
[tests/PSU_shroud.scad](tests/PSU_shroud.scad) Code for this example.
|
||||||
|
|
||||||
### Functions
|
### Functions
|
||||||
| Function | Description |
|
| Function | Description |
|
||||||
@ -4572,15 +4572,15 @@ UK 13A socket and printed backbox with earth terminal for the panel it is mounte
|
|||||||
<a href="#top">Top</a>
|
<a href="#top">Top</a>
|
||||||
|
|
||||||
---
|
---
|
||||||
<a name="Ssr_shroud"></a>
|
<a name="SSR_shroud"></a>
|
||||||
## Ssr_shroud
|
## SSR_shroud
|
||||||
A cover to go over the mains end of an SSR to make it safe to be touched.
|
A cover to go over the mains end of an SSR to make it safe to be touched.
|
||||||
The STL and assembly must be given a name and parameterless wrappers for the stl and assembly added to the project.
|
The STL and assembly must be given a name and parameterless wrappers for the stl and assembly added to the project.
|
||||||
|
|
||||||
|
|
||||||
[printed/ssr_shroud.scad](printed/ssr_shroud.scad) Implementation.
|
[printed/ssr_shroud.scad](printed/ssr_shroud.scad) Implementation.
|
||||||
|
|
||||||
[tests/ssr_shroud.scad](tests/ssr_shroud.scad) Code for this example.
|
[tests/SSR_shroud.scad](tests/SSR_shroud.scad) Code for this example.
|
||||||
|
|
||||||
### Functions
|
### Functions
|
||||||
| Function | Description |
|
| Function | Description |
|
||||||
@ -5095,8 +5095,8 @@ Simple tube or ring
|
|||||||
<a href="#top">Top</a>
|
<a href="#top">Top</a>
|
||||||
|
|
||||||
---
|
---
|
||||||
<a name="Bom"></a>
|
<a name="BOM"></a>
|
||||||
## Bom
|
## BOM
|
||||||
Bill Of Materials generation via echo and the ```bom.py``` script. Also handles exploded assembly views and posing. Assembly instructions can precede the module
|
Bill Of Materials generation via echo and the ```bom.py``` script. Also handles exploded assembly views and posing. Assembly instructions can precede the module
|
||||||
definition that makes the assembly.
|
definition that makes the assembly.
|
||||||
|
|
||||||
@ -5106,7 +5106,7 @@ heirachical BOMs are also generated for real projects.
|
|||||||
|
|
||||||
[utils/core/bom.scad](utils/core/bom.scad) Implementation.
|
[utils/core/bom.scad](utils/core/bom.scad) Implementation.
|
||||||
|
|
||||||
[tests/bom.scad](tests/bom.scad) Code for this example.
|
[tests/BOM.scad](tests/BOM.scad) Code for this example.
|
||||||
|
|
||||||
### Functions
|
### Functions
|
||||||
| Function | Description |
|
| Function | Description |
|
||||||
|
@ -109,13 +109,14 @@ def tests(tests):
|
|||||||
#
|
#
|
||||||
# List of individual part files
|
# List of individual part files
|
||||||
#
|
#
|
||||||
scads = [i for i in sorted(os.listdir(scad_dir)) if i[-5:] == ".scad"]
|
scads = [i for i in sorted(os.listdir(scad_dir), key = lambda s: s.lower()) if i[-5:] == ".scad"]
|
||||||
|
|
||||||
for scad in scads:
|
for scad in scads:
|
||||||
base_name = scad[:-5]
|
base_name = scad[:-5]
|
||||||
if not tests or base_name in tests:
|
if not tests or base_name in tests:
|
||||||
print(base_name)
|
print(base_name)
|
||||||
cap_name = base_name[0].capitalize() + base_name[1:]
|
cap_name = base_name[0].capitalize() + base_name[1:]
|
||||||
|
base_name = base_name.lower()
|
||||||
scad_name = scad_dir + '/' + scad
|
scad_name = scad_dir + '/' + scad
|
||||||
png_name = png_dir + '/' + base_name + '.png'
|
png_name = png_dir + '/' + base_name + '.png'
|
||||||
bom_name = bom_dir + '/' + base_name + '.json'
|
bom_name = bom_dir + '/' + base_name + '.json'
|
||||||
@ -191,10 +192,10 @@ def tests(tests):
|
|||||||
|
|
||||||
body += ["![%s](%s)\n" %(base_name, png_name)]
|
body += ["![%s](%s)\n" %(base_name, png_name)]
|
||||||
|
|
||||||
dname = deps_name(deps_dir, scad)
|
dname = deps_name(deps_dir, scad.lower())
|
||||||
oldest = png_name if mtime(png_name) < mtime(bom_name) else bom_name
|
oldest = png_name if mtime(png_name) < mtime(bom_name) else bom_name
|
||||||
changed = check_deps(oldest, dname)
|
changed = check_deps(oldest, dname)
|
||||||
changed = times.check_have_time(changed, scad_name)
|
changed = times.check_have_time(changed, scad_name.lower())
|
||||||
changed = options.have_changed(changed, oldest)
|
changed = options.have_changed(changed, oldest)
|
||||||
if changed:
|
if changed:
|
||||||
print(changed)
|
print(changed)
|
||||||
|
@ -89,6 +89,14 @@ def eop(print_mode, doc_file, last = False, first = False):
|
|||||||
def pad(s, before, after = 0):
|
def pad(s, before, after = 0):
|
||||||
return ' ' * before + str(s) + ' ' * after
|
return ' ' * before + str(s) + ' ' * after
|
||||||
|
|
||||||
|
def titalise(name):
|
||||||
|
cap_next = True
|
||||||
|
result = ''
|
||||||
|
for c in name.replace('_', ' '):
|
||||||
|
result = result + (c.upper() if cap_next else c);
|
||||||
|
cap_next = c == ' '
|
||||||
|
return result
|
||||||
|
|
||||||
def views(target, do_assemblies = None):
|
def views(target, do_assemblies = None):
|
||||||
done_assemblies = []
|
done_assemblies = []
|
||||||
#
|
#
|
||||||
@ -216,7 +224,7 @@ def views(target, do_assemblies = None):
|
|||||||
print('1. [Parts list](#Parts_list)', file = doc_file)
|
print('1. [Parts list](#Parts_list)', file = doc_file)
|
||||||
for ass in flat_bom:
|
for ass in flat_bom:
|
||||||
name = ass["name"]
|
name = ass["name"]
|
||||||
cap_name = name.replace('_', ' ').title()
|
cap_name = titalise(name)
|
||||||
print('1. [%s](#%s)' % (cap_name, name), file = doc_file)
|
print('1. [%s](#%s)' % (cap_name, name), file = doc_file)
|
||||||
print(file = doc_file)
|
print(file = doc_file)
|
||||||
eop(print_mode, doc_file)
|
eop(print_mode, doc_file)
|
||||||
@ -237,7 +245,7 @@ def views(target, do_assemblies = None):
|
|||||||
else:
|
else:
|
||||||
things[t][thing] = ass[t][thing]
|
things[t][thing] = ass[t][thing]
|
||||||
for ass in flat_bom:
|
for ass in flat_bom:
|
||||||
name = ass["name"][:-9].replace('_', ' ').title().replace(' ',' ')
|
name = titalise(ass["name"][:-9]).replace(' ',' ')
|
||||||
print('| <span style="writing-mode: vertical-rl; text-orientation: mixed;">%s</span> ' % name, file = doc_file, end = '')
|
print('| <span style="writing-mode: vertical-rl; text-orientation: mixed;">%s</span> ' % name, file = doc_file, end = '')
|
||||||
print('| <span style="writing-mode: vertical-rl; text-orientation: mixed;">TOTALS</span> | |', file = doc_file)
|
print('| <span style="writing-mode: vertical-rl; text-orientation: mixed;">TOTALS</span> | |', file = doc_file)
|
||||||
|
|
||||||
@ -274,7 +282,7 @@ def views(target, do_assemblies = None):
|
|||||||
#
|
#
|
||||||
for ass in flat_bom:
|
for ass in flat_bom:
|
||||||
name = ass["name"]
|
name = ass["name"]
|
||||||
cap_name = name.replace('_', ' ').title()
|
cap_name = titalise(name)
|
||||||
|
|
||||||
if ass["count"] > 1:
|
if ass["count"] > 1:
|
||||||
print('<a name="%s"></a>\n## %d x %s' % (name, ass["count"], cap_name), file = doc_file)
|
print('<a name="%s"></a>\n## %d x %s' % (name, ass["count"], cap_name), file = doc_file)
|
||||||
|
107
tests/BOM.scad
Normal file
107
tests/BOM.scad
Normal file
@ -0,0 +1,107 @@
|
|||||||
|
//
|
||||||
|
// NopSCADlib Copyright Chris Palmer 2018
|
||||||
|
// 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/>.
|
||||||
|
//
|
||||||
|
|
||||||
|
//
|
||||||
|
//! BOM and assembly demonstration
|
||||||
|
//
|
||||||
|
include <../core.scad>
|
||||||
|
include <../vitamins/sheets.scad>
|
||||||
|
use <../vitamins/insert.scad>
|
||||||
|
$explode = 1; // Normally set on the command line when generating assembly views with views.py
|
||||||
|
|
||||||
|
screw = M3_cap_screw;
|
||||||
|
sheet = PMMA3;
|
||||||
|
height = 10;
|
||||||
|
|
||||||
|
insert = screw_insert(screw);
|
||||||
|
washer = screw_washer(screw);
|
||||||
|
|
||||||
|
module widget(thickness) {
|
||||||
|
vitamin(str("widget(", thickness, "): Rivit like thing for ", thickness, "mm sheets"));
|
||||||
|
t = 1;
|
||||||
|
color("silver") {
|
||||||
|
cylinder(d = 3, h = thickness + 2 * eps, center = true);
|
||||||
|
|
||||||
|
for(end = [-1, 1])
|
||||||
|
translate_z(end * (thickness / 2 + t / 2 + eps))
|
||||||
|
cylinder(d = 4, h = t, center = true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module widgit_stl() {
|
||||||
|
stl("widget");
|
||||||
|
|
||||||
|
union() {
|
||||||
|
rounded_rectangle([30, 30, 3], 2);
|
||||||
|
|
||||||
|
render() insert_boss(insert, height, 2.2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module widgit_dxf() {
|
||||||
|
dxf("widget");
|
||||||
|
|
||||||
|
difference() {
|
||||||
|
sheet_2D(sheet, 20, 20, 1);
|
||||||
|
|
||||||
|
drill(screw_clearance_radius(screw), 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//! * Push the insert into the base with a soldering iron heated to 200°C
|
||||||
|
module widgit_base_assembly()
|
||||||
|
assembly("widgit_base") {
|
||||||
|
color(pp1_colour)
|
||||||
|
widgit_stl();
|
||||||
|
|
||||||
|
translate_z(height)
|
||||||
|
insert(insert);
|
||||||
|
}
|
||||||
|
|
||||||
|
//! * Magically insert the widget into the acrylic sheet
|
||||||
|
module widget_top_assembly()
|
||||||
|
assembly("widget_top") {
|
||||||
|
translate([-5, 5])
|
||||||
|
widget(sheet_thickness(sheet));
|
||||||
|
|
||||||
|
render_2D_sheet(sheet) // Must be last because it is transparent
|
||||||
|
widgit_dxf();
|
||||||
|
}
|
||||||
|
|
||||||
|
//! * Screw the two assemblies together
|
||||||
|
module widgit_assembly()
|
||||||
|
assembly("wigdit") {
|
||||||
|
|
||||||
|
widgit_base_assembly(); // Note this is not exloded because it is sub-assembly
|
||||||
|
|
||||||
|
translate_z(height) {
|
||||||
|
translate_z(sheet_thickness(sheet))
|
||||||
|
screw_and_washer(screw, screw_longer_than(sheet_thickness(sheet) + 2 * washer_thickness(washer) + 3), true);
|
||||||
|
|
||||||
|
explode(5)
|
||||||
|
translate_z(sheet_thickness(sheet) / 2 + eps)
|
||||||
|
widget_top_assembly();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module boms() {
|
||||||
|
widgit_assembly();
|
||||||
|
}
|
||||||
|
|
||||||
|
boms();
|
30
tests/IECs.scad
Normal file
30
tests/IECs.scad
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
//
|
||||||
|
// NopSCADlib Copyright Chris Palmer 2018
|
||||||
|
// nop.head@gmail.com
|
||||||
|
// hydraraptor.blogspot.com
|
||||||
|
//
|
||||||
|
// This file is part of NopSCADlib.
|
||||||
|
//
|
||||||
|
// NopSCADlib is free software: you can redistribute it and/or modify it under the terms of the
|
||||||
|
// GNU General Public License as published by the Free Software Foundation, either version 3 of
|
||||||
|
// the License, or (at your option) any later version.
|
||||||
|
//
|
||||||
|
// NopSCADlib is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
||||||
|
// without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
// See the GNU General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU General Public License along with NopSCADlib.
|
||||||
|
// If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
//
|
||||||
|
include <../core.scad>
|
||||||
|
include <../vitamins/iecs.scad>
|
||||||
|
|
||||||
|
use <../utils/layout.scad>
|
||||||
|
|
||||||
|
module iecs()
|
||||||
|
layout([for(i = iecs) iec_flange_h(i)], 10)
|
||||||
|
rotate(90)
|
||||||
|
iec_assembly(iecs[$i], 3);
|
||||||
|
|
||||||
|
if($preview)
|
||||||
|
iecs();
|
33
tests/KP_pillow_blocks.scad
Normal file
33
tests/KP_pillow_blocks.scad
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
//
|
||||||
|
// NopSCADlib Copyright Chris Palmer 2018
|
||||||
|
// nop.head@gmail.com
|
||||||
|
// hydraraptor.blogspot.com
|
||||||
|
//
|
||||||
|
// This file is part of NopSCADlib.
|
||||||
|
//
|
||||||
|
// NopSCADlib is free software: you can redistribute it and/or modify it under the terms of the
|
||||||
|
// GNU General Public License as published by the Free Software Foundation, either version 3 of
|
||||||
|
// the License, or (at your option) any later version.
|
||||||
|
//
|
||||||
|
// NopSCADlib is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
||||||
|
// without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
// See the GNU General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU General Public License along with NopSCADlib.
|
||||||
|
// If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
//
|
||||||
|
include <../core.scad>
|
||||||
|
include <../vitamins/kp_pillow_blocks.scad>
|
||||||
|
|
||||||
|
use <../utils/layout.scad>
|
||||||
|
|
||||||
|
module kp_pillow_blocks() {
|
||||||
|
screws = [M4_cap_screw, M4_cap_screw, M5_cap_screw, M5_cap_screw];
|
||||||
|
nuts = [M4_sliding_t_nut, M4_hammer_nut, M5_sliding_t_nut, M5_nut];
|
||||||
|
assert(len(screws) == len(kp_pillow_blocks) && len(nuts) == len(kp_pillow_blocks));
|
||||||
|
layout([for(k = kp_pillow_blocks) 2 * kp_size(k)[1]])
|
||||||
|
kp_pillow_block_assembly(kp_pillow_blocks[$i], screw_type = screws[$i], nut_type = nuts[$i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
if($preview)
|
||||||
|
kp_pillow_blocks();
|
27
tests/LDRs.scad
Normal file
27
tests/LDRs.scad
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
//
|
||||||
|
// NopSCADlib Copyright Chris Palmer 2018
|
||||||
|
// 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 <../vitamins/ldrs.scad>
|
||||||
|
|
||||||
|
use <../utils/layout.scad>
|
||||||
|
|
||||||
|
module ldrs()
|
||||||
|
layout([for(l = ldrs) ldr_diameter(l)], 5)
|
||||||
|
LDR(ldrs[$i]);
|
||||||
|
|
||||||
|
ldrs();
|
29
tests/LEDs.scad
Normal file
29
tests/LEDs.scad
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
//
|
||||||
|
// NopSCADlib Copyright Chris Palmer 2018
|
||||||
|
// nop.head@gmail.com
|
||||||
|
// hydraraptor.blogspot.com
|
||||||
|
//
|
||||||
|
// This file is part of NopSCADlib.
|
||||||
|
//
|
||||||
|
// NopSCADlib is free software: you can redistribute it and/or modify it under the terms of the
|
||||||
|
// GNU General Public License as published by the Free Software Foundation, either version 3 of
|
||||||
|
// the License, or (at your option) any later version.
|
||||||
|
//
|
||||||
|
// NopSCADlib is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
||||||
|
// without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
// See the GNU General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU General Public License along with NopSCADlib.
|
||||||
|
// If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
//
|
||||||
|
include <../utils/core/core.scad>
|
||||||
|
use <../utils/layout.scad>
|
||||||
|
|
||||||
|
include <../vitamins/leds.scad>
|
||||||
|
|
||||||
|
module leds()
|
||||||
|
layout([for(l = LEDs) led_diameter(l)], 5)
|
||||||
|
led(LEDs[$i], ["green", "blue", "red"][$i % 3]);
|
||||||
|
|
||||||
|
if($preview)
|
||||||
|
leds();
|
109
tests/PCB.scad
Normal file
109
tests/PCB.scad
Normal file
@ -0,0 +1,109 @@
|
|||||||
|
//
|
||||||
|
// NopSCADlib Copyright Chris Palmer 2020
|
||||||
|
// nop.head@gmail.com
|
||||||
|
// hydraraptor.blogspot.com
|
||||||
|
//
|
||||||
|
// This file is part of NopSCADlib.
|
||||||
|
//
|
||||||
|
// NopSCADlib is free software: you can redistribute it and/or modify it under the terms of the
|
||||||
|
// GNU General Public License as published by the Free Software Foundation, either version 3 of
|
||||||
|
// the License, or (at your option) any later version.
|
||||||
|
//
|
||||||
|
// NopSCADlib is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
||||||
|
// without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
// See the GNU General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU General Public License along with NopSCADlib.
|
||||||
|
// If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
//
|
||||||
|
include <../core.scad>
|
||||||
|
include <../vitamins/microswitches.scad>
|
||||||
|
include <../vitamins/d_connectors.scad>
|
||||||
|
|
||||||
|
use <../vitamins/pcb.scad>
|
||||||
|
|
||||||
|
gt_5x17 = ["gt_5x17", 5, 10, 17, 5, 11, 0.4, 9, 2,1.5, 1, 3, 6, 0, 0, 0];
|
||||||
|
gt_5x11 = ["gt_5x11", 5, 8, 11, 5, 7, 0.4, 7, 1.5,1.5, 1,2.5, 6, 0, 0, 0];
|
||||||
|
|
||||||
|
TMC2130HeatSinkColor = "DeepSkyBlue";
|
||||||
|
TMC2130 = ["TMC2130", "TMC2130",
|
||||||
|
20, 14, 1.6, 0, 3, 0, "white", false, [],
|
||||||
|
[
|
||||||
|
[ 10, 1, 0, "-2p54header", 8, 1 ,undef, "blue" ],
|
||||||
|
[ 10, 13, 0, "-2p54header", 8, 1],
|
||||||
|
[ 12, 7, 0, "-chip", 6, 4, 1, grey20 ],
|
||||||
|
// mock up a heat sink
|
||||||
|
[ 10, 7, 0, "block", 9, 9, 2, TMC2130HeatSinkColor ],
|
||||||
|
[ 10, 11, 0, "block", 9, 1, 11, TMC2130HeatSinkColor ],
|
||||||
|
[ 10, 9, 0, "block", 9, 1, 11, TMC2130HeatSinkColor ],
|
||||||
|
[ 10, 7, 0, "block", 9, 1, 11, TMC2130HeatSinkColor ],
|
||||||
|
[ 10, 5, 0, "block", 9, 1, 11, TMC2130HeatSinkColor ],
|
||||||
|
[ 10, 3, 0, "block", 9, 1, 11, TMC2130HeatSinkColor ],
|
||||||
|
],
|
||||||
|
[]
|
||||||
|
];
|
||||||
|
|
||||||
|
test_pcb = ["TestPCB", "Test PCB",
|
||||||
|
50, 500, 1.6, // length, width, thickness
|
||||||
|
3, // Corner radius
|
||||||
|
2.75, // Mounting hole diameter
|
||||||
|
6, // Pad around mounting hole
|
||||||
|
"green",// Color
|
||||||
|
false, // True if the parts should be separate BOM items
|
||||||
|
// hole offsets
|
||||||
|
[ [3, 3], [3, -3], [-3, 3], [-3, -3] ],
|
||||||
|
// components
|
||||||
|
[
|
||||||
|
[ 10, 10, 0, "2p54header", 4, 1],
|
||||||
|
[ 25, 10, 0, "2p54header", 5, 1, undef, "blue" ],
|
||||||
|
[ 10, 20, 0, "2p54boxhdr", 4, 2],
|
||||||
|
[ 10, 30, 0, "2p54socket", 6, 1],
|
||||||
|
[ 25, 30, 0, "2p54socket", 4, 1, undef, undef, undef, "red" ],
|
||||||
|
[ 10, 40, 0, "chip", 10, 5, 1, grey20],
|
||||||
|
[ 10, 60, 180, "rj45"],
|
||||||
|
[ 8, 80, 180, "usb_A"],
|
||||||
|
[ 8, 100, 180, "usb_Ax2"],
|
||||||
|
[ 3, 120, 180, "usb_uA"],
|
||||||
|
[ 8, 140, 180, "usb_B"],
|
||||||
|
[ 10, 160, 0, "buzzer"],
|
||||||
|
[ 25, 160, 0, "buzzer", 4.5, 8.5],
|
||||||
|
[ 10, 175, 0, "potentiometer"],
|
||||||
|
[ 30, 175, 0, "potentiometer", 7, 8],
|
||||||
|
[ 8, 190, 180, "jack"],
|
||||||
|
[ 6, 200, 180, "barrel_jack"],
|
||||||
|
[ 5, 220, 180, "hdmi"],
|
||||||
|
[ 3, 240, 180, "mini_hdmi"],
|
||||||
|
[ 10, 250, 0, "flex"],
|
||||||
|
[ 10, 265, 0, "flat_flex"],
|
||||||
|
[ 10, 280, 0, "D_plug", DCONN9],
|
||||||
|
[ 10, 300, 0, "molex_hdr", 2],
|
||||||
|
[ 10, 310, 0, "jst_xh", 2],
|
||||||
|
[ 10, 320, 180, "term254", 3],
|
||||||
|
[ 20, 320, 180, "term254", 3, undef, grey20],
|
||||||
|
[ 10, 340, 180, "gterm35", 4, [1,2]],
|
||||||
|
[ 20, 340, 180, "gterm35", 4, [1,2], "red"],
|
||||||
|
[ 30, 340, 180, "gterm", gt_5x11, 3],
|
||||||
|
[ 10, 360, 180, "gterm635", 2],
|
||||||
|
[ 25, 360, 180, "gterm635", 2, undef, "blue"],
|
||||||
|
[ 40, 360, 180, "gterm", gt_5x17, 2, undef, grey20],
|
||||||
|
[ 40, 340, 180, "gterm", gt_5x17, 3, [1], "red"],
|
||||||
|
[ 10, 380, 180, "term35", 4],
|
||||||
|
[ 20, 380, 180, "term35", 3, "lime"],
|
||||||
|
[ 10, 400, 0, "transition", 5],
|
||||||
|
[ 10, 410, 0, "block", 10, 5, 8, "orange"],
|
||||||
|
[ 10, 420, 0, "button_6mm"],
|
||||||
|
[ 10, 435, 0, "microswitch", small_microswitch],
|
||||||
|
[ 12, 450, 0, "pcb", 11, TMC2130 ],
|
||||||
|
[ 12, 456, 0, "2p54socket", 8, 1 ],
|
||||||
|
[ 12, 444, 0, "2p54socket", 8, 1, undef, undef, undef, "red" ],
|
||||||
|
[ 10, 470, 0, "standoff", 5, 4.5, 12.5, 2.54],
|
||||||
|
[ 6, 480, 180, "uSD", [12, 11.5, 1.4]],
|
||||||
|
],
|
||||||
|
// accessories
|
||||||
|
[]
|
||||||
|
];
|
||||||
|
|
||||||
|
|
||||||
|
if($preview)
|
||||||
|
let($show_threads = true)
|
||||||
|
pcb(test_pcb);
|
35
tests/PCB_mount.scad
Normal file
35
tests/PCB_mount.scad
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
//
|
||||||
|
// NopSCADlib Copyright Chris Palmer 2019
|
||||||
|
// nop.head@gmail.com
|
||||||
|
// hydraraptor.blogspot.com
|
||||||
|
//
|
||||||
|
// This file is part of NopSCADlib.
|
||||||
|
//
|
||||||
|
// NopSCADlib is free software: you can redistribute it and/or modify it under the terms of the
|
||||||
|
// GNU General Public License as published by the Free Software Foundation, either version 3 of
|
||||||
|
// the License, or (at your option) any later version.
|
||||||
|
//
|
||||||
|
// NopSCADlib is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
||||||
|
// without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
// See the GNU General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU General Public License along with NopSCADlib.
|
||||||
|
// If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
//
|
||||||
|
include <../utils/core/core.scad>
|
||||||
|
use <../printed/pcb_mount.scad>
|
||||||
|
|
||||||
|
PI_IO = ["PI_IO", "PI_IO V2", 35.56, 25.4, 1.6, 0, 0, 0, "green", true, [],
|
||||||
|
[[(3.015 - 2.7) * 25.4 - 3.5 /2, (4.5 - 3.685) * 25.4, 90, "term35", 2],
|
||||||
|
[(3.46 - 2.7) * 25.4 - 3.5 /2, (4.5 - 3.69) * 25.4, 90, "term35", 2],
|
||||||
|
[(3.91 - 2.7) * 25.4 - 3.5 /2, (4.5 - 3.69) * 25.4, 90, "term35", 2],
|
||||||
|
[(3.4 - 2.7) * 25.4, (4.5 - 4.15) * 25.4, 0, "2p54socket", 13, 2],
|
||||||
|
], []];
|
||||||
|
|
||||||
|
module pcb_mounts()
|
||||||
|
if($preview)
|
||||||
|
pcb_mount_assembly(PI_IO, 3);
|
||||||
|
else
|
||||||
|
pcb_mount(PI_IO);
|
||||||
|
|
||||||
|
pcb_mounts();
|
31
tests/PCBs.scad
Normal file
31
tests/PCBs.scad
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
//
|
||||||
|
// NopSCADlib Copyright Chris Palmer 2018
|
||||||
|
// nop.head@gmail.com
|
||||||
|
// hydraraptor.blogspot.com
|
||||||
|
//
|
||||||
|
// This file is part of NopSCADlib.
|
||||||
|
//
|
||||||
|
// NopSCADlib is free software: you can redistribute it and/or modify it under the terms of the
|
||||||
|
// GNU General Public License as published by the Free Software Foundation, either version 3 of
|
||||||
|
// the License, or (at your option) any later version.
|
||||||
|
//
|
||||||
|
// NopSCADlib is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
||||||
|
// without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
// See the GNU General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU General Public License along with NopSCADlib.
|
||||||
|
// If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
//
|
||||||
|
include <../core.scad>
|
||||||
|
include <../vitamins/pcbs.scad>
|
||||||
|
|
||||||
|
use <../utils/layout.scad>
|
||||||
|
|
||||||
|
module pcbs()
|
||||||
|
layout([for(p = pcbs) pcb_width(p)], 10)
|
||||||
|
translate([0, pcb_length(pcbs[$i]) / 2])
|
||||||
|
rotate(90)
|
||||||
|
pcb_assembly(pcbs[$i], 5 + $i, 3);
|
||||||
|
|
||||||
|
if($preview)
|
||||||
|
pcbs();
|
37
tests/PSU_shroud.scad
Normal file
37
tests/PSU_shroud.scad
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
//
|
||||||
|
// NopSCADlib Copyright Chris Palmer 2018
|
||||||
|
// nop.head@gmail.com
|
||||||
|
// hydraraptor.blogspot.com
|
||||||
|
//
|
||||||
|
// This file is part of NopSCADlib.
|
||||||
|
//
|
||||||
|
// NopSCADlib is free software: you can redistribute it and/or modify it under the terms of the
|
||||||
|
// GNU General Public License as published by the Free Software Foundation, either version 3 of
|
||||||
|
// the License, or (at your option) any later version.
|
||||||
|
//
|
||||||
|
// NopSCADlib is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
||||||
|
// without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
// See the GNU General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU General Public License along with NopSCADlib.
|
||||||
|
// If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
//
|
||||||
|
include <../core.scad>
|
||||||
|
include <../vitamins/psus.scad>
|
||||||
|
|
||||||
|
use <../utils/layout.scad>
|
||||||
|
use <../printed/psu_shroud.scad>
|
||||||
|
|
||||||
|
thickness = 3;
|
||||||
|
|
||||||
|
module psu_shrouds()
|
||||||
|
layout([for(p = psus) psu_width(p)], 10) let(psu = psus[$i])
|
||||||
|
if(psu_terminals(psu))
|
||||||
|
rotate(90) {
|
||||||
|
if($preview)
|
||||||
|
psu_shroud_fastened_assembly(psu, 6, thickness, psu[0]);
|
||||||
|
else
|
||||||
|
psu_shroud(psu, 6, psu[0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
psu_shrouds();
|
35
tests/PSUs.scad
Normal file
35
tests/PSUs.scad
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
//
|
||||||
|
// NopSCADlib Copyright Chris Palmer 2018
|
||||||
|
// nop.head@gmail.com
|
||||||
|
// hydraraptor.blogspot.com
|
||||||
|
//
|
||||||
|
// This file is part of NopSCADlib.
|
||||||
|
//
|
||||||
|
// NopSCADlib is free software: you can redistribute it and/or modify it under the terms of the
|
||||||
|
// GNU General Public License as published by the Free Software Foundation, either version 3 of
|
||||||
|
// the License, or (at your option) any later version.
|
||||||
|
//
|
||||||
|
// NopSCADlib is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
||||||
|
// without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
// See the GNU General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU General Public License along with NopSCADlib.
|
||||||
|
// If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
//
|
||||||
|
include <../core.scad>
|
||||||
|
include <../vitamins/psus.scad>
|
||||||
|
|
||||||
|
use <../utils/layout.scad>
|
||||||
|
|
||||||
|
module psus()
|
||||||
|
layout([for(p = psus) psu_width(p)], 10) let(p = psus[$i])
|
||||||
|
rotate(atx_psu(p) ? 0 : 90) {
|
||||||
|
psu(p);
|
||||||
|
|
||||||
|
psu_screw_positions(p)
|
||||||
|
translate_z(3)
|
||||||
|
screw_and_washer(psu_screw(p), 8);
|
||||||
|
}
|
||||||
|
|
||||||
|
if($preview)
|
||||||
|
psus();
|
35
tests/SCS_bearing_blocks.scad
Normal file
35
tests/SCS_bearing_blocks.scad
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
//
|
||||||
|
// NopSCADlib Copyright Chris Palmer 2020
|
||||||
|
// nop.head@gmail.com
|
||||||
|
// hydraraptor.blogspot.com
|
||||||
|
//
|
||||||
|
// This file is part of NopSCADlib.
|
||||||
|
//
|
||||||
|
// NopSCADlib is free software: you can redistribute it and/or modify it under the terms of the
|
||||||
|
// GNU General Public License as published by the Free Software Foundation, either version 3 of
|
||||||
|
// the License, or (at your option) any later version.
|
||||||
|
//
|
||||||
|
// NopSCADlib is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
||||||
|
// without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
// See the GNU General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU General Public License along with NopSCADlib.
|
||||||
|
// If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
//
|
||||||
|
include <../core.scad>
|
||||||
|
include <../vitamins/scs_bearing_blocks.scad>
|
||||||
|
|
||||||
|
use <../utils/layout.scad>
|
||||||
|
|
||||||
|
module scs_bearing_blocks()
|
||||||
|
layout([for(s = scs_bearing_blocks) scs_size(s).x], 10) {
|
||||||
|
part_thickness = 5;
|
||||||
|
scs_bearing_block_assembly(scs_bearing_blocks[$i], part_thickness);
|
||||||
|
|
||||||
|
if($i > 0) // skip $i==0, since no SCS6LUU long variant to match SCS6UU
|
||||||
|
translate([0, 60])
|
||||||
|
scs_bearing_block_assembly(scs_bearing_blocks_long[$i - 1], part_thickness);
|
||||||
|
}
|
||||||
|
|
||||||
|
if($preview)
|
||||||
|
scs_bearing_blocks();
|
39
tests/SK_brackets.scad
Normal file
39
tests/SK_brackets.scad
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
//
|
||||||
|
// NopSCADlib Copyright Chris Palmer 2018
|
||||||
|
// nop.head@gmail.com
|
||||||
|
// hydraraptor.blogspot.com
|
||||||
|
//
|
||||||
|
// This file is part of NopSCADlib.
|
||||||
|
//
|
||||||
|
// NopSCADlib is free software: you can redistribute it and/or modify it under the terms of the
|
||||||
|
// GNU General Public License as published by the Free Software Foundation, either version 3 of
|
||||||
|
// the License, or (at your option) any later version.
|
||||||
|
//
|
||||||
|
// NopSCADlib is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
||||||
|
// without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
// See the GNU General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU General Public License along with NopSCADlib.
|
||||||
|
// If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
//
|
||||||
|
include <../core.scad>
|
||||||
|
include <../vitamins/sk_brackets.scad>
|
||||||
|
include <../vitamins/extrusions.scad>
|
||||||
|
|
||||||
|
use <../utils/layout.scad>
|
||||||
|
|
||||||
|
module sk_brackets() {
|
||||||
|
screws = [M4_dome_screw, M4_cap_screw, M5_cap_screw, M5_cap_screw];
|
||||||
|
nuts = [M4_hammer_nut, M4_sliding_t_nut, M5_sliding_t_nut, undef];
|
||||||
|
// channel depth = 6 for 2020 extrusion, 9 for 3030 extrusion
|
||||||
|
depths = [6, 6, 9, 0];
|
||||||
|
layout([for(s = sk_brackets) 1.5 * sk_size(s)[1]]) {
|
||||||
|
sk_bracket_assembly(sk_brackets[$i], screw_type = screws[$i], nut_type = nuts[$i], max_screw_depth = depths[$i]);
|
||||||
|
translate([0, -sk_hole_offset(sk_brackets[$i]) - extrusion_width($i < 2 ? E2020 : E3030) / 2, 0])
|
||||||
|
rotate([0, 90, 0])
|
||||||
|
extrusion($i < 2 ? E2020 : E3030, 20, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if($preview)
|
||||||
|
sk_brackets();
|
36
tests/SSR_shroud.scad
Normal file
36
tests/SSR_shroud.scad
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
//
|
||||||
|
// NopSCADlib Copyright Chris Palmer 2018
|
||||||
|
// nop.head@gmail.com
|
||||||
|
// hydraraptor.blogspot.com
|
||||||
|
//
|
||||||
|
// This file is part of NopSCADlib.
|
||||||
|
//
|
||||||
|
// NopSCADlib is free software: you can redistribute it and/or modify it under the terms of the
|
||||||
|
// GNU General Public License as published by the Free Software Foundation, either version 3 of
|
||||||
|
// the License, or (at your option) any later version.
|
||||||
|
//
|
||||||
|
// NopSCADlib is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
||||||
|
// without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
// See the GNU General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU General Public License along with NopSCADlib.
|
||||||
|
// If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
//
|
||||||
|
include <../core.scad>
|
||||||
|
include <../vitamins/ssrs.scad>
|
||||||
|
|
||||||
|
use <../utils/layout.scad>
|
||||||
|
use <../printed/ssr_shroud.scad>
|
||||||
|
|
||||||
|
thickness = 3;
|
||||||
|
|
||||||
|
module ssr_shrouds()
|
||||||
|
layout([for(s = ssrs) ssr_width(s)], 15) let(ssr = ssrs[$i])
|
||||||
|
rotate(90) {
|
||||||
|
if($preview)
|
||||||
|
ssr_shroud_fastened_assembly(ssr, 6, thickness, ssr[0]);
|
||||||
|
else
|
||||||
|
ssr_shroud(ssr, 6, ssr[0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
ssr_shrouds();
|
30
tests/SSRs.scad
Normal file
30
tests/SSRs.scad
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
//
|
||||||
|
// NopSCADlib Copyright Chris Palmer 2018
|
||||||
|
// nop.head@gmail.com
|
||||||
|
// hydraraptor.blogspot.com
|
||||||
|
//
|
||||||
|
// This file is part of NopSCADlib.
|
||||||
|
//
|
||||||
|
// NopSCADlib is free software: you can redistribute it and/or modify it under the terms of the
|
||||||
|
// GNU General Public License as published by the Free Software Foundation, either version 3 of
|
||||||
|
// the License, or (at your option) any later version.
|
||||||
|
//
|
||||||
|
// NopSCADlib is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
||||||
|
// without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
// See the GNU General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU General Public License along with NopSCADlib.
|
||||||
|
// If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
//
|
||||||
|
include <../core.scad>
|
||||||
|
include <../vitamins/ssrs.scad>
|
||||||
|
|
||||||
|
use <../utils/layout.scad>
|
||||||
|
|
||||||
|
module ssrs()
|
||||||
|
layout([for(s = ssrs) ssr_width(s)], 15)
|
||||||
|
rotate(90)
|
||||||
|
ssr_assembly(ssrs[$i], M4_cap_screw, 3);
|
||||||
|
|
||||||
|
if($preview)
|
||||||
|
ssrs();
|
Loading…
Reference in New Issue
Block a user