mirror of
https://github.com/DJSundog/NopSCADlib.git
synced 2024-11-27 09:10:02 -05:00
10892 lines
282 KiB
HTML
10892 lines
282 KiB
HTML
<h1>NopSCADlib</h1>
|
|
<p>An ever expanding library of parts modelled in OpenSCAD useful for 3D printers and enclosures for electronics, etc.</p>
|
|
<p>It contains lots of vitamins (the RepRap term for non-printed parts), some general purpose printed parts and
|
|
some utilities. There are also Python scripts to generate Bills of Materials (BOMs),
|
|
STL files for all the printed parts and DXF files for CNC routed parts in a project.</p>
|
|
<h2>Table of Contents<a name="top"/></h2>
|
|
<p><table><tr><td valign="top"><table><tr>
|
|
<th align="left"> Vitamins A-N </th><th align="left"> Vitamins O-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 = "#Opengrab">Opengrab</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 = "#O_ring">O_ring</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 = "#Pcbs">Pcbs</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 = "#Pillars">Pillars</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 = "#Psus">Psus</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 = "#Pulleys">Pulleys</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 = "#Rails">Rails</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 = "#Ring_terminals">Ring_terminals</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 = "#Displays">Displays</a> </td><td> <a href = "#Rockers">Rockers</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 = "#Rod">Rod</a> </td><td> <a href = "#Foot">Foot</a> </td><td> <a href = "#Round">Round</a> </td><td></td></tr>
|
|
<tr><td> <a href = "#Fans">Fans</a> </td><td> <a href = "#Screws">Screws</a> </td><td> <a href = "#Handle">Handle</a> </td><td> <a href = "#Rounded_cylinder">Rounded_cylinder</a> </td><td></td></tr>
|
|
<tr><td> <a href = "#Fuseholder">Fuseholder</a> </td><td> <a href = "#Sealing_strip">Sealing_strip</a> </td><td> <a href = "#Ribbon_clamp">Ribbon_clamp</a> </td><td> <a href = "#Rounded_polygon">Rounded_polygon</a> </td><td></td></tr>
|
|
<tr><td> <a href = "#Hot_ends">Hot_ends</a> </td><td> <a href = "#Sheets">Sheets</a> </td><td> <a href = "#Screw_knob">Screw_knob</a> </td><td> <a href = "#Sector">Sector</a> </td><td></td></tr>
|
|
<tr><td> <a href = "#Iecs">Iecs</a> </td><td> <a href = "#Spades">Spades</a> </td><td> <a href = "#Socket_box">Socket_box</a> </td><td> <a href = "#Sweep">Sweep</a> </td><td></td></tr>
|
|
<tr><td> <a href = "#Inserts">Inserts</a> </td><td> <a href = "#Spools">Spools</a> </td><td> <a href = "#Strap_handle">Strap_handle</a> </td><td> <a href = "#Tube">Tube</a> </td><td></td></tr>
|
|
<tr><td> <a href = "#Jack">Jack</a> </td><td> <a href = "#Springs">Springs</a> </td><td></td><td></td><td></td></tr>
|
|
<tr><td> <a href = "#Leadnuts">Leadnuts</a> </td><td> <a href = "#Ssrs">Ssrs</a> </td><td></td><td></td><td></td></tr>
|
|
<tr><td> <a href = "#Leds">Leds</a> </td><td> <a href = "#Stepper_motors">Stepper_motors</a> </td><td></td><td></td><td></td></tr>
|
|
<tr><td> <a href = "#Light_strips">Light_strips</a> </td><td> <a href = "#Toggles">Toggles</a> </td><td></td><td></td><td></td></tr>
|
|
<tr><td> <a href = "#Linear_bearings">Linear_bearings</a> </td><td> <a href = "#Transformers">Transformers</a> </td><td></td><td></td><td></td></tr>
|
|
<tr><td> <a href = "#Mains_sockets">Mains_sockets</a> </td><td> <a href = "#Tubings">Tubings</a> </td><td></td><td></td><td></td></tr>
|
|
<tr><td> <a href = "#Meter">Meter</a> </td><td> <a href = "#Variacs">Variacs</a> </td><td></td><td></td><td></td></tr>
|
|
<tr><td> <a href = "#Microswitches">Microswitches</a> </td><td> <a href = "#Veroboard">Veroboard</a> </td><td></td><td></td><td></td></tr>
|
|
<tr><td> <a href = "#Microview">Microview</a> </td><td> <a href = "#Washers">Washers</a> </td><td></td><td></td><td></td></tr>
|
|
<tr><td> <a href = "#Modules">Modules</a> </td><td> <a href = "#Zipties">Zipties</a> </td><td></td><td></td><td></td></tr>
|
|
<tr><td> <a href = "#Nuts">Nuts</a> </td><td></td><td></td><td></td><td></td></tr>
|
|
</table></td><td valign="top"><img src="libtest.png" width="100%"/></td></tr></table></p>
|
|
<hr />
|
|
<p><a name="Ball_bearings"></a></p>
|
|
<h2>Ball_bearings</h2>
|
|
<p>Simple model of ball bearings with seals, the colour of which can be specified. If silver they are assumed to be metal and the
|
|
part number gets a ZZ suffix. Any other colour is assumed to be rubber and the suffix is -2RS.</p>
|
|
<p>If a ball bearing has a child it is placed on its top surface, the same as nuts and washers, etc.</p>
|
|
<p>Also single bearing balls are modelled as just a silver sphere and a BOM entry.</p>
|
|
<p><a href="vitamins/ball_bearings.scad">vitamins/ball_bearings.scad</a> Object definitions.</p>
|
|
<p><a href="vitamins/ball_bearing.scad">vitamins/ball_bearing.scad</a> Implementation.</p>
|
|
<p><a href="tests/ball_bearings.scad">tests/ball_bearings.scad</a> Code for this example.</p>
|
|
<h3>Properties</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>bb_bore(type)</code></td>
|
|
<td align="left">Internal diameter</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>bb_colour(type)</code></td>
|
|
<td align="left">Shield colour, "silver" for metal</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>bb_diameter(type)</code></td>
|
|
<td align="left">External diameter</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>bb_name(type)</code></td>
|
|
<td align="left">Part code without shield type suffix</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>bb_width(type)</code></td>
|
|
<td align="left">Width</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Functions</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>bb_rim(type)</code></td>
|
|
<td align="left">Inner and outer rim thickness</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>ball_bearing(type)</code></td>
|
|
<td align="left">Draw a ball bearing</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>bearing_ball(dia)</code></td>
|
|
<td align="left">Draw a steel bearing ball</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="ball_bearings" src="tests/png/ball_bearings.png" /></p>
|
|
<h3>Vitamins</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>ball_bearing(BB608)</code></td>
|
|
<td align="left">Ball bearing 608-2RS 8mm x 22mm x 7mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>ball_bearing(BB624)</code></td>
|
|
<td align="left">Ball bearing 624-2RS 4mm x 13mm x 5mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">2</td>
|
|
<td align="left"><code>bearing_ball(3)</code></td>
|
|
<td align="left">Steel ball 3mm</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Batteries"></a></p>
|
|
<h2>Batteries</h2>
|
|
<p>Actually just single cells at the moment, shown here with mating contacts in place.</p>
|
|
<p>Note that the <a href="http://www.lumintop.com/lm34c-usb-rechargeable-18650-li-ion-battery.html">Lumintop LM34</a> has a built in charger with a USB socket and two LEDs.</p>
|
|
<p>The battery length includes its contacts and the origin is the centre of that length. As well as drawing the battery and contacts there are functions
|
|
exposing enough information to make a battery box.</p>
|
|
<p><a href="vitamins/batteries.scad">vitamins/batteries.scad</a> Object definitions.</p>
|
|
<p><a href="vitamins/battery.scad">vitamins/battery.scad</a> Implementation.</p>
|
|
<p><a href="tests/batteries.scad">tests/batteries.scad</a> Code for this example.</p>
|
|
<h3>Properties</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>battery_colour(type)</code></td>
|
|
<td align="left">Casing colour</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>battery_contact(type)</code></td>
|
|
<td align="left">Contact type</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>battery_diameter(type)</code></td>
|
|
<td align="left">Casing diameter</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>battery_led_positions(type)</code></td>
|
|
<td align="left">LED positions for Lumintop</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>battery_length(type)</code></td>
|
|
<td align="left">Total length including terminals</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>battery_neg_dia(type)</code></td>
|
|
<td align="left">Negative terminal diameter</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>battery_pos_dia(type)</code></td>
|
|
<td align="left">Positive terminal diameter</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>battery_pos_height(type)</code></td>
|
|
<td align="left">Positive terminal height above the casing</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>battery_usb_offset(type)</code></td>
|
|
<td align="left">USB connector offset from the top</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>contact_height(type)</code></td>
|
|
<td align="left">Height of the flat part</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>contact_neg(type)</code></td>
|
|
<td align="left">Negative spring height above the plate when compressed and the spring type</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>contact_pos(type)</code></td>
|
|
<td align="left">Positive contact dimple height and top and bottom internal diameter</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>contact_tab_length(type)</code></td>
|
|
<td align="left">Length of the tab</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>contact_tab_width(type)</code></td>
|
|
<td align="left">Width of the tab</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>contact_thickness(type)</code></td>
|
|
<td align="left">Thickness of the metal</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>contact_width(type)</code></td>
|
|
<td align="left">Width of the flat part</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>battery(type)</code></td>
|
|
<td align="left">Draw a battery</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>battery_contact(type, pos = true)</code></td>
|
|
<td align="left">Draw a positive or negative battery contact for specified battery</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>battery_led_positions(type)</code></td>
|
|
<td align="left">Position of the LEDs on a Lumintop</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="batteries" src="tests/png/batteries.png" /></p>
|
|
<h3>Vitamins</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">6</td>
|
|
<td align="left"><code>battery_contact(bcontact, false)</code></td>
|
|
<td align="left">Battery negative contact</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">6</td>
|
|
<td align="left"><code>battery_contact(bcontact, true)</code></td>
|
|
<td align="left">Battery positive contact</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>battery(AACELL)</code></td>
|
|
<td align="left">Cell AA</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>battery(AAACELL)</code></td>
|
|
<td align="left">Cell AAA</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>battery(CCELL)</code></td>
|
|
<td align="left">Cell C</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>battery(DCELL)</code></td>
|
|
<td align="left">Cell D</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>battery(LUMINTOP)</code></td>
|
|
<td align="left">Cell LUMINTOP 18650 LION with charger</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>battery(S25R18650)</code></td>
|
|
<td align="left">Cell Samsung 25R 18650 LION</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Belts"></a></p>
|
|
<h2>Belts</h2>
|
|
<p>Models timing belt running over toothed or smooth pulleys and calculates an accurate length.
|
|
Only models 2D paths, so not core XY!</p>
|
|
<p>By default the path is a closed loop but a gap length and position can be specified to make open loops.</p>
|
|
<p>Individual teeth are not drawn, instead they are represented by a lighter colour.</p>
|
|
<p><a href="vitamins/belts.scad">vitamins/belts.scad</a> Object definitions.</p>
|
|
<p><a href="vitamins/belt.scad">vitamins/belt.scad</a> Implementation.</p>
|
|
<p><a href="tests/belts.scad">tests/belts.scad</a> Code for this example.</p>
|
|
<h3>Properties</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>belt_pitch(type)</code></td>
|
|
<td align="left">Pitch in mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>belt_thickness(type)</code></td>
|
|
<td align="left">Total thickness including teeth</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>belt_tooth_height(type)</code></td>
|
|
<td align="left">Tooth height</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>belt_width(type)</code></td>
|
|
<td align="left">Width in mm</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Functions</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>belt_length(points, gap = 0)</code></td>
|
|
<td align="left">Compute belt length given path and optional gap</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>belt_pitch_height(type)</code></td>
|
|
<td align="left">Offset of the pitch radius from the tips of the teeth</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>belt(type, points, gap = 0, gap_pt = undef)</code></td>
|
|
<td align="left">Draw a belt path given a set of points and pitch radii where the pulleys are. Closed loop unless a gap is specified</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="belts" src="tests/png/belts.png" /></p>
|
|
<h3>Vitamins</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>belt(GT2x6, [ ... ])</code></td>
|
|
<td align="left">Belt GT2 x 6mm x 128mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>belt(GT2x6, [ ... ], 80, [0, 0.81])</code></td>
|
|
<td align="left">Belt GT2 x 6mm x 694mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>belt(T2p5x6, [ ... ])</code></td>
|
|
<td align="left">Belt T2.5 x 6mm x 130mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>belt(T5x10, [ ... ])</code></td>
|
|
<td align="left">Belt T5 x 10mm x 130mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>belt(T5x6, [ ... ])</code></td>
|
|
<td align="left">Belt T5 x 6mm x 130mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>insert(F1BM3)</code></td>
|
|
<td align="left">Heatfit insert M3</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">2</td>
|
|
<td align="left"><code>pulley(GT2x20_toothed_idler)</code></td>
|
|
<td align="left">Pulley GT2 idler 20 teeth</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">2</td>
|
|
<td align="left"><code>pulley(GT2x16_plain_idler)</code></td>
|
|
<td align="left">Pulley GT2 idler smooth</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">2</td>
|
|
<td align="left"><code>pulley(GT2x20ob_pulley)</code></td>
|
|
<td align="left">Pulley GT2OB 20 teeth</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>screw(M3_cs_cap_screw, 20)</code></td>
|
|
<td align="left">Screw M3 cs cap x 20mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">4</td>
|
|
<td align="left"><code>screw(M3_grub_screw, 6)</code></td>
|
|
<td align="left">Screw M3 grub x 6mm</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Blowers"></a></p>
|
|
<h2>Blowers</h2>
|
|
<p>Models of radial blowers.</p>
|
|
<p><a href="vitamins/blowers.scad">vitamins/blowers.scad</a> Object definitions.</p>
|
|
<p><a href="vitamins/blower.scad">vitamins/blower.scad</a> Implementation.</p>
|
|
<p><a href="tests/blowers.scad">tests/blowers.scad</a> Code for this example.</p>
|
|
<h3>Properties</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>blower_axis(type)</code></td>
|
|
<td align="left">XY coordinates of the axle</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>blower_base(type)</code></td>
|
|
<td align="left">Thickness of the base</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>blower_bore(type)</code></td>
|
|
<td align="left">The air intake hole diameter</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>blower_depth(type)</code></td>
|
|
<td align="left">Height</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>blower_exit(type)</code></td>
|
|
<td align="left">The width of the exit port</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>blower_hub(type)</code></td>
|
|
<td align="left">Rotor hub diameter</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>blower_hub_height(type)</code></td>
|
|
<td align="left">Height of the rotor</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>blower_length(type)</code></td>
|
|
<td align="left">Length of enclosing rectangle</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>blower_lug(type)</code></td>
|
|
<td align="left">Height of the lugs</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>blower_screw(type)</code></td>
|
|
<td align="left">The type of screws needed</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>blower_screw_hole(type)</code></td>
|
|
<td align="left">Screw hole diameter</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>blower_screw_holes(type)</code></td>
|
|
<td align="left">List of XY coordinates of the screw holes</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>blower_top(type)</code></td>
|
|
<td align="left">Thickness of the top</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>blower_wall(type)</code></td>
|
|
<td align="left">Side wall thickness</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>blower_width(type)</code></td>
|
|
<td align="left">Width of enclosing rectangle</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>blower(type)</code></td>
|
|
<td align="left">Draw specified blower</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>blower_hole_positions(type)</code></td>
|
|
<td align="left">Translate children to screw hole positions</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="blowers" src="tests/png/blowers.png" /></p>
|
|
<h3>Vitamins</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>blower(PE4020)</code></td>
|
|
<td align="left">Blower Pengda Technology 4020</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>blower(RM5015)</code></td>
|
|
<td align="left">Blower Runda RB5015</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">3</td>
|
|
<td align="left"><code>screw(M3_cap_screw, 20)</code></td>
|
|
<td align="left">Screw M3 cap x 20mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">2</td>
|
|
<td align="left"><code>screw(M4_cap_screw, 25)</code></td>
|
|
<td align="left">Screw M4 cap x 25mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">3</td>
|
|
<td align="left"><code>washer(M3_washer)</code></td>
|
|
<td align="left">Washer M3 x 7mm x 0.5mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">2</td>
|
|
<td align="left"><code>washer(M4_washer)</code></td>
|
|
<td align="left">Washer M4 x 9mm x 0.8mm</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Bulldogs"></a></p>
|
|
<h2>Bulldogs</h2>
|
|
<p>Crude representation of a bulldog clip. The handle is not currently drawn but its length can be
|
|
accessed to allow clearance. Used for holding glass on 3D printer beds but Swiss picture clips can be
|
|
better.</p>
|
|
<p><a href="vitamins/bulldogs.scad">vitamins/bulldogs.scad</a> Object definitions.</p>
|
|
<p><a href="vitamins/bulldog.scad">vitamins/bulldog.scad</a> Implementation.</p>
|
|
<p><a href="tests/bulldogs.scad">tests/bulldogs.scad</a> Code for this example.</p>
|
|
<h3>Properties</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>bulldog_depth(type)</code></td>
|
|
<td align="left">Depth from the back to the front of the tubes</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>bulldog_handle_length(type)</code></td>
|
|
<td align="left">Length that the handle protrudes from the back</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>bulldog_height(type)</code></td>
|
|
<td align="left">Height at the back</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>bulldog_length(type)</code></td>
|
|
<td align="left">Length along the profile</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>bulldog_radius(type)</code></td>
|
|
<td align="left">Outside radius of the back corners</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>bulldog_thickness(type)</code></td>
|
|
<td align="left">Thickness of the metal</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>bulldog_tube(type)</code></td>
|
|
<td align="left">Outside diameter of the tubes</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>bulldog(type, open = 4)</code></td>
|
|
<td align="left">Draw bulldog clip open by specified amount</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="bulldogs" src="tests/png/bulldogs.png" /></p>
|
|
<h3>Vitamins</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>bulldog(small_bulldog)</code></td>
|
|
<td align="left">Bulldog clip 19mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>bulldog(large_bulldog)</code></td>
|
|
<td align="left">Bulldog clip 25mm</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Buttons"></a></p>
|
|
<h2>Buttons</h2>
|
|
<p>PCB mounted buttons. Can optionally have a coloured cap</p>
|
|
<p><a href="vitamins/buttons.scad">vitamins/buttons.scad</a> Object definitions.</p>
|
|
<p><a href="vitamins/button.scad">vitamins/button.scad</a> Implementation.</p>
|
|
<p><a href="tests/buttons.scad">tests/buttons.scad</a> Code for this example.</p>
|
|
<h3>Properties</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>square_button_cap_d(type)</code></td>
|
|
<td align="left">Diameter of the body of the cap</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>square_button_cap_flange_d(type)</code></td>
|
|
<td align="left">Diameter of the flange of the cap</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>square_button_cap_flange_h(type)</code></td>
|
|
<td align="left">Height of the cap flange</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>square_button_cap_h(type)</code></td>
|
|
<td align="left">Height of the cap including the stem</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>square_button_cap_stem(type)</code></td>
|
|
<td align="left">Length of the cap stem</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>square_button_d(type)</code></td>
|
|
<td align="left">Button diameter</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>square_button_h(type)</code></td>
|
|
<td align="left">Height of the button above the PCB</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>square_button_height(type)</code></td>
|
|
<td align="left">Height of the base</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>square_button_rivit(type)</code></td>
|
|
<td align="left">Size of the corner rivets</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>square_button_wall(type)</code></td>
|
|
<td align="left">Offset of the metal part</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>square_button_width(type)</code></td>
|
|
<td align="left">Width and depth of the base</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>square_button(type, colour = "yellow")</code></td>
|
|
<td align="left">Draw square button with specified cap colour if it has a cap</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="buttons" src="tests/png/buttons.png" /></p>
|
|
<h3>Vitamins</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>square_button(button_12mm, "yellow")</code></td>
|
|
<td align="left">Square button 12mm with yellow cap</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>square_button(button_4p5mm)</code></td>
|
|
<td align="left">Square button 4.5mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>square_button(button_6mm)</code></td>
|
|
<td align="left">Square button 6mm</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Cable_strips"></a></p>
|
|
<h2>Cable_strips</h2>
|
|
<p>A strip of polypropylene used with ribbon cable to make a cable flexible in one direction only.</p>
|
|
<p>Modelled with a Bezier spline, which is not quite the same as a miniumum energy curve but very close, epecially
|
|
near the extreme positions, where the model needs to be accurate.</p>
|
|
<p>When the sides are constrained then a circular model is more accurate.</p>
|
|
<p><a href="vitamins/cable_strip.scad">vitamins/cable_strip.scad</a> Implementation.</p>
|
|
<p><a href="tests/cable_strips.scad">tests/cable_strips.scad</a> Code for this example.</p>
|
|
<h3>Functions</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>bezier_cable_length(depth, min_z, pos)</code></td>
|
|
<td align="left">Calculate a length that will achieve the desired minimum z</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>cable_strip_length(depth, travel, extra = 15)</code></td>
|
|
<td align="left">Calculate circular cable strip length</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>bezier_cable_strip(ways, depth, length, travel, pos, below, extra)</code></td>
|
|
<td align="left">Draw a cable strip using a Bezier curve</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>cable_strip(ways, depth, travel, x, extra = 15)</code></td>
|
|
<td align="left">Draw a cable stripe with a semi circular fold</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="cable_strips" src="tests/png/cable_strips.png" /></p>
|
|
<h3>Vitamins</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>bezier_cable_strip(20, 50, 150, 100, -100, 100, 10)</code></td>
|
|
<td align="left">Polypropylene strip 170mm x 26mm x 0.8mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>bezier_cable_strip(20, 50, 150, 100, 0, 100, 10)</code></td>
|
|
<td align="left">Polypropylene strip 170mm x 26mm x 0.8mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>bezier_cable_strip(20, 50, 150, 100, 100, 100, 10)</code></td>
|
|
<td align="left">Polypropylene strip 170mm x 26mm x 0.8mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>cable_strip(20, 25, 100, -100, 30)</code></td>
|
|
<td align="left">Polypropylene strip 189mm x 24mm x 0.8mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>cable_strip(20, 25, 100, 0, 30)</code></td>
|
|
<td align="left">Polypropylene strip 189mm x 24mm x 0.8mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>cable_strip(20, 25, 100, 100, 30)</code></td>
|
|
<td align="left">Polypropylene strip 189mm x 24mm x 0.8mm</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Components"></a></p>
|
|
<h2>Components</h2>
|
|
<p>Various electronic components used in hot ends and heated beds.</p>
|
|
<p><a href="vitamins/components.scad">vitamins/components.scad</a> Object definitions.</p>
|
|
<p><a href="vitamins/component.scad">vitamins/component.scad</a> Implementation.</p>
|
|
<p><a href="tests/components.scad">tests/components.scad</a> Code for this example.</p>
|
|
<h3>Properties</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>al_clad_clearance(type)</code></td>
|
|
<td align="left">Clearance from screw hole centre to the body</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>al_clad_height(type)</code></td>
|
|
<td align="left">Body height</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>al_clad_hole(type)</code></td>
|
|
<td align="left">Hole diameter</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>al_clad_hpitch(type)</code></td>
|
|
<td align="left">Lengthways pitch between screw holes</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>al_clad_length(type)</code></td>
|
|
<td align="left">Body length</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>al_clad_tab(type)</code></td>
|
|
<td align="left">Tab width</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>al_clad_thickness(type)</code></td>
|
|
<td align="left">Tab thickness</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>al_clad_vpitch(type)</code></td>
|
|
<td align="left">Widthways pitch between screw holes</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>al_clad_width(type)</code></td>
|
|
<td align="left">Width including tabs</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>al_clad_wire_length(type)</code></td>
|
|
<td align="left">Total length including wires</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>resistor_colour(type)</code></td>
|
|
<td align="left">Body colour</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>resistor_diameter(type)</code></td>
|
|
<td align="left">Body diameter</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>resistor_hole(type)</code></td>
|
|
<td align="left">Hole big enough to glue it into</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>resistor_length(type)</code></td>
|
|
<td align="left">Body length</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>resistor_radial(type)</code></td>
|
|
<td align="left">Radial gives bead thermistor style body</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>resistor_sleeved(type)</code></td>
|
|
<td align="left">Are the leads sleeved</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>resistor_wire_diameter(type)</code></td>
|
|
<td align="left">Wire diameter</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>resistor_wire_length(type)</code></td>
|
|
<td align="left">Wire length from body</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>tc_body_height(type)</code></td>
|
|
<td align="left">Plastic body height</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>tc_body_inset(type)</code></td>
|
|
<td align="left">How far metal is inset into the plastic body</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>tc_body_length(type)</code></td>
|
|
<td align="left">Plastic body length</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>tc_body_width(type)</code></td>
|
|
<td align="left">Plastic body width</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>tc_hole_dia(type)</code></td>
|
|
<td align="left">Screw hole diameter</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>tc_hole_pitch(type)</code></td>
|
|
<td align="left">Screw hole pitch</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>tc_length(type)</code></td>
|
|
<td align="left">Across the lugs</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>tc_spade_height(type)</code></td>
|
|
<td align="left">Terminal spade height measured from base</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>tc_spade_pitch(type)</code></td>
|
|
<td align="left">Terminal spade pitch</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>tc_thickness(type)</code></td>
|
|
<td align="left">Metal thickness</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>tc_width(type)</code></td>
|
|
<td align="left">Width of lugs</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Functions</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>TO220_thickness()</code></td>
|
|
<td align="left">Thickness of the tab of a TO220</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>TO220(description, leads = 3, lead_length = 16)</code></td>
|
|
<td align="left">Draw a TO220 package, use <code>description</code> to describe what it is</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>al_clad_resistor(type, value, leads = true)</code></td>
|
|
<td align="left">Draw an aluminium clad resistor</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>al_clad_resistor_hole_positions(type)</code></td>
|
|
<td align="left">Position children at the screw holes of an aluminium clad resistor</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>al_clad_resistor_holes(type, h = 100)</code></td>
|
|
<td align="left">Drill screw holes for an aluminium clad resistor</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>panel_USBA()</code></td>
|
|
<td align="left">Draw a panel mount USBA connector</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>panel_USBA_hole_positions()</code></td>
|
|
<td align="left">Place children at hole positions</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>panel_USBA_holes(h = 100)</code></td>
|
|
<td align="left">Make holes for USBA connector</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>resistor(type)</code></td>
|
|
<td align="left">Draw specified type of resitor</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>sleeved_resistor(type, sleeving, bare = 5, heatshrink = false)</code></td>
|
|
<td align="left">Draw a resistor with sleeved leads and option heatshrink</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>thermal_cutout(type)</code></td>
|
|
<td align="left">Draw specified thermal cutout</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>thermal_cutout_hole_positions(type)</code></td>
|
|
<td align="left">Place children at hole positions</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="components" src="tests/png/components.png" /></p>
|
|
<h3>Vitamins</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>TO220("Generic TO220 package")</code></td>
|
|
<td align="left">Generic TO220 package</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">8</td>
|
|
<td align="left"><code>tubing(HSHRNK32)</code></td>
|
|
<td align="left">Heatshrink sleeving ID 3.2mm x 15mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>resistor(RWM04106R80J)</code></td>
|
|
<td align="left">Resistor RWM04106R80J 6R8 3W vitreous enamel</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>resistor(RIE1212UB5C5R6)</code></td>
|
|
<td align="left">Resistor UB5C 5R6F 5R6 3W vitreous enamel</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>al_clad_resistor(THS10, 4.7)</code></td>
|
|
<td align="left">Resistor aluminium clad THS10 4.7</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>al_clad_resistor(THS15, 4.7)</code></td>
|
|
<td align="left">Resistor aluminium clad THS15 4.7</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>al_clad_resistor(THS25, 4.7)</code></td>
|
|
<td align="left">Resistor aluminium clad THS25 4.7</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>al_clad_resistor(THS50, 4.7)</code></td>
|
|
<td align="left">Resistor aluminium clad THS50 4.7</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">4</td>
|
|
<td align="left"><code>screw(M2p5_pan_screw, 16)</code></td>
|
|
<td align="left">Screw M2.5 pan x 16mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">4</td>
|
|
<td align="left"><code>screw(M3_pan_screw, 16)</code></td>
|
|
<td align="left">Screw M3 pan x 16mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>panel_USBA()</code></td>
|
|
<td align="left">Socket USB A panel mount</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>thermal_cutout(TC)</code></td>
|
|
<td align="left">Thermal cutout TC</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>resistor(Epcos)</code></td>
|
|
<td align="left">Thermistor Epcos B57560G104F 100K 1%</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>resistor(EpcosBlue)</code></td>
|
|
<td align="left">Thermistor Epcos B57861S104F40 100K 1%</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>resistor(Honewell)</code></td>
|
|
<td align="left">Thermistor Honeywell 135-104LAC-J01 100K 1%</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Displays"></a></p>
|
|
<h2>Displays</h2>
|
|
<p>LCD dispays.</p>
|
|
<p><a href="vitamins/displays.scad">vitamins/displays.scad</a> Object definitions.</p>
|
|
<p><a href="vitamins/display.scad">vitamins/display.scad</a> Implementation.</p>
|
|
<p><a href="tests/displays.scad">tests/displays.scad</a> Code for this example.</p>
|
|
<h3>Properties</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>display_aperture(type)</code></td>
|
|
<td align="left">Size of the aperture including its depth</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>display_height(type)</code></td>
|
|
<td align="left">Depth of the metal part</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>display_pcb(type)</code></td>
|
|
<td align="left">PCB mounted on the back</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>display_pcb_offset(type)</code></td>
|
|
<td align="left">3D offset of the PCB centre</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>display_ribbon(type)</code></td>
|
|
<td align="left">Keep out region for ribbon cable</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>display_thickness(type)</code></td>
|
|
<td align="left">Height of the metal part</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>display_threads(type)</code></td>
|
|
<td align="left">Length that studs protrude from the PCB holes</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>display_touch_screen(type)</code></td>
|
|
<td align="left">Touch screen position and size</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>display_width(type)</code></td>
|
|
<td align="left">Width of the metal part</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Functions</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>display_depth(type)</code></td>
|
|
<td align="left">Total thickness including touch screen and PCB</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>display_ts_thickness(type)</code></td>
|
|
<td align="left">Touch screen thickness or 0</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>display(type)</code></td>
|
|
<td align="left">Draw specified display</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>display_aperture(type, clearance, clear_pcb = false)</code></td>
|
|
<td align="left">Make aperture cutout</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="displays" src="tests/png/displays.png" /></p>
|
|
<h3>Vitamins</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>display(HDMI5)</code></td>
|
|
<td align="left">HDMI display 5"</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>display(LCD1602A)</code></td>
|
|
<td align="left">LCD display 1602A</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="D_connectors"></a></p>
|
|
<h2>D_connectors</h2>
|
|
<p>D-connectors. Can be any number of ways, male or female, solder buckets, PCB mount or IDC, with or without pillars.</p>
|
|
<p><a href="vitamins/d_connectors.scad">vitamins/d_connectors.scad</a> Object definitions.</p>
|
|
<p><a href="vitamins/d_connector.scad">vitamins/d_connector.scad</a> Implementation.</p>
|
|
<p><a href="tests/d_connectors.scad">tests/d_connectors.scad</a> Code for this example.</p>
|
|
<h3>Properties</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>d_flange_length(type)</code></td>
|
|
<td align="left">Length of the flange</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>d_flange_thickness(type)</code></td>
|
|
<td align="left">Thickness of the flange</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>d_flange_width(type)</code></td>
|
|
<td align="left">Width of the flange</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>d_front_height(type)</code></td>
|
|
<td align="left">From the back of the flange to the front</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>d_height(type)</code></td>
|
|
<td align="left">From the front to the back of the metal part</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>d_hole_pitch(type)</code></td>
|
|
<td align="left">Mounting hole pitch</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>d_lengths(type)</code></td>
|
|
<td align="left">Lengths of the D for plug and socket</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>d_ways(type)</code></td>
|
|
<td align="left">Number of ways</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>d_widths(type)</code></td>
|
|
<td align="left">Widths of the D for plug and socket</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Functions</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>d_mate_distance(type)</code></td>
|
|
<td align="left">Spacing when mated</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>d_pcb_offset(type)</code></td>
|
|
<td align="left">Height of the back of the flange above the PCB</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>d_slot_length(type)</code></td>
|
|
<td align="left">Slot to clear the back</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>d_connector_holes(type)</code></td>
|
|
<td align="left">Place children at the screw hole positions</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>d_pillar()</code></td>
|
|
<td align="left">Draw a pillar for a D-connector</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>d_plug(type, socket = false, pcb = false, idc = false)</code></td>
|
|
<td align="left">Draw specified D plug, which can be IDC, PCB or plain solder bucket</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>d_socket(connector, pcb = false, idc = false)</code></td>
|
|
<td align="left">Draw specified D socket, which can be IDC, PCB or plain solder bucket</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="d_connectors" src="tests/png/d_connectors.png" /></p>
|
|
<h3>Vitamins</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>d_plug(DCONN15, idc = true)</code></td>
|
|
<td align="left">D-type 15 way IDC plug</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>d_socket(DCONN15, idc = true)</code></td>
|
|
<td align="left">D-type 15 way IDC socket</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>d_plug(DCONN25, pcb = true)</code></td>
|
|
<td align="left">D-type 25 way PCB mount plug</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>d_socket(DCONN25, pcb = true)</code></td>
|
|
<td align="left">D-type 25 way PCB mount socket</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>d_plug(DCONN9)</code></td>
|
|
<td align="left">D-type 9 way plug</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>d_socket(DCONN9)</code></td>
|
|
<td align="left">D-type 9 way socket</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">6</td>
|
|
<td align="left"><code>d_pillar()</code></td>
|
|
<td align="left">D-type connector pillar</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Fans"></a></p>
|
|
<h2>Fans</h2>
|
|
<p>Axial fans.</p>
|
|
<p>Can draw three styles: solid, open frame and open frame with screw bosses.</p>
|
|
<p><a href="vitamins/fans.scad">vitamins/fans.scad</a> Object definitions.</p>
|
|
<p><a href="vitamins/fan.scad">vitamins/fan.scad</a> Implementation.</p>
|
|
<p><a href="tests/fans.scad">tests/fans.scad</a> Code for this example.</p>
|
|
<h3>Properties</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>fan_aperture(type)</code></td>
|
|
<td align="left">Optional diameter for the aperture, which can be bigger than the bore it has flared corners.</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>fan_blades(type)</code></td>
|
|
<td align="left">The number of blades</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>fan_bore(type)</code></td>
|
|
<td align="left">Diameter of the hole for the blades</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>fan_boss_d(type)</code></td>
|
|
<td align="left">Diameter of the screw bosses</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>fan_depth(type)</code></td>
|
|
<td align="left">Depth of fan</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>fan_hole_pitch(type)</code></td>
|
|
<td align="left">Screw hole pitch</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>fan_hub(type)</code></td>
|
|
<td align="left">Diameter of the hub</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>fan_outer_diameter(type)</code></td>
|
|
<td align="left">Outside diameter of the frame</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>fan_screw(type)</code></td>
|
|
<td align="left">Screw type</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>fan_thickness(type)</code></td>
|
|
<td align="left">Thickness of the frame</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>fan_width(type)</code></td>
|
|
<td align="left">Width of square</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Functions</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>fan_screw_length(type, thickness)</code></td>
|
|
<td align="left">Screw length required</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>fan(type)</code></td>
|
|
<td align="left">Draw specified fan, origin in the centre</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>fan_assembly(type, thickness, include_fan = true)</code></td>
|
|
<td align="left">Fan with its fasteners</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>fan_hole_positions(type, z = undef)</code></td>
|
|
<td align="left">Position children at the screw hole positions</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>fan_holes(type, poly = false, screws = true, h = 100)</code></td>
|
|
<td align="left">Make all the holes for the fan, or just the aperture if <code>screws</code> is false. Set <code>poly</code> true for poly_holes.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="fans" src="tests/png/fans.png" /></p>
|
|
<h3>Vitamins</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>fan(fan120x25)</code></td>
|
|
<td align="left">Fan 120mm x 25mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>fan(fan25x10)</code></td>
|
|
<td align="left">Fan 25mm x 10mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>fan(fan30x10)</code></td>
|
|
<td align="left">Fan 30mm x 10mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>fan(fan40x11)</code></td>
|
|
<td align="left">Fan 40mm x 11mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>fan(fan50x15)</code></td>
|
|
<td align="left">Fan 50mm x 15mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>fan(fan60x15)</code></td>
|
|
<td align="left">Fan 60mm x 15mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>fan(fan60x25)</code></td>
|
|
<td align="left">Fan 60mm x 25mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>fan(fan70x15)</code></td>
|
|
<td align="left">Fan 70mm x 15mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>fan(fan80x25)</code></td>
|
|
<td align="left">Fan 80mm x 25mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>fan(fan80x38)</code></td>
|
|
<td align="left">Fan 80mm x 38mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">4</td>
|
|
<td align="left"><code>nut(M2p5_nut, nyloc = true)</code></td>
|
|
<td align="left">Nut M2.5 nyloc</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">8</td>
|
|
<td align="left"><code>nut(M3_nut, nyloc = true)</code></td>
|
|
<td align="left">Nut M3 nyloc</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">28</td>
|
|
<td align="left"><code>nut(M4_nut, nyloc = true)</code></td>
|
|
<td align="left">Nut M4 nyloc</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">4</td>
|
|
<td align="left"><code>screw(M2p5_pan_screw, 20)</code></td>
|
|
<td align="left">Screw M2.5 pan x 20mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">8</td>
|
|
<td align="left"><code>screw(M3_dome_screw, 20)</code></td>
|
|
<td align="left">Screw M3 dome x 20mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">20</td>
|
|
<td align="left"><code>screw(M4_dome_screw, 16)</code></td>
|
|
<td align="left">Screw M4 dome x 16mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">4</td>
|
|
<td align="left"><code>screw(M4_dome_screw, 25)</code></td>
|
|
<td align="left">Screw M4 dome x 25mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">4</td>
|
|
<td align="left"><code>screw(M4_dome_screw, 30)</code></td>
|
|
<td align="left">Screw M4 dome x 30mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">4</td>
|
|
<td align="left"><code>washer(M2p5_washer)</code></td>
|
|
<td align="left">Washer M2.5 x 5.9mm x 0.5mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">8</td>
|
|
<td align="left"><code>washer(M3_washer)</code></td>
|
|
<td align="left">Washer M3 x 7mm x 0.5mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">28</td>
|
|
<td align="left"><code>washer(M4_washer)</code></td>
|
|
<td align="left">Washer M4 x 9mm x 0.8mm</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Fuseholder"></a></p>
|
|
<h2>Fuseholder</h2>
|
|
<p>20mm panel mount fuse holder.</p>
|
|
<p><a href="vitamins/fuseholder.scad">vitamins/fuseholder.scad</a> Implementation.</p>
|
|
<p><a href="tests/fuseholder.scad">tests/fuseholder.scad</a> Code for this example.</p>
|
|
<h3>Functions</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>fuseholder_diameter()</code></td>
|
|
<td align="left">Outside diameter of flange</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>fuseholder(thickness)</code></td>
|
|
<td align="left">Fuseholder with nut in place for specified panel thickness</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>fuseholder_hole(h = 100)</code></td>
|
|
<td align="left">Hole with flats for fuseholder</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="fuseholder" src="tests/png/fuseholder.png" /></p>
|
|
<h3>Vitamins</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>fuseholder(6)</code></td>
|
|
<td align="left">Fuse holder 20mm</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Hot_ends"></a></p>
|
|
<h2>Hot_ends</h2>
|
|
<p>Hot end models. The E3D models were originally contributed to Mendel90 by Philippe LUC @philfifi</p>
|
|
<p>Needs updating as mostly obsolete versions.</p>
|
|
<p><a href="vitamins/hot_ends.scad">vitamins/hot_ends.scad</a> Object definitions.</p>
|
|
<p><a href="vitamins/hot_end.scad">vitamins/hot_end.scad</a> Implementation.</p>
|
|
<p><a href="tests/hot_ends.scad">tests/hot_ends.scad</a> Code for this example.</p>
|
|
<h3>Properties</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>hot_end_duct_height_fan(type)</code></td>
|
|
<td align="left">Duct height at fan end</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>hot_end_duct_height_nozzle(type)</code></td>
|
|
<td align="left">Duct height at nozzle end</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>hot_end_duct_offset(type)</code></td>
|
|
<td align="left">Offset of circular duct centre from the nozzle</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>hot_end_duct_radius(type)</code></td>
|
|
<td align="left">Require radius to clear the heater block</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>hot_end_groove(type)</code></td>
|
|
<td align="left">Groove length</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>hot_end_groove_dia(type)</code></td>
|
|
<td align="left">Groove internal diameter</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>hot_end_inset(type)</code></td>
|
|
<td align="left">The length that goes into the mounting</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>hot_end_insulator_colour(type)</code></td>
|
|
<td align="left">Colour of the insulator</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>hot_end_insulator_diameter(type)</code></td>
|
|
<td align="left">Outside diameter</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>hot_end_insulator_length(type)</code></td>
|
|
<td align="left">Length of the insulator</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>hot_end_part(type)</code></td>
|
|
<td align="left">Description</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>hot_end_style(type)</code></td>
|
|
<td align="left">Basic type, jhead or e3d</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>hot_end_total_length(type)</code></td>
|
|
<td align="left">Length from nozzle tip to the top</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Functions</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>hot_end_length(type)</code></td>
|
|
<td align="left">The amount the hot end extends below its mounting</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>hot_end_need_cooling(type)</code></td>
|
|
<td align="left">Has own fan so don't need cooling hole in the duct</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>hot_end(type, filament, naked = false)</code></td>
|
|
<td align="left">Draw specified hot end</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="hot_ends" src="tests/png/hot_ends.png" /></p>
|
|
<h3>Vitamins</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">2</td>
|
|
<td align="left"><code>tubing(HSHRNK16)</code></td>
|
|
<td align="left">Heatshrink sleeving ID 1.6mm x 15mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">4</td>
|
|
<td align="left"><code>tubing(HSHRNK64, 60)</code></td>
|
|
<td align="left">Heatshrink sleeving ID 6.4mm x 60mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>e3d_hot_end(E3Dv5, 3)</code></td>
|
|
<td align="left">Hot end E3D V5 direct 3mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>e3d_hot_end(E3Dv6, 3)</code></td>
|
|
<td align="left">Hot end E3D V6 direct 3mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>e3d_hot_end(E3D_clone, 3)</code></td>
|
|
<td align="left">Hot end E3D clone aliexpress 3mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>jhead_hot_end(JHeadMk5, 3)</code></td>
|
|
<td align="left">Hot end JHead MK5 3mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">2</td>
|
|
<td align="left"><code>tubing(PTFE07, 62)</code></td>
|
|
<td align="left">PTFE sleeving OD 1.2mm ID 0.71mm x 62mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">2</td>
|
|
<td align="left"><code>tubing(PTFE20, 45)</code></td>
|
|
<td align="left">PTFE sleeving OD 2.6mm ID 2mm x 45mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>resistor(RIE1212UB5C5R6)</code></td>
|
|
<td align="left">Resistor UB5C 5R6F 5R6 3W vitreous enamel</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"></td>
|
|
<td align="left">Tape self amalgamating silicone 110mm x 25mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>resistor(Epcos)</code></td>
|
|
<td align="left">Thermistor Epcos B57560G104F 100K 1%</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">2</td>
|
|
<td align="left"></td>
|
|
<td align="left">Wire Red PTFE 16/0.2 length 170mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">4</td>
|
|
<td align="left"><code>ziptie(small_ziptie, 8)</code></td>
|
|
<td align="left">Ziptie 100mm min length</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Iecs"></a></p>
|
|
<h2>Iecs</h2>
|
|
<p>IEC mains inlets and outlet.</p>
|
|
<p><a href="vitamins/iecs.scad">vitamins/iecs.scad</a> Object definitions.</p>
|
|
<p><a href="vitamins/iec.scad">vitamins/iec.scad</a> Implementation.</p>
|
|
<p><a href="tests/iecs.scad">tests/iecs.scad</a> Code for this example.</p>
|
|
<h3>Properties</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>iec_bezel_h(type)</code></td>
|
|
<td align="left">Bezel height</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>iec_bezel_r(type)</code></td>
|
|
<td align="left">Bezel corner radius</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>iec_bezel_t(type)</code></td>
|
|
<td align="left">Bezel thickness</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>iec_bezel_w(type)</code></td>
|
|
<td align="left">Bezel width</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>iec_depth(type)</code></td>
|
|
<td align="left">Depth of the body below the flange</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>iec_flange_h(type)</code></td>
|
|
<td align="left">Flange height</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>iec_flange_r(type)</code></td>
|
|
<td align="left">Flange corner radius</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>iec_flange_t(type)</code></td>
|
|
<td align="left">Flange thickness</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>iec_flange_w(type)</code></td>
|
|
<td align="left">Flange width not including the lugs</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>iec_male(type)</code></td>
|
|
<td align="left">True for an outlet</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>iec_part(type)</code></td>
|
|
<td align="left">Description</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>iec_pitch(type)</code></td>
|
|
<td align="left">Screw hole pitch</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>iec_screw(type)</code></td>
|
|
<td align="left">Screw type</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>iec_slot_h(type)</code></td>
|
|
<td align="left">Body height</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>iec_slot_r(type)</code></td>
|
|
<td align="left">Body corner radius</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>iec_slot_w(type)</code></td>
|
|
<td align="left">Body width</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>iec_spades(type)</code></td>
|
|
<td align="left">Spade type</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>iec_width(type)</code></td>
|
|
<td align="left">Widest part including the lugs</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>iec(type)</code></td>
|
|
<td align="left">Draw specified IEC connector</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>iec_assembly(type, thickness)</code></td>
|
|
<td align="left">Assembly with fasteners given panel thickness</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>iec_holes(type, h = 100, poly = false, horizontal = false, insert = false)</code></td>
|
|
<td align="left">Drill the required panel holes</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>iec_screw_positions(type)</code></td>
|
|
<td align="left">Position children at the screw holes</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="iecs" src="tests/png/iecs.png" /></p>
|
|
<h3>Vitamins</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>iec(IEC_fused_inlet)</code></td>
|
|
<td align="left">IEC fused inlet</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>iec(IEC_inlet)</code></td>
|
|
<td align="left">IEC inlet</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>iec(IEC_inlet_atx)</code></td>
|
|
<td align="left">IEC inlet for ATX</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>iec(IEC_outlet)</code></td>
|
|
<td align="left">IEC outlet</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">8</td>
|
|
<td align="left"><code>nut(M3_nut, nyloc = true)</code></td>
|
|
<td align="left">Nut M3 nyloc</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">4</td>
|
|
<td align="left"><code>screw(M3_cs_cap_screw, 10)</code></td>
|
|
<td align="left">Screw M3 cs cap x 10mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">4</td>
|
|
<td align="left"><code>screw(M3_cs_cap_screw, 12)</code></td>
|
|
<td align="left">Screw M3 cs cap x 12mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">8</td>
|
|
<td align="left"><code>washer(M3_washer)</code></td>
|
|
<td align="left">Washer M3 x 7mm x 0.5mm</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Inserts"></a></p>
|
|
<h2>Inserts</h2>
|
|
<p>Heatfit threaded inserts. Can be pushed into thermoplastics using a soldering iron with a conical bit set to 200°C.</p>
|
|
<p><a href="vitamins/inserts.scad">vitamins/inserts.scad</a> Object definitions.</p>
|
|
<p><a href="vitamins/insert.scad">vitamins/insert.scad</a> Implementation.</p>
|
|
<p><a href="tests/inserts.scad">tests/inserts.scad</a> Code for this example.</p>
|
|
<h3>Properties</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>insert_barrel_d(type)</code></td>
|
|
<td align="left">Diameter of the main barrel</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>insert_hole_radius(type)</code></td>
|
|
<td align="left">Radius of the required hole in the plastic</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>insert_length(type)</code></td>
|
|
<td align="left">Length</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>insert_outer_d(type)</code></td>
|
|
<td align="left">Outer diameter at the top</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>insert_ring1_h(type)</code></td>
|
|
<td align="left">Height of the top and middle rings</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>insert_ring2_d(type)</code></td>
|
|
<td align="left">Diameter of the middle ring</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>insert_ring3_d(type)</code></td>
|
|
<td align="left">Diameter of the bottom ring</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>insert_screw_diameter(type)</code></td>
|
|
<td align="left">Screw size</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>insert(type)</code></td>
|
|
<td align="left">Draw specified insert</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>insert_boss(type, z, wall = 2 * extrusion_width)</code></td>
|
|
<td align="left">Make a boss to take an insert</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>insert_hole(type, counterbore = 0, horizontal = false)</code></td>
|
|
<td align="left">Make a hole to take an insert, <code>counterbore</code> is the extra length for the screw</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="inserts" src="tests/png/inserts.png" /></p>
|
|
<h3>Vitamins</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>insert(F1BM)</code></td>
|
|
<td align="left">Heatfit insert M2</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>insert(F1BM2p5)</code></td>
|
|
<td align="left">Heatfit insert M2.5</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>insert(F1BM3)</code></td>
|
|
<td align="left">Heatfit insert M3</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>insert(F1BM4)</code></td>
|
|
<td align="left">Heatfit insert M4</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Jack"></a></p>
|
|
<h2>Jack</h2>
|
|
<p>4mm jack sockets and binding posts. Each has a colour for the BOM entry and an optional alternative colour for display.
|
|
E.g. a "brown" socket for mains live needs to be displayed as "sienna" to look realistic.</p>
|
|
<p><a href="vitamins/jack.scad">vitamins/jack.scad</a> Implementation.</p>
|
|
<p><a href="tests/jack.scad">tests/jack.scad</a> Code for this example.</p>
|
|
<h3>Functions</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>jack_4mm_hole_radius()</code></td>
|
|
<td align="left">Panel hole radius for 4mm jack</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>jack_4mm_shielded_hole_radius()</code></td>
|
|
<td align="left">Panel hole radius for 4mm shielded jack</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>post_4mm_diameter()</code></td>
|
|
<td align="left">Outer diameter of 4mm binding post</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>jack_4mm(colour, thickness, display_colour = false)</code></td>
|
|
<td align="left">Draw a 4mm jack socket with nut positioned for specified panel thickness</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>jack_4mm_shielded(colour, thickness, display_colour = false)</code></td>
|
|
<td align="left">Draw a 4mm shielded jack</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>post_4mm(colour, thickness, display_colour = false)</code></td>
|
|
<td align="left">Draw a 4mm binding post</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>post_4mm_hole(h = 100, poly = false)</code></td>
|
|
<td align="left">Drill hole for 4mm binding post</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="jack" src="tests/png/jack.png" /></p>
|
|
<h3>Vitamins</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>post_4mm("red", 3)</code></td>
|
|
<td align="left">4mm jack binding post red</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>jack_4mm("blue", 3, "royalblue")</code></td>
|
|
<td align="left">4mm jack socket blue</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>jack_4mm_shielded("brown", 3, "sienna")</code></td>
|
|
<td align="left">4mm shielded jack socket brown</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Leadnuts"></a></p>
|
|
<h2>Leadnuts</h2>
|
|
<p>Nuts for leadscrews.</p>
|
|
<p><a href="vitamins/leadnuts.scad">vitamins/leadnuts.scad</a> Object definitions.</p>
|
|
<p><a href="vitamins/leadnut.scad">vitamins/leadnut.scad</a> Implementation.</p>
|
|
<p><a href="tests/leadnuts.scad">tests/leadnuts.scad</a> Code for this example.</p>
|
|
<h3>Properties</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>leadnut_bore(type)</code></td>
|
|
<td align="left">Thread size</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>leadnut_flange_dia(type)</code></td>
|
|
<td align="left">Flange diameter</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>leadnut_flange_offset(type)</code></td>
|
|
<td align="left">Offset of the flange from the top</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>leadnut_flange_t(type)</code></td>
|
|
<td align="left">Flange thickness</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>leadnut_height(type)</code></td>
|
|
<td align="left">Total height</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>leadnut_hole_dia(type)</code></td>
|
|
<td align="left">The diameter of the screw holes</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>leadnut_hole_pitch(type)</code></td>
|
|
<td align="left">The radia pitch of the screw holes</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>leadnut_holes(type)</code></td>
|
|
<td align="left">The number of screw holes</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>leadnut_od(type)</code></td>
|
|
<td align="left">Outer diameter of the shank</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>leadnut_screw(type)</code></td>
|
|
<td align="left">The type of the fixing screws</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Functions</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>leadnut_shank(type)</code></td>
|
|
<td align="left">The length of the shank below the flange</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>leadnut(type)</code></td>
|
|
<td align="left">Draw specified leadnut</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>leadnut_screw_positions(type)</code></td>
|
|
<td align="left">Position children at the screw holes</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="leadnuts" src="tests/png/leadnuts.png" /></p>
|
|
<h3>Vitamins</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>leadnut(LSN8x2)</code></td>
|
|
<td align="left">Leadscrew nut 8 x 2</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>leadnut(LSN8x8)</code></td>
|
|
<td align="left">Leadscrew nut 8 x 8 RobotDigg</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Leds"></a></p>
|
|
<h2>Leds</h2>
|
|
<p>Standard domed through hole LEDs. Can specify colour and lead length.</p>
|
|
<p><a href="vitamins/leds.scad">vitamins/leds.scad</a> Object definitions.</p>
|
|
<p><a href="vitamins/led.scad">vitamins/led.scad</a> Implementation.</p>
|
|
<p><a href="tests/leds.scad">tests/leds.scad</a> Code for this example.</p>
|
|
<h3>Properties</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>led_diameter(type)</code></td>
|
|
<td align="left">Body diameter</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>led_height(type)</code></td>
|
|
<td align="left">Body height</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>led_lead_t(type)</code></td>
|
|
<td align="left">Lead thickness</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>led_pitch(type)</code></td>
|
|
<td align="left">Lead pitch</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>led_rim_dia(type)</code></td>
|
|
<td align="left">Rim diameter</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>led_rim_t(type)</code></td>
|
|
<td align="left">Rim height</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Functions</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>led_hole_radius(type)</code></td>
|
|
<td align="left">Radius of panel hole to accept LED</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>led(type, colour = "red", lead = 5)</code></td>
|
|
<td align="left">Draw specified LED with desired colour and led length</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="leds" src="tests/png/leds.png" /></p>
|
|
<h3>Vitamins</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>led(LED10mm)</code></td>
|
|
<td align="left">LED 10 mm red</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>led(LED3mm, "green")</code></td>
|
|
<td align="left">LED 3 mm green</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>led(LED5mm, "blue")</code></td>
|
|
<td align="left">LED 5 mm blue</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Light_strips"></a></p>
|
|
<h2>Light_strips</h2>
|
|
<p>LED strip lights that can be cut to size.</p>
|
|
<p>The definitions are for the full length but they can be cut to size by specifying how many segments,
|
|
which can by calcuated using <code>light_strip_segments(type, max_length)</code>.</p>
|
|
<p>The <code>light_strip_clip()</code> module makes a clip to go around the light that can be incorporated into a printed bracket to hold it.</p>
|
|
<p><a href="vitamins/light_strips.scad">vitamins/light_strips.scad</a> Object definitions.</p>
|
|
<p><a href="vitamins/light_strip.scad">vitamins/light_strip.scad</a> Implementation.</p>
|
|
<p><a href="tests/light_strips.scad">tests/light_strips.scad</a> Code for this example.</p>
|
|
<h3>Properties</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>light_strip_aperture(type)</code></td>
|
|
<td align="left">Inside width</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>light_strip_depth(type)</code></td>
|
|
<td align="left">Outside depth</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>light_strip_grouped(type)</code></td>
|
|
<td align="left">Number of LEDs in each group</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>light_strip_leds(type)</code></td>
|
|
<td align="left">Total number of LEDs</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>light_strip_length(type)</code></td>
|
|
<td align="left">Un-cut length</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>light_strip_pcb_thickness(type)</code></td>
|
|
<td align="left">PCB thickness</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>light_strip_thickness(type)</code></td>
|
|
<td align="left">Metal thickness</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>light_strip_width(type)</code></td>
|
|
<td align="left">Outside width</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Functions</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>light_strip_clip_depth(light)</code></td>
|
|
<td align="left">Depth of the clip</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>light_strip_clip_length(light)</code></td>
|
|
<td align="left">Outside length</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>light_strip_clip_slot(light)</code></td>
|
|
<td align="left">Clip slot size</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>light_strip_clip_width(light)</code></td>
|
|
<td align="left">Outside width</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>light_strip_cut_length(type, segs)</code></td>
|
|
<td align="left">Calculate cut length given segments</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>light_strip_segments(type, max_length)</code></td>
|
|
<td align="left">Calculate the maximum number of segments that fit in max_length</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>light_strip(type, segs = undef)</code></td>
|
|
<td align="left">Draw specified light strip, segs can be used to limit the length</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>light_strip_clip(light)</code></td>
|
|
<td align="left">Make a clip to go over the strip to be incorporated into a bracket</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="light_strips" src="tests/png/light_strips.png" /></p>
|
|
<h3>Vitamins</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>light_strip(Rigid5050, 6)</code></td>
|
|
<td align="left">Light strip rigid SMD5050 low profile x 250mm (6 segments)</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>light_strip(RIGID5050, 6)</code></td>
|
|
<td align="left">Light strip rigid SMD5050 x 250mm (6 segments)</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Linear_bearings"></a></p>
|
|
<h2>Linear_bearings</h2>
|
|
<p>LMnUU linear bearings.</p>
|
|
<p><a href="vitamins/linear_bearings.scad">vitamins/linear_bearings.scad</a> Object definitions.</p>
|
|
<p><a href="vitamins/linear_bearing.scad">vitamins/linear_bearing.scad</a> Implementation.</p>
|
|
<p><a href="tests/linear_bearings.scad">tests/linear_bearings.scad</a> Code for this example.</p>
|
|
<h3>Properties</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>bearing_dia(type)</code></td>
|
|
<td align="left">Outside diameter</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>bearing_length(type)</code></td>
|
|
<td align="left">Total length</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>bearing_rod_dia(type)</code></td>
|
|
<td align="left">Internal diameter</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Functions</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>bearing_radius(type)</code></td>
|
|
<td align="left">Outside radius</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>linear_bearing(type)</code></td>
|
|
<td align="left">Draw specified linear bearing</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="linear_bearings" src="tests/png/linear_bearings.png" /></p>
|
|
<h3>Vitamins</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>linear_bearing(LM10UU)</code></td>
|
|
<td align="left">Linear bearing LM10UU</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>linear_bearing(LM12UU)</code></td>
|
|
<td align="left">Linear bearing LM12UU</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>linear_bearing(LM3UU)</code></td>
|
|
<td align="left">Linear bearing LM3UU</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>linear_bearing(LM4UU)</code></td>
|
|
<td align="left">Linear bearing LM4UU</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>linear_bearing(LM5UU)</code></td>
|
|
<td align="left">Linear bearing LM5UU</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>linear_bearing(LM6UU)</code></td>
|
|
<td align="left">Linear bearing LM6UU</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>linear_bearing(LM8UU)</code></td>
|
|
<td align="left">Linear bearing LM8UU</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Mains_sockets"></a></p>
|
|
<h2>Mains_sockets</h2>
|
|
<p>UK 13A sockets at the moment.</p>
|
|
<p><a href="vitamins/mains_sockets.scad">vitamins/mains_sockets.scad</a> Object definitions.</p>
|
|
<p><a href="vitamins/mains_socket.scad">vitamins/mains_socket.scad</a> Implementation.</p>
|
|
<p><a href="tests/mains_sockets.scad">tests/mains_sockets.scad</a> Code for this example.</p>
|
|
<h3>Properties</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>mains_socket_corner(type)</code></td>
|
|
<td align="left">Corner radius</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>mains_socket_depth(type)</code></td>
|
|
<td align="left">Depth at the base</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>mains_socket_height(type)</code></td>
|
|
<td align="left">Height</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>mains_socket_offset(type)</code></td>
|
|
<td align="left">Offset of the socket from the centre</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>mains_socket_pitch(type)</code></td>
|
|
<td align="left">Screw hole pitch</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>mains_socket_t(type)</code></td>
|
|
<td align="left">Plastic thickness</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>mains_socket_top_d(type)</code></td>
|
|
<td align="left">Depth at the top, might be tapered</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>mains_socket_top_w(type)</code></td>
|
|
<td align="left">Width at the top, might be tapered</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>mains_socket_width(type)</code></td>
|
|
<td align="left">Width at the base</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Functions</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>mains_socket_screw(type)</code></td>
|
|
<td align="left">Screw type</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>mains_socket(type)</code></td>
|
|
<td align="left">Draw specified 13A socket</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>mains_socket_earth_position(type)</code></td>
|
|
<td align="left">Position of earth terminal for DiBond panel</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>mains_socket_hole_positions(type)</code></td>
|
|
<td align="left">Position children at the screw holes</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>mains_socket_holes(type, h = 0)</code></td>
|
|
<td align="left">Panel cutout</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="mains_sockets" src="tests/png/mains_sockets.png" /></p>
|
|
<h3>Vitamins</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>mains_socket(Contactum)</code></td>
|
|
<td align="left">Mains socket 13A</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>mains_socket(MKLOGIC)</code></td>
|
|
<td align="left">Mains socket 13A, switched</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Meter"></a></p>
|
|
<h2>Meter</h2>
|
|
<p>LED volt meter modules available from China and a printed bezel that allows them to be mounted into a
|
|
CNC cut panel. The meter is held in the bezel by melting the stakes with a soldering iron set to 200°C. The
|
|
bezel is fixed in the panel with hot glue.</p>
|
|
<p>Needs 7 segment font from <a href="http://www.twyman.org.uk/Fonts/font-download.htm">http://www.twyman.org.uk/Fonts/font-download.htm</a> to look realistic.</p>
|
|
<p><a href="vitamins/meter.scad">vitamins/meter.scad</a> Implementation.</p>
|
|
<p><a href="tests/meter.scad">tests/meter.scad</a> Code for this example.</p>
|
|
<h3>Properties</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>meter_height(type = led_meter)</code></td>
|
|
<td align="left">Height of body excluding PCB</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>meter_hole_pitch(type = led_meter)</code></td>
|
|
<td align="left">Lug hole pitch</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>meter_hole_radius(type = led_meter)</code></td>
|
|
<td align="left">Lug hole radius</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>meter_length(type = led_meter)</code></td>
|
|
<td align="left">Length of body</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>meter_lug_length(type = led_meter)</code></td>
|
|
<td align="left">PCB length including lugs</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>meter_lug_width(type = led_meter)</code></td>
|
|
<td align="left">Lug width</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>meter_pcb_length(type = led_meter)</code></td>
|
|
<td align="left">PCB length excluding lugs</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>meter_pcb_thickness(type = led_meter)</code></td>
|
|
<td align="left">PCB thickness</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>meter_pcb_width(type = led_meter)</code></td>
|
|
<td align="left">PCB width</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>meter_width(type = led_meter)</code></td>
|
|
<td align="left">Width of body</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Functions</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>meter()</code></td>
|
|
<td align="left">Default meter type</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>meter_bezel_length(type = led_meter)</code></td>
|
|
<td align="left">Printed bezel length</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>meter_bezel_rad(type = led_meter)</code></td>
|
|
<td align="left">Printed bezel corner radius</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>meter_bezel_wall(type = led_meter)</code></td>
|
|
<td align="left">Printed bezel wall thickness</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>meter_bezel_width(type = led_meter)</code></td>
|
|
<td align="left">Printed bezel width</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>meter(type = led_meter, colour = "red", value = "888", display_colour = false)</code></td>
|
|
<td align="left">Draw a meter with optional colour and display value</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>meter_assembly(type = led_meter, colour = "red", value = "888", display_colour = false)</code></td>
|
|
<td align="left">Meter assembled into the bezel</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>meter_bezel(type = led_meter)</code></td>
|
|
<td align="left">Generate the STL for the meter bezel</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>meter_bezel_hole(type = led_meter, h = 100)</code></td>
|
|
<td align="left">Make a hole to fit the meter Bezel</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>meter_hole_positions(type = led_meter)</code></td>
|
|
<td align="left">Position children over the holes</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="meter" src="tests/png/meter.png" /></p>
|
|
<h3>Vitamins</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>meter(led_meter, colour = "blue")</code></td>
|
|
<td align="left">LED meter blue</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">2</td>
|
|
<td align="left"><code>meter(led_meter)</code></td>
|
|
<td align="left">LED meter red</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Printed</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">2</td>
|
|
<td align="left">meter_bezel.stl</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Microswitches"></a></p>
|
|
<h2>Microswitches</h2>
|
|
<p>Used for limit switches.</p>
|
|
<p><a href="vitamins/microswitches.scad">vitamins/microswitches.scad</a> Object definitions.</p>
|
|
<p><a href="vitamins/microswitch.scad">vitamins/microswitch.scad</a> Implementation.</p>
|
|
<p><a href="tests/microswitches.scad">tests/microswitches.scad</a> Code for this example.</p>
|
|
<h3>Properties</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>microswitch_body_clr(type)</code></td>
|
|
<td align="left">Body colour</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>microswitch_button_clr(type)</code></td>
|
|
<td align="left">Button colour</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>microswitch_button_pos(type)</code></td>
|
|
<td align="left">Button position</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>microswitch_button_t(type)</code></td>
|
|
<td align="left">Button thickness</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>microswitch_button_w(type)</code></td>
|
|
<td align="left">Button width</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>microswitch_hole_d(type)</code></td>
|
|
<td align="left">Screw hole diameter</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>microswitch_holes(type)</code></td>
|
|
<td align="left">Hole positions</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>microswitch_leg(type)</code></td>
|
|
<td align="left">Leg types</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>microswitch_legs(type)</code></td>
|
|
<td align="left">Leg positions</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>microswitch_length(type)</code></td>
|
|
<td align="left">Body length</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>microswitch_radius(type)</code></td>
|
|
<td align="left">Body corner radius</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>microswitch_thickness(type)</code></td>
|
|
<td align="left">Body thickness</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>microswitch_width(type)</code></td>
|
|
<td align="left">Body width</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Functions</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>microswitch_lower_extent(type)</code></td>
|
|
<td align="left">How far legs extend downwards</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>microswitch_right_extent(type)</code></td>
|
|
<td align="left">How far legs extend right</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>microswitch(type)</code></td>
|
|
<td align="left">Draw specified microswitch</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>microswitch_hole_positions(type)</code></td>
|
|
<td align="left">Place children at the hole positions</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>microswitch_wire_positions(type, skip = undef)</code></td>
|
|
<td align="left">Place children at the leg hole positions</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="microswitches" src="tests/png/microswitches.png" /></p>
|
|
<h3>Vitamins</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>microswitch(small_microswitch)</code></td>
|
|
<td align="left">Microswitch DM1-00P-110-3</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>microswitch(medium_microswitch)</code></td>
|
|
<td align="left">Microswitch SS-01 or SS-5GL</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>microswitch(large_microswitch)</code></td>
|
|
<td align="left">Microswitch Saia G3 low force</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Microview"></a></p>
|
|
<h2>Microview</h2>
|
|
<p>Microview OLED display with on board AVR by geekammo / Sparkfun.</p>
|
|
<p><code>microview()</code> generates the model. <code>microview(true)</code> makes an object to cut out a panel aperture for it.</p>
|
|
<p>Uses STL files copyright geekammo and licenced with MIT license, see <a href="vitamins/microview/LICENSE.txt">microview/LICENSE.txt</a>.</p>
|
|
<p><a href="vitamins/microview.scad">vitamins/microview.scad</a> Implementation.</p>
|
|
<p><a href="tests/microview.scad">tests/microview.scad</a> Code for this example.</p>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>microview(cutout = false)</code></td>
|
|
<td align="left">Draw microview or generate a panel cutout for it</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="microview" src="tests/png/microview.png" /></p>
|
|
<h3>Vitamins</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>microview()</code></td>
|
|
<td align="left">Microview OLED display</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Modules"></a></p>
|
|
<h2>Modules</h2>
|
|
<p>Random screw down modules. Currently just DROK buck converters.</p>
|
|
<p><a href="vitamins/modules.scad">vitamins/modules.scad</a> Object definitions.</p>
|
|
<p><a href="vitamins/module.scad">vitamins/module.scad</a> Implementation.</p>
|
|
<p><a href="tests/modules.scad">tests/modules.scad</a> Code for this example.</p>
|
|
<h3>Properties</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>mod_height(type)</code></td>
|
|
<td align="left">Body height</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>mod_hole_r(type)</code></td>
|
|
<td align="left">Screw hole radius</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>mod_holes(type)</code></td>
|
|
<td align="left">Screw hole positions</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>mod_length(type)</code></td>
|
|
<td align="left">Body length</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>mod_part(type)</code></td>
|
|
<td align="left">Description</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>mod_screw(type)</code></td>
|
|
<td align="left">Screw type</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>mod_screw_z(type)</code></td>
|
|
<td align="left">Thickness of screw lug</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>mod_width(type)</code></td>
|
|
<td align="left">Body width</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>mod(type)</code></td>
|
|
<td align="left">Draw specified module</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>mod_screw_positions(type)</code></td>
|
|
<td align="left">Position children at the screw positions</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>module_assembly(type, thickness)</code></td>
|
|
<td align="left">Module with its fasteners in place</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="modules" src="tests/png/modules.png" /></p>
|
|
<h3>Vitamins</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>mod(drok_buck)</code></td>
|
|
<td align="left">Drok buck converter</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">2</td>
|
|
<td align="left"><code>nut(M4_nut, nyloc = true)</code></td>
|
|
<td align="left">Nut M4 nyloc</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">2</td>
|
|
<td align="left"><code>screw(M4_dome_screw, 12)</code></td>
|
|
<td align="left">Screw M4 dome x 12mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">4</td>
|
|
<td align="left"><code>washer(M4_washer)</code></td>
|
|
<td align="left">Washer M4 x 9mm x 0.8mm</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Nuts"></a></p>
|
|
<h2>Nuts</h2>
|
|
<p>Default is steel but can be drawn as brass or nylon. A utility for making nut traps included.</p>
|
|
<p>If a nut is given a child then it gets placed on its top surface.</p>
|
|
<p><a href="vitamins/nuts.scad">vitamins/nuts.scad</a> Object definitions.</p>
|
|
<p><a href="vitamins/nut.scad">vitamins/nut.scad</a> Implementation.</p>
|
|
<p><a href="tests/nuts.scad">tests/nuts.scad</a> Code for this example.</p>
|
|
<h3>Properties</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>nut_radius(type)</code></td>
|
|
<td align="left">Radius across the corners</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>nut_size(type)</code></td>
|
|
<td align="left">Diameter of the corresponding screw</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>nut_trap_depth(type)</code></td>
|
|
<td align="left">Depth of nut trap</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>nut_washer(type)</code></td>
|
|
<td align="left">Corresponding washer</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Functions</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>nut_flat_radius(type)</code></td>
|
|
<td align="left">Radius across the flats</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>nut_thickness(type, nyloc = false)</code></td>
|
|
<td align="left">Thickness of plain or nyloc version</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>nut_trap_flat_radius(nut, horizontal = false)</code></td>
|
|
<td align="left">Radius across the flats of a nut trap</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>nut_trap_radius(nut, horizontal = false)</code></td>
|
|
<td align="left">Radius across the corners of a nut trap</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>nut(type, nyloc = false, brass = false, nylon = false)</code></td>
|
|
<td align="left">Draw specified nut</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>nut_and_washer(type, nyloc)</code></td>
|
|
<td align="left">Draw nut with corresponding washer</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>nut_trap(screw, nut, depth = 0, horizontal = false, supported = false, h = 200)</code></td>
|
|
<td align="left">Make a nut trap</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>wingnut(type)</code></td>
|
|
<td align="left">Draw a wingnut</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="nuts" src="tests/png/nuts.png" /></p>
|
|
<h3>Vitamins</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>nut(M2_nut)</code></td>
|
|
<td align="left">Nut M2</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>nut(M2_nut, nyloc = true)</code></td>
|
|
<td align="left">Nut M2 nyloc</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>nut(M2p5_nut)</code></td>
|
|
<td align="left">Nut M2.5</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>nut(M2p5_nut, nyloc = true)</code></td>
|
|
<td align="left">Nut M2.5 nyloc</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>nut(M2p5_nut, nylon = true)</code></td>
|
|
<td align="left">Nut M2.5 nylon</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>nut(M3_nut)</code></td>
|
|
<td align="left">Nut M3</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>nut(M3_nut, brass = true)</code></td>
|
|
<td align="left">Nut M3 brass</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>nut(M3_nut, nyloc = true)</code></td>
|
|
<td align="left">Nut M3 nyloc</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>nut(M4_nut)</code></td>
|
|
<td align="left">Nut M4</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>nut(M4_nut, nyloc = true)</code></td>
|
|
<td align="left">Nut M4 nyloc</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>nut(M5_nut)</code></td>
|
|
<td align="left">Nut M5</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>nut(M5_nut, nyloc = true)</code></td>
|
|
<td align="left">Nut M5 nyloc</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>nut(M6_nut)</code></td>
|
|
<td align="left">Nut M6</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>nut(M6_half_nut)</code></td>
|
|
<td align="left">Nut M6</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>nut(M6_nut, nyloc = true)</code></td>
|
|
<td align="left">Nut M6 nyloc</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>nut(M8_nut)</code></td>
|
|
<td align="left">Nut M8</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>nut(M8_nut, nyloc = true)</code></td>
|
|
<td align="left">Nut M8 nyloc</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>washer(M6_washer)</code></td>
|
|
<td align="left">Washer M6 x 12.5mm x 1.5mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>wingnut(M4_wingnut)</code></td>
|
|
<td align="left">Wingnut M4</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Opengrab"></a></p>
|
|
<h2>Opengrab</h2>
|
|
<p>Nicodrone OpenGrab V3 electro-permananet magnet, see <a href="https://nicadrone.com/products/epm-v3">https://nicadrone.com/products/epm-v3</a>.</p>
|
|
<p>A permanent magnet that can be magnatized and de-magnatized electronically.</p>
|
|
<p><a href="vitamins/opengrab.scad">vitamins/opengrab.scad</a> Implementation.</p>
|
|
<p><a href="tests/opengrab.scad">tests/opengrab.scad</a> Code for this example.</p>
|
|
<h3>Functions</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>opengrab_depth()</code></td>
|
|
<td align="left">Module height</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>opengrab_target_thickness()</code></td>
|
|
<td align="left">Target sheet thickness</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>opengrab_width()</code></td>
|
|
<td align="left">Module width</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>opengrab()</code></td>
|
|
<td align="left">Draw OpenGrab module</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>opengrab_hole_positions()</code></td>
|
|
<td align="left">Position children at the screw positions</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>opengrab_target()</code></td>
|
|
<td align="left">Draw OpenGrab target</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="opengrab" src="tests/png/opengrab.png" /></p>
|
|
<h3>Vitamins</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>opengrab_target()</code></td>
|
|
<td align="left">OpenGrab silicon steel target plate</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>opengrab()</code></td>
|
|
<td align="left">OpenGrab V3 electro permanent magnet</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="O_ring"></a></p>
|
|
<h2>O_ring</h2>
|
|
<p>Nitrile rubber O-rings.</p>
|
|
<p>Just a black torus specified by internal diameter, <code>id</code> and <code>minor_d</code> plus a BOM entry.
|
|
Can be shown stretched by specifying the <code>actual_id</code>.</p>
|
|
<p><a href="vitamins/o_ring.scad">vitamins/o_ring.scad</a> Implementation.</p>
|
|
<p><a href="tests/o_ring.scad">tests/o_ring.scad</a> Code for this example.</p>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>O_ring(id, minor_d, actual_id = 0)</code></td>
|
|
<td align="left">Draw O-ring with specified internal diameter and minor diameter. <code>actual_id</code> can be used to stretch it around something.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="o_ring" src="tests/png/o_ring.png" /></p>
|
|
<h3>Vitamins</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>O_ring(2.5, 1.6)</code></td>
|
|
<td align="left">O-ring nitrile 2.5mm x 1.6mm</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Pcbs"></a></p>
|
|
<h2>Pcbs</h2>
|
|
<p>PCBs and perfboard with optional components. The shape can be a rectangle with optionally rounded corners or a polygon for odd shapes like Arduino.</p>
|
|
<p><a href="vitamins/pcbs.scad">vitamins/pcbs.scad</a> Object definitions.</p>
|
|
<p><a href="vitamins/pcb.scad">vitamins/pcb.scad</a> Implementation.</p>
|
|
<p><a href="tests/pcbs.scad">tests/pcbs.scad</a> Code for this example.</p>
|
|
<h3>Properties</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>hdr_base_colour(type)</code></td>
|
|
<td align="left">Header insulator colour</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>hdr_pin_below(type)</code></td>
|
|
<td align="left">Header pin length underneath</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>hdr_pin_colour(type)</code></td>
|
|
<td align="left">Header pin colour</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>hdr_pin_length(type)</code></td>
|
|
<td align="left">Header pin length</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>hdr_pin_width(type)</code></td>
|
|
<td align="left">Header pin size</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>hdr_pitch(type)</code></td>
|
|
<td align="left">Header pitch</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>hdr_socket_depth(type)</code></td>
|
|
<td align="left">Socket depth for female housing</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>pcb_accessories(type)</code></td>
|
|
<td align="left">List of accessories to go on the BOM, SD cards, USB cables, etc.</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>pcb_colour(type)</code></td>
|
|
<td align="left">Colour of the subtrate</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>pcb_components(type)</code></td>
|
|
<td align="left">List of components</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>pcb_grid(type)</code></td>
|
|
<td align="left">Grid if a perfboard</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>pcb_hole_d(type)</code></td>
|
|
<td align="left">Mounting hole diameter</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>pcb_holes(type)</code></td>
|
|
<td align="left">List of hole positions</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>pcb_land_d(type)</code></td>
|
|
<td align="left">Pad around mounting hole</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>pcb_length(type)</code></td>
|
|
<td align="left">Length</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>pcb_name(type)</code></td>
|
|
<td align="left">Description</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>pcb_parts_on_bom(type)</code></td>
|
|
<td align="left">True if the parts should be separate BOM items</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>pcb_polygon(type)</code></td>
|
|
<td align="left">Optional outline polygon for odd shaped boards</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>pcb_radius(type)</code></td>
|
|
<td align="left">Corner radius</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>pcb_thickness(type)</code></td>
|
|
<td align="left">Thickness</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>pcb_width(type)</code></td>
|
|
<td align="left">Width</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Functions</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>pcb_coord(type, p)</code></td>
|
|
<td align="left">Convert offsets from the edge to coordinates relative to the centre</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>pcb_screw(type, cap = hs_cap)</code></td>
|
|
<td align="left">Mounting screw type</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>barrel_jack(cutout = false)</code></td>
|
|
<td align="left">Draw barrel power jack</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>chip(length, width, thickness, cutout = false)</code></td>
|
|
<td align="left">Draw a black cube to represent a chip</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>flex(cutout = false)</code></td>
|
|
<td align="left">Draw flexistrip connector</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>hdmi(cutout = false)</code></td>
|
|
<td align="left">Draw HDMI socket</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>idc_transition(type, cols = 5, skip = [], cutout = false)</code></td>
|
|
<td align="left">Draw IDC transition header</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>jack(cutout = false)</code></td>
|
|
<td align="left">Draw 3.5mm jack</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>molex_254(ways)</code></td>
|
|
<td align="left">Draw molex header</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>pcb(type)</code></td>
|
|
<td align="left">Draw specified PCB</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>pcb_assembly(type, height, thickness)</code></td>
|
|
<td align="left">Draw PCB assembly with spaces and fasteners in place</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>pcb_base(type, height, thickness, wall = 2)</code></td>
|
|
<td align="left">Generate STL for a base with PCB spacers</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>pcb_component(comp, cutouts = false, angle = undef)</code></td>
|
|
<td align="left">Draw pcb component from description</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>pcb_components(type, cutouts = false, angle = undef)</code></td>
|
|
<td align="left">Draw list of PCB components on the PCB</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>pcb_cutouts(type, angle = undef)</code></td>
|
|
<td align="left">Make cut outs to clear components on a PCB</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>pcb_grid(type, x, y, z = 0)</code></td>
|
|
<td align="left">Positions children at specified grid positions</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>pcb_screw_positions(type)</code></td>
|
|
<td align="left">Positions children at the mounting hole positions</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>pcb_spacer(screw, height, wall = 1.8)</code></td>
|
|
<td align="left">Generate STL for PCB spacer</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>pin(type = 2p54header, length = undef)</code></td>
|
|
<td align="left">Draw a header pin</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>pin_header(type = 2p54header, cols = 1, rows = 1, smt = false, cutout = false)</code></td>
|
|
<td align="left">Draw pin header</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>pin_socket(type = 2p54header, cols = 1, rows = 1, right_angle = false, height = 0, cutout = false)</code></td>
|
|
<td align="left">Draw pin socket</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>rj45(cutout = false)</code></td>
|
|
<td align="left">Draw RJ45 Ethernet connector</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>terminal_254(ways, skip = [])</code></td>
|
|
<td align="left">Draw 0.1" terminal block</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>terminal_35(ways)</code></td>
|
|
<td align="left">Draw 3.5mm terminal block</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>usb_Ax2(cutout = false)</code></td>
|
|
<td align="left">Draw USB type A dual socket</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>usb_B(cutout = false)</code></td>
|
|
<td align="left">Draw USB B connector</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>usb_uA(cutout = false)</code></td>
|
|
<td align="left">Draw USB micro A connector</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="pcbs" src="tests/png/pcbs.png" /></p>
|
|
<h3>Vitamins</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>pcb(ArduinoUno3)</code></td>
|
|
<td align="left">Arduino Uno R3</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>d_plug(DCONN15, pcb = true)</code></td>
|
|
<td align="left">D-type 15 way PCB mount plug</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>pcb(DuetW)</code></td>
|
|
<td align="left">Duet WiFi electronics</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>pcb(ExtruderPCB)</code></td>
|
|
<td align="left">Extruder connection PCB</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>pcb(Keyes5p1)</code></td>
|
|
<td align="left">Keyes5.1 Arduino Uno expansion board</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>pcb(Melzi)</code></td>
|
|
<td align="left">Melzi electronics</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">2</td>
|
|
<td align="left"></td>
|
|
<td align="left">Micro SD card</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>molex_254(2)</code></td>
|
|
<td align="left">Molex KK header 2 way</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>molex_254(3)</code></td>
|
|
<td align="left">Molex KK header 3 way</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">16</td>
|
|
<td align="left"><code>nut(M2_nut, nyloc = true)</code></td>
|
|
<td align="left">Nut M2 nyloc</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">12</td>
|
|
<td align="left"><code>nut(M2p5_nut, nyloc = true)</code></td>
|
|
<td align="left">Nut M2.5 nyloc</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">12</td>
|
|
<td align="left"><code>nut(M3_nut, nyloc = true)</code></td>
|
|
<td align="left">Nut M3 nyloc</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">4</td>
|
|
<td align="left"><code>nut(M4_nut, nyloc = true)</code></td>
|
|
<td align="left">Nut M4 nyloc</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>pcb(PI_IO)</code></td>
|
|
<td align="left">PI_IO V2</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>pcb(PSU12V1A)</code></td>
|
|
<td align="left">PSU 12V 1A</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>pcb(PERF60x40)</code></td>
|
|
<td align="left">Perfboard 60 x 40mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>pcb(PERF70x30)</code></td>
|
|
<td align="left">Perfboard 70 x 30mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>pcb(PERF70x50)</code></td>
|
|
<td align="left">Perfboard 70 x 50mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>pcb(PERF74x51)</code></td>
|
|
<td align="left">Perfboard 74 x 51mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>pcb(PERF80x20)</code></td>
|
|
<td align="left">Perfboard 80 x 20mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>pin_socket(2p54header, 13, 2, right_angle = true)</code></td>
|
|
<td align="left">Pin socket 13 x 2 right_angle</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>pcb(RPI3)</code></td>
|
|
<td align="left">Raspberry Pi 3</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">12</td>
|
|
<td align="left"><code>screw(M2_cap_screw, 20)</code></td>
|
|
<td align="left">Screw M2 cap x 20mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">4</td>
|
|
<td align="left"><code>screw(M2_cap_screw, 25)</code></td>
|
|
<td align="left">Screw M2 cap x 25mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">4</td>
|
|
<td align="left"><code>screw(M2p5_cap_screw, 16)</code></td>
|
|
<td align="left">Screw M2.5 cap x 16mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">8</td>
|
|
<td align="left"><code>screw(M2p5_pan_screw, 20)</code></td>
|
|
<td align="left">Screw M2.5 pan x 20mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">8</td>
|
|
<td align="left"><code>screw(M3_cap_screw, 25)</code></td>
|
|
<td align="left">Screw M3 cap x 25mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">4</td>
|
|
<td align="left"><code>screw(M3_cap_screw, 30)</code></td>
|
|
<td align="left">Screw M3 cap x 30mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">4</td>
|
|
<td align="left"><code>screw(M4_cap_screw, 30)</code></td>
|
|
<td align="left">Screw M4 cap x 30mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">3</td>
|
|
<td align="left"><code>terminal_35(2)</code></td>
|
|
<td align="left">Terminal block 2 way 3.5mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">2</td>
|
|
<td align="left"><code>terminal_254(4)</code></td>
|
|
<td align="left">Terminal block 4 way 0.1"</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"></td>
|
|
<td align="left">USB A to Mini B lead</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">16</td>
|
|
<td align="left"><code>washer(M2_washer)</code></td>
|
|
<td align="left">Washer M2 x 5mm x 0.3mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">12</td>
|
|
<td align="left"><code>washer(M2p5_washer)</code></td>
|
|
<td align="left">Washer M2.5 x 5.9mm x 0.5mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">12</td>
|
|
<td align="left"><code>washer(M3_washer)</code></td>
|
|
<td align="left">Washer M3 x 7mm x 0.5mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">4</td>
|
|
<td align="left"><code>washer(M4_washer)</code></td>
|
|
<td align="left">Washer M4 x 9mm x 0.8mm</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Printed</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">4</td>
|
|
<td align="left">pcb_spacer20100.stl</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">4</td>
|
|
<td align="left">pcb_spacer20110.stl</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">4</td>
|
|
<td align="left">pcb_spacer20120.stl</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">4</td>
|
|
<td align="left">pcb_spacer20130.stl</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">4</td>
|
|
<td align="left">pcb_spacer2560.stl</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">8</td>
|
|
<td align="left">pcb_spacer2570.stl</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">4</td>
|
|
<td align="left">pcb_spacer2580.stl</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">4</td>
|
|
<td align="left">pcb_spacer2590.stl</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">4</td>
|
|
<td align="left">pcb_spacer30140.stl</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">4</td>
|
|
<td align="left">pcb_spacer30150.stl</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">4</td>
|
|
<td align="left">pcb_spacer30170.stl</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">4</td>
|
|
<td align="left">pcb_spacer40160.stl</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Pillars"></a></p>
|
|
<h2>Pillars</h2>
|
|
<p>Threaded pillars. Each end can be male or female.</p>
|
|
<p><a href="vitamins/pillars.scad">vitamins/pillars.scad</a> Object definitions.</p>
|
|
<p><a href="vitamins/pillar.scad">vitamins/pillar.scad</a> Implementation.</p>
|
|
<p><a href="tests/pillars.scad">tests/pillars.scad</a> Code for this example.</p>
|
|
<h3>Properties</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>pillar_bot_thread(type)</code></td>
|
|
<td align="left">Bottom thread length, + for male, - for female</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>pillar_height(type)</code></td>
|
|
<td align="left">Body height</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>pillar_i_colour(type)</code></td>
|
|
<td align="left">Colour of the inner part</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>pillar_id(type)</code></td>
|
|
<td align="left">Inner diameter of metal part</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>pillar_ifn(type)</code></td>
|
|
<td align="left">Inner number of sides, 6 for hex, 0 for smooth cylinder</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>pillar_name(type)</code></td>
|
|
<td align="left">Name of part</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>pillar_o_colour(type)</code></td>
|
|
<td align="left">Colour of the outer part</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>pillar_od(type)</code></td>
|
|
<td align="left">Outer diameter of body</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>pillar_ofn(type)</code></td>
|
|
<td align="left">Outer number of sides, 6 for hex, 0 for smooth cylinder</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>pillar_thread(type)</code></td>
|
|
<td align="left">Thread diameter</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>pillar_top_thread(type)</code></td>
|
|
<td align="left">Top thread length, + for male, - for female</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>pillar(type)</code></td>
|
|
<td align="left">Draw specified pillar</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="pillars" src="tests/png/pillars.png" /></p>
|
|
<h3>Vitamins</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>pillar(M3x13_hex_pillar)</code></td>
|
|
<td align="left">Pillar hex M/F M3x13</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>pillar(M3x20_hex_pillar)</code></td>
|
|
<td align="left">Pillar hex M/F M3x20</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>pillar(M2x16_brass_pillar)</code></td>
|
|
<td align="left">Pillar nurled F/M M2x16</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>pillar(M3x10_nylon_hex_pillar)</code></td>
|
|
<td align="left">Pillar nylon M/F M3x10</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>pillar(M3x20_nylon_pillar)</code></td>
|
|
<td align="left">Pillar nylon M/F M3x20</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>pillar(M3x20_nylon_hex_pillar)</code></td>
|
|
<td align="left">Pillar nylon M/F M3x20</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>pillar(M4x17_nylon_pillar)</code></td>
|
|
<td align="left">Pillar nylon M/F M4x20</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Psus"></a></p>
|
|
<h2>Psus</h2>
|
|
<p>Powersupplies. Can be a simple cube or can be defined by a list of six faces, each with thickness, holes, cutouts, etc.</p>
|
|
<p>Face order is bottom, top, left, right, front, back.</p>
|
|
<p><a href="vitamins/psus.scad">vitamins/psus.scad</a> Object definitions.</p>
|
|
<p><a href="vitamins/psu.scad">vitamins/psu.scad</a> Implementation.</p>
|
|
<p><a href="tests/psus.scad">tests/psus.scad</a> Code for this example.</p>
|
|
<h3>Properties</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>atx_psu(type)</code></td>
|
|
<td align="left">True if an ATX style PSU</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>psu_accessories(type)</code></td>
|
|
<td align="left">Accessories to add to BOM, e.g. mains lead</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>psu_face_cutouts(type)</code></td>
|
|
<td align="left">List of polygons to remove</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>psu_face_fan(type)</code></td>
|
|
<td align="left">Fan x,y position and type</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>psu_face_grill(type)</code></td>
|
|
<td align="left">Is this face a grill</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>psu_face_holes(type)</code></td>
|
|
<td align="left">List of screw hole positions</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>psu_face_iec(type)</code></td>
|
|
<td align="left">IEC connector x,y, rotation and type</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>psu_face_switch(type)</code></td>
|
|
<td align="left">Rocker switch x,y, rotation and type</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>psu_face_thickness(type)</code></td>
|
|
<td align="left">The thickness</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>psu_faces(type)</code></td>
|
|
<td align="left">List of face descriptions</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>psu_height(type)</code></td>
|
|
<td align="left">Height</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>psu_left_bay(type)</code></td>
|
|
<td align="left">Bay for terminals</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>psu_length(type)</code></td>
|
|
<td align="left">Length</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>psu_name(type)</code></td>
|
|
<td align="left">The part name</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>psu_right_bay(type)</code></td>
|
|
<td align="left">Bay for heatsink</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>psu_screw(type)</code></td>
|
|
<td align="left">Screw type</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>psu_screw_hole_radius(type)</code></td>
|
|
<td align="left">Clearance hole for screw, bigger than normal on ATX</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>psu_terminals(type)</code></td>
|
|
<td align="left">How many terminals and the y offset from the back</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>psu_width(type)</code></td>
|
|
<td align="left">Width</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>terminal_block_depth(type)</code></td>
|
|
<td align="left">Total depth</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>terminal_block_depth2(type)</code></td>
|
|
<td align="left">Depth of contact well</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>terminal_block_divider(type)</code></td>
|
|
<td align="left">Width of the dividers</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>terminal_block_height(type)</code></td>
|
|
<td align="left">Height of the dividers</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>terminal_block_height2(type)</code></td>
|
|
<td align="left">Height under the contacts</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>terminal_block_pitch(type)</code></td>
|
|
<td align="left">Pitch between screws</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Functions</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>psu_face_transform(type, face)</code></td>
|
|
<td align="left">Returns a transformation matrix to get to the specified face</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>terminal_block_length(type, ways)</code></td>
|
|
<td align="left">Total length of terminal block</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>atx_psu_cutout(type)</code></td>
|
|
<td align="left">Cut out for the rear of an ATX</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>psu(type)</code></td>
|
|
<td align="left">Draw a power supply</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>psu_screw_positions(type, face = undef)</code></td>
|
|
<td align="left">Position children at the screw positions on the preferred mounting face, which can be overridden.</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>terminal_block(type, ways)</code></td>
|
|
<td align="left">Draw a power supply terminal block</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="psus" src="tests/png/psus.png" /></p>
|
|
<h3>Vitamins</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"></td>
|
|
<td align="left">IEC mains lead</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>psu(ATX500)</code></td>
|
|
<td align="left">PSU ATX500</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>psu(KY240W)</code></td>
|
|
<td align="left">PSU KY-240W-12-L</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>psu(PD_150_12)</code></td>
|
|
<td align="left">PSU PD-150-12</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>psu(S_250_48)</code></td>
|
|
<td align="left">PSU S-250-48</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>psu(S_300_12)</code></td>
|
|
<td align="left">PSU S-300-12</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">4</td>
|
|
<td align="left"><code>screw(No632_pan_screw, 8)</code></td>
|
|
<td align="left">Screw 6-32 pan x 8mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">4</td>
|
|
<td align="left"><code>screw(M3_cap_screw, 8)</code></td>
|
|
<td align="left">Screw M3 cap x 8mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">8</td>
|
|
<td align="left"><code>screw(M3_pan_screw, 8)</code></td>
|
|
<td align="left">Screw M3 pan x 8mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">4</td>
|
|
<td align="left"><code>screw(M4_cap_screw, 8)</code></td>
|
|
<td align="left">Screw M4 cap x 8mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">12</td>
|
|
<td align="left"><code>washer(M3_washer)</code></td>
|
|
<td align="left">Washer M3 x 7mm x 0.5mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">8</td>
|
|
<td align="left"><code>washer(M4_washer)</code></td>
|
|
<td align="left">Washer M4 x 9mm x 0.8mm</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Pulleys"></a></p>
|
|
<h2>Pulleys</h2>
|
|
<p>Timing belt pulleys, both toothed and plain with internal bearings for idlers.</p>
|
|
<p><a href="vitamins/pulleys.scad">vitamins/pulleys.scad</a> Object definitions.</p>
|
|
<p><a href="vitamins/pulley.scad">vitamins/pulley.scad</a> Implementation.</p>
|
|
<p><a href="tests/pulleys.scad">tests/pulleys.scad</a> Code for this example.</p>
|
|
<h3>Properties</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>pulley_belt(type)</code></td>
|
|
<td align="left">Belt type</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>pulley_bore(type)</code></td>
|
|
<td align="left">Bore diameter for shaft</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>pulley_flange_dia(type)</code></td>
|
|
<td align="left">Flange diameter</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>pulley_flange_thickness(type)</code></td>
|
|
<td align="left">Flange thickness</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>pulley_hub_dia(type)</code></td>
|
|
<td align="left">Hub diameter</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>pulley_hub_length(type)</code></td>
|
|
<td align="left">Hub length</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>pulley_od(type)</code></td>
|
|
<td align="left">Outer diameter</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>pulley_screw(type)</code></td>
|
|
<td align="left">Grub screw type</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>pulley_screw_length(type)</code></td>
|
|
<td align="left">Grup screw length</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>pulley_screw_z(type)</code></td>
|
|
<td align="left">Grub screw position</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>pulley_screws(type)</code></td>
|
|
<td align="left">Number of grub screws</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>pulley_teeth(type)</code></td>
|
|
<td align="left">Number of teeth</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>pulley_type(type)</code></td>
|
|
<td align="left">Part description</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>pulley_width(type)</code></td>
|
|
<td align="left">Width of teeth / belt channel</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Functions</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>pulley_extent(type)</code></td>
|
|
<td align="left">Largest diameter</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>pulley_height(type)</code></td>
|
|
<td align="left">Total height of pulley</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>pulley_ir(type)</code></td>
|
|
<td align="left">Inside radius of the teeth</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>pulley_offset(type)</code></td>
|
|
<td align="left">Offset of the belt path centre</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>pulley_pr(type)</code></td>
|
|
<td align="left">Pitch radius</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>pulley(type)</code></td>
|
|
<td align="left">Draw a pulley</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>pulley_assembly(type)</code></td>
|
|
<td align="left">Draw a pulley with its grub screws in place</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="pulleys" src="tests/png/pulleys.png" /></p>
|
|
<h3>Vitamins</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>pulley(GT2x16_toothed_idler)</code></td>
|
|
<td align="left">Pulley GT2 idler 16 teeth</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>pulley(GT2x20_toothed_idler)</code></td>
|
|
<td align="left">Pulley GT2 idler 20 teeth</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>pulley(GT2x20_plain_idler)</code></td>
|
|
<td align="left">Pulley GT2 idler smooth</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>pulley(GT2x16_plain_idler)</code></td>
|
|
<td align="left">Pulley GT2 idler smooth</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>pulley(GT2x20ob_pulley)</code></td>
|
|
<td align="left">Pulley GT2OB 20 teeth</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>pulley(GT2x12_pulley)</code></td>
|
|
<td align="left">Pulley GT2RD 12 teeth</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>pulley(GT2x20um_pulley)</code></td>
|
|
<td align="left">Pulley GT2UM 20 teeth</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>pulley(T2p5x16_pulley)</code></td>
|
|
<td align="left">Pulley T2.5 16 teeth</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>pulley(T5x10_pulley)</code></td>
|
|
<td align="left">Pulley T5 10 teeth</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>screw(M3_grub_screw, 3)</code></td>
|
|
<td align="left">Screw M3 grub x 3mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">2</td>
|
|
<td align="left"><code>screw(M3_grub_screw, 4)</code></td>
|
|
<td align="left">Screw M3 grub x 4mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">4</td>
|
|
<td align="left"><code>screw(M3_grub_screw, 6)</code></td>
|
|
<td align="left">Screw M3 grub x 6mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>screw(M4_grub_screw, 6)</code></td>
|
|
<td align="left">Screw M4 grub x 6mm</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Rails"></a></p>
|
|
<h2>Rails</h2>
|
|
<p>Linear rails with carriages.</p>
|
|
<p><a href="vitamins/rails.scad">vitamins/rails.scad</a> Object definitions.</p>
|
|
<p><a href="vitamins/rail.scad">vitamins/rail.scad</a> Implementation.</p>
|
|
<p><a href="tests/rails.scad">tests/rails.scad</a> Code for this example.</p>
|
|
<h3>Properties</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>carriage_block_length(type)</code></td>
|
|
<td align="left">Length of the metal part</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>carriage_clearance(type)</code></td>
|
|
<td align="left">Gap under the carriage</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>carriage_height(type)</code></td>
|
|
<td align="left">Height of carriage</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>carriage_length(type)</code></td>
|
|
<td align="left">Overall length</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>carriage_pitch_x(type)</code></td>
|
|
<td align="left">Screw hole x pitch</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>carriage_pitch_y(type)</code></td>
|
|
<td align="left">Screw hole y pitch</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>carriage_screw(type)</code></td>
|
|
<td align="left">Carriage screw type</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>carriage_width(type)</code></td>
|
|
<td align="left">Width of carriage</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>rail_bore(type)</code></td>
|
|
<td align="left">Counter bore diameter for screw head</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>rail_bore_depth(type)</code></td>
|
|
<td align="left">Counter bore depth</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>rail_carriage(type)</code></td>
|
|
<td align="left">Carriage type</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>rail_end(type)</code></td>
|
|
<td align="left">Minimum distance screw can be from the end</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>rail_end_screw(type)</code></td>
|
|
<td align="left">Screw used for ends only (Countersink used for better location)</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>rail_height(type)</code></td>
|
|
<td align="left">Height of rail section</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>rail_hole(type)</code></td>
|
|
<td align="left">Screw hole diameter</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>rail_pitch(type)</code></td>
|
|
<td align="left">Distance between screws</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>rail_screw(type)</code></td>
|
|
<td align="left">Screw type</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>rail_width(type)</code></td>
|
|
<td align="left">Width of rail section</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Functions</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>carriage_screw_depth(type)</code></td>
|
|
<td align="left">Carriage thread depth</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>rail_screw_height(type, screw)</code></td>
|
|
<td align="left">Position screw taking into account countersink into counterbored hole</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>rail_travel(type, length)</code></td>
|
|
<td align="left">How far the carriage can travel</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>carriage(type, rail)</code></td>
|
|
<td align="left">Draw the specified carriage</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>carriage_hole_positions(type)</code></td>
|
|
<td align="left">Position children over screw holes</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>rail(type, length)</code></td>
|
|
<td align="left">Draw the specified rail</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>rail_assembly(type, length, pos)</code></td>
|
|
<td align="left">Rail and carriage assembly</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>rail_hole_positions(type, length, first = 0, screws = 100, both_ends = true)</code></td>
|
|
<td align="left">Position children over screw holes</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>rail_screws(type, length, thickness, screws = 100)</code></td>
|
|
<td align="left">Place screws in the rail</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="rails" src="tests/png/rails.png" /></p>
|
|
<h3>Vitamins</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>rail(MGN15, 260)</code></td>
|
|
<td align="left">Linear rail MGN15 x 260mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>rail(MGN5, 200)</code></td>
|
|
<td align="left">Linear rail MGN5 x 200mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>rail(MGN7, 200)</code></td>
|
|
<td align="left">Linear rail MGN7 x 200mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>rail(MGN9, 200)</code></td>
|
|
<td align="left">Linear rail MGN9 x 200mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>rail(SSR15, 200)</code></td>
|
|
<td align="left">Linear rail SSR15 x 200mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">26</td>
|
|
<td align="left"><code>nut(M2_nut, nyloc = true)</code></td>
|
|
<td align="left">Nut M2 nyloc</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">17</td>
|
|
<td align="left"><code>nut(M3_nut, nyloc = true)</code></td>
|
|
<td align="left">Nut M3 nyloc</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">4</td>
|
|
<td align="left"><code>nut(M4_nut, nyloc = true)</code></td>
|
|
<td align="left">Nut M4 nyloc</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">11</td>
|
|
<td align="left"><code>screw(M2_cap_screw, 10)</code></td>
|
|
<td align="left">Screw M2 cap x 10mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">15</td>
|
|
<td align="left"><code>screw(M2_cs_cap_screw, 10)</code></td>
|
|
<td align="left">Screw M2 cs cap x 10mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">8</td>
|
|
<td align="left"><code>screw(M3_cap_screw, 10)</code></td>
|
|
<td align="left">Screw M3 cap x 10mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">5</td>
|
|
<td align="left"><code>screw(M3_cap_screw, 16)</code></td>
|
|
<td align="left">Screw M3 cap x 16mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">2</td>
|
|
<td align="left"><code>screw(M3_cs_cap_screw, 12)</code></td>
|
|
<td align="left">Screw M3 cs cap x 12mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">2</td>
|
|
<td align="left"><code>screw(M3_cs_cap_screw, 16)</code></td>
|
|
<td align="left">Screw M3 cs cap x 16mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">2</td>
|
|
<td align="left"><code>screw(M4_cap_screw, 16)</code></td>
|
|
<td align="left">Screw M4 cap x 16mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">2</td>
|
|
<td align="left"><code>screw(M4_cs_cap_screw, 20)</code></td>
|
|
<td align="left">Screw M4 cs cap x 20mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">26</td>
|
|
<td align="left"><code>washer(M2_washer)</code></td>
|
|
<td align="left">Washer M2 x 5mm x 0.3mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">17</td>
|
|
<td align="left"><code>washer(M3_washer)</code></td>
|
|
<td align="left">Washer M3 x 7mm x 0.5mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">4</td>
|
|
<td align="left"><code>washer(M4_washer)</code></td>
|
|
<td align="left">Washer M4 x 9mm x 0.8mm</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Ring_terminals"></a></p>
|
|
<h2>Ring_terminals</h2>
|
|
<p>Ring terminals and earth assemblies for DiBond panels.</p>
|
|
<p><a href="vitamins/ring_terminals.scad">vitamins/ring_terminals.scad</a> Object definitions.</p>
|
|
<p><a href="vitamins/ring_terminal.scad">vitamins/ring_terminal.scad</a> Implementation.</p>
|
|
<p><a href="tests/ring_terminals.scad">tests/ring_terminals.scad</a> Code for this example.</p>
|
|
<h3>Properties</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>ringterm_hole(type)</code></td>
|
|
<td align="left">Wire hole diameter</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>ringterm_id(type)</code></td>
|
|
<td align="left">Inside diameter</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>ringterm_length(type)</code></td>
|
|
<td align="left">Length of the tail including the ring</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>ringterm_od(type)</code></td>
|
|
<td align="left">Outside diameter</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>ringterm_screw(type)</code></td>
|
|
<td align="left">Screw type</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>ringterm_thickness(type)</code></td>
|
|
<td align="left">Metal thickness</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>ringterm_width(type)</code></td>
|
|
<td align="left">Width of the tail</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Functions</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>ringterm_extent(type)</code></td>
|
|
<td align="left">Space to leave</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>ring_terminal(type)</code></td>
|
|
<td align="left">Draw specifeid ring terminal</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>ring_terminal_assembly(type, thickness, top = false)</code></td>
|
|
<td align="left">Earthing assembly for DiBond twin skins</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>ring_terminal_hole(type, h = 0)</code></td>
|
|
<td align="left">Drill hole for the screw</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="ring_terminals" src="tests/png/ring_terminals.png" /></p>
|
|
<h3>Vitamins</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>nut(M3_nut, nyloc = true)</code></td>
|
|
<td align="left">Nut M3 nyloc</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>ring_terminal(M3_ringterm)</code></td>
|
|
<td align="left">Ring terminal 3mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>screw(M3_dome_screw, 10)</code></td>
|
|
<td align="left">Screw M3 dome x 10mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">2</td>
|
|
<td align="left"><code>star_washer(M3_washer)</code></td>
|
|
<td align="left">Washer star M3 x 0.5mm</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Rockers"></a></p>
|
|
<h2>Rockers</h2>
|
|
<p>Rocket switch. Also used for neon indicator in the same form factor.</p>
|
|
<p><a href="vitamins/rockers.scad">vitamins/rockers.scad</a> Object definitions.</p>
|
|
<p><a href="vitamins/rocker.scad">vitamins/rocker.scad</a> Implementation.</p>
|
|
<p><a href="tests/rockers.scad">tests/rockers.scad</a> Code for this example.</p>
|
|
<h3>Properties</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>rocker_bezel(type)</code></td>
|
|
<td align="left">Bezel width</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>rocker_button(type)</code></td>
|
|
<td align="left">How far the button extends from the bezel</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>rocker_depth(type)</code></td>
|
|
<td align="left">Body depth</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>rocker_flange_h(type)</code></td>
|
|
<td align="left">Flange height</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>rocker_flange_t(type)</code></td>
|
|
<td align="left">Flange thickness</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>rocker_flange_w(type)</code></td>
|
|
<td align="left">Flange width</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>rocker_height(type)</code></td>
|
|
<td align="left">Body height</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>rocker_part(type)</code></td>
|
|
<td align="left">Part description</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>rocker_pivot(type)</code></td>
|
|
<td align="left">Pivot distance from the back of the flange</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>rocker_slot_h(type)</code></td>
|
|
<td align="left">Panel slow height</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>rocker_slot_w(type)</code></td>
|
|
<td align="left">Panel slot width</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>rocker_spades(type)</code></td>
|
|
<td align="left">Spade types and positions</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>rocker_width(type)</code></td>
|
|
<td align="left">Body width</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>rocker(type)</code></td>
|
|
<td align="left">Draw the specified rocker switch</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>rocker_hole(type, h = 0)</code></td>
|
|
<td align="left">Make a hole to accept a rocker switch, by default 2D, set h for 3D</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="rockers" src="tests/png/rockers.png" /></p>
|
|
<h3>Vitamins</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>rocker(neon_indicator)</code></td>
|
|
<td align="left">Neon Indicator H8630FBNAL</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>rocker(small_rocker)</code></td>
|
|
<td align="left">Rocker Switch PRASA1-16F-BB0BW</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Rod"></a></p>
|
|
<h2>Rod</h2>
|
|
<p>Steel rods, with optional chamfer.</p>
|
|
<p><a href="vitamins/rod.scad">vitamins/rod.scad</a> Implementation.</p>
|
|
<p><a href="tests/rod.scad">tests/rod.scad</a> Code for this example.</p>
|
|
<p><img alt="rod" src="tests/png/rod.png" /></p>
|
|
<h3>Vitamins</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>rod(10, 80)</code></td>
|
|
<td align="left">Smooth rod 10mm x 80mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>rod(12, 80)</code></td>
|
|
<td align="left">Smooth rod 12mm x 80mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>rod(3, 80)</code></td>
|
|
<td align="left">Smooth rod 3mm x 80mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>rod(4, 80)</code></td>
|
|
<td align="left">Smooth rod 4mm x 80mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>rod(5, 80)</code></td>
|
|
<td align="left">Smooth rod 5mm x 80mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>rod(6, 80)</code></td>
|
|
<td align="left">Smooth rod 6mm x 80mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>rod(8, 80)</code></td>
|
|
<td align="left">Smooth rod 8mm x 80mm</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Screws"></a></p>
|
|
<h2>Screws</h2>
|
|
<p>Machine screws and wood screws with various head styles.</p>
|
|
<p><a href="vitamins/screws.scad">vitamins/screws.scad</a> Object definitions.</p>
|
|
<p><a href="vitamins/screw.scad">vitamins/screw.scad</a> Implementation.</p>
|
|
<p><a href="tests/screws.scad">tests/screws.scad</a> Code for this example.</p>
|
|
<h3>Properties</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>screw_clearance_radius(type)</code></td>
|
|
<td align="left">Clearance hole radius</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>screw_head_height(type)</code></td>
|
|
<td align="left">Head height</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>screw_head_radius(type)</code></td>
|
|
<td align="left">Head radius</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>screw_head_type(type)</code></td>
|
|
<td align="left">Head style hs_cap, hs_pan, hs_cs, hs_hex, hs_grub, hs_cs_cap, hs_dome</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>screw_max_thread(type)</code></td>
|
|
<td align="left">Maximum thread length</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>screw_nut(type)</code></td>
|
|
<td align="left">Default nut</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>screw_pilot_hole(type)</code></td>
|
|
<td align="left">Pilot hole radius for wood screws, tap radius for machine screws</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>screw_radius(type)</code></td>
|
|
<td align="left">Nominal radius</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>screw_socket_af(type)</code></td>
|
|
<td align="left">Socket across flats</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>screw_socket_depth(type)</code></td>
|
|
<td align="left">Socket or slot depth</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>screw_washer(type)</code></td>
|
|
<td align="left">Default washer</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Functions</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>screw_boss_diameter(type)</code></td>
|
|
<td align="left">Boss big enough for nut trap and washer</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>screw_head_depth(type, d)</code></td>
|
|
<td align="left">How far a counter sink head will go into a straight hole diameter d</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>screw_longer_than(x)</code></td>
|
|
<td align="left">Returns shortest screw length longer or equal to x</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>screw_nut_radius(type)</code></td>
|
|
<td align="left">Radius of matching nut</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>screw_shorter_than(x)</code></td>
|
|
<td align="left">Returns longest screw length shorter than or equal to x</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>screw(type, length, hob_point = 0, nylon = false)</code></td>
|
|
<td align="left">Draw specified screw, optionally hobbed or nylon</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>screw_and_washer(type, length, star = false, penny = false)</code></td>
|
|
<td align="left">Screw with a washer which can be standard or penny and an optional star washer on top</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>screw_countersink(type)</code></td>
|
|
<td align="left">Countersink shape</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="screws" src="tests/png/screws.png" /></p>
|
|
<h3>Vitamins</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>screw(No632_pan_screw, 30)</code></td>
|
|
<td align="left">Screw 6-32 pan x 30mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>screw(M2_cap_screw, 25)</code></td>
|
|
<td align="left">Screw M2 cap x 25mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>screw(M2_cs_cap_screw, 25)</code></td>
|
|
<td align="left">Screw M2 cs cap x 25mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>screw(M2p5_cap_screw, 25)</code></td>
|
|
<td align="left">Screw M2.5 cap x 25mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>screw(M2p5_pan_screw, 30)</code></td>
|
|
<td align="left">Screw M2.5 pan x 30mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>screw(M3_cap_screw, 25)</code></td>
|
|
<td align="left">Screw M3 cap x 25mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>screw(M3_cs_cap_screw, 25)</code></td>
|
|
<td align="left">Screw M3 cs cap x 25mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>screw(M3_dome_screw, 25)</code></td>
|
|
<td align="left">Screw M3 dome x 25mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>screw(M3_grub_screw, 6)</code></td>
|
|
<td align="left">Screw M3 grub x 6mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>screw(M3_hex_screw, 30)</code></td>
|
|
<td align="left">Screw M3 hex x 30mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>screw(M3_low_cap_screw, 25)</code></td>
|
|
<td align="left">Screw M3 low cap x 25mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>screw(M3_pan_screw, 30)</code></td>
|
|
<td align="left">Screw M3 pan x 30mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>screw(M4_cap_screw, 25)</code></td>
|
|
<td align="left">Screw M4 cap x 25mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>screw(M4_cs_cap_screw, 25)</code></td>
|
|
<td align="left">Screw M4 cs cap x 25mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>screw(M4_dome_screw, 25)</code></td>
|
|
<td align="left">Screw M4 dome x 25mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>screw(M4_grub_screw, 6)</code></td>
|
|
<td align="left">Screw M4 grub x 6mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>screw(M4_hex_screw, 30)</code></td>
|
|
<td align="left">Screw M4 hex x 30mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>screw(M4_pan_screw, 30)</code></td>
|
|
<td align="left">Screw M4 pan x 30mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>screw(M5_cap_screw, 30)</code></td>
|
|
<td align="left">Screw M5 cap x 30mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>screw(M5_hex_screw, 30)</code></td>
|
|
<td align="left">Screw M5 hex x 30mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>screw(M5_pan_screw, 30)</code></td>
|
|
<td align="left">Screw M5 pan x 30mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>screw(M6_cap_screw, 30)</code></td>
|
|
<td align="left">Screw M6 cap x 30mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>screw(M6_hex_screw, 30)</code></td>
|
|
<td align="left">Screw M6 hex x 30mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>screw(M6_pan_screw, 30)</code></td>
|
|
<td align="left">Screw M6 pan x 30mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>screw(M8_cap_screw, 35)</code></td>
|
|
<td align="left">Screw M8 cap x 35mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>screw(M8_hex_screw, 30)</code></td>
|
|
<td align="left">Screw M8 hex x 30mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>screw(No2_screw, 30)</code></td>
|
|
<td align="left">Screw No2 pan wood x 30mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>screw(No4_screw, 30)</code></td>
|
|
<td align="left">Screw No4 pan wood x 30mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>screw(No6_cs_screw, 30)</code></td>
|
|
<td align="left">Screw No6 cs wood x 30mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>screw(No6_screw, 30)</code></td>
|
|
<td align="left">Screw No6 pan wood x 30mm</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Sealing_strip"></a></p>
|
|
<h2>Sealing_strip</h2>
|
|
<p>Sealing strip from B&Q used to seal around the door of 3D printers.</p>
|
|
<p><a href="vitamins/sealing_strip.scad">vitamins/sealing_strip.scad</a> Implementation.</p>
|
|
<p><a href="tests/sealing_strip.scad">tests/sealing_strip.scad</a> Code for this example.</p>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>sealing_strip(length)</code></td>
|
|
<td align="left">Draw specified length of sealing strip</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="sealing_strip" src="tests/png/sealing_strip.png" /></p>
|
|
<h3>Vitamins</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>sealing_strip(100)</code></td>
|
|
<td align="left">Sealing strip 10mm x 4mm x 100mm</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Sheets"></a></p>
|
|
<h2>Sheets</h2>
|
|
<p>Sheet materials. Rectangular with optional rounded corners. Negative radii make a chamfer.</p>
|
|
<p>The "Soft" parameter can be used to determinesif the sheet material needs machine screws or wood screws, e.g.:</p>
|
|
<ul>
|
|
<li>If soft, wood screws will be used, with a pilot hole.</li>
|
|
<li>If not soft, either tapped holes or a clearance hole and nuts will be used to retain screws.</li>
|
|
</ul>
|
|
<p>The "Color" parameter is a quad-array: [R, G, B, Alpha], or can be a named color, see <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/The_OpenSCAD_Language#color">OpenSCAD_User_Manual</a>.</p>
|
|
<p>For speed sheets should be modelled in 2D by subtracting holes from 2D templates made by <code>sheet_2D()</code> and then extruded to 3D with <code>render_2D_sheet()</code>.
|
|
Note that modules that drill holes will return a 2D object if <code>h</code> is set to 0 to facilitate this.</p>
|
|
<p><a href="vitamins/sheets.scad">vitamins/sheets.scad</a> Object definitions.</p>
|
|
<p><a href="vitamins/sheet.scad">vitamins/sheet.scad</a> Implementation.</p>
|
|
<p><a href="tests/sheets.scad">tests/sheets.scad</a> Code for this example.</p>
|
|
<h3>Properties</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>sheet_colour(type)</code></td>
|
|
<td align="left">Colour</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>sheet_is_soft(type)</code></td>
|
|
<td align="left">Is soft enough for wood screws</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>sheet_thickness(type)</code></td>
|
|
<td align="left">Thickness</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>render_2D_sheet(type, color = false)</code></td>
|
|
<td align="left">Extrude a 2D sheet template and give it the correct colour</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>render_sheet(type, color = false)</code></td>
|
|
<td align="left">Render a sheet in the correct colour after holes have been subtracted</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>sheet(type, w, d, corners = [0, 0, 0, 0])</code></td>
|
|
<td align="left">Draw speified sheet</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>sheet_2D(type, w, d, corners = [0, 0, 0, 0])</code></td>
|
|
<td align="left">2D sheet template with specified size and optionally rounded corners</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="sheets" src="tests/png/sheets.png" /></p>
|
|
<h3>Vitamins</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>sheet(FoilTape, 30, 30, 2)</code></td>
|
|
<td align="left">Aluminium foil tape 30mm x 30mm x 0.05mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>sheet(AL6, 30, 30, 2)</code></td>
|
|
<td align="left">Aluminium tooling plate 30mm x 30mm x 6mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>sheet(AL8, 30, 30, 2)</code></td>
|
|
<td align="left">Aluminium tooling plate 30mm x 30mm x 8mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>sheet(Cardboard, 30, 30, 2)</code></td>
|
|
<td align="left">Corrugated cardboard 30mm x 30mm x 5mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>sheet(Foam20, 30, 30, 2)</code></td>
|
|
<td align="left">Foam sponge 30mm x 30mm x 20mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>sheet(DiBond, 30, 30, 2)</code></td>
|
|
<td align="left">Sheet DiBond 30mm x 30mm x 3mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>sheet(DiBond6, 30, 30, 2)</code></td>
|
|
<td align="left">Sheet DiBond 30mm x 30mm x 6mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>sheet(MDF10, 30, 30, 2)</code></td>
|
|
<td align="left">Sheet MDF 30mm x 30mm x 10mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>sheet(MDF12, 30, 30, 2)</code></td>
|
|
<td align="left">Sheet MDF 30mm x 30mm x 12mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>sheet(MDF19, 30, 30, 2)</code></td>
|
|
<td align="left">Sheet MDF 30mm x 30mm x 19mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>sheet(MDF6, 30, 30, 2)</code></td>
|
|
<td align="left">Sheet MDF 30mm x 30mm x 6mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>sheet(PMMA10, 30, 30, 2)</code></td>
|
|
<td align="left">Sheet acrylic 30mm x 30mm x 10mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>sheet(PMMA3, 30, 30, 2)</code></td>
|
|
<td align="left">Sheet acrylic 30mm x 30mm x 3mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>sheet(PMMA6, 30, 30, 2)</code></td>
|
|
<td align="left">Sheet acrylic 30mm x 30mm x 6mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>sheet(PMMA8, 30, 30, 2)</code></td>
|
|
<td align="left">Sheet acrylic 30mm x 30mm x 8mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>sheet(glass2, 30, 30, 2)</code></td>
|
|
<td align="left">Sheet glass 30mm x 30mm x 2mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>sheet(Steel06, 30, 30, 2)</code></td>
|
|
<td align="left">Sheet mild steel 30mm x 30mm x 0.6mm</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Spades"></a></p>
|
|
<h2>Spades</h2>
|
|
<p>Spade terminals used as parts of electrical components.</p>
|
|
<p><a href="vitamins/spades.scad">vitamins/spades.scad</a> Object definitions.</p>
|
|
<p><a href="vitamins/spade.scad">vitamins/spade.scad</a> Implementation.</p>
|
|
<p><a href="tests/spades.scad">tests/spades.scad</a> Code for this example.</p>
|
|
<h3>Properties</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>spade_hole(type)</code></td>
|
|
<td align="left">Hole diameter</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>spade_l(type)</code></td>
|
|
<td align="left">Length of the narrow part</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>spade_shank(type)</code></td>
|
|
<td align="left">Shank width</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>spade_t(type)</code></td>
|
|
<td align="left">Thickness</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>spade_w(type)</code></td>
|
|
<td align="left">Width</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>spade(type, height = 14)</code></td>
|
|
<td align="left">Draw a spade of the specified type and total length. The shank length is adjusted to make the length.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="spades" src="tests/png/spades.png" /></p>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Spools"></a></p>
|
|
<h2>Spools</h2>
|
|
<p>Filament spool models</p>
|
|
<p><a href="vitamins/spools.scad">vitamins/spools.scad</a> Object definitions.</p>
|
|
<p><a href="vitamins/spool.scad">vitamins/spool.scad</a> Implementation.</p>
|
|
<p><a href="tests/spools.scad">tests/spools.scad</a> Code for this example.</p>
|
|
<h3>Properties</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>spool_depth(type)</code></td>
|
|
<td align="left">Internal depth</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>spool_diameter(type)</code></td>
|
|
<td align="left">Outside diameter</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>spool_hub_bore(type)</code></td>
|
|
<td align="left">Bore through the hub</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>spool_hub_diameter(type)</code></td>
|
|
<td align="left">Diameter of the thicker hub</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>spool_hub_taper(type)</code></td>
|
|
<td align="left">Diameter at which it tapers down to rim thickness</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>spool_hub_thickness(type)</code></td>
|
|
<td align="left">Thickness at the hub</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>spool_rim_thickness(type)</code></td>
|
|
<td align="left">Thickness at the outside rim</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>spool_width(type)</code></td>
|
|
<td align="left">Internal width</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Functions</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>spool_height(type)</code></td>
|
|
<td align="left">Outside width</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>spool(type)</code></td>
|
|
<td align="left">Draw specified spool</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="spools" src="tests/png/spools.png" /></p>
|
|
<h3>Vitamins</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>spool(spool_200x55)</code></td>
|
|
<td align="left">Filament spool 200 x 55</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>spool(spool_300x85)</code></td>
|
|
<td align="left">Filament spool 300 x 85</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Springs"></a></p>
|
|
<h2>Springs</h2>
|
|
<p>Compression springs. Can be tapered, have open, closed or ground ends. Ground ends will render a lot slower.</p>
|
|
<p><a href="vitamins/springs.scad">vitamins/springs.scad</a> Object definitions.</p>
|
|
<p><a href="vitamins/spring.scad">vitamins/spring.scad</a> Implementation.</p>
|
|
<p><a href="tests/springs.scad">tests/springs.scad</a> Code for this example.</p>
|
|
<h3>Properties</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>spring_closed(type)</code></td>
|
|
<td align="left">Are the ends closed</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>spring_colour(type)</code></td>
|
|
<td align="left">The colour</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>spring_gauge(type)</code></td>
|
|
<td align="left">Wire gauge</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>spring_ground(type)</code></td>
|
|
<td align="left">Are the ends ground flat</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>spring_length(type)</code></td>
|
|
<td align="left">Uncompressed length</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>spring_mesh(type)</code></td>
|
|
<td align="left">Optional pre-computed mesh</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>spring_od(type)</code></td>
|
|
<td align="left">Outside diameter</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>spring_od2(type)</code></td>
|
|
<td align="left">Second diameter for spiral springs</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>spring_turns(type)</code></td>
|
|
<td align="left">Number of turns</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Functions</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>comp_spring(type, l = 0)</code></td>
|
|
<td align="left">Calculate the mesh for spring</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>comp_spring(type, l = 0)</code></td>
|
|
<td align="left">Draw specified spring, l can be set to specify the compressed length.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="springs" src="tests/png/springs.png" /></p>
|
|
<h3>Vitamins</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>comp_spring(batt_spring)</code></td>
|
|
<td align="left">Spring 5 - 6mm spiral OD, 0.5mm gauge x 8mm long, closed end</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>comp_spring(peg_spring)</code></td>
|
|
<td align="left">Spring 6.4mm OD, 0.9mm gauge x 15.5mm long, closed end</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Ssrs"></a></p>
|
|
<h2>Ssrs</h2>
|
|
<p>Solid state relays.</p>
|
|
<p><a href="vitamins/ssrs.scad">vitamins/ssrs.scad</a> Object definitions.</p>
|
|
<p><a href="vitamins/ssr.scad">vitamins/ssr.scad</a> Implementation.</p>
|
|
<p><a href="tests/ssrs.scad">tests/ssrs.scad</a> Code for this example.</p>
|
|
<h3>Properties</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>ssr_base_t(type)</code></td>
|
|
<td align="left">Thickness of metal base</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>ssr_height(type)</code></td>
|
|
<td align="left">Height</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>ssr_hole_d(type)</code></td>
|
|
<td align="left">Screw hole diameter</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>ssr_hole_pitch(type)</code></td>
|
|
<td align="left">Difference between screw centres</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>ssr_length(type)</code></td>
|
|
<td align="left">Length</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>ssr_part(type)</code></td>
|
|
<td align="left">Description</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>ssr_slot_w(type)</code></td>
|
|
<td align="left">Width of the screw slot in the body</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>ssr_width(type)</code></td>
|
|
<td align="left">Width</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>ssr(type)</code></td>
|
|
<td align="left">Draw specified SSR</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>ssr_assembly(type, screw, thickness)</code></td>
|
|
<td align="left">Assembly with fasteners in place</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>ssr_hole_positions(type)</code></td>
|
|
<td align="left">Place children at the screw positions</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="ssrs" src="tests/png/ssrs.png" /></p>
|
|
<h3>Vitamins</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">4</td>
|
|
<td align="left"><code>nut(M4_nut, nyloc = true)</code></td>
|
|
<td align="left">Nut M4 nyloc</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">4</td>
|
|
<td align="left"><code>screw(M4_cap_screw, 16)</code></td>
|
|
<td align="left">Screw M4 cap x 16mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>ssr(SSR25DA)</code></td>
|
|
<td align="left">Solid state relay Fotek 25A</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>ssr(SSR10DA)</code></td>
|
|
<td align="left">Solid state relay Robodigg 10A</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">8</td>
|
|
<td align="left"><code>washer(M4_washer)</code></td>
|
|
<td align="left">Washer M4 x 9mm x 0.8mm</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Stepper_motors"></a></p>
|
|
<h2>Stepper_motors</h2>
|
|
<p>NEMA stepper motor model.</p>
|
|
<p><a href="vitamins/stepper_motors.scad">vitamins/stepper_motors.scad</a> Object definitions.</p>
|
|
<p><a href="vitamins/stepper_motor.scad">vitamins/stepper_motor.scad</a> Implementation.</p>
|
|
<p><a href="tests/stepper_motors.scad">tests/stepper_motors.scad</a> Code for this example.</p>
|
|
<h3>Properties</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>NEMA_body_radius(type)</code></td>
|
|
<td align="left">Body radius</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>NEMA_boss_height(type)</code></td>
|
|
<td align="left">Boss height</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>NEMA_boss_radius(type)</code></td>
|
|
<td align="left">Boss around the spindle radius</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>NEMA_hole_pitch(type)</code></td>
|
|
<td align="left">Screw hole pitch</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>NEMA_length(type)</code></td>
|
|
<td align="left">Body length</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>NEMA_radius(type)</code></td>
|
|
<td align="left">End cap radius</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>NEMA_shaft_dia(type)</code></td>
|
|
<td align="left">Shaft diameter</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>NEMA_shaft_length(type)</code></td>
|
|
<td align="left">Shaft length above the face</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>NEMA_width(type)</code></td>
|
|
<td align="left">Width of the square face</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Functions</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>NEMA_big_hole(type)</code></td>
|
|
<td align="left">Clearance hole for the big boss</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>NEMA_holes(type)</code></td>
|
|
<td align="left">Screw positions for for loop</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>NEMA(type)</code></td>
|
|
<td align="left">Draw specified NEMA stepper motor</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>NEMA_outline(type)</code></td>
|
|
<td align="left">2D outline</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>NEMA_screw_positions(type, n = 4)</code></td>
|
|
<td align="left">Positions children at the screw holes</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>NEMA_screws(type, screw, n = 4, screw_length = 8, earth = undef)</code></td>
|
|
<td align="left">Place screws and optional earth tag</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="stepper_motors" src="tests/png/stepper_motors.png" /></p>
|
|
<h3>Vitamins</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">24</td>
|
|
<td align="left"><code>screw(M3_pan_screw, 8)</code></td>
|
|
<td align="left">Screw M3 pan x 8mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>NEMA(NEMA14)</code></td>
|
|
<td align="left">Stepper motor NEMA14 x 36mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>NEMA(NEMA16)</code></td>
|
|
<td align="left">Stepper motor NEMA16 x 19.2mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>NEMA(NEMA17S)</code></td>
|
|
<td align="left">Stepper motor NEMA17 x 34mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>NEMA(NEMA17M)</code></td>
|
|
<td align="left">Stepper motor NEMA17 x 40mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>NEMA(NEMA17)</code></td>
|
|
<td align="left">Stepper motor NEMA17 x 47mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>NEMA(NEMA23)</code></td>
|
|
<td align="left">Stepper motor NEMA22 x 51.2mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">24</td>
|
|
<td align="left"><code>washer(M3_washer)</code></td>
|
|
<td align="left">Washer M3 x 7mm x 0.5mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">24</td>
|
|
<td align="left"><code>star_washer(M3_washer)</code></td>
|
|
<td align="left">Washer star M3 x 0.5mm</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Toggles"></a></p>
|
|
<h2>Toggles</h2>
|
|
<p>Toggle switches</p>
|
|
<p><a href="vitamins/toggles.scad">vitamins/toggles.scad</a> Object definitions.</p>
|
|
<p><a href="vitamins/toggle.scad">vitamins/toggle.scad</a> Implementation.</p>
|
|
<p><a href="tests/toggles.scad">tests/toggles.scad</a> Code for this example.</p>
|
|
<h3>Properties</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>toggle_angle(type)</code></td>
|
|
<td align="left">Angle of the paddle</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>toggle_collar_d(type)</code></td>
|
|
<td align="left">Collar diameter</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>toggle_collar_t(type)</code></td>
|
|
<td align="left">Collar thickness</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>toggle_colour(type)</code></td>
|
|
<td align="left">Body colour</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>toggle_depth(type)</code></td>
|
|
<td align="left">Body depth</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>toggle_height(type)</code></td>
|
|
<td align="left">Body height</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>toggle_id(type)</code></td>
|
|
<td align="left">Barrel inside diameter</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>toggle_inset(type)</code></td>
|
|
<td align="left">How far the metal is inset into the body</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>toggle_nut(type)</code></td>
|
|
<td align="left">Nut type</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>toggle_od(type)</code></td>
|
|
<td align="left">Barrel outside diameter</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>toggle_paddle_d1(type)</code></td>
|
|
<td align="left">Diameter at the top of the paddle</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>toggle_paddle_l(type)</code></td>
|
|
<td align="left">Length of the paddle</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>toggle_paddle_w(type)</code></td>
|
|
<td align="left">Width at the top for non-spherical end</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>toggle_part(type)</code></td>
|
|
<td align="left">Part description</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>toggle_pin_hp(type)</code></td>
|
|
<td align="left">Pin x pitch</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>toggle_pin_l(type)</code></td>
|
|
<td align="left">Pin length</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>toggle_pin_t(type)</code></td>
|
|
<td align="left">Pin thickness</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>toggle_pin_vp(type)</code></td>
|
|
<td align="left">Pin y pitch</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>toggle_pin_w(type)</code></td>
|
|
<td align="left">Pin width</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>toggle_pins(type)</code></td>
|
|
<td align="left">Number of pins</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>toggle_pivot(type)</code></td>
|
|
<td align="left">Z offset of the pivot point above the top of the body</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>toggle_thickness(type)</code></td>
|
|
<td align="left">Metal thickness</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>toggle_thread(type)</code></td>
|
|
<td align="left">Length of threaded barrel</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>toggle_washer(type)</code></td>
|
|
<td align="left">Washer type</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>toggle_width(type)</code></td>
|
|
<td align="left">Body width</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Functions</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>toggle_hole_radius(type)</code></td>
|
|
<td align="left">Radius of the panel hole</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>toggle(type, thickness)</code></td>
|
|
<td align="left">Draw specified toggle switch with the nuts and washers positioned for the specified panel thickness</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>toggle_hole(type, h = 100)</code></td>
|
|
<td align="left">Drill the hole in a panel</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="toggles" src="tests/png/toggles.png" /></p>
|
|
<h3>Vitamins</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>toggle(AP5236, 3)</code></td>
|
|
<td align="left">Toggle switch AP5236</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>toggle(CK7101, 3)</code></td>
|
|
<td align="left">Toggle switch CK7101</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>toggle(CK7105, 3)</code></td>
|
|
<td align="left">Toggle switch CK7101</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>toggle(MS332F, 3)</code></td>
|
|
<td align="left">Toggle switch MS332F</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Transformers"></a></p>
|
|
<h2>Transformers</h2>
|
|
<p>Iron core transformers. The grey shaded area is the keep out region where the terminals are.</p>
|
|
<p><a href="vitamins/transformers.scad">vitamins/transformers.scad</a> Object definitions.</p>
|
|
<p><a href="vitamins/transformer.scad">vitamins/transformer.scad</a> Implementation.</p>
|
|
<p><a href="tests/transformers.scad">tests/transformers.scad</a> Code for this example.</p>
|
|
<h3>Properties</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>tx_bobbin_height(type)</code></td>
|
|
<td align="left">Bobbin height</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>tx_bobbin_offset(type)</code></td>
|
|
<td align="left">Vertical offset of the bobbin from the centre of the laminations</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>tx_bobbin_radius(type)</code></td>
|
|
<td align="left">Bobbin corner radius</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>tx_bobbin_width(type)</code></td>
|
|
<td align="left">Bobbin width</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>tx_depth(type)</code></td>
|
|
<td align="left">Bounding depth of the bobbin</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>tx_foot_depth(type)</code></td>
|
|
<td align="left">Depth of the foot</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>tx_foot_thickness(type)</code></td>
|
|
<td align="left">Thickness of the foot</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>tx_foot_width(type)</code></td>
|
|
<td align="left">Width of the foot</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>tx_height(type)</code></td>
|
|
<td align="left">Bounding height of the transformer</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>tx_lamination_depth(type)</code></td>
|
|
<td align="left">Lamination depth</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>tx_lamination_height(type)</code></td>
|
|
<td align="left">Lamination height</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>tx_part(type)</code></td>
|
|
<td align="left">Part description</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>tx_screw(type)</code></td>
|
|
<td align="left">Screw type</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>tx_width(type)</code></td>
|
|
<td align="left">Bounding width of the core</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>tx_x_pitch(type)</code></td>
|
|
<td align="left">Screw hole x pitch</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>tx_y_pitch(type)</code></td>
|
|
<td align="left">Screw hole y pitch when four screws</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>transformer(type)</code></td>
|
|
<td align="left">Draw specified transformer</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>transformer_hole_positions(type)</code></td>
|
|
<td align="left">Position children at the mounting hole positions</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="transformers" src="tests/png/transformers.png" /></p>
|
|
<h3>Vitamins</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>transformer(CCM300)</code></td>
|
|
<td align="left">Transformer Carroll & Meynell CCM300/230 isolation</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>transformer(SMALLTX)</code></td>
|
|
<td align="left">Transformer Small mains</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Tubings"></a></p>
|
|
<h2>Tubings</h2>
|
|
<p>Tubing and sleeving. The internal diameter can be forced to stretch it over something.</p>
|
|
<p><a href="vitamins/tubings.scad">vitamins/tubings.scad</a> Object definitions.</p>
|
|
<p><a href="vitamins/tubing.scad">vitamins/tubing.scad</a> Implementation.</p>
|
|
<p><a href="tests/tubings.scad">tests/tubings.scad</a> Code for this example.</p>
|
|
<h3>Properties</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>tubing_colour(type)</code></td>
|
|
<td align="left">Colour</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>tubing_id(type)</code></td>
|
|
<td align="left">Inside diameter</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>tubing_material(type)</code></td>
|
|
<td align="left">Material description</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>tubing_od(type)</code></td>
|
|
<td align="left">Outside diameter</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>tubing(type, length = 15, forced_id = 0)</code></td>
|
|
<td align="left">Draw specified tubing with optional forced internal diameter</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="tubings" src="tests/png/tubings.png" /></p>
|
|
<h3>Vitamins</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>tubing(HSHRNK16)</code></td>
|
|
<td align="left">Heatshrink sleeving ID 1.6mm x 15mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>tubing(HSHRNK100)</code></td>
|
|
<td align="left">Heatshrink sleeving ID 10mm x 15mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>tubing(HSHRNK24)</code></td>
|
|
<td align="left">Heatshrink sleeving ID 2.4mm x 15mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>tubing(HSHRNK64)</code></td>
|
|
<td align="left">Heatshrink sleeving ID 6.4mm x 15mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>tubing(NEOP85)</code></td>
|
|
<td align="left">Neoprene tubing OD 8mm ID 5mm x 15mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>tubing(PTFE07)</code></td>
|
|
<td align="left">PTFE sleeving OD 1.2mm ID 0.71mm x 15mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>tubing(PTFE20)</code></td>
|
|
<td align="left">PTFE sleeving OD 2.6mm ID 2mm x 15mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>tubing(PF7)</code></td>
|
|
<td align="left">PTFE tubing OD 4.6mm ID 3.84mm x 15mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>tubing(PVC64)</code></td>
|
|
<td align="left">PVC aquarium tubing OD 6mm ID 4mm x 15mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>tubing(PVC85)</code></td>
|
|
<td align="left">PVC aquarium tubing OD 8mm ID 5mm x 15mm</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Variacs"></a></p>
|
|
<h2>Variacs</h2>
|
|
<p>Variable auto transformers.</p>
|
|
<p><a href="vitamins/variacs.scad">vitamins/variacs.scad</a> Object definitions.</p>
|
|
<p><a href="vitamins/variac.scad">vitamins/variac.scad</a> Implementation.</p>
|
|
<p><a href="tests/variacs.scad">tests/variacs.scad</a> Code for this example.</p>
|
|
<h3>Properties</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>variac_bulge_dia(type)</code></td>
|
|
<td align="left">Bulge to opposite edge</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>variac_bulge_width(type)</code></td>
|
|
<td align="left">Width of the bulge</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>variac_dial_big_hole(type)</code></td>
|
|
<td align="left">Central dial hole diameter</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>variac_dial_dia(type)</code></td>
|
|
<td align="left">Dial diameter</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>variac_dial_hole_pitch(type)</code></td>
|
|
<td align="left">Screw pitch for the dial</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>variac_dial_hole_r(type)</code></td>
|
|
<td align="left">Dial screw hole radius</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>variac_dial_thickness(type)</code></td>
|
|
<td align="left">Dial thickness</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>variac_diameter(type)</code></td>
|
|
<td align="left">Body diameter</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>variac_height(type)</code></td>
|
|
<td align="left">Body height</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>variac_screw(type)</code></td>
|
|
<td align="left">Screw type</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>variac_screw_pitch(type)</code></td>
|
|
<td align="left">Pitch of screws</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>variac_screws(type)</code></td>
|
|
<td align="left">Number of screws</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>variac_shaft_dia(type)</code></td>
|
|
<td align="left">Shaft diameter</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>variac_shaft_length(type)</code></td>
|
|
<td align="left">Shaft length</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Functions</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>variac_radius(type)</code></td>
|
|
<td align="left">Body radius</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>variac(type, thickness = 3, dial = true)</code></td>
|
|
<td align="left">Draw the specified variac with screws and possibly the dial when it is fixed and not rotating</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>variac_dial(type)</code></td>
|
|
<td align="left">Draw the dial for the specified variac</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>variac_hole_positions(type, pitch = undef)</code></td>
|
|
<td align="left">Position children at the screw positions</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>variac_holes(type, h = 100)</code></td>
|
|
<td align="left">Drill panel holes for specified variac</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="variacs" src="tests/png/variacs.png" /></p>
|
|
<h3>Vitamins</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>variac(DURATRAKV5HM, 3)</code></td>
|
|
<td align="left">Variac DURATRAK V5HM</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>variac(RAVISTAT1F1, 3)</code></td>
|
|
<td align="left">Variac RAVISTAT 1F-1</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Veroboard"></a></p>
|
|
<h2>Veroboard</h2>
|
|
<p>Veroboard with mounting holes, track breaks, removed tracks, solder points and components.</p>
|
|
<p><a href="vitamins/veroboard.scad">vitamins/veroboard.scad</a> Implementation.</p>
|
|
<p><a href="tests/veroboard.scad">tests/veroboard.scad</a> Code for this example.</p>
|
|
<h3>Properties</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>vero_assembly(type)</code></td>
|
|
<td align="left">Name of the assembly</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>vero_breaks(type)</code></td>
|
|
<td align="left">Breaks in the tracks</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>vero_components(type)</code></td>
|
|
<td align="left">List of named components and their positions</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>vero_fr4(type)</code></td>
|
|
<td align="left">True if FR4 rather than SRBP</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>vero_holes(type)</code></td>
|
|
<td align="left">Number of holes in each strip</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>vero_joints(type)</code></td>
|
|
<td align="left">List of solder joints</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>vero_mounting_holes(type)</code></td>
|
|
<td align="left">Positions of the mounting holes</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>vero_no_track(type)</code></td>
|
|
<td align="left">Missing tracks</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>vero_pitch(type)</code></td>
|
|
<td align="left">Hole pitch</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>vero_screw(type)</code></td>
|
|
<td align="left">Mounting screw type</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>vero_strips(type)</code></td>
|
|
<td align="left">Number of strips</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Functions</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>vero_length(type)</code></td>
|
|
<td align="left">Length of the board</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>vero_thickness(type)</code></td>
|
|
<td align="left">Thickness of the substrate</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>vero_track_thickness(type)</code></td>
|
|
<td align="left">Thickness of the tracks</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>vero_track_width(type)</code></td>
|
|
<td align="left">The width of the tracks</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>vero_width(type)</code></td>
|
|
<td align="left">Width of the board</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>vero_cutouts(type, angle = undef)</code></td>
|
|
<td align="left">Make cutouts to clear components</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>vero_grid_pos(type, x, y)</code></td>
|
|
<td align="left">Convert grid position to offset from the centre</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>vero_mounting_hole_positions(type)</code></td>
|
|
<td align="left">Positions children at the mounting holes</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>vero_mounting_holes(type, h = 100)</code></td>
|
|
<td align="left">Drill mounting holes in a panel</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>veroboard(type)</code></td>
|
|
<td align="left">Draw specified veroboard with missing tracks and track breaks</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>veroboard_assembly(type, height, thickness, flip = false)</code></td>
|
|
<td align="left">Draw the assembly with components and fasteners in place</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="veroboard" src="tests/png/veroboard.png" /></p>
|
|
<h3>Vitamins</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">2</td>
|
|
<td align="left"><code>idc_transition(2p54header, 10)</code></td>
|
|
<td align="left">IDC transition header 10 x 2</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">4</td>
|
|
<td align="left"><code>nut(M3_nut, nyloc = true)</code></td>
|
|
<td align="left">Nut M3 nyloc</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">4</td>
|
|
<td align="left"><code>screw(M3_dome_screw, 25)</code></td>
|
|
<td align="left">Screw M3 dome x 25mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">2</td>
|
|
<td align="left"><code>terminal_254(10)</code></td>
|
|
<td align="left">Terminal block 10 way 0.1"</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">2</td>
|
|
<td align="left"><code>veroboard(z_vb)</code></td>
|
|
<td align="left">Veroboard 5 holes x 22strips</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">8</td>
|
|
<td align="left"><code>washer(M3_washer)</code></td>
|
|
<td align="left">Washer M3 x 7mm x 0.5mm</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Printed</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">4</td>
|
|
<td align="left">pcb_spacer30120.stl</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Assemblies</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">2</td>
|
|
<td align="left">z_bed_terminal_assembly</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Washers"></a></p>
|
|
<h2>Washers</h2>
|
|
<p>Washers, star washers, penny washers and printed washers.</p>
|
|
<p>If a washer is given a child, usually a screw or a nut, then it is placed on its top surface.</p>
|
|
<p><a href="vitamins/washers.scad">vitamins/washers.scad</a> Object definitions.</p>
|
|
<p><a href="vitamins/washer.scad">vitamins/washer.scad</a> Implementation.</p>
|
|
<p><a href="tests/washers.scad">tests/washers.scad</a> Code for this example.</p>
|
|
<h3>Properties</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>penny_washer(type)</code></td>
|
|
<td align="left">Corresponding penny washer</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>spring_washer_diameter(type)</code></td>
|
|
<td align="left">Spring washer size</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>spring_washer_thickness(type)</code></td>
|
|
<td align="left">Spring washer thickness</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>star_washer_diameter(type)</code></td>
|
|
<td align="left">Star version size</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>washer_diameter(type)</code></td>
|
|
<td align="left">External diameter</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>washer_size(type)</code></td>
|
|
<td align="left">Noiminal size</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>washer_soft(type)</code></td>
|
|
<td align="left">True if rubber</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>washer_thickness(type)</code></td>
|
|
<td align="left">Thickness</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Functions</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>washer_colour(type)</code></td>
|
|
<td align="left">Washer colour</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>washer_id(type)</code></td>
|
|
<td align="left">Inside diameter</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>washer_radius(type)</code></td>
|
|
<td align="left">Outside radius</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>penny_washer(type)</code></td>
|
|
<td align="left">Draw penny version of specified plain washer</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>printed_washer(type, name = false)</code></td>
|
|
<td align="left">Create printed washer</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>spring_washer(type)</code></td>
|
|
<td align="left">Draw spring version of washer</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>star_washer(type)</code></td>
|
|
<td align="left">Draw star version of washer</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>washer(type)</code></td>
|
|
<td align="left">Draw specified washer</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="washers" src="tests/png/washers.png" /></p>
|
|
<h3>Vitamins</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>washer(M2_washer)</code></td>
|
|
<td align="left">Washer M2 x 5mm x 0.3mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>washer(M2p5_washer)</code></td>
|
|
<td align="left">Washer M2.5 x 5.9mm x 0.5mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>washer(M3_washer)</code></td>
|
|
<td align="left">Washer M3 x 7mm x 0.5mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>washer(M3p5_washer)</code></td>
|
|
<td align="left">Washer M3.5 x 8mm x 0.5mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>washer(M4_washer)</code></td>
|
|
<td align="left">Washer M4 x 9mm x 0.8mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>washer(M5_washer)</code></td>
|
|
<td align="left">Washer M5 x 10mm x 1mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>washer(M6_washer)</code></td>
|
|
<td align="left">Washer M6 x 12.5mm x 1.5mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>washer(M8_washer)</code></td>
|
|
<td align="left">Washer M8 x 17mm x 1.6mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>washer(M3_penny_washer)</code></td>
|
|
<td align="left">Washer penny M3 x 12mm x 0.8mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>washer(M4_penny_washer)</code></td>
|
|
<td align="left">Washer penny M4 x 14mm x 0.8mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>washer(M5_penny_washer)</code></td>
|
|
<td align="left">Washer penny M5 x 20mm x 1.4mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>washer(M6_penny_washer)</code></td>
|
|
<td align="left">Washer penny M6 x 26mm x 1.5mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>washer(M8_penny_washer)</code></td>
|
|
<td align="left">Washer penny M8 x 30mm x 1.5mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>washer(M3_rubber_washer)</code></td>
|
|
<td align="left">Washer rubber M3 x 10mm x 1.5mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>spring_washer(M2_washer)</code></td>
|
|
<td align="left">Washer spring M2 x 0.5mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>spring_washer(M2p5_washer)</code></td>
|
|
<td align="left">Washer spring M2.5 x 0.6mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>spring_washer(M3_washer)</code></td>
|
|
<td align="left">Washer spring M3 x 1mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>spring_washer(M3p5_washer)</code></td>
|
|
<td align="left">Washer spring M3.5 x 1mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>spring_washer(M4_washer)</code></td>
|
|
<td align="left">Washer spring M4 x 1.2mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>spring_washer(M5_washer)</code></td>
|
|
<td align="left">Washer spring M5 x 1.6mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>spring_washer(M6_washer)</code></td>
|
|
<td align="left">Washer spring M6 x 1.6mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>spring_washer(M8_washer)</code></td>
|
|
<td align="left">Washer spring M8 x 2mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>star_washer(M2_washer)</code></td>
|
|
<td align="left">Washer star M2 x 0.3mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>star_washer(M2p5_washer)</code></td>
|
|
<td align="left">Washer star M2.5 x 0.5mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>star_washer(M3_washer)</code></td>
|
|
<td align="left">Washer star M3 x 0.5mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>star_washer(M3_rubber_washer)</code></td>
|
|
<td align="left">Washer star M3 x 1.5mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>star_washer(M3p5_washer)</code></td>
|
|
<td align="left">Washer star M3.5 x 0.5mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>star_washer(M4_washer)</code></td>
|
|
<td align="left">Washer star M4 x 0.8mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>star_washer(M5_washer)</code></td>
|
|
<td align="left">Washer star M5 x 1mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>star_washer(M6_washer)</code></td>
|
|
<td align="left">Washer star M6 x 1.5mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>star_washer(M8_washer)</code></td>
|
|
<td align="left">Washer star M8 x 1.6mm</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Printed</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">M20_washer.stl</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">M25_washer.stl</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">2</td>
|
|
<td align="left">M30_washer.stl</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">M35_washer.stl</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">M40_washer.stl</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">M50_washer.stl</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">M60_washer.stl</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">M80_washer.stl</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Zipties"></a></p>
|
|
<h2>Zipties</h2>
|
|
<p>Cable zipties.</p>
|
|
<p><a href="vitamins/zipties.scad">vitamins/zipties.scad</a> Object definitions.</p>
|
|
<p><a href="vitamins/ziptie.scad">vitamins/ziptie.scad</a> Implementation.</p>
|
|
<p><a href="tests/zipties.scad">tests/zipties.scad</a> Code for this example.</p>
|
|
<h3>Properties</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>ziptie_colour(type)</code></td>
|
|
<td align="left">Colour</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>ziptie_latch(type)</code></td>
|
|
<td align="left">Latch dimensions</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>ziptie_tail(type)</code></td>
|
|
<td align="left">The length without teeth</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>ziptie_thickness(type)</code></td>
|
|
<td align="left">Thickness</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>ziptie_width(type)</code></td>
|
|
<td align="left">Width</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="zipties" src="tests/png/zipties.png" /></p>
|
|
<h3>Vitamins</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>ziptie(small_ziptie, 5)</code></td>
|
|
<td align="left">Ziptie 100mm min length</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>ziptie(ziptie_3mm, 5)</code></td>
|
|
<td align="left">Ziptie 100mm min length</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>ziptie(ziptie_3p6mm, 5)</code></td>
|
|
<td align="left">Ziptie 100mm min length</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Box"></a></p>
|
|
<h2>Box</h2>
|
|
<p>A box made from routed or laser cut sheet sheets and printed profiles and bezels. It can be arbitrarily large
|
|
compared to the 3D printed parts because they can be cut into interlocking sections and solvent welded
|
|
together. The box panels can be customised to have holes and parts mounted on them by overriding the
|
|
definitions of <code>box_base()</code>, <code>box_front()</code>, etc.</p>
|
|
<p><code>box.scad</code> should be <code>use</code>d and <code>box_assembly.scad</code> <code>include</code>d.</p>
|
|
<p>A box is defined with a list that specifies the inside dimensions, top, bottom and side sheet materials, the
|
|
screw type and printed part wall thickness. This diagram shows how the various dimensions are labelled:
|
|
<img alt="" src="docs/box.png" /></p>
|
|
<p>Normally the side sheets are the same type but they can be overridden individually as long as the substitute has the same thickness.</p>
|
|
<p><a href="box.scad">box.scad</a> Implementation.</p>
|
|
<p><a href="tests/box.scad">tests/box.scad</a> Code for this example.</p>
|
|
<h3>Properties</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>box_base_sheet(type)</code></td>
|
|
<td align="left">Sheet type for the bottom</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>box_depth(type)</code></td>
|
|
<td align="left">Internal depth</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>box_feet(type)</code></td>
|
|
<td align="left">True to enable feet on the bottom bezel</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>box_height(type)</code></td>
|
|
<td align="left">Internal height</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>box_screw(type)</code></td>
|
|
<td align="left">Screw type to be used at the corners</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>box_sheets(type)</code></td>
|
|
<td align="left">Sheet type used for the sides</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>box_top_sheet(type)</code></td>
|
|
<td align="left">Sheet type for the top</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>box_wall(type)</code></td>
|
|
<td align="left">Wall thickness of 3D parts</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>box_width(type)</code></td>
|
|
<td align="left">Internal width</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Functions</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>box_bezel_height(type, bottom)</code></td>
|
|
<td align="left">Bezel height for top or bottom</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>box_corner_gap(type)</code></td>
|
|
<td align="left">Gap between box_sheets at the corners to connect inside and outside profiles</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>box_inset(type)</code></td>
|
|
<td align="left">How much the bezel intrudes on the specified width and length, away from the corners</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>box_intrusion(type)</code></td>
|
|
<td align="left">Corner profile intrusion</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>box_margin(type)</code></td>
|
|
<td align="left">How much the bezel intrudes on the specified height</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>box_outset(type)</code></td>
|
|
<td align="left">How much the bezel expands the specified internal size</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>box_back(type)</code></td>
|
|
<td align="left">Default back, can be overridden to customise</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>box_back_blank(type, sheet = false)</code></td>
|
|
<td align="left">Generates a 2D template for the back sheet, <code>sheet</code> can be set to override the type</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>box_base(type)</code></td>
|
|
<td align="left">Default base, can be overridden to customise</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>box_base_blank(type)</code></td>
|
|
<td align="left">Generates a 2D template for the base sheet</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>box_bezel(type, bottom)</code></td>
|
|
<td align="left">Generates top and bottom bezel STLs</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>box_bezel_section(type, bottom, rows, cols, x, y)</code></td>
|
|
<td align="left">Generates interlocking sections of the bezel to allow it to be bigger than the printer</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>box_corner_profile(type)</code></td>
|
|
<td align="left">Generates the corner profile STL for 3D printing.</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>box_corner_profile_2D(type)</code></td>
|
|
<td align="left">The 2D shape of the corner profile.</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>box_corner_profile_section(type, section, sections)</code></td>
|
|
<td align="left">Generates interlocking sections of the corner profile to allow it to be taller than the printer</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>box_front(type)</code></td>
|
|
<td align="left">Default front, can be overridden to customise</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>box_front_blank(type, sheet = false)</code></td>
|
|
<td align="left">Generates a 2D template for the front sheet, <code>sheet</code> can be set to override the type</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>box_left(type)</code></td>
|
|
<td align="left">Default left side, can be overridden to customise</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>box_left_blank(type, sheet = false)</code></td>
|
|
<td align="left">Generates a 2D template for the left sheet, <code>sheet</code> can be set to override the type</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>box_right(type)</code></td>
|
|
<td align="left">Default right side, can be overridden to customise</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>box_right_blank(type, sheet = false)</code></td>
|
|
<td align="left">Generates a 2D template for the right sheet, <code>sheet</code> can be set to override the type</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>box_shelf_blank(type)</code></td>
|
|
<td align="left">Generates a 2D template for a shelf sheet</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>box_top(type)</code></td>
|
|
<td align="left">Default top, can be overridden to customise</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>box_top_blank(type)</code></td>
|
|
<td align="left">Generates a 2D template for the top sheet</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>grill(width, height, r = 1000, poly = false, h = 0)</code></td>
|
|
<td align="left">A staggered array of 5mm holes to make grills in sheets. Can be constrained to be circular. Set <code>poly</code> <code>true</code> for printing, <code>false</code> for milling.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="box" src="tests/png/box.png" /></p>
|
|
<h3>Vitamins</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">8</td>
|
|
<td align="left"><code>insert(F1BM3)</code></td>
|
|
<td align="left">Heatfit insert M3</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">4</td>
|
|
<td align="left"><code>screw(M3_dome_screw, 16)</code></td>
|
|
<td align="left">Screw M3 dome x 16mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">4</td>
|
|
<td align="left"><code>screw(M3_dome_screw, 20)</code></td>
|
|
<td align="left">Screw M3 dome x 20mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">2</td>
|
|
<td align="left"><code>sheet(DiBond, 143, 63, 1)</code></td>
|
|
<td align="left">Sheet DiBond 143mm x 63mm x 3mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>sheet(DiBond6, 150, 100, 2.9)</code></td>
|
|
<td align="left">Sheet DiBond 150mm x 100mm x 6mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">2</td>
|
|
<td align="left"><code>sheet(DiBond, 93, 63, 1)</code></td>
|
|
<td align="left">Sheet DiBond 93mm x 63mm x 3mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>sheet(PMMA3, 150, 100, 2.9)</code></td>
|
|
<td align="left">Sheet acrylic 150mm x 100mm x 3mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">8</td>
|
|
<td align="left"><code>washer(M3_washer)</code></td>
|
|
<td align="left">Washer M3 x 7mm x 0.5mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">8</td>
|
|
<td align="left"><code>star_washer(M3_washer)</code></td>
|
|
<td align="left">Washer star M3 x 0.5mm</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Printed</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">10</td>
|
|
<td align="left">bottom_bezel.stl</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">4</td>
|
|
<td align="left">box_corner_profile.stl</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">top_bezel.stl</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Routed</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">box_back.dxf</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">box_base.dxf</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">box_front.dxf</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">box_left.dxf</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">box_right.dxf</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">box_top.dxf</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Assemblies</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">box_assembly</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Butt_box"></a></p>
|
|
<h2>Butt_box</h2>
|
|
<p>A box made from CNC cut panels butted together using printed fixing blocks. Useful for making large
|
|
boxes with minimal 3D printing. More blocks are added as the box gets bigger.</p>
|
|
<p>Needs to be <code>include</code>d rather than <code>use</code>d to allow the panel definitions to be overridden to add holes
|
|
and mounted components.</p>
|
|
<p>A list specifies the internal dimensions, screw type, top, bottom and side sheet types and the block
|
|
maximum spacing.</p>
|
|
<p>Uses <a href="#fixing_block">fixing blocks</a> and <a href="#corner_block">corner blocks</a>.</p>
|
|
<p><a href="butt_box.scad">butt_box.scad</a> Implementation.</p>
|
|
<p><a href="tests/butt_box.scad">tests/butt_box.scad</a> Code for this example.</p>
|
|
<h3>Properties</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>bbox_base_sheet(type)</code></td>
|
|
<td align="left">Sheet type for the base</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>bbox_depth(type)</code></td>
|
|
<td align="left">Internal depth</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>bbox_height(type)</code></td>
|
|
<td align="left">Internal height</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>bbox_screw(type)</code></td>
|
|
<td align="left">Screw type for corner blocks</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>bbox_sheets(type)</code></td>
|
|
<td align="left">Sheet type for the sides</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>bbox_span(type)</code></td>
|
|
<td align="left">Maximum span between fixing blocks</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>bbox_top_sheet(type)</code></td>
|
|
<td align="left">Sheet type for the top</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>bbox_width(type)</code></td>
|
|
<td align="left">Internal width</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>_bbox_assembly(type, top = true, base = true, left = true, right = true, back = true, front = true)</code></td>
|
|
<td align="left">The box assembly, wrap with a local copy without parameters</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>bbox_back(type)</code></td>
|
|
<td align="left">Default back, can be overridden to customise</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>bbox_back_blank(type)</code></td>
|
|
<td align="left">2D template for the back</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>bbox_base(type)</code></td>
|
|
<td align="left">Default base, can be overridden to customise</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>bbox_base_blank(type)</code></td>
|
|
<td align="left">2D template for the base</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>bbox_front(type)</code></td>
|
|
<td align="left">Default front, can be overridden to customise</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>bbox_front_blank(type)</code></td>
|
|
<td align="left">2D template for the front</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>bbox_left(type)</code></td>
|
|
<td align="left">Default left side, can be overridden to customise</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>bbox_left_blank(type)</code></td>
|
|
<td align="left">2D template for the left side</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>bbox_right(type)</code></td>
|
|
<td align="left">Default right side, can be overridden to customise</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>bbox_right_blank(type)</code></td>
|
|
<td align="left">2D template for the right side</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>bbox_shelf_blank(type)</code></td>
|
|
<td align="left">2D template for a shelf</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>bbox_top(type)</code></td>
|
|
<td align="left">Default top, can be overridden to customise</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>bbox_top_blank(type)</code></td>
|
|
<td align="left">2D template for the top</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="butt_box" src="tests/png/butt_box.png" /></p>
|
|
<h3>Vitamins</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">48</td>
|
|
<td align="left"><code>insert(F1BM3)</code></td>
|
|
<td align="left">Heatfit insert M3</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">36</td>
|
|
<td align="left"><code>screw(M3_dome_screw, 10)</code></td>
|
|
<td align="left">Screw M3 dome x 10mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">4</td>
|
|
<td align="left"><code>screw(M3_dome_screw, 12)</code></td>
|
|
<td align="left">Screw M3 dome x 12mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">8</td>
|
|
<td align="left"><code>screw(M3_dome_screw, 16)</code></td>
|
|
<td align="left">Screw M3 dome x 16mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">2</td>
|
|
<td align="left"><code>sheet(DiBond, 303, 126)</code></td>
|
|
<td align="left">Sheet DiBond 303mm x 126mm x 3mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>sheet(DiBond, 400, 126)</code></td>
|
|
<td align="left">Sheet DiBond 400mm x 126mm x 3mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>sheet(DiBond6, 400, 300, 1)</code></td>
|
|
<td align="left">Sheet DiBond 400mm x 300mm x 6mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>sheet(DiBond, 406, 129)</code></td>
|
|
<td align="left">Sheet DiBond 406mm x 129mm x 3mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>sheet(PMMA3, 406, 303)</code></td>
|
|
<td align="left">Sheet acrylic 406mm x 303mm x 3mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">48</td>
|
|
<td align="left"><code>washer(M3_washer)</code></td>
|
|
<td align="left">Washer M3 x 7mm x 0.5mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">48</td>
|
|
<td align="left"><code>star_washer(M3_washer)</code></td>
|
|
<td align="left">Washer star M3 x 0.5mm</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Printed</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">8</td>
|
|
<td align="left">corner_block_M30.stl</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">8</td>
|
|
<td align="left">fixing_block_M30.stl</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Routed</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">bbox_back.dxf</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">bbox_base.dxf</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">bbox_front.dxf</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">bbox_left.dxf</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">bbox_right.dxf</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">bbox_top.dxf</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Assemblies</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">bbox_assembly</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">8</td>
|
|
<td align="left">corner_block_M30_assembly</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">8</td>
|
|
<td align="left">fixing_block_M30_assembly</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Cable_grommets"></a></p>
|
|
<h2>Cable_grommets</h2>
|
|
<p>Printed cable grommets for passing cables through panels avoiding sharp edges and in the case
|
|
of conductive panels, an extra layer of insulation.</p>
|
|
<p><a href="cable_grommets.scad">cable_grommets.scad</a> Implementation.</p>
|
|
<p><a href="tests/cable_grommets.scad">tests/cable_grommets.scad</a> Code for this example.</p>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>mouse_grommet(r, thickness)</code></td>
|
|
<td align="left">Make the STL for a mouse grommet</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>mouse_grommet_hole(r, h = 50, z = undef, expand = wall + clearance)</code></td>
|
|
<td align="left">Make a hole for a mouse grommet</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>ribbon_grommet(ways, thickness)</code></td>
|
|
<td align="left">Generate the STL for a printed ribbon grommet</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>ribbon_grommet_hole(ways, h = 50, expand = true)</code></td>
|
|
<td align="left">Generate a hole for a ribbon grommet</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>round_grommet_bottom(diameter, od = undef)</code></td>
|
|
<td align="left">Generate the STL for a round grommet bottom half</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>round_grommet_hole(diameter, h = 100)</code></td>
|
|
<td align="left">Make a hole for a round grommet</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>round_grommet_top(diameter, thickness, od = undef)</code></td>
|
|
<td align="left">Generate the STL for a round grommet top half</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="cable_grommets" src="tests/png/cable_grommets.png" /></p>
|
|
<h3>Printed</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">mouse_grommet_50_3.stl</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">ribbon_grommet_20_3.stl</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">round_grommet_bottom_60.stl</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">round_grommet_top_60_3.stl</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Carriers"></a></p>
|
|
<h2>Carriers</h2>
|
|
<p>Adapts ESP12 module to 0.1" grid. See <a href="https://hydraraptor.blogspot.com/2018/04/esp-12-module-breakout-adaptor.html">https://hydraraptor.blogspot.com/2018/04/esp-12-module-breakout-adaptor.html</a>.</p>
|
|
<p><a href="carriers.scad">carriers.scad</a> Implementation.</p>
|
|
<p><a href="tests/carriers.scad">tests/carriers.scad</a> Code for this example.</p>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>ESP12F_carrier_stl()</code></td>
|
|
<td align="left">Generate the STL for an ESP12 carrier</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="carriers" src="tests/png/carriers.png" /></p>
|
|
<h3>Printed</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">ESP12F_carrier.stl</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Corner_block"></a></p>
|
|
<h2>Corner_block</h2>
|
|
<p>Corner brackets using threaded inserts for fastening three sheets together at right angles.
|
|
Defaults to M3 but other screws sizes can be specified provided they have inserts defined.</p>
|
|
<p>See <a href="#Butt_box">butt_box</a> for an example of usage.</p>
|
|
<p>Note that the block with its inserts is defined as a sub assembly, but its fasteners get added to the parent assembly.</p>
|
|
<p><a href="corner_block.scad">corner_block.scad</a> Implementation.</p>
|
|
<p><a href="tests/corner_block.scad">tests/corner_block.scad</a> Code for this example.</p>
|
|
<h3>Functions</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>corner_block_h_holes(screw = def_screw)</code></td>
|
|
<td align="left">List of transforms to side holes</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>corner_block_hole_offset(screw = def_screw)</code></td>
|
|
<td align="left">Hole offset from the edge</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>corner_block_holes(screw)</code></td>
|
|
<td align="left">List of transforms to all holes</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>corner_block_screw()</code></td>
|
|
<td align="left">Default screw type</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>corner_block_v_hole(screw = def_screw)</code></td>
|
|
<td align="left">Transform to bottom hole</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>corner_block_width(screw = def_screw)</code></td>
|
|
<td align="left">Block width, depth and height</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>corner_block(screw = def_screw, name = false)</code></td>
|
|
<td align="left">Generate the STL for a printed corner block</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>corner_block_assembly(screw = def_screw, name = false)</code></td>
|
|
<td align="left">The printed block with inserts</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>corner_block_h_holes(screw = def_screw)</code></td>
|
|
<td align="left">Place children at the side screw holes</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>corner_block_holes(screw = def_screw)</code></td>
|
|
<td align="left">Place children at all the holes</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>corner_block_v_hole(screw = def_screw)</code></td>
|
|
<td align="left">Place children at the bottom screw hole</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>fastened_corner_block_assembly(thickness, screw = def_screw, thickness_below = undef, name = false)</code></td>
|
|
<td align="left">Printed block with all fasteners</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="corner_block" src="tests/png/corner_block.png" /></p>
|
|
<h3>Vitamins</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">3</td>
|
|
<td align="left"><code>insert(F1BM)</code></td>
|
|
<td align="left">Heatfit insert M2</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">3</td>
|
|
<td align="left"><code>insert(F1BM2p5)</code></td>
|
|
<td align="left">Heatfit insert M2.5</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">3</td>
|
|
<td align="left"><code>insert(F1BM3)</code></td>
|
|
<td align="left">Heatfit insert M3</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">3</td>
|
|
<td align="left"><code>insert(F1BM4)</code></td>
|
|
<td align="left">Heatfit insert M4</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">3</td>
|
|
<td align="left"><code>screw(M2_cap_screw, 8)</code></td>
|
|
<td align="left">Screw M2 cap x 8mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">3</td>
|
|
<td align="left"><code>screw(M2p5_pan_screw, 10)</code></td>
|
|
<td align="left">Screw M2.5 pan x 10mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">3</td>
|
|
<td align="left"><code>screw(M3_dome_screw, 10)</code></td>
|
|
<td align="left">Screw M3 dome x 10mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">3</td>
|
|
<td align="left"><code>screw(M4_dome_screw, 12)</code></td>
|
|
<td align="left">Screw M4 dome x 12mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">3</td>
|
|
<td align="left"><code>washer(M2_washer)</code></td>
|
|
<td align="left">Washer M2 x 5mm x 0.3mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">3</td>
|
|
<td align="left"><code>washer(M2p5_washer)</code></td>
|
|
<td align="left">Washer M2.5 x 5.9mm x 0.5mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">3</td>
|
|
<td align="left"><code>washer(M3_washer)</code></td>
|
|
<td align="left">Washer M3 x 7mm x 0.5mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">3</td>
|
|
<td align="left"><code>washer(M4_washer)</code></td>
|
|
<td align="left">Washer M4 x 9mm x 0.8mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">3</td>
|
|
<td align="left"><code>star_washer(M2_washer)</code></td>
|
|
<td align="left">Washer star M2 x 0.3mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">3</td>
|
|
<td align="left"><code>star_washer(M2p5_washer)</code></td>
|
|
<td align="left">Washer star M2.5 x 0.5mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">3</td>
|
|
<td align="left"><code>star_washer(M3_washer)</code></td>
|
|
<td align="left">Washer star M3 x 0.5mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">3</td>
|
|
<td align="left"><code>star_washer(M4_washer)</code></td>
|
|
<td align="left">Washer star M4 x 0.8mm</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Printed</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">corner_block_M20.stl</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">corner_block_M25.stl</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">corner_block_M30.stl</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">corner_block_M40.stl</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Assemblies</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">corner_block_M20_assembly</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">corner_block_M25_assembly</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">corner_block_M30_assembly</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">corner_block_M40_assembly</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Door_hinge"></a></p>
|
|
<h2>Door_hinge</h2>
|
|
<p>Door hinges to hang an acrylic sheet door on a 3D printer, default 6mm thick.</p>
|
|
<p>The screws are tapped into the acrylic.
|
|
Rubber door <a href="#sealing_strip">sealing strip</a> is used to make it airtight and a <a href="#door_latch">door_latch</a> holds it closed.</p>
|
|
<p><a href="door_hinge.scad">door_hinge.scad</a> Implementation.</p>
|
|
<p><a href="tests/door_hinge.scad">tests/door_hinge.scad</a> Code for this example.</p>
|
|
<h3>Functions</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>door_hinge_pin_x()</code></td>
|
|
<td align="left">X offset of the hinge pin</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>door_hinge_pin_y()</code></td>
|
|
<td align="left">Y offset of the hinge pin</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>door_hinge_screw()</code></td>
|
|
<td align="left">Screw type used for hinge pin</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>door_hinge_stat_length()</code></td>
|
|
<td align="left">Length of the stationary part</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>door_hinge_stat_screw()</code></td>
|
|
<td align="left">Screw use to fasten the stationary part</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>door_hinge_stat_width()</code></td>
|
|
<td align="left">Width of the stationary part</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>door_hinge(door_thickness)</code></td>
|
|
<td align="left">Generates STL for the moving part of the hinge</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>door_hinge_assembly(top, door_thickness = 6)</code></td>
|
|
<td align="left">The moving assembly that goes on the door</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>door_hinge_hole_positions(dir = 0)</code></td>
|
|
<td align="left">Position chidren at the door hole positions</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>door_hinge_parts_stl()</code></td>
|
|
<td align="left">Generates the STL for both parts of the hinge</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>door_hinge_stat_hole_positions(dir = 0)</code></td>
|
|
<td align="left">Position children over the screws holes of the stationary part</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>door_hinge_stat_stl()</code></td>
|
|
<td align="left">Generates the STL for the stationary part</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>door_hinge_static_assembly(top, sheet_thickness = 3)</code></td>
|
|
<td align="left">The stationary assembly</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="door_hinge" src="tests/png/door_hinge.png" /></p>
|
|
<h3>Vitamins</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">4</td>
|
|
<td align="left"><code>nut(M4_nut, nyloc = true)</code></td>
|
|
<td align="left">Nut M4 nyloc</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">2</td>
|
|
<td align="left"><code>screw(M3_cap_screw, 35)</code></td>
|
|
<td align="left">Screw M3 cap x 35mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">4</td>
|
|
<td align="left"><code>screw(M3_dome_screw, 10)</code></td>
|
|
<td align="left">Screw M3 dome x 10mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">4</td>
|
|
<td align="left"><code>screw(M4_dome_screw, 16)</code></td>
|
|
<td align="left">Screw M4 dome x 16mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>sheet(PMMA6, 50, 50, 3)</code></td>
|
|
<td align="left">Sheet acrylic 50mm x 50mm x 6mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">8</td>
|
|
<td align="left"><code>washer(M3_washer)</code></td>
|
|
<td align="left">Washer M3 x 7mm x 0.5mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">8</td>
|
|
<td align="left"><code>washer(M4_washer)</code></td>
|
|
<td align="left">Washer M4 x 9mm x 0.8mm</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Printed</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">2</td>
|
|
<td align="left">door_hinge_6.stl</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">2</td>
|
|
<td align="left">door_hinge_stat.stl</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Door_latch"></a></p>
|
|
<h2>Door_latch</h2>
|
|
<p>Door latch for 6mm acrylic door for 3D printer. See <a href="#door_hinge">door_hinge</a>.</p>
|
|
<p><a href="door_latch.scad">door_latch.scad</a> Implementation.</p>
|
|
<p><a href="tests/door_latch.scad">tests/door_latch.scad</a> Code for this example.</p>
|
|
<h3>Functions</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>door_latch_offset()</code></td>
|
|
<td align="left">Offset of the axle from the door edge</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>door_latch_screw()</code></td>
|
|
<td align="left">The screw used for the axle</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>door_latch_assembly(sheet_thickness = 3)</code></td>
|
|
<td align="left">The assembly for a specified sheet thickess</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>door_latch_stl()</code></td>
|
|
<td align="left">Generates the STL for the printed part</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="door_latch" src="tests/png/door_latch.png" /></p>
|
|
<h3>Vitamins</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>nut(M4_nut, nyloc = true)</code></td>
|
|
<td align="left">Nut M4 nyloc</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>screw(M4_hex_screw, 20)</code></td>
|
|
<td align="left">Screw M4 hex x 20mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">2</td>
|
|
<td align="left"><code>washer(M4_washer)</code></td>
|
|
<td align="left">Washer M4 x 9mm x 0.8mm</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Printed</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">door_latch.stl</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Fan_guard"></a></p>
|
|
<h2>Fan_guard</h2>
|
|
<p>Pintable fan finger guard to match the specified fan. To be <code>include</code>d, not <code>use</code>d.</p>
|
|
<p>The ring spacing as well as the number of spokes can be specified, if zero a gasket is generated instead of a guard.</p>
|
|
<p><a href="fan_guard.scad">fan_guard.scad</a> Implementation.</p>
|
|
<p><a href="tests/fan_guard.scad">tests/fan_guard.scad</a> Code for this example.</p>
|
|
<h3>Functions</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>fan_guard_corner_r(type)</code></td>
|
|
<td align="left">Corner radius of the guard</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>fan_guard_thickness()</code></td>
|
|
<td align="left">Default thickness</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>fan_guard_width(type)</code></td>
|
|
<td align="left">Width of the guard</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>fan_guard(type, name = false, thickness = fan_guard_thickness()</code></td>
|
|
<td align="left">Generate the STL</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="fan_guard" src="tests/png/fan_guard.png" /></p>
|
|
<h3>Printed</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">fan_guard_120.stl</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">fan_guard_25.stl</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">fan_guard_30.stl</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">fan_guard_40.stl</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">fan_guard_50.stl</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">2</td>
|
|
<td align="left">fan_guard_60.stl</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">fan_guard_70.stl</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">2</td>
|
|
<td align="left">fan_guard_80.stl</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Fixing_block"></a></p>
|
|
<h2>Fixing_block</h2>
|
|
<p>Fixing block to mount two sheets at right angles using threaded inserts.
|
|
Defaults to M3 but other screw sizes can be specified provided they have inserts defined.</p>
|
|
<p>See <a href="#Butt_box">butt_box</a> for an example of usage.</p>
|
|
<p>Note that the block with its inserts is defined as a sub assembly, but its fasteners get added to the parent assembly.</p>
|
|
<p><a href="fixing_block.scad">fixing_block.scad</a> Implementation.</p>
|
|
<p><a href="tests/fixing_block.scad">tests/fixing_block.scad</a> Code for this example.</p>
|
|
<h3>Functions</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>fixing_block_depth(screw = def_screw)</code></td>
|
|
<td align="left">Depth given screw size</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>fixing_block_h_hole(screw = def_screw)</code></td>
|
|
<td align="left">Returns transform to position the horizontal screw</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>fixing_block_height(screw = def_screw)</code></td>
|
|
<td align="left">Height given screw size, same as depth</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>fixing_block_holes(screw)</code></td>
|
|
<td align="left">Returns a list of transforms to position all the screws</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>fixing_block_screw()</code></td>
|
|
<td align="left">Default screw type</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>fixing_block_v_holes(screw = def_screw)</code></td>
|
|
<td align="left">Returns a list of transforms to position the vertical screws</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>fixing_block_width(screw = def_screw)</code></td>
|
|
<td align="left">Width given screw size</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>fastened_fixing_block_assembly(thickness, screw = def_screw, screw2 = undef, thickness2 = undef)</code></td>
|
|
<td align="left">Assembly with fasteners in place</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>fixing_block(screw = def_screw)</code></td>
|
|
<td align="left">Generate the STL</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>fixing_block_assembly(screw = def_screw)</code></td>
|
|
<td align="left">Printed part with the inserts inserted</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>fixing_block_h_hole(screw = def_screw)</code></td>
|
|
<td align="left">Position children on the horizontal hole</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>fixing_block_h_hole_2D(screw = def_screw)</code></td>
|
|
<td align="left">Position 2D child on the horizontal hole</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>fixing_block_holes(screw = def_screw)</code></td>
|
|
<td align="left">Position children on all the holes</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>fixing_block_v_holes(screw = def_screw)</code></td>
|
|
<td align="left">Position children on the vertical holes</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="fixing_block" src="tests/png/fixing_block.png" /></p>
|
|
<h3>Vitamins</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">3</td>
|
|
<td align="left"><code>insert(F1BM)</code></td>
|
|
<td align="left">Heatfit insert M2</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">3</td>
|
|
<td align="left"><code>insert(F1BM2p5)</code></td>
|
|
<td align="left">Heatfit insert M2.5</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">3</td>
|
|
<td align="left"><code>insert(F1BM3)</code></td>
|
|
<td align="left">Heatfit insert M3</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">3</td>
|
|
<td align="left"><code>insert(F1BM4)</code></td>
|
|
<td align="left">Heatfit insert M4</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">3</td>
|
|
<td align="left"><code>screw(M2_cap_screw, 8)</code></td>
|
|
<td align="left">Screw M2 cap x 8mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">3</td>
|
|
<td align="left"><code>screw(M2p5_pan_screw, 10)</code></td>
|
|
<td align="left">Screw M2.5 pan x 10mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">3</td>
|
|
<td align="left"><code>screw(M3_dome_screw, 10)</code></td>
|
|
<td align="left">Screw M3 dome x 10mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">3</td>
|
|
<td align="left"><code>screw(M4_dome_screw, 16)</code></td>
|
|
<td align="left">Screw M4 dome x 16mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">3</td>
|
|
<td align="left"><code>washer(M2_washer)</code></td>
|
|
<td align="left">Washer M2 x 5mm x 0.3mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">3</td>
|
|
<td align="left"><code>washer(M2p5_washer)</code></td>
|
|
<td align="left">Washer M2.5 x 5.9mm x 0.5mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">3</td>
|
|
<td align="left"><code>washer(M3_washer)</code></td>
|
|
<td align="left">Washer M3 x 7mm x 0.5mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">3</td>
|
|
<td align="left"><code>washer(M4_washer)</code></td>
|
|
<td align="left">Washer M4 x 9mm x 0.8mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">3</td>
|
|
<td align="left"><code>star_washer(M2_washer)</code></td>
|
|
<td align="left">Washer star M2 x 0.3mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">3</td>
|
|
<td align="left"><code>star_washer(M2p5_washer)</code></td>
|
|
<td align="left">Washer star M2.5 x 0.5mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">3</td>
|
|
<td align="left"><code>star_washer(M3_washer)</code></td>
|
|
<td align="left">Washer star M3 x 0.5mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">3</td>
|
|
<td align="left"><code>star_washer(M4_washer)</code></td>
|
|
<td align="left">Washer star M4 x 0.8mm</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Printed</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">fixing_block_M20.stl</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">fixing_block_M25.stl</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">fixing_block_M30.stl</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">fixing_block_M40.stl</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Assemblies</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">fixing_block_M20_assembly</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">fixing_block_M25_assembly</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">fixing_block_M30_assembly</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">fixing_block_M40_assembly</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Foot"></a></p>
|
|
<h2>Foot</h2>
|
|
<p>Customisable printed rubber feet for equipment cases. The insert variant is better for solid feet because
|
|
inserts don't grip well in rubber.</p>
|
|
<p><a href="foot.scad">foot.scad</a> Implementation.</p>
|
|
<p><a href="tests/foot.scad">tests/foot.scad</a> Code for this example.</p>
|
|
<h3>Properties</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>foot_diameter(type = foot)</code></td>
|
|
<td align="left">Outside maximum diameter</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>foot_height(type = foot)</code></td>
|
|
<td align="left">Total height</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>foot_rad(type = foot)</code></td>
|
|
<td align="left">Rounded corner radius</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>foot_screw(type = foot)</code></td>
|
|
<td align="left">Screw type</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>foot_slant(type = foot)</code></td>
|
|
<td align="left">Taper angle</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>foot_thickness(type = foot)</code></td>
|
|
<td align="left">Thickness under the screw</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Functions</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>foot()</code></td>
|
|
<td align="left">Default foot used unless a list of parameters is passed</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>insert_foot()</code></td>
|
|
<td align="left">Default foot with insert</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>fastened_insert_foot_assembly(t = 3, type = insert_foot)</code></td>
|
|
<td align="left">Assembly with fasteners in place for specified sheet thickness</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>foot(type = foot)</code></td>
|
|
<td align="left">Generate STL</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>foot_assembly(t = 0, type = foot)</code></td>
|
|
<td align="left">Assembly with fasteners in place for specified sheet thickness</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>insert_foot(type = insert_foot)</code></td>
|
|
<td align="left">Generate STL for foot with insert</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>insert_foot_assembly(type = insert_foot)</code></td>
|
|
<td align="left">Printed part with insert in place</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="foot" src="tests/png/foot.png" /></p>
|
|
<h3>Vitamins</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>insert(F1BM3)</code></td>
|
|
<td align="left">Heatfit insert M3</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>nut(M4_nut, nyloc = true)</code></td>
|
|
<td align="left">Nut M4 nyloc</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>screw(M3_cap_screw, 8)</code></td>
|
|
<td align="left">Screw M3 cap x 8mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>screw(M4_cap_screw, 16)</code></td>
|
|
<td align="left">Screw M4 cap x 16mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>washer(M3_washer)</code></td>
|
|
<td align="left">Washer M3 x 7mm x 0.5mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">2</td>
|
|
<td align="left"><code>washer(M4_washer)</code></td>
|
|
<td align="left">Washer M4 x 9mm x 0.8mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>star_washer(M3_washer)</code></td>
|
|
<td align="left">Washer star M3 x 0.5mm</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Printed</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">foot.stl</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">insert_foot.stl</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Assemblies</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">insert_foot_assembly</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Handle"></a></p>
|
|
<h2>Handle</h2>
|
|
<p>Printed handle that can be printed without needing support material due to its truncated teardrop profile.</p>
|
|
<p><a href="handle.scad">handle.scad</a> Implementation.</p>
|
|
<p><a href="tests/handle.scad">tests/handle.scad</a> Code for this example.</p>
|
|
<h3>Functions</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>handle_height()</code></td>
|
|
<td align="left">Total height</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>handle_length()</code></td>
|
|
<td align="left">Outside length</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>handle_screw()</code></td>
|
|
<td align="left">The screw type</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>handle_width()</code></td>
|
|
<td align="left">The width, i.e. diameter</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>handle_assembly()</code></td>
|
|
<td align="left">Printed part with inserts in place</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>handle_fastened_assembly(thickness)</code></td>
|
|
<td align="left">Assembly with fasteners in place</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>handle_holes(h = 100)</code></td>
|
|
<td align="left">Drills holes for the screws</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>handle_screw_positions()</code></td>
|
|
<td align="left">Position children at the screw positions</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>handle_stl()</code></td>
|
|
<td align="left">generate the STL</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="handle" src="tests/png/handle.png" /></p>
|
|
<h3>Vitamins</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">2</td>
|
|
<td align="left"><code>insert(F1BM4)</code></td>
|
|
<td align="left">Heatfit insert M4</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">2</td>
|
|
<td align="left"><code>screw(M4_cap_screw, 16)</code></td>
|
|
<td align="left">Screw M4 cap x 16mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">2</td>
|
|
<td align="left"><code>washer(M4_washer)</code></td>
|
|
<td align="left">Washer M4 x 9mm x 0.8mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">2</td>
|
|
<td align="left"><code>star_washer(M4_washer)</code></td>
|
|
<td align="left">Washer star M4 x 0.8mm</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Printed</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">handle.stl</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Assemblies</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">handle_assembly</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Ribbon_clamp"></a></p>
|
|
<h2>Ribbon_clamp</h2>
|
|
<p>Clamp for ribbon cable and polypropylene strip.</p>
|
|
<p><a href="ribbon_clamp.scad">ribbon_clamp.scad</a> Implementation.</p>
|
|
<p><a href="tests/ribbon_clamp.scad">tests/ribbon_clamp.scad</a> Code for this example.</p>
|
|
<h3>Functions</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>ribbon_clamp_height()</code></td>
|
|
<td align="left">Height</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>ribbon_clamp_hole_pitch(ways)</code></td>
|
|
<td align="left">Hole pitch</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>ribbon_clamp_length(ways)</code></td>
|
|
<td align="left">Length given ways</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>ribbon_clamp_width()</code></td>
|
|
<td align="left">Width</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>ribbon_clamp(ways)</code></td>
|
|
<td align="left">Generate STL for given number of ways</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>ribbon_clamp_assembly(ways)</code></td>
|
|
<td align="left">Printed part with inserts in place</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>ribbon_clamp_fastened_assembly(ways, thickness, screw = screw)</code></td>
|
|
<td align="left">Clamp with fasteners in place</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>ribbon_clamp_hole_positions(ways, side = undef)</code></td>
|
|
<td align="left">Place children at hole positions</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>ribbon_clamp_holes(ways, h = 20)</code></td>
|
|
<td align="left">Drill screw holes</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="ribbon_clamp" src="tests/png/ribbon_clamp.png" /></p>
|
|
<h3>Vitamins</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">2</td>
|
|
<td align="left"><code>insert(F1BM3)</code></td>
|
|
<td align="left">Heatfit insert M3</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"></td>
|
|
<td align="left">Ribbon cable 20 way 100mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">2</td>
|
|
<td align="left"><code>screw(M3_cap_screw, 10)</code></td>
|
|
<td align="left">Screw M3 cap x 10mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"></td>
|
|
<td align="left">Tape self amalgamating silicone 26 x 25mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">2</td>
|
|
<td align="left"><code>washer(M3_washer)</code></td>
|
|
<td align="left">Washer M3 x 7mm x 0.5mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">2</td>
|
|
<td align="left"><code>star_washer(M3_washer)</code></td>
|
|
<td align="left">Washer star M3 x 0.5mm</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Printed</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">ribbon_clamp_20.stl</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Assemblies</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">ribbon_clamp_20_assembly</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Screw_knob"></a></p>
|
|
<h2>Screw_knob</h2>
|
|
<p>Knob with embedded hex head screw.</p>
|
|
<p><a href="screw_knob.scad">screw_knob.scad</a> Implementation.</p>
|
|
<p><a href="tests/screw_knob.scad">tests/screw_knob.scad</a> Code for this example.</p>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>screw_knob(screw)</code></td>
|
|
<td align="left">Generate the STL foe a knob to fit the specified hex screw</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>screw_knob_assembly(screw, length)</code></td>
|
|
<td align="left">Assembly with the screw in place</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="screw_knob" src="tests/png/screw_knob.png" /></p>
|
|
<h3>Vitamins</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>screw(M3_hex_screw, 16)</code></td>
|
|
<td align="left">Screw M3 hex x 16mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>screw(M4_hex_screw, 16)</code></td>
|
|
<td align="left">Screw M4 hex x 16mm</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Printed</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">screw_knob_M30.stl</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">screw_knob_M40.stl</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Assemblies</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">screw_knob_M30_16_assembly</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">screw_knob_M40_16_assembly</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Socket_box"></a></p>
|
|
<h2>Socket_box</h2>
|
|
<p>UK 13A socket and printed backbox with earth terminal for the panel it is mounted on.</p>
|
|
<p><a href="socket_box.scad">socket_box.scad</a> Implementation.</p>
|
|
<p><a href="tests/socket_box.scad">tests/socket_box.scad</a> Code for this example.</p>
|
|
<h3>Functions</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>socket_box_depth()</code></td>
|
|
<td align="left">Outside depth of the backbox</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>socket_box(type)</code></td>
|
|
<td align="left">Generate STL of the backbox for the specified socket</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>socket_box_assembly(type)</code></td>
|
|
<td align="left">The box with inserts fitted</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>socket_box_fastened_assembly(type, thickness)</code></td>
|
|
<td align="left">The socket and backbox on each side of the specified panel thickness</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="socket_box" src="tests/png/socket_box.png" /></p>
|
|
<h3>Vitamins</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">4</td>
|
|
<td align="left"><code>insert(F1BM3)</code></td>
|
|
<td align="left">Heatfit insert M3</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>mains_socket(Contactum)</code></td>
|
|
<td align="left">Mains socket 13A</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>mains_socket(MKLOGIC)</code></td>
|
|
<td align="left">Mains socket 13A, switched</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">2</td>
|
|
<td align="left"><code>nut(M3_nut, nyloc = true)</code></td>
|
|
<td align="left">Nut M3 nyloc</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">2</td>
|
|
<td align="left"><code>ring_terminal(M3_ringterm)</code></td>
|
|
<td align="left">Ring terminal 3mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">4</td>
|
|
<td align="left"><code>screw(M3_cs_cap_screw, 20)</code></td>
|
|
<td align="left">Screw M3 cs cap x 20mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">2</td>
|
|
<td align="left"><code>screw(M3_dome_screw, 10)</code></td>
|
|
<td align="left">Screw M3 dome x 10mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">4</td>
|
|
<td align="left"><code>star_washer(M3_washer)</code></td>
|
|
<td align="left">Washer star M3 x 0.5mm</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Printed</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">socket_box_Contactum.stl</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">socket_box_MKLOGIC.stl</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Assemblies</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">socket_box_Contactum_assembly</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">socket_box_MKLOGIC_assembly</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Strap_handle"></a></p>
|
|
<h2>Strap_handle</h2>
|
|
<p>Retracting strap handle. Print the strap with flexible filament. Shown with default dimensions but can
|
|
be fully customised by passing a list of properties.</p>
|
|
<p><a href="strap_handle.scad">strap_handle.scad</a> Implementation.</p>
|
|
<p><a href="tests/strap_handle.scad">tests/strap_handle.scad</a> Code for this example.</p>
|
|
<h3>Properties</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>strap_extension(type = strap)</code></td>
|
|
<td align="left">How much length of the strap that can pull out</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>strap_panel(type = strap)</code></td>
|
|
<td align="left">Panel thickness</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>strap_screw(type = strap)</code></td>
|
|
<td align="left">Screw type</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>strap_thickness(type = strap)</code></td>
|
|
<td align="left">Thickness of strap</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>strap_width(type = strap)</code></td>
|
|
<td align="left">Width of strap</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Functions</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>strap_end_width(type = strap)</code></td>
|
|
<td align="left">Width of the ends</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>strap_height(type)</code></td>
|
|
<td align="left">Height of the ends</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>strap_insert(type)</code></td>
|
|
<td align="left">The insert type</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>strap(length, type = strap)</code></td>
|
|
<td align="left">Generate the STL for the rubber strap</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>strap_assembly(length, type = strap)</code></td>
|
|
<td align="left">Assembly with screws in place</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>strap_end(type = strap)</code></td>
|
|
<td align="left">Generate the STL for end piece</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>strap_holes(length, type = strap, h = 100)</code></td>
|
|
<td align="left">The panel cut outs</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>strap_screw_positions(length, type = strap)</code></td>
|
|
<td align="left">Place children at the screw positions</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="strap_handle" src="tests/png/strap_handle.png" /></p>
|
|
<h3>Vitamins</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">2</td>
|
|
<td align="left"><code>insert(F1BM3)</code></td>
|
|
<td align="left">Heatfit insert M3</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">2</td>
|
|
<td align="left"><code>screw(M3_pan_screw, 8)</code></td>
|
|
<td align="left">Screw M3 pan x 8mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">2</td>
|
|
<td align="left"><code>washer(M3_penny_washer)</code></td>
|
|
<td align="left">Washer penny M3 x 12mm x 0.8mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">2</td>
|
|
<td align="left"><code>star_washer(M3_washer)</code></td>
|
|
<td align="left">Washer star M3 x 0.5mm</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Printed</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">strap.stl</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">2</td>
|
|
<td align="left">strap_end.stl</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Assemblies</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">2</td>
|
|
<td align="left">strap_end_assembly</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Annotation"></a></p>
|
|
<h2>Annotation</h2>
|
|
<p>Annotation used in this documentation</p>
|
|
<p><a href="utils/annotation.scad">utils/annotation.scad</a> Implementation.</p>
|
|
<p><a href="tests/annotation.scad">tests/annotation.scad</a> Code for this example.</p>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>arrow(length = 20)</code></td>
|
|
<td align="left">Draw an arrow that faces downwards</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>label(str, scale = 0.25, valign = "baseline", halign = "left")</code></td>
|
|
<td align="left">Draw text that always faces the camera</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="annotation" src="tests/png/annotation.png" /></p>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Bezier"></a></p>
|
|
<h2>Bezier</h2>
|
|
<p>Bezier curves and function to get and adjust the length or minimum z point.</p>
|
|
<p><a href="utils/bezier.scad">utils/bezier.scad</a> Implementation.</p>
|
|
<p><a href="tests/bezier.scad">tests/bezier.scad</a> Code for this example.</p>
|
|
<h3>Functions</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>adjust_bezier_length(v, l, eps = 0.001, r1 = 1.0, r2 = 1.5, l1, l2)</code></td>
|
|
<td align="left">Adjust Bezier control points <code>v</code> to get the required curve length <code>l</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>adjust_bezier_z(v, z, eps = 0.001, r1 = 1, r2 = 1.5, z1, z2)</code></td>
|
|
<td align="left">Adjust Bezier control points <code>v</code> to get the required minimum <code>z</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>bezier(t, v)</code></td>
|
|
<td align="left">Returns a point at distance <code>t</code> [0 - 1] along the curve with control points <code>v</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>bezier_length(v, delta = 0.01, t = 0, length = 0)</code></td>
|
|
<td align="left">Calculate the length of a Bezier curve from control points <code>v</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>bezier_min_z(v, steps = 100, z = inf, i = 0)</code></td>
|
|
<td align="left">Calculate the minimum z coordinate of a Bezier curve from control points <code>v</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>bezier_path(v, steps = 100)</code></td>
|
|
<td align="left">Returns a Bezier path from control points <code>v</code> with <code>steps</code> segments</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="bezier" src="tests/png/bezier.png" /></p>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Dogbones"></a></p>
|
|
<h2>Dogbones</h2>
|
|
<p>When square holes are cut with a CNC bit they get rounded corners. If it is important that
|
|
a square cornered part fits in the hole then circles are placed in the corners making a bone shape.</p>
|
|
<p><a href="utils/dogbones.scad">utils/dogbones.scad</a> Implementation.</p>
|
|
<p><a href="tests/dogbones.scad">tests/dogbones.scad</a> Code for this example.</p>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>dogbone_rectangle(size, r = cnc_bit_r, center = true, xy_center = true)</code></td>
|
|
<td align="left">Rectangle with cylinders at the corners</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>dogbone_square(size, r = cnc_bit_r, center = true)</code></td>
|
|
<td align="left">Square with circles at the corners</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="dogbones" src="tests/png/dogbones.png" /></p>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Fillet"></a></p>
|
|
<h2>Fillet</h2>
|
|
<p>Rounded fillet for adding to corners.</p>
|
|
<p><a href="utils/fillet.scad">utils/fillet.scad</a> Implementation.</p>
|
|
<p><a href="tests/fillet.scad">tests/fillet.scad</a> Code for this example.</p>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>fillet(r, h, center = false)</code></td>
|
|
<td align="left">Fillet with specified radius and height</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="fillet" src="tests/png/fillet.png" /></p>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Hanging_hole"></a></p>
|
|
<h2>Hanging_hole</h2>
|
|
<p>Method to print holes in mid air. See <a href="https://hydraraptor.blogspot.com/2014/03/buried-nuts-and-hanging-holes.html">https://hydraraptor.blogspot.com/2014/03/buried-nuts-and-hanging-holes.html</a></p>
|
|
<p><a href="utils/hanging_hole.scad">utils/hanging_hole.scad</a> Implementation.</p>
|
|
<p><a href="tests/hanging_hole.scad">tests/hanging_hole.scad</a> Code for this example.</p>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>hanging_hole(z, ir, h = 100, h2 = 100)</code></td>
|
|
<td align="left">Hole radius <code>ir</code> hanging at the specified <code>z</code> value above a void who's shape is given by a 2D child</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="hanging_hole" src="tests/png/hanging_hole.png" /></p>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Layout"></a></p>
|
|
<h2>Layout</h2>
|
|
<p>Layout objects in a line with equal gaps given a vector of their widths.</p>
|
|
<p><a href="utils/layout.scad">utils/layout.scad</a> Implementation.</p>
|
|
<p><a href="tests/layout.scad">tests/layout.scad</a> Code for this example.</p>
|
|
<h3>Functions</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>layout_offset(widths, i, gap = 2)</code></td>
|
|
<td align="left">Calculate the offset for the <code>i</code>th item</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>layout(widths, gap = 2, no_offset = false)</code></td>
|
|
<td align="left">Layout children passing <code>$i</code></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="layout" src="tests/png/layout.png" /></p>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Maths"></a></p>
|
|
<h2>Maths</h2>
|
|
<p>Maths utilities for minapulating vectors and matrices.</p>
|
|
<p><a href="utils/maths.scad">utils/maths.scad</a> Implementation.</p>
|
|
<p><a href="tests/maths.scad">tests/maths.scad</a> Code for this example.</p>
|
|
<h3>Functions</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>identity(n, x = 1)</code></td>
|
|
<td align="left">Construct an arbitrary size identity matrix</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>reverse(v)</code></td>
|
|
<td align="left">Reverse a vector</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>rotate(a, v)</code></td>
|
|
<td align="left">Generate a 4x4 rotation matrix, <code>a</code> can be a vector of three angles or a single angle around <code>z</code>, or around axis <code>v</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>scale(v)</code></td>
|
|
<td align="left">Generate a 4x4 matrix that scales by <code>v</code>, which can be a vector of xyz factors or a scalar to scale all axes equally</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>transform(v, m)</code></td>
|
|
<td align="left">Apply 4x4 transform to a 3 vector by extending it and cropping it again</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>transform_points(path, m)</code></td>
|
|
<td align="left">Apply transform to a path</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>translate(v)</code></td>
|
|
<td align="left">Generate a 4x4 translation matrix, <code>v</code> can be <code>[x, y]</code>, <code>[x, y, z]</code> or <code>z</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>transpose(m)</code></td>
|
|
<td align="left">Transpose an arbitrary size matrix</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>unit(v)</code></td>
|
|
<td align="left">Convert <code>v</code> to a unit vector</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>vec3(v)</code></td>
|
|
<td align="left">Return a 3 vector with the first three elements of <code>v</code></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="maths" src="tests/png/maths.png" /></p>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Offset"></a></p>
|
|
<h2>Offset</h2>
|
|
<p>3D offset using <code>minkowski</code> with a <code>sphere</code>, so very slow if <code>$fn</code> is not kept small. The offset can be positive or negative.</p>
|
|
<p>Can be used to round corners. Positive offsets will round convex corners, negative offsets round concave corners. To round both use <a href="#round"><code>round_3D()</code></a>.</p>
|
|
<p>If <code>chamfer_base</code> is true then the bottom edge is made suitable for 3D printing by chamfering when the angle gets shallower than 45 degrees.</p>
|
|
<p><a href="utils/offset.scad">utils/offset.scad</a> Implementation.</p>
|
|
<p><a href="tests/offset.scad">tests/offset.scad</a> Code for this example.</p>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>offset_3D(r, chamfer_base = false)</code></td>
|
|
<td align="left">Offset 3D shape by specified radius <code>r</code>, positive or negative.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="offset" src="tests/png/offset.png" /></p>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Quadrant"></a></p>
|
|
<h2>Quadrant</h2>
|
|
<p>Square with one rounded corner.</p>
|
|
<p><a href="utils/quadrant.scad">utils/quadrant.scad</a> Implementation.</p>
|
|
<p><a href="tests/quadrant.scad">tests/quadrant.scad</a> Code for this example.</p>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>quadrant(w, r, center = false)</code></td>
|
|
<td align="left">Draw a square with one rounded corner, can be centered on the arc centre, when <code>center</code> is <code>true</code>.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="quadrant" src="tests/png/quadrant.png" /></p>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Round"></a></p>
|
|
<h2>Round</h2>
|
|
<p>Round 2D shapes uisng <code>offset()</code>, which is fast and 3D shapes with <a href="#offset"><code>offset_3D()</code></a>, which is very slow.</p>
|
|
<p>A single radius can be specified or separate internal and external radii.
|
|
If <code>chamfer_base</code> is <code>true</code> for <code>round_3D()</code> then the bottom edge is made suitable for 3D printing by chamfering once the
|
|
the angle gets shallower than 45 degrees.</p>
|
|
<p><a href="utils/round.scad">utils/round.scad</a> Implementation.</p>
|
|
<p><a href="tests/round.scad">tests/round.scad</a> Code for this example.</p>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>round(r, ir = undef, or = undef)</code></td>
|
|
<td align="left">Round a 2D child, single radius or separate inside and outside radii</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>round_3D(r, ir = undef, or = undef, chamfer_base = false)</code></td>
|
|
<td align="left">Round a 3D child single radius or separate inside and outside radii</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="round" src="tests/png/round.png" /></p>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Rounded_cylinder"></a></p>
|
|
<h2>Rounded_cylinder</h2>
|
|
<p>Cylinder with a rounded end.</p>
|
|
<p><a href="utils/rounded_cylinder.scad">utils/rounded_cylinder.scad</a> Implementation.</p>
|
|
<p><a href="tests/rounded_cylinder.scad">tests/rounded_cylinder.scad</a> Code for this example.</p>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>rounded_corner(r, h, r2, ir = 0)</code></td>
|
|
<td align="left">2D version</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>rounded_cylinder(r, h, r2, ir = 0, angle = 360)</code></td>
|
|
<td align="left">Rounded cylinder given radius <code>r</code>, height <code>h</code>, optional internal radius <code>ir</code> and optional <code>angle</code></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="rounded_cylinder" src="tests/png/rounded_cylinder.png" /></p>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Rounded_polygon"></a></p>
|
|
<h2>Rounded_polygon</h2>
|
|
<p>Draw a polygon with rounded corners. Each element of the vector is the XY coordinate and a radius. Radius can be negative for a concave corner.</p>
|
|
<p>Because the tangents need to be calculated to find the length these can be calculated separately and re-used when drawing to save calculating them twice.</p>
|
|
<p><a href="utils/rounded_polygon.scad">utils/rounded_polygon.scad</a> Implementation.</p>
|
|
<p><a href="tests/rounded_polygon.scad">tests/rounded_polygon.scad</a> Code for this example.</p>
|
|
<h3>Functions</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>rounded_polygon_length(points, tangents)</code></td>
|
|
<td align="left">Calculate the length given the point list and the list of tangents computed by <code>rounded_polygon_tangents</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>rounded_polygon_tangents(points)</code></td>
|
|
<td align="left">Compute the straight sections needed to draw and to compute the lengths</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>rounded_polygon(points, _tangents = undef)</code></td>
|
|
<td align="left">Draw the rounded polygon from the point list, can pass the tangent list to save it being calculated</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="rounded_polygon" src="tests/png/rounded_polygon.png" /></p>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Sector"></a></p>
|
|
<h2>Sector</h2>
|
|
<p>A sector of a circle between two angles.</p>
|
|
<p><a href="utils/sector.scad">utils/sector.scad</a> Implementation.</p>
|
|
<p><a href="tests/sector.scad">tests/sector.scad</a> Code for this example.</p>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>sector(r, start_angle, end_angle)</code></td>
|
|
<td align="left">Create specified sector given radius <code>r</code>, <code>start_angle</code> and <code>end_angle</code></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="sector" src="tests/png/sector.png" /></p>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Sweep"></a></p>
|
|
<h2>Sweep</h2>
|
|
<p>Utility to generate a polhedron by sweeping a 2D profile along a 3D path and utilities for generating paths.</p>
|
|
<p>The initial orientation is the Y axis of the profile points towards the initial center of curvature, Frenet-Serret style.
|
|
This means the first three points must not be colinear. Subsequent rotations use the minimum rotation method.</p>
|
|
<p>The path can be open or closed. If closed sweep ensures that the start and end have the same rotation to line up.
|
|
An additional twist around the path can be specified. If the path is closed this should be a multiple of 360.</p>
|
|
<p><a href="utils/sweep.scad">utils/sweep.scad</a> Implementation.</p>
|
|
<p><a href="tests/sweep.scad">tests/sweep.scad</a> Code for this example.</p>
|
|
<h3>Functions</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>after(path1, path2)</code></td>
|
|
<td align="left">Translate <code>path2</code> so its start meets the end of <code>path1</code> and then concatenate</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>arc_points(r, a = [90, 0, 180], al = 90)</code></td>
|
|
<td align="left">Generate the points of a circular arc</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>before(path1, path2)</code></td>
|
|
<td align="left">Translate <code>path1</code> so its end meets the start of <code>path2</code> and then concatenate</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>circle_points(r = 1, z = 0)</code></td>
|
|
<td align="left">Generate the points of a circle, setting z makes a single turn spiral</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>path_length(path, i = 0, length = 0)</code></td>
|
|
<td align="left">Calculated the length along a path</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>rectangle_points(w, h)</code></td>
|
|
<td align="left">Generate the points of a rectangle</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>sweep(path, profile, loop = false, twist = 0)</code></td>
|
|
<td align="left">Generate the point list and face list of the swept volume</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>sweep(path, profile, loop = false, twist = 0)</code></td>
|
|
<td align="left">Draw a polyhedron that is the swept volume</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="sweep" src="tests/png/sweep.png" /></p>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Tube"></a></p>
|
|
<h2>Tube</h2>
|
|
<p>Simple tube or ring</p>
|
|
<p><a href="utils/tube.scad">utils/tube.scad</a> Implementation.</p>
|
|
<p><a href="tests/tube.scad">tests/tube.scad</a> Code for this example.</p>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>ring(or, ir)</code></td>
|
|
<td align="left">Create a ring with specified external and internal radii</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>tube(or, ir, h, center = true)</code></td>
|
|
<td align="left">Create a tube with specified external and internal radii and height <code>h</code></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="tube" src="tests/png/tube.png" /></p>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Bom"></a></p>
|
|
<h2>Bom</h2>
|
|
<p>Bill Of Materials generation via echo and the <code>bom.py</code> script. Also handles exploded assembly views and posing. Assembly instructions can precede the module
|
|
definition that makes the assembly.</p>
|
|
<p>The example below shows how to define a vitamin and incorporate it into an assembly with sub-assemblies and make an exploded view. The resulting flat BOM is shown but
|
|
heirachical BOMs are also generated for real projects.</p>
|
|
<p><a href="utils/core/bom.scad">utils/core/bom.scad</a> Implementation.</p>
|
|
<p><a href="tests/bom.scad">tests/bom.scad</a> Code for this example.</p>
|
|
<h3>Functions</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>arg(value, default, name = "")</code></td>
|
|
<td align="left">Create string for arg if not default, helper for <code>vitamin()</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>bom_mode(n = 1)</code></td>
|
|
<td align="left">Current BOM mode, 0 = none, 1 = printed and routed parts and assemblies, 2 includes vitamins as well</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>exploded()</code></td>
|
|
<td align="left">Returns the value of <code>$exploded</code> if it is defined, else <code>0</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>show_supports()</code></td>
|
|
<td align="left">True if printed support material should be shown</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>value_string(value)</code></td>
|
|
<td align="left">Convert <code>value</code> to a string or quote it if it is already a string</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>assembly(name)</code></td>
|
|
<td align="left">Name an assembly that will appear on the BOM, there needs to a module named <code><name>_assembly</code> to make it</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>dxf(name)</code></td>
|
|
<td align="left">Name a dxf that will appear on the BOM, there needs to a module named <code><name>_dxf</code> to make it</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>explode(d, explode_children = false, offset = [0,0,0])</code></td>
|
|
<td align="left">Explode children by specified Z distance or vector <code>d</code>, option to explode grand children</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>hidden()</code></td>
|
|
<td align="left">Make item invisible, except on the BOM</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>no_explode()</code></td>
|
|
<td align="left">Prevent children being exploded</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>no_pose()</code></td>
|
|
<td align="left">Force children not to be posed even if parent is</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>not_on_bom(on = false)</code></td>
|
|
<td align="left">Specify the following child parts are not on the BOM, for example when they are on a PCB that comes assembled</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>pose(a = [55, 0, 25], t = [0, 0, 0], exploded = undef)</code></td>
|
|
<td align="left">Pose an STL or assembly for rendering to png by specifying rotation <code>a</code> and translation <code>t</code>, <code>exploded = true for</code> just the exploded view or <code>false</code> for unexploded only.</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>stl(name)</code></td>
|
|
<td align="left">Name an stl that will appear on the BOM, there needs to a module named <code><name>_stl</code> to make it</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>vitamin(description)</code></td>
|
|
<td align="left">Describe a vitamin for the BOM entry and precede it with a module call that creates it, eg. "wigit(42): Type 42 widget"</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="bom" src="tests/png/bom.png" /></p>
|
|
<h3>Vitamins</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>insert(F1BM3)</code></td>
|
|
<td align="left">Heatfit insert M3</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>widget(3)</code></td>
|
|
<td align="left">Rivit like thing for 3mm sheets</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>screw(M3_cap_screw, 8)</code></td>
|
|
<td align="left">Screw M3 cap x 8mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>sheet(PMMA3, 20, 20, 1)</code></td>
|
|
<td align="left">Sheet acrylic 20mm x 20mm x 3mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>washer(M3_washer)</code></td>
|
|
<td align="left">Washer M3 x 7mm x 0.5mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>star_washer(M3_washer)</code></td>
|
|
<td align="left">Washer star M3 x 0.5mm</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Printed</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">widget.stl</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Routed</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">widget.dxf</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Assemblies</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">widget_top_assembly</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">widgit_base_assembly</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left">wigdit_assembly</td>
|
|
<td align="left"></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Clip"></a></p>
|
|
<h2>Clip</h2>
|
|
<p>Construct arbirarily large box to partition 3D space and clip objects, useful for creating cross sections to see the inside when debugging.</p>
|
|
<p>Original version by Doug Moen on the OpenSCAD forum</p>
|
|
<p><a href="utils/core/clip.scad">utils/core/clip.scad</a> Implementation.</p>
|
|
<p><a href="tests/clip.scad">tests/clip.scad</a> Code for this example.</p>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>box(xmin, ymin, zmin, xmax, ymax, zmax)</code></td>
|
|
<td align="left">Construct a box given its bounds</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>clip(xmin = -inf, ymin = -inf, zmin = -inf, xmax = inf, ymax = inf, zmax = inf)</code></td>
|
|
<td align="left">Clip child to specified boundaries</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="clip" src="tests/png/clip.png" /></p>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Global"></a></p>
|
|
<h2>Global</h2>
|
|
<p>Global constants, functions and modules. This file is used directly or indirectly in every scad file.</p>
|
|
<p><a href="utils/core/global.scad">utils/core/global.scad</a> Implementation.</p>
|
|
<p><a href="tests/global.scad">tests/global.scad</a> Code for this example.</p>
|
|
<h3>Functions</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>Len(x)</code></td>
|
|
<td align="left">Returns the length of a list or 0 if <code>x</code> is not a list</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>echoit(x)</code></td>
|
|
<td align="left">Echo expression and return it, useful for debugging</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>in(list, x)</code></td>
|
|
<td align="left">Returns true if <code>x</code> is an element in the <code>list</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>inch(x)</code></td>
|
|
<td align="left">Inch to mm conversion</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>r2sides(r)</code></td>
|
|
<td align="left">Replicates the OpenSCAD logic to calculate the number of sides from the radius</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>r2sides4n(r)</code></td>
|
|
<td align="left">Round up the number of sides to a multiple of 4 to ensure points land on all axes</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>sqr(x)</code></td>
|
|
<td align="left">Returns the square of <code>x</code></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>circle4n(r, d = undef)</code></td>
|
|
<td align="left">Circle with multiple of 4 vertices</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>ellipse(xr, yr)</code></td>
|
|
<td align="left">Draw an ellipse</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>extrude_if(h, center = true)</code></td>
|
|
<td align="left">Extrudes 2D object to 3D when <code>h</code> is nonzero, otherwise leaves it 2D</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>semi_circle(r, d = undef)</code></td>
|
|
<td align="left">A semi circle in the positive Y domain</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>translate_z(z)</code></td>
|
|
<td align="left">Shortcut for Z only translations</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>vflip()</code></td>
|
|
<td align="left">Invert children by doing a 180 flip around the X axis</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="global" src="tests/png/global.png" /></p>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Polyholes"></a></p>
|
|
<h2>Polyholes</h2>
|
|
<p>A method of making 3D printed holes come out the right size regardless of the printer, providing
|
|
it gets the linear dimensions right. See <a href="https://hydraraptor.blogspot.com/2011/02/polyholes.html">https://hydraraptor.blogspot.com/2011/02/polyholes.html</a></p>
|
|
<p>The module provides <code>poly_circle()</code>, <code>poly_cylinder()</code> and <code>poly_ring()</code> that is useful for making printed washers and pillars.</p>
|
|
<p><a href="utils/core/polyholes.scad">utils/core/polyholes.scad</a> Implementation.</p>
|
|
<p><a href="tests/polyholes.scad">tests/polyholes.scad</a> Code for this example.</p>
|
|
<h3>Functions</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>corrected_diameter(d, n = 0)</code></td>
|
|
<td align="left">Adjusted diameter to make flats lie on the circle</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>corrected_radius(r, n = 0)</code></td>
|
|
<td align="left">Adjusted radius to make flats lie on the circle</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>sides(r)</code></td>
|
|
<td align="left">Optimium number of sides for specified radius</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>drill(r, h = 100)</code></td>
|
|
<td align="left">Make a cylinder for drilling holes suitable for CNC routing, set h = 0 for circle</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>poly_circle(r, sides = 0)</code></td>
|
|
<td align="left">Make a circle adjusted to print the correct size</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>poly_cylinder(r, h, center = false, sides = 0)</code></td>
|
|
<td align="left">Make a cylinder adjusted to print the correct size</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>poly_ring(or, ir)</code></td>
|
|
<td align="left">Make a 2D ring adjusted to have the correct internal radius</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>slot(r, l, h = 100)</code></td>
|
|
<td align="left">Make a horizontal slot suitable for CNC routing, set h = 0 for 2D version</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="polyholes" src="tests/png/polyholes.png" /></p>
|
|
<h3>Vitamins</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="right"></th>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>sheet(Steel06, 20, 20, 1)</code></td>
|
|
<td align="left">Sheet mild steel 20mm x 20mm x 0.6mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>rod(1.5, 11)</code></td>
|
|
<td align="left">Smooth rod 1.5mm x 11mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>rod(10.5, 47)</code></td>
|
|
<td align="left">Smooth rod 10.5mm x 47mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>rod(10, 45)</code></td>
|
|
<td align="left">Smooth rod 10mm x 45mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>rod(1, 9)</code></td>
|
|
<td align="left">Smooth rod 1mm x 9mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>rod(2.5, 15)</code></td>
|
|
<td align="left">Smooth rod 2.5mm x 15mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>rod(2, 13)</code></td>
|
|
<td align="left">Smooth rod 2mm x 13mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>rod(3.5, 19)</code></td>
|
|
<td align="left">Smooth rod 3.5mm x 19mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>rod(3, 17)</code></td>
|
|
<td align="left">Smooth rod 3mm x 17mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">4</td>
|
|
<td align="left"><code>rod(3, 3)</code></td>
|
|
<td align="left">Smooth rod 3mm x 3mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>rod(4.5, 23)</code></td>
|
|
<td align="left">Smooth rod 4.5mm x 23mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>rod(4, 21)</code></td>
|
|
<td align="left">Smooth rod 4mm x 21mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>rod(5.5, 27)</code></td>
|
|
<td align="left">Smooth rod 5.5mm x 27mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>rod(5, 25)</code></td>
|
|
<td align="left">Smooth rod 5mm x 25mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>rod(6.5, 31)</code></td>
|
|
<td align="left">Smooth rod 6.5mm x 31mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>rod(6, 29)</code></td>
|
|
<td align="left">Smooth rod 6mm x 29mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>rod(7.5, 35)</code></td>
|
|
<td align="left">Smooth rod 7.5mm x 35mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>rod(7, 33)</code></td>
|
|
<td align="left">Smooth rod 7mm x 33mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>rod(8.5, 39)</code></td>
|
|
<td align="left">Smooth rod 8.5mm x 39mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>rod(8, 37)</code></td>
|
|
<td align="left">Smooth rod 8mm x 37mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>rod(9.5, 43)</code></td>
|
|
<td align="left">Smooth rod 9.5mm x 43mm</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right">1</td>
|
|
<td align="left"><code>rod(9, 41)</code></td>
|
|
<td align="left">Smooth rod 9mm x 41mm</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Rounded_rectangle"></a></p>
|
|
<h2>Rounded_rectangle</h2>
|
|
<p>Rectangle with rounded corners.</p>
|
|
<p><a href="utils/core/rounded_rectangle.scad">utils/core/rounded_rectangle.scad</a> Implementation.</p>
|
|
<p><a href="tests/rounded_rectangle.scad">tests/rounded_rectangle.scad</a> Code for this example.</p>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>rounded_rectangle(size, r, center = true, xy_center = true)</code></td>
|
|
<td align="left">Like <code>cube()</code> but corners rounded in XY plane and separate centre options for xy and z.</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>rounded_square(size, r, center = true)</code></td>
|
|
<td align="left">Like <code>square()</code> but with with rounded corners</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="rounded_rectangle" src="tests/png/rounded_rectangle.png" /></p>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Sphere"></a></p>
|
|
<h2>Sphere</h2>
|
|
<p>Redefines <code>sphere()</code> to always have a vertex on all six half axes I.e. vertices at the poles and the equator and <code>$fn</code> a multiple of four.
|
|
This ensures <code>hull</code> and <code>minkowski</code> results have the correct dimensions when spheres are placed at the corners.</p>
|
|
<p><a href="utils/core/sphere.scad">utils/core/sphere.scad</a> Implementation.</p>
|
|
<p><a href="tests/sphere.scad">tests/sphere.scad</a> Code for this example.</p>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>sphere(r = 1, d = undef)</code></td>
|
|
<td align="left">Override <code>sphere</code> so that has vertices on all three axes. Has the advantage of giving correct dimensions when hulled</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="sphere" src="tests/png/sphere.png" /></p>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr />
|
|
<p><a name="Teardrops"></a></p>
|
|
<h2>Teardrops</h2>
|
|
<p>For making horizontal holes that don't need support material.
|
|
Small holes can get away without it, but they print better with truncated teardrops.</p>
|
|
<p><a href="utils/core/teardrops.scad">utils/core/teardrops.scad</a> Implementation.</p>
|
|
<p><a href="tests/teardrops.scad">tests/teardrops.scad</a> Code for this example.</p>
|
|
<h3>Modules</h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th align="left"></th>
|
|
<th align="left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="left"><code>teardrop(h, r, center = true, truncate = true)</code></td>
|
|
<td align="left">For making horizontal holes that don't need support material, set <code>truncate = false</code> to make traditional RepRap teardrops that don't even need bridging</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>teardrop_plus(h, r, center = true, truncate = true)</code></td>
|
|
<td align="left">Slightly bigger teardrop to allow for the 3D printing staircase effect</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>tearslot(h, r, w, center = true)</code></td>
|
|
<td align="left">A horizontal slot that doesn't need support material</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left"><code>vertical_tearslot(h, r, l, center = true)</code></td>
|
|
<td align="left">A vertical slot that doesn't need support material</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><img alt="teardrops" src="tests/png/teardrops.png" /></p>
|
|
<p><a href="#top">Top</a></p>
|
|
<hr /> |