Compare commits
7 Commits
61a990ad0c
...
cdc80b3c93
Author | SHA1 | Date |
---|---|---|
|
cdc80b3c93 | |
|
479a2466a2 | |
|
473d8e99ca | |
|
29b40d4fb6 | |
|
1af2b43d36 | |
|
62b0cae3bd | |
|
5e09bd394b |
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 80 KiB |
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 73 KiB |
After Width: | Height: | Size: 78 KiB |
Before Width: | Height: | Size: 62 KiB After Width: | Height: | Size: 82 KiB |
Before Width: | Height: | Size: 56 KiB After Width: | Height: | Size: 69 KiB |
After Width: | Height: | Size: 132 KiB |
Before Width: | Height: | Size: 88 KiB After Width: | Height: | Size: 136 KiB |
Before Width: | Height: | Size: 68 KiB After Width: | Height: | Size: 118 KiB |
|
@ -0,0 +1,99 @@
|
||||||
|
/**
|
||||||
|
* Used to workshop the stacking screw
|
||||||
|
* */
|
||||||
|
|
||||||
|
module stacking_debug () {
|
||||||
|
translate([0, 0, 72 + 72 + 36]) {
|
||||||
|
color("blue") gnal_spindle_top();
|
||||||
|
}
|
||||||
|
translate([0, 0, 72 + 72]) rotate([0, 180, 0]) intersection () {
|
||||||
|
gnal_50ft_top();
|
||||||
|
cylinder(r = 50 / 2, h = 50, center = true);
|
||||||
|
}
|
||||||
|
|
||||||
|
translate([0, 0, 72 + 30]) {
|
||||||
|
color("blue") rotate([0, 180, 0]) gnal_spindle_bottom();
|
||||||
|
}
|
||||||
|
|
||||||
|
translate([0, 0, 72 + 36]) difference () {
|
||||||
|
cylinder(r = 50 / 2, h = 16, center = true);
|
||||||
|
cylinder(r = 22.5 / 2, h = 16 + 1, center = true);
|
||||||
|
}
|
||||||
|
|
||||||
|
translate([0, 0, 36 + 30]) {
|
||||||
|
color("green") rotate([0, 180, 0]) gnal_stacking_spindle();
|
||||||
|
}
|
||||||
|
|
||||||
|
translate([0, 0, 72]) difference () {
|
||||||
|
cylinder(r = 50 / 2, h = 16, center = true);
|
||||||
|
cylinder(r = 22.5 / 2, h = 16 + 1, center = true);
|
||||||
|
}
|
||||||
|
|
||||||
|
translate([0, 0, 30]) {
|
||||||
|
color("green") rotate([0, 180, 0]) gnal_stacking_spindle();
|
||||||
|
}
|
||||||
|
|
||||||
|
translate([0, 0, 36]) difference () {
|
||||||
|
cylinder(r = 50 / 2, h = 16, center = true);
|
||||||
|
cylinder(r = 22.5 / 2, h = 16 + 1, center = true);
|
||||||
|
}
|
||||||
|
|
||||||
|
color("blue") translate([0, 0, 12 + 3]) gnal_spacer_16();
|
||||||
|
//#1 - bottom spiral
|
||||||
|
difference () {
|
||||||
|
cylinder(r = 50 / 2, h = 16, center = true);
|
||||||
|
cylinder(r = 22.5 / 2, h = 16 + 1, center = true);
|
||||||
|
translate([0, 0, -8]) spiral_insert_void();
|
||||||
|
}
|
||||||
|
|
||||||
|
color("blue") translate([0, 0, -12]) gnal_spiral_bottom_insert_16();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
module stacking_debug2 () {
|
||||||
|
translate([0, 0, 72 + 47]) {
|
||||||
|
color("blue") gnal_spindle_top();
|
||||||
|
}
|
||||||
|
translate([0, 0, 72 + 26]) rotate([0, 180, 0]) intersection () {
|
||||||
|
gnal_50ft_top();
|
||||||
|
cylinder(r = 50 / 2, h = 50, center = true);
|
||||||
|
}
|
||||||
|
|
||||||
|
translate([0, 0, 72 - 4]) {
|
||||||
|
color("blue") rotate([0, 180, 0]) gnal_spindle_bottom();
|
||||||
|
}
|
||||||
|
|
||||||
|
translate([0, 0, 72 + 8]) difference () {
|
||||||
|
cylinder(r = 50 / 2, h = 16, center = true);
|
||||||
|
cylinder(r = 22.5 / 2, h = 16 + 1, center = true);
|
||||||
|
}
|
||||||
|
|
||||||
|
translate([0, 0, 36 + 8]) {
|
||||||
|
color("green") rotate([0, 180, 0]) gnal_stacking_spindle();
|
||||||
|
}
|
||||||
|
|
||||||
|
translate([0, 0, 55.5]) difference () {
|
||||||
|
cylinder(r = 50 / 2, h = 16, center = true);
|
||||||
|
cylinder(r = 22.5 / 2, h = 16 + 1, center = true);
|
||||||
|
}
|
||||||
|
|
||||||
|
translate([0, 0, 20]) {
|
||||||
|
color("green") rotate([0, 180, 0]) gnal_stacking_spindle();
|
||||||
|
}
|
||||||
|
|
||||||
|
translate([0, 0, 32]) difference () {
|
||||||
|
cylinder(r = 50 / 2, h = 16, center = true);
|
||||||
|
cylinder(r = 22.5 / 2, h = 16 + 1, center = true);
|
||||||
|
}
|
||||||
|
|
||||||
|
color("blue") translate([0, 0, 12 + 3 + 5]) gnal_spacer_16();
|
||||||
|
//#1 - bottom spiral
|
||||||
|
translate([0, 0, 8]) difference () {
|
||||||
|
cylinder(r = 50 / 2, h = 16, center = true);
|
||||||
|
cylinder(r = 22.5 / 2, h = 16 + 1, center = true);
|
||||||
|
translate([0, 0, -8]) spiral_insert_void();
|
||||||
|
}
|
||||||
|
color("blue") translate([0, 0, 11]) gnal_spiral_bottom_insert_16();
|
||||||
|
H = 120;
|
||||||
|
translate([0, 0, H / 2 - 2]) color("red") cube([1, 50, H], center = true);
|
||||||
|
}
|
|
@ -3,6 +3,8 @@
|
||||||
include <../libraries/gnal_v3.scad>;
|
include <../libraries/gnal_v3.scad>;
|
||||||
|
|
||||||
SPOKE_COUNT = 24;
|
SPOKE_COUNT = 24;
|
||||||
|
FN = 200;
|
||||||
|
$fn = FN;
|
||||||
|
|
||||||
module gnal_100ft_spiral (spiral_count = 60, od = 298.75, quarter = false) {
|
module gnal_100ft_spiral (spiral_count = 60, od = 298.75, quarter = false) {
|
||||||
outer_d = 299;
|
outer_d = 299;
|
||||||
|
@ -250,9 +252,6 @@ module gnal_100ft_top () {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
FN = 200;
|
|
||||||
$fn = FN;
|
|
||||||
|
|
||||||
module film_guide (rotations = 60, id = 45.55, spacing = 2.075, bottom = -2) {
|
module film_guide (rotations = 60, id = 45.55, spacing = 2.075, bottom = -2) {
|
||||||
spiral(rotations, id, spacing, bottom, $fn);
|
spiral(rotations, id, spacing, bottom, $fn);
|
||||||
//reinforce outer spiral
|
//reinforce outer spiral
|
||||||
|
@ -278,18 +277,20 @@ if (PART == "spiral") {
|
||||||
gnal_100ft_top();
|
gnal_100ft_top();
|
||||||
} else if (PART == "spacer") {
|
} else if (PART == "spacer") {
|
||||||
gnal_spacer();
|
gnal_spacer();
|
||||||
|
} else if (PART == "spacer_16") {
|
||||||
|
gnal_spacer_16();
|
||||||
} else if (PART == "insert_s8") {
|
} else if (PART == "insert_s8") {
|
||||||
gnal_spiral_bottom_insert_s8();
|
gnal_spiral_bottom_insert_s8();
|
||||||
} else if (PART == "insert_16") {
|
} else if (PART == "insert_16") {
|
||||||
gnal_spiral_bottom_insert_16();
|
gnal_spiral_bottom_insert_16();
|
||||||
} else if (PART == "insert_single") {
|
} else if (PART == "insert_single") {
|
||||||
gnal_spiral_bottom_insert_single();
|
gnal_spiral_bottom_insert_single();
|
||||||
} else if (PART == "spacer_16") {
|
|
||||||
gnal_spacer_16();
|
|
||||||
} else if (PART == "spindle_top") {
|
} else if (PART == "spindle_top") {
|
||||||
gnal_spindle_top();
|
gnal_spindle_top();
|
||||||
} else if (PART == "spindle_bottom") {
|
} else if (PART == "spindle_bottom") {
|
||||||
gnal_spindle_bottom();
|
gnal_spindle_bottom();
|
||||||
} else if (PART == "spindle_single") {
|
} else if (PART == "spindle_single") {
|
||||||
gnal_spindle_single();
|
gnal_spindle_single();
|
||||||
|
} else if (PART == "spindle_stacking") {
|
||||||
|
rotate([0, 180, 0]) gnal_stacking_spindle();
|
||||||
}
|
}
|
|
@ -3,6 +3,8 @@
|
||||||
include <../libraries/gnal_v3.scad>;
|
include <../libraries/gnal_v3.scad>;
|
||||||
|
|
||||||
SPOKE_COUNT = 24;
|
SPOKE_COUNT = 24;
|
||||||
|
FN = 200;
|
||||||
|
$fn = FN;
|
||||||
|
|
||||||
module gnal_50ft_spiral (spiral_count = 40, od = 215.75, quarter = false) {
|
module gnal_50ft_spiral (spiral_count = 40, od = 215.75, quarter = false) {
|
||||||
outer_d = 215;
|
outer_d = 215;
|
||||||
|
@ -180,9 +182,6 @@ module gnal_50ft_top () {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
FN = 200;
|
|
||||||
$fn = FN;
|
|
||||||
|
|
||||||
module film_guide (rotations = 40, id = 45.55 - .5, spacing = 2.075, bottom = -2) {
|
module film_guide (rotations = 40, id = 45.55 - .5, spacing = 2.075, bottom = -2) {
|
||||||
spiral(rotations, id, spacing, bottom, $fn);
|
spiral(rotations, id, spacing, bottom, $fn);
|
||||||
//reinforce outer spiral
|
//reinforce outer spiral
|
||||||
|
@ -193,39 +192,6 @@ module film_guide (rotations = 40, id = 45.55 - .5, spacing = 2.075, bottom = -2
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
module gnal_stacking_spindle () {
|
|
||||||
OD = 10.5 + .3;
|
|
||||||
IN_LEN = 21;
|
|
||||||
|
|
||||||
LEN = 17.1;
|
|
||||||
ALT_LEN = 27.1;
|
|
||||||
difference () {
|
|
||||||
union () {
|
|
||||||
gnal_spindle_base();
|
|
||||||
translate([0, 0, -23.75]) gnal_spacer_solid();
|
|
||||||
}
|
|
||||||
//inner screw negative
|
|
||||||
translate([0, 0, -30]) union() {
|
|
||||||
if (DEBUG) {
|
|
||||||
cylinder(r = OD / 2, h = IN_LEN);
|
|
||||||
} else {
|
|
||||||
metric_thread (diameter=OD, pitch=PITCH, thread_size = THREAD, length = IN_LEN);
|
|
||||||
}
|
|
||||||
translate([0, 0, 0.2]) {
|
|
||||||
if (DEBUG) {
|
|
||||||
cylinder(r = OD / 2, h = IN_LEN);
|
|
||||||
} else {
|
|
||||||
metric_thread (diameter=OD, pitch=PITCH, thread_size = THREAD, length = IN_LEN);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
difference () {
|
|
||||||
outer_screw(LEN - 2);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
PART="spiral";
|
PART="spiral";
|
||||||
|
|
||||||
if (PART == "spiral") {
|
if (PART == "spiral") {
|
||||||
|
@ -242,22 +208,21 @@ if (PART == "spiral") {
|
||||||
gnal_50ft_top();
|
gnal_50ft_top();
|
||||||
} else if (PART == "spacer") {
|
} else if (PART == "spacer") {
|
||||||
gnal_spacer();
|
gnal_spacer();
|
||||||
|
} else if (PART == "spacer_16") {
|
||||||
|
gnal_spacer_16();
|
||||||
} else if (PART == "insert_s8") {
|
} else if (PART == "insert_s8") {
|
||||||
gnal_spiral_bottom_insert_s8();
|
gnal_spiral_bottom_insert_s8();
|
||||||
} else if (PART == "insert_16") {
|
} else if (PART == "insert_16") {
|
||||||
gnal_spiral_bottom_insert_16();
|
gnal_spiral_bottom_insert_16();
|
||||||
} else if (PART == "insert_single") {
|
} else if (PART == "insert_single") {
|
||||||
gnal_spiral_bottom_insert_single();
|
gnal_spiral_bottom_insert_single();
|
||||||
} else if (PART == "spacer_16") {
|
|
||||||
gnal_spacer_16();
|
|
||||||
} else if (PART == "spindle_top") {
|
} else if (PART == "spindle_top") {
|
||||||
gnal_spindle_top();
|
gnal_spindle_top();
|
||||||
} else if (PART == "spindle_bottom") {
|
} else if (PART == "spindle_bottom") {
|
||||||
gnal_spindle_bottom();
|
gnal_spindle_bottom();
|
||||||
} else if (PART == "spindle_single") {
|
} else if (PART == "spindle_single") {
|
||||||
gnal_spindle_top();
|
gnal_spindle_single();
|
||||||
} else if (PART == "stacking") {
|
} else if (PART == "spindle_stacking") {
|
||||||
//stacking();
|
|
||||||
rotate([0, 180, 0]) gnal_stacking_spindle();
|
rotate([0, 180, 0]) gnal_stacking_spindle();
|
||||||
} else if (PART == "spiral_test") {
|
} else if (PART == "spiral_test") {
|
||||||
difference () {
|
difference () {
|
||||||
|
@ -271,6 +236,8 @@ if (DEBUG) {
|
||||||
echo("WARNING: DEBUG is enabled");
|
echo("WARNING: DEBUG is enabled");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
echo($vpt);
|
echo($vpt);
|
||||||
echo($vpr);
|
echo($vpr);
|
||||||
echo($vpd);
|
echo($vpd);
|
||||||
|
*/
|
|
@ -18,7 +18,6 @@ include <./Triangles.scad>;
|
||||||
*/
|
*/
|
||||||
|
|
||||||
DEBUG = false;
|
DEBUG = false;
|
||||||
|
|
||||||
FINE = 200;
|
FINE = 200;
|
||||||
|
|
||||||
OD = 10 + .5;
|
OD = 10 + .5;
|
||||||
|
@ -238,7 +237,7 @@ module spiral_insert_void () {
|
||||||
module gnal_spiral_bottom_insert_s8 () {
|
module gnal_spiral_bottom_insert_s8 () {
|
||||||
$fn = 160;
|
$fn = 160;
|
||||||
OD = 10.5 + .3;
|
OD = 10.5 + .3;
|
||||||
void_d = 18 - .3;
|
void_d = 18 - .6;
|
||||||
H = 17;
|
H = 17;
|
||||||
D2 = INSERT_D;
|
D2 = INSERT_D;
|
||||||
|
|
||||||
|
@ -279,7 +278,7 @@ module gnal_spiral_bottom_insert_16 () {
|
||||||
$fn = 160;
|
$fn = 160;
|
||||||
OD = 10.5 + .3;
|
OD = 10.5 + .3;
|
||||||
|
|
||||||
void_d = 18 - .3;
|
void_d = 18 - .6;
|
||||||
H = 17 + 8;
|
H = 17 + 8;
|
||||||
D2 = INSERT_D;
|
D2 = INSERT_D;
|
||||||
|
|
||||||
|
@ -332,7 +331,7 @@ module gnal_spiral_bottom_insert_16 () {
|
||||||
**/
|
**/
|
||||||
module gnal_spiral_bottom_insert_single () {
|
module gnal_spiral_bottom_insert_single () {
|
||||||
$fn = 160;
|
$fn = 160;
|
||||||
void_d = 18 - .3;
|
void_d = 18 - .6;
|
||||||
H = 17;
|
H = 17;
|
||||||
D2 = INSERT_D;
|
D2 = INSERT_D;
|
||||||
|
|
||||||
|
@ -792,4 +791,37 @@ module gnal_spindle_single () {
|
||||||
translate([0, 0, -37.5 - SINGLE_INSERT + (21 / 2) - 1]) {
|
translate([0, 0, -37.5 - SINGLE_INSERT + (21 / 2) - 1]) {
|
||||||
cylinder(r = 10 / 2, h = 21, center = true, $fn = FINE);
|
cylinder(r = 10 / 2, h = 21, center = true, $fn = FINE);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module gnal_stacking_spindle () {
|
||||||
|
OD = 10.5 + .3;
|
||||||
|
IN_LEN = 21;
|
||||||
|
|
||||||
|
LEN = 17.1;
|
||||||
|
ALT_LEN = 27.1;
|
||||||
|
difference () {
|
||||||
|
union () {
|
||||||
|
gnal_spindle_base();
|
||||||
|
translate([0, 0, -23.75]) gnal_spacer_solid();
|
||||||
|
}
|
||||||
|
//inner screw negative
|
||||||
|
translate([0, 0, -30]) union() {
|
||||||
|
if (DEBUG) {
|
||||||
|
cylinder(r = OD / 2, h = IN_LEN);
|
||||||
|
} else {
|
||||||
|
metric_thread (diameter=OD, pitch=PITCH, thread_size = THREAD, length = IN_LEN);
|
||||||
|
}
|
||||||
|
translate([0, 0, 0.2]) {
|
||||||
|
if (DEBUG) {
|
||||||
|
cylinder(r = OD / 2, h = IN_LEN);
|
||||||
|
} else {
|
||||||
|
metric_thread (diameter=OD, pitch=PITCH, thread_size = THREAD, length = IN_LEN);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
difference () {
|
||||||
|
outer_screw(LEN - 2);
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -14,7 +14,7 @@ DIST=./stl
|
||||||
CSG=./csg
|
CSG=./csg
|
||||||
IMG=./img
|
IMG=./img
|
||||||
NOTES=./notes/${V}.csv
|
NOTES=./notes/${V}.csv
|
||||||
STEP=true
|
STEP=false
|
||||||
LOGGING=true
|
LOGGING=true
|
||||||
|
|
||||||
#"quarter_a" "quarter_b" "quarter_c" "quarter_d"
|
#"quarter_a" "quarter_b" "quarter_c" "quarter_d"
|
||||||
|
@ -23,7 +23,8 @@ LOGGING=true
|
||||||
FILES=(
|
FILES=(
|
||||||
"spindle_bottom"
|
"spindle_bottom"
|
||||||
"spindle_top"
|
"spindle_top"
|
||||||
"spindle_single"
|
"spindle_single"
|
||||||
|
"spindle_stacking"
|
||||||
"insert_s8"
|
"insert_s8"
|
||||||
"insert_16"
|
"insert_16"
|
||||||
"spacer"
|
"spacer"
|
||||||
|
@ -118,9 +119,9 @@ render_part () {
|
||||||
fullPath=`realpath "${stl}"`
|
fullPath=`realpath "${stl}"`
|
||||||
data="import(\"${fullPath}\");"
|
data="import(\"${fullPath}\");"
|
||||||
echo data > "${tmp}.scad"
|
echo data > "${tmp}.scad"
|
||||||
openscad -o "$png" --imgsize=2048,2048 --colorscheme=DeepOcean "${tmp}.scad"
|
openscad -o "$png" --csglimit=2000000 --imgsize=2048,2048 --colorscheme=DeepOcean "${tmp}.scad"
|
||||||
else
|
else
|
||||||
openscad -o "$png" --imgsize=2048,2048 --colorscheme=DeepOcean -D "PART=\"${FILE}\"" "${scad}"
|
openscad -o "$png" --csglimit=1000000 --imgsize=2048,2048 --colorscheme=DeepOcean -D "PART=\"${FILE}\"" "${scad}"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|