Compare commits
28 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
4a95ce528e | ||
|
138f45730b | ||
|
8d1ff3584c | ||
|
26b2b63b6e | ||
|
611772d960 | ||
|
b6e648b485 | ||
|
e224ee0ad2 | ||
|
10c3df466b | ||
|
3e4eedc25f | ||
|
029265e1b9 | ||
|
7449857ab7 | ||
|
49f6da767a | ||
|
171dff723f | ||
|
85a7494813 | ||
|
46937e403e | ||
|
8f2532d61b | ||
|
84fa528ff7 | ||
|
807850aac5 | ||
|
4ea0883965 | ||
|
103ad1827e | ||
|
816adb07e7 | ||
|
06e1c1a3da | ||
|
46ff632bbb | ||
|
fc47b1d9db | ||
|
de6589a2ef | ||
|
c2b3eb6580 | ||
|
ba586b3685 | ||
|
f6f4fcc7e8 |
@@ -119,6 +119,16 @@ A more optimised approach for large projects is to include [NopSCADlib/core.scad
|
||||
That only has the a small set of utilities and the global settings in [global_defs.scad](../global_defs.scad) plus screws, nuts and washers that are required by a lot of other vitamins.
|
||||
Any other vitamins used need to be included explicitly. One can copy the includes or use a line from [NopSCADlib/lib.scad](../lib.scad).
|
||||
|
||||
### Project Description
|
||||
|
||||
A description of the project can be placed in comments in Markdown format before the first include file.
|
||||
By default this is followed by a picture of the main assembly unless the description contains any pictures.
|
||||
|
||||
The description can be divided into two or three sections using //! ***, which is a Markdown horizontal rule in a comment.
|
||||
If there is a second section it is placed after the table of contents and a third section will be placed after the parts list.
|
||||
|
||||
If an actual horizontal rule is desired the alternative Markdown markup //! --- can be used.
|
||||
|
||||
### Parametric parts.
|
||||
|
||||
Modules that generate parts and assemblies need to take no parameters so that they can be called from the framework to make the STL files and assembly views, etc.
|
||||
|
Before Width: | Height: | Size: 96 KiB After Width: | Height: | Size: 96 KiB |
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 108 KiB After Width: | Height: | Size: 108 KiB |
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 105 KiB After Width: | Height: | Size: 105 KiB |
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 137 KiB After Width: | Height: | Size: 138 KiB |
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 28 KiB |
Before Width: | Height: | Size: 121 KiB After Width: | Height: | Size: 121 KiB |
Before Width: | Height: | Size: 200 KiB After Width: | Height: | Size: 201 KiB |
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 124 KiB After Width: | Height: | Size: 124 KiB |
Before Width: | Height: | Size: 134 KiB After Width: | Height: | Size: 135 KiB |
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 166 KiB After Width: | Height: | Size: 166 KiB |
Before Width: | Height: | Size: 290 KiB After Width: | Height: | Size: 290 KiB |
Before Width: | Height: | Size: 293 KiB After Width: | Height: | Size: 293 KiB |
Before Width: | Height: | Size: 286 KiB After Width: | Height: | Size: 287 KiB |
Before Width: | Height: | Size: 121 KiB After Width: | Height: | Size: 121 KiB |
Before Width: | Height: | Size: 236 KiB After Width: | Height: | Size: 235 KiB |
Before Width: | Height: | Size: 178 KiB After Width: | Height: | Size: 180 KiB |
Before Width: | Height: | Size: 215 KiB After Width: | Height: | Size: 252 KiB |
Before Width: | Height: | Size: 202 KiB After Width: | Height: | Size: 202 KiB |
@@ -43,11 +43,11 @@ Bench power supply built around an ATX PSU.
|
||||
* The green LED shows the power good signal.
|
||||
* Dummy loads keep the outputs in range.
|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
|
||||
<a name="TOP"></a>
|
||||
## Laser Load
|
||||
15kV dummy load for testing CO2 laser PSUs
|
||||
@@ -77,11 +77,11 @@ Earth leakage can be measured Canadian CSA style by disconnected the neutral lin
|
||||
## Mains Box
|
||||
Mains isolated and variable supply with metering.
|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
|
||||
<a name="TOP"></a>
|
||||
## SunBot
|
||||
A solar tracker to keep a solar panel pointing at the sun.
|
||||
@@ -95,13 +95,15 @@ WiFi enabled remote control turntable for photography
|
||||
|
||||

|
||||
|
||||
Was actually made from DiBond but shown made with carbon fibre here.
|
||||
|
||||
|
||||
<a name="TOP"></a>
|
||||
## Variac
|
||||
Motorised variac with WiFi control, see [hydraraptor.blogspot.com/2018/04/esp8266-spi-spy](https://hydraraptor.blogspot.com/2018/04/esp8266-spi-spy.html)
|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
|
||||
|
@@ -26,7 +26,7 @@
|
||||
// Setting $bom after including lib overrides bom in the libs but not in the local file.
|
||||
// Setting $_bom in the local file overrides it in the local file but not in the libs.
|
||||
//
|
||||
//function is_undef(x) = x == undef;
|
||||
rr_green = [0, 146/255, 0]; // RepRap logo colour
|
||||
|
||||
$_bom = is_undef($bom) ? 0 : $bom; // 0 no bom, 1 assemblies and stls, 2 vitamins as well
|
||||
$exploded = is_undef($explode) ? 0 : $explode; // 1 for exploded view
|
||||
@@ -34,7 +34,7 @@ layer_height = is_undef($layer_height) ? 0.25 : $layer_height; // lay
|
||||
extrusion_width = is_undef($extrusion_width) ? 0.5 : $extrusion_width; // filament width when printing
|
||||
nozzle = is_undef($nozzle) ? 0.45 : $nozzle; // 3D printer nozzle
|
||||
cnc_bit_r = is_undef($cnc_bit_r) ? 1.2 : $cnc_bit_r; // minimum tool radius when milling 2D objects
|
||||
pp1_colour = is_undef($pp1_colour) ? [0, 146/255, 0] : $pp1_colour; // printed part colour 1, RepRap logo colour
|
||||
pp1_colour = is_undef($pp1_colour) ? rr_green : $pp1_colour; // printed part colour 1, RepRap logo colour
|
||||
pp2_colour = is_undef($pp2_colour) ? "Crimson" : $pp2_colour; // printed part colour 2
|
||||
pp3_colour = is_undef($pp3_colour) ? "SteelBlue" : $pp3_colour; // printed part colour 3
|
||||
pp4_colour = is_undef($pp4_colour) ? "darkorange" : $pp4_colour;// printed part colour 4
|
||||
|
BIN
libtest.png
Before Width: | Height: | Size: 859 KiB After Width: | Height: | Size: 862 KiB |
@@ -351,7 +351,7 @@ modules_y = iecs_y + 60;
|
||||
ssrs_y = modules_y + 80;
|
||||
blowers_y = ssrs_y + 60;
|
||||
batteries_y = blowers_y + 100;
|
||||
steppers_y = batteries_y + 70;
|
||||
steppers_y = batteries_y + 55;
|
||||
panel_meters_y = steppers_y + 70;
|
||||
extrusions_y = panel_meters_y + 80;
|
||||
|
||||
|
18
readme.md
@@ -2603,6 +2603,7 @@ Timing belt pulleys, both toothed and plain with internal bearings for idlers.
|
||||
### Vitamins
|
||||
| Qty | Module call | BOM entry |
|
||||
| ---:|:--- |:---|
|
||||
| 1 | `pulley(GT2x16_pulley)` | Pulley GT2 16 teeth |
|
||||
| 1 | `pulley(GT2x16_toothed_idler)` | Pulley GT2 idler 16 teeth |
|
||||
| 1 | `pulley(GT2x20_toothed_idler)` | Pulley GT2 idler 20 teeth |
|
||||
| 1 | `pulley(GT2x20_plain_idler)` | Pulley GT2 idler smooth 12mm |
|
||||
@@ -2614,6 +2615,7 @@ Timing belt pulleys, both toothed and plain with internal bearings for idlers.
|
||||
| 1 | `pulley(T2p5x16_pulley)` | Pulley T2.5 16 teeth |
|
||||
| 1 | `pulley(T5x10_pulley)` | Pulley T5 10 teeth |
|
||||
| 1 | `screw(M3_grub_screw, 3)` | Screw M3 grub x 3mm |
|
||||
| 2 | `screw(M3_grub_screw, 4.5)` | Screw M3 grub x 4.5mm |
|
||||
| 2 | `screw(M3_grub_screw, 4)` | Screw M3 grub x 4mm |
|
||||
| 4 | `screw(M3_grub_screw, 6)` | Screw M3 grub x 6mm |
|
||||
| 1 | `screw(M4_grub_screw, 6)` | Screw M4 grub x 6mm |
|
||||
@@ -2783,11 +2785,17 @@ Rocker switch. Also used for neon indicator in the same form factor.
|
||||
| `rocker_spades(type)` | Spade types and positions |
|
||||
| `rocker_width(type)` | Body width |
|
||||
|
||||
### Functions
|
||||
| Function | Description |
|
||||
|:--- |:--- |
|
||||
| `rocker_size(type)` | Width, height, and depth in a vector |
|
||||
| `rocker_slot(type)` | Rocker slot in a vector |
|
||||
|
||||
### Modules
|
||||
| Module | Description |
|
||||
|:--- |:--- |
|
||||
| `rocker(type, colour)` | Draw the specified rocker switch |
|
||||
| `rocker_hole(type, h = 0)` | Make a hole to accept a rocker switch, by default 2D, set h for 3D |
|
||||
| `rocker_hole(type, h = 0, rounded = true)` | Make a hole to accept a rocker switch, by default 2D, set h for 3D |
|
||||
|
||||

|
||||
|
||||
@@ -2919,6 +2927,7 @@ For an explanation of `screw_polysink()` see <https://hydraraptor.blogspot.com/2
|
||||
| 1 | `screw(M4_hex_screw, 30)` | Screw M4 hex x 30mm |
|
||||
| 1 | `screw(M4_pan_screw, 30)` | Screw M4 pan x 30mm |
|
||||
| 1 | `screw(M5_cap_screw, 30)` | Screw M5 cap x 30mm |
|
||||
| 1 | `screw(M5_cs_cap_screw, 30)` | Screw M5 cs cap x 30mm |
|
||||
| 1 | `screw(M5_hex_screw, 30)` | Screw M5 hex x 30mm |
|
||||
| 1 | `screw(M5_pan_screw, 30)` | Screw M5 pan x 30mm |
|
||||
| 1 | `screw(M6_cap_screw, 30)` | Screw M6 cap x 30mm |
|
||||
@@ -3452,15 +3461,16 @@ NEMA stepper motor model.
|
||||
| Qty | Module call | BOM entry |
|
||||
| ---:|:--- |:---|
|
||||
| 4 | `ring_terminal(M3_ringterm)` | Ring terminal 3mm |
|
||||
| 15 | `screw(M3_pan_screw, 8)` | Screw M3 pan x 8mm |
|
||||
| 20 | `screw(M3_pan_screw, 8)` | Screw M3 pan x 8mm |
|
||||
| 1 | `NEMA(NEMA14)` | Stepper motor NEMA14 x 36mm |
|
||||
| 1 | `NEMA(NEMA16)` | Stepper motor NEMA16 x 19.2mm |
|
||||
| 1 | `NEMA(NEMA17P)` | Stepper motor NEMA17 x 26.5mm |
|
||||
| 1 | `NEMA(NEMA17S)` | Stepper motor NEMA17 x 34mm |
|
||||
| 1 | `NEMA(NEMA17M)` | Stepper motor NEMA17 x 40mm |
|
||||
| 1 | `NEMA(NEMA17)` | Stepper motor NEMA17 x 47mm |
|
||||
| 1 | `NEMA(NEMA23)` | Stepper motor NEMA22 x 51.2mm |
|
||||
| 11 | `washer(M3_washer)` | Washer M3 x 7mm x 0.5mm |
|
||||
| 15 | `star_washer(M3_washer)` | Washer star M3 x 0.5mm |
|
||||
| 16 | `washer(M3_washer)` | Washer M3 x 7mm x 0.5mm |
|
||||
| 20 | `star_washer(M3_washer)` | Washer star M3 x 0.5mm |
|
||||
|
||||
|
||||
<a href="#top">Top</a>
|
||||
|
@@ -51,7 +51,7 @@ def split_blurb(lines):
|
||||
""" Split blurb on horizontal rules."""
|
||||
blurbs = [""]
|
||||
for line in lines.split('\n')[:-1]:
|
||||
if line == "***":
|
||||
if re.match(r'\*{3,}',line):
|
||||
blurbs.append("")
|
||||
else:
|
||||
blurbs[-1] += line + '\n'
|
||||
|
@@ -60,7 +60,8 @@ They should work with both Python 2 and Python 3.
|
||||
break
|
||||
if not blurb:
|
||||
print("Missing description for", file)
|
||||
print("| `%s` | %s |" % (file, blurb), file = doc_file)
|
||||
else:
|
||||
print("| `%s` | %s |" % (file, blurb), file = doc_file)
|
||||
|
||||
with open(dir + "/readme.html", "wt") as html_file:
|
||||
do_cmd(("python -m markdown -x tables " + doc_name).split(), html_file)
|
||||
|
@@ -52,7 +52,7 @@ def gallery(force):
|
||||
if os.path.isfile(document):
|
||||
with open(document, 'rt') as readme:
|
||||
for line in readme.readlines():
|
||||
match = re.match(r"^.*!(\[.*\]\(.*\)).*$", line)
|
||||
match = re.search(r"!(\[.*\]\(.*\))", line)
|
||||
if match:
|
||||
image = match.group(0)
|
||||
if image.startswith(':
|
||||
|
@@ -18,7 +18,7 @@
|
||||
#
|
||||
|
||||
#
|
||||
# Run openscad
|
||||
#! Run `openscad.exe` and capture `stdout` and `stderr` in `openscad.log` as well as printing to the console.
|
||||
#
|
||||
from __future__ import print_function
|
||||
|
||||
|
@@ -9,11 +9,10 @@ They should work with both Python 2 and Python 3.
|
||||
| `bom.py` | Generates BOM files for the project. |
|
||||
| `c14n_stl.py` | OpenSCAD produces randomly ordered STL files. This script re-orders them consistently so that GIT can tell if they have changed or not. |
|
||||
| `doc_scripts.py` | Makes this document and doc/usage.md. |
|
||||
| `dxf.py` | |
|
||||
| `dxf2pdf.py` | |
|
||||
| `dxfs.py` | Generates DXF files for all the routed parts listed on the BOM or a specified list. |
|
||||
| `gallery.py` | Finds projects and adds them to the gallery. |
|
||||
| `make_all.py` | Generates all the files for a project by running `bom.py`, `stls.py`, `dxfs.py`, `render.py` and `views.py`. |
|
||||
| `openscad.py` | Run `openscad.exe` and capture `stdout` and `stderr` in `openscad.log` as well as printing to the console. |
|
||||
| `panels.py` | Panelises DXF files so they can be routed together by running scad files found in the `panels` directory. |
|
||||
| `platters.py` | Generates build plates of STL files for efficient printing by running scad files found in the `platters` directory. |
|
||||
| `render.py` | Renders STL and DXF files to PNG for inclusion in the build instructions. |
|
||||
|
@@ -227,11 +227,7 @@ def views(target, do_assemblies = None):
|
||||
#
|
||||
# Only add the image if the first blurb section doesn't contain one.
|
||||
#
|
||||
got_image = False
|
||||
for line in blurbs[0].split('\n'):
|
||||
if re.match(r'.*\!\[.*\]\(.*\).*', line):
|
||||
got_image = True
|
||||
if not got_image:
|
||||
if not re.search(r'\!\[.*\]\(.*\)', blurbs[0], re.MULTILINE):
|
||||
print('\n' % flat_bom[-1]["name"].replace('_assembly', '_assembled'), file = doc_file)
|
||||
eop(print_mode, doc_file, first = True)
|
||||
#
|
||||
|
Before Width: | Height: | Size: 137 KiB After Width: | Height: | Size: 137 KiB |
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 43 KiB |
Before Width: | Height: | Size: 148 KiB After Width: | Height: | Size: 148 KiB |
Before Width: | Height: | Size: 104 KiB After Width: | Height: | Size: 107 KiB |
@@ -107,7 +107,7 @@ assembly("box1") {
|
||||
screw_and_washer(foot_screw(foot), 6);
|
||||
}
|
||||
|
||||
translate_z(height + top_thickness + base_thickness + eps) vflip()
|
||||
translate_z(height + top_thickness + base_thickness + 2 * eps) vflip()
|
||||
%render() box1_base_stl();
|
||||
}
|
||||
|
||||
|
@@ -52,7 +52,7 @@ module screws() {
|
||||
screw(screw, length);
|
||||
}
|
||||
}
|
||||
translate([80, 20])
|
||||
translate([20, 40, -15])
|
||||
polysink_stl();
|
||||
}
|
||||
|
||||
|
@@ -22,9 +22,9 @@ include <../vitamins/stepper_motors.scad>
|
||||
use <../utils/layout.scad>
|
||||
|
||||
module stepper_motors()
|
||||
layout([for(s = stepper_motors) NEMA_width(s)], 5) let(m = stepper_motors[$i]) {
|
||||
layout([for(s = stepper_motors) NEMA_width(s)], 5, no_offset = true) let(m = stepper_motors[$i]) {
|
||||
rotate(180)
|
||||
NEMA(m, 0, m == NEMA17M || m == NEMA17M8);
|
||||
NEMA(m, 0, m == NEMA17P || m == NEMA17M || m == NEMA17M8);
|
||||
|
||||
translate_z(4)
|
||||
NEMA_screws(m, M3_pan_screw, n = $i, earth = $i > 4 ? undef : $i - 1);
|
||||
|
@@ -29,9 +29,10 @@ include <belts.scad>
|
||||
//
|
||||
T5x10_pulley = ["T5x10_pulley", "T5", 10, 15, T5x6, 11.6, 7.9, 7, 5, 19.3, 1.7, 3, 10.7, M3_grub_screw, 1];
|
||||
T2p5x16_pulley = ["T2p5x16_pulley", "T2.5", 16, 12.16, T2p5x6, 8, 16, 5.7, 5, 16.0, 1.0, 6, 3.75, M4_grub_screw, 1];
|
||||
GT2x20um_pulley = ["GT2x20um_pulley", "GT2UM", 20, 12.22, GT2x6, 7.5, 18, 6.5, 5, 18.0, 1.0, 6, 3.75, M3_grub_screw, 2];
|
||||
GT2x20ob_pulley = ["GT2x20ob_pulley", "GT2OB", 20, 12.22, GT2x6, 7.5, 16, 5.5, 5, 16.0, 1.0, 6, 3.25, M3_grub_screw, 2];
|
||||
GT2x12_pulley = ["GT2x12_pulley", "GT2RD", 12, 7.15, GT2x6, 6.5, 12, 5.5, 4, 12.0, 1.0, 4, 3.0, M3_grub_screw, 2];
|
||||
GT2x20um_pulley = ["GT2x20um_pulley", "GT2UM", 20, 12.22, GT2x6, 7.5, 18, 6.5, 5, 18.0, 1.0, 6, 3.75, M3_grub_screw, 2]; //Ultimaker
|
||||
GT2x20ob_pulley = ["GT2x20ob_pulley", "GT2OB", 20, 12.22, GT2x6, 7.5, 16, 5.5, 5, 16.0, 1.0, 6, 3.25, M3_grub_screw, 2]; //Openbuilds
|
||||
GT2x16_pulley = ["GT2x16_pulley", "GT2", 16, 9.75, GT2x6, 7.0, 13, 5, 5, 13.0, 1.0,4.5,3.0, M3_grub_screw, 2];
|
||||
GT2x12_pulley = ["GT2x12_pulley", "GT2RD", 12, 7.15, GT2x6, 6.5, 12, 5.5, 4, 12.0, 1.0, 4, 3.0, M3_grub_screw, 2]; //Robotdigg
|
||||
GT2x20_toothed_idler = ["GT2x20_toothed_idler", "GT2", 20, 12.22, GT2x6, 6.5, 18, 0, 4, 18.0, 1.0, 0, 0, false, 0];
|
||||
GT2x20_plain_idler = ["GT2x20_plain_idler", "GT2", 0, 12.0, GT2x6, 6.5, 18, 0, 4, 18.0, 1.0, 0, 0, false, 0];
|
||||
GT2x16_toothed_idler = ["GT2x16_toothed_idler", "GT2", 16, 9.75, GT2x6, 6.5, 14, 0, 3, 14.0, 1.0, 0, 0, false, 0];
|
||||
@@ -42,6 +43,7 @@ pulleys = [T5x10_pulley,
|
||||
T2p5x16_pulley,
|
||||
GT2x20um_pulley,
|
||||
GT2x20ob_pulley,
|
||||
GT2x16_pulley,
|
||||
GT2x12_pulley,
|
||||
GT2x20_toothed_idler,
|
||||
GT2x20_plain_idler,
|
||||
|
@@ -36,6 +36,8 @@ function rocker_bezel(type) = type[10]; //! Bezel width
|
||||
function rocker_pivot(type) = type[11]; //! Pivot distance from the back of the flange
|
||||
function rocker_button(type) = type[12]; //! How far the button extends from the bezel
|
||||
function rocker_spades(type) = type[13]; //! Spade types and positions
|
||||
function rocker_size(type) = [rocker_width(type), rocker_height(type), rocker_depth(type)]; //! Width, height, and depth in a vector
|
||||
function rocker_slot(type) = [rocker_slot_w(type), rocker_slot_h(type)]; //! Rocker slot in a vector
|
||||
|
||||
module rocker(type, colour) { //! Draw the specified rocker switch
|
||||
vitamin(str("rocker(", type[0], "): ", rocker_part(type)));
|
||||
@@ -87,6 +89,6 @@ module rocker(type, colour) { //! Draw the specified rocker switch
|
||||
}
|
||||
}
|
||||
|
||||
module rocker_hole(type, h = 0) //! Make a hole to accept a rocker switch, by default 2D, set h for 3D
|
||||
module rocker_hole(type, h = 0, rounded = true) //! Make a hole to accept a rocker switch, by default 2D, set h for 3D
|
||||
extrude_if(h)
|
||||
rounded_square([rocker_slot_w(type), rocker_slot_h(type)], 1, center = true);
|
||||
rounded_square([rocker_slot_w(type), rocker_slot_h(type)], rounded ? 1 : 0, center = true);
|
||||
|
@@ -295,8 +295,10 @@ module screw_polysink(type, h = 100, alt = false) { //! A countersink hole made
|
||||
poly_cylinder(r = r, h = lh, center = false);
|
||||
}
|
||||
|
||||
translate_z(layers * layer_height)
|
||||
poly_cylinder(r = rmin, h = h / 2 - layers * layer_height, center = false);
|
||||
remainder = h / 2 - layers * layer_height;
|
||||
if(remainder > 0)
|
||||
translate_z(layers * layer_height)
|
||||
poly_cylinder(r = rmin, h = remainder, center = false);
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -78,6 +78,7 @@ M8_cap_screw = ["M8_cap", "M8 cap", hs_cap, 8, 13, 8, 4.3, 6.0
|
||||
M2_cs_cap_screw = ["M2_cs_cap","M2 cs cap", hs_cs_cap,2, 3.8, 0, 0.65,1.3, 16, M2_washer, M2_nut, M2_tap_radius, M2_clearance_radius];
|
||||
M3_cs_cap_screw = ["M3_cs_cap","M3 cs cap", hs_cs_cap,3, 6.0, 0, 1.05,2.0, 18, M3_washer, M3_nut, M3_tap_radius, M3_clearance_radius];
|
||||
M4_cs_cap_screw = ["M4_cs_cap","M4 cs cap", hs_cs_cap,4, 8.0, 0, 1.49,2.5, 20, M4_washer, M4_nut, M4_tap_radius, M4_clearance_radius];
|
||||
M5_cs_cap_screw = ["M5_cs_cap","M5 cs cap", hs_cs_cap,5,10.0, 0, 3.00,3.0, 22, M5_washer, M5_nut, M5_tap_radius, M5_clearance_radius];
|
||||
|
||||
M2_dome_screw = ["M2_dome", "M2 dome", hs_dome, 2, 3.5, 1.3, 0.6, 1.3, 16, M2_washer, M2_nut, M2_tap_radius, M2_clearance_radius];
|
||||
M3_dome_screw = ["M3_dome", "M3 dome", hs_dome, 3, 5.7, 1.65, 1.04,2.0, 18, M3_washer, M3_nut, M3_tap_radius, M3_clearance_radius];
|
||||
@@ -107,13 +108,13 @@ No6_screw = ["No6", "No6 pan wood", hs_pan, 3.5, 6.7, 2.2, 0, 0
|
||||
No6_cs_screw = ["No6_cs", "No6 cs wood", hs_cs, 3.5, 7.0, 0, 0, 0, 0, M4_washer, false, No6_pilot_radius, No6_clearance_radius];
|
||||
|
||||
screw_lists = [
|
||||
[ M2_cap_screw, M2p5_cap_screw, M3_cap_screw, M4_cap_screw, M5_cap_screw, M6_cap_screw, M8_cap_screw],
|
||||
[ M2_cap_screw, M2p5_cap_screw, M3_cap_screw, M4_cap_screw, M5_cap_screw, M6_cap_screw, M8_cap_screw],
|
||||
[ 0, 0, M3_low_cap_screw],
|
||||
[ M2_cs_cap_screw, 0, M3_cs_cap_screw, M4_cs_cap_screw],
|
||||
[ M2_cs_cap_screw, 0, M3_cs_cap_screw, M4_cs_cap_screw, M5_cs_cap_screw],
|
||||
[ M2_dome_screw, 0, M3_dome_screw, M4_dome_screw],
|
||||
[ 0, 0, M3_hex_screw, M4_hex_screw, M5_hex_screw, M6_hex_screw, M8_hex_screw],
|
||||
[ 0, M2p5_pan_screw, M3_pan_screw, M4_pan_screw, M5_pan_screw, M6_pan_screw, No632_pan_screw],
|
||||
[ No2_screw, 0, No4_screw, No6_screw, No6_cs_screw],
|
||||
[ 0, 0, M3_hex_screw, M4_hex_screw, M5_hex_screw, M6_hex_screw, M8_hex_screw],
|
||||
[ 0, M2p5_pan_screw, M3_pan_screw, M4_pan_screw, M5_pan_screw, M6_pan_screw, No632_pan_screw],
|
||||
[ No2_screw, 0, No4_screw, No6_screw, No6_cs_screw],
|
||||
[ 0, 0, M3_grub_screw, M4_grub_screw]
|
||||
];
|
||||
|
||||
|
@@ -27,10 +27,11 @@ NEMA17 = ["NEMA17", 42.3, 47, 53.6/2, 25, 11, 2, 5, 24,
|
||||
NEMA17M = ["NEMA17M", 42.3, 40, 53.6/2, 25, 11, 2, 5, 20, 31, [12.5, 11]];
|
||||
NEMA17M8= ["NEMA17M8", 42.3, 40, 53.6/2, 25, 11, 2, 8, [280, 8, 4], 31, [12.5, 11]];
|
||||
NEMA17S = ["NEMA17S", 42.3, 34, 53.6/2, 25, 11, 2, 5, 24, 31, [8, 8]];
|
||||
NEMA17P = ["NEMA17P", 42.3, 26.5, 53.6/2, 25, 11, 2, 5, 26.5, 31, [10, 8]];
|
||||
NEMA16 = ["NEMA16", 39.5, 19.2, 50.6/2, 50.6/2, 11, 2, 5, 12, 31, [8, 8]];
|
||||
NEMA14 = ["NEMA14", 35.2, 36, 46.4/2, 21, 11, 2, 5, 21, 26, [8, 8]];
|
||||
NEMA23 = ["NEMA23", 56.4, 51.2, 75.7/2, 35, 38.1/2, 1.6, 6.35, 24, 47.1, [8, 8]];
|
||||
|
||||
stepper_motors = [NEMA14, NEMA16, NEMA17S, NEMA17M, NEMA17, NEMA23];
|
||||
stepper_motors = [NEMA14, NEMA16, NEMA17P, NEMA17S, NEMA17M, NEMA17, NEMA23];
|
||||
|
||||
use <stepper_motor.scad>
|
||||
|