Created a new branch to explore creating a method of stacking 4 or more spirals. In theory. Potentially.
First attempt misused the single spiral diameter thread. The number of parts means two things: improve the documentation and potentially add identifying features to the different parts.
This commit is contained in:
parent
89c8f32b3b
commit
ba2b701a7a
|
@ -182,7 +182,7 @@ If your prints are warping, there are a few things to look at:
|
||||||
3. Slicer settings
|
3. Slicer settings
|
||||||
|
|
||||||
The first thing to consider when your prints are coming out warped off the print bed is whether or not your **material** is appropriate for this model.
|
The first thing to consider when your prints are coming out warped off the print bed is whether or not your **material** is appropriate for this model.
|
||||||
Check the [material](#material) section of this README for more information, but theres a chance if you are using PLA or ABS that large flat prints of this size are warping due to limitations with the material you are using. PETG has proven to warp far less in my own anecdotal experience and is the recommended material for this project.
|
Check the [material](#material) section of this README for more information, but there's a chance if you are using PLA or ABS that large flat prints of this size are warping due to limitations with the material you are using. PETG has proven to warp far less in my own anecdotal experience and is the recommended material for this project.
|
||||||
|
|
||||||
The thermal properties of the material you're printing with are what causes warping, so check if your printer is being set to the recommended **temperatures** on both the bed and extruder for the material and printer you are using.
|
The thermal properties of the material you're printing with are what causes warping, so check if your printer is being set to the recommended **temperatures** on both the bed and extruder for the material and printer you are using.
|
||||||
Warping occurs consistently when a section of a part cools too quickly and contracts while the rest of it is still being printed.
|
Warping occurs consistently when a section of a part cools too quickly and contracts while the rest of it is still being printed.
|
||||||
|
@ -222,7 +222,7 @@ Had issues or success printing this? Interested in getting in contact?
|
||||||
|
|
||||||
MIT License
|
MIT License
|
||||||
|
|
||||||
Copyright (c) 2020 Matt McWilliams
|
Copyright (c) 2021 Matt McWilliams
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this hardware, software, and associated documentation files (the "Product"), to deal in the Product without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Product, and to permit persons to whom the Product is furnished to do so, subject to the following conditions:
|
Permission is hereby granted, free of charge, to any person obtaining a copy of this hardware, software, and associated documentation files (the "Product"), to deal in the Product without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Product, and to permit persons to whom the Product is furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
|
|
@ -187,10 +187,92 @@ 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);
|
||||||
}
|
}
|
||||||
|
|
||||||
PART="quarter_a";
|
module gnal_stacking_spindle () {
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module stacking () {
|
||||||
|
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();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
PART="stacking";
|
||||||
|
|
||||||
if (PART == "spiral") {
|
if (PART == "spiral") {
|
||||||
gnal_50ft_spiral();
|
gnal_50ft_spiral();
|
||||||
|
} else if (PART == "tank") {
|
||||||
|
gnal_50ft_tank();
|
||||||
} else if (PART == "quarter_a") {
|
} else if (PART == "quarter_a") {
|
||||||
gnal_50ft_spiral_quarter("a");
|
gnal_50ft_spiral_quarter("a");
|
||||||
} else if (PART == "quarter_b") {
|
} else if (PART == "quarter_b") {
|
||||||
|
@ -201,8 +283,6 @@ if (PART == "spiral") {
|
||||||
gnal_50ft_spiral_quarter("d");
|
gnal_50ft_spiral_quarter("d");
|
||||||
} else if (PART == "top") {
|
} else if (PART == "top") {
|
||||||
gnal_50ft_top();
|
gnal_50ft_top();
|
||||||
} else if (PART == "spacer") {
|
|
||||||
gnal_spacer();
|
|
||||||
} 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") {
|
||||||
|
@ -217,6 +297,9 @@ if (PART == "spiral") {
|
||||||
gnal_spindle_bottom();
|
gnal_spindle_bottom();
|
||||||
} else if (PART == "spindle_single") {
|
} else if (PART == "spindle_single") {
|
||||||
gnal_spindle_top();
|
gnal_spindle_top();
|
||||||
|
} else if (PART == "stacking") {
|
||||||
|
//stacking();
|
||||||
|
rotate([0, 180, 0]) gnal_stacking_spindle();
|
||||||
} else if (PART == "spiral_test") {
|
} else if (PART == "spiral_test") {
|
||||||
difference () {
|
difference () {
|
||||||
gnal_50ft_spiral();
|
gnal_50ft_spiral();
|
||||||
|
@ -224,3 +307,11 @@ if (PART == "spiral") {
|
||||||
rotate([0, 0, 30]) translate([-125, 0, 0]) cube([250, 250, 100], center = true);
|
rotate([0, 0, 30]) translate([-125, 0, 0]) cube([250, 250, 100], center = true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (DEBUG) {
|
||||||
|
echo("WARNING: DEBUG is enabled");
|
||||||
|
}
|
||||||
|
|
||||||
|
echo($vpt);
|
||||||
|
echo($vpr);
|
||||||
|
echo($vpd);
|
|
@ -17,6 +17,8 @@ include <./Triangles.scad>;
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
DEBUG = false;
|
||||||
|
|
||||||
FINE = 200;
|
FINE = 200;
|
||||||
|
|
||||||
OD = 10 + .5;
|
OD = 10 + .5;
|
||||||
|
@ -266,7 +268,13 @@ module gnal_spiral_bottom_insert_16 () {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
translate([0, 0, -(H / 2) - 2]) metric_thread (diameter=OD, pitch=PITCH, thread_size = THREAD, length=LEN + 8);
|
translate([0, 0, -(H / 2) - 2]) {
|
||||||
|
if (DEBUG) {
|
||||||
|
cylinder(r = OD / 2, h = LEN + 8);
|
||||||
|
} else {
|
||||||
|
metric_thread (diameter=OD, pitch=PITCH, thread_size = THREAD, length=LEN + 8);
|
||||||
|
}
|
||||||
|
}
|
||||||
translate([0, 0, 8.5]) {
|
translate([0, 0, 8.5]) {
|
||||||
for (i = [0: RIDGES - 1]) {
|
for (i = [0: RIDGES - 1]) {
|
||||||
rotate([0, 0, i * (360 / RIDGES)]) translate([void_d / 2, 0, 0]) cylinder(r = RIDGE_D / 2, h = 8.1, center = true);
|
rotate([0, 0, i * (360 / RIDGES)]) translate([void_d / 2, 0, 0]) cylinder(r = RIDGE_D / 2, h = 8.1, center = true);
|
||||||
|
@ -310,7 +318,13 @@ module gnal_spiral_bottom_insert_single () {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
translate([0, 0, -LEN / 2]) metric_thread (diameter=SINGLE_THREAD_D, pitch=PITCH, thread_size = THREAD, length = LEN);
|
translate([0, 0, -LEN / 2]) {
|
||||||
|
if (DEBUG) {
|
||||||
|
cylinder(r = SINGLE_THREAD_D / 2, h = LEN);
|
||||||
|
} else {
|
||||||
|
metric_thread (diameter=SINGLE_THREAD_D, pitch=PITCH, thread_size = THREAD, length = LEN);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -351,33 +365,8 @@ module spacer_outer_ridges () {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
module gnal_spacer () {
|
|
||||||
add = 3.25;
|
|
||||||
core_d = 29.5;
|
|
||||||
core_bottom_d = 26.2 + .2;
|
|
||||||
void_d = 22.5;
|
|
||||||
h = 8 + add;
|
|
||||||
translate([0, 0, (add / 2) - 1]) difference () {
|
|
||||||
union () {
|
|
||||||
difference () {
|
|
||||||
cylinder(r = core_d / 2, h = h, center = true, $fn = 200);
|
|
||||||
translate([0, 0, 8]) cylinder(r = core_bottom_d / 2, h = h, center = true, $fn = 200);
|
|
||||||
cylinder(r = void_d / 2, h = h + 1, center = true, $fn = 200);
|
|
||||||
}
|
|
||||||
translate([0, 0, 0]) spacer_ridges_loose();
|
|
||||||
spacer_outer_ridges();
|
|
||||||
}
|
|
||||||
//trim top
|
|
||||||
translate([0, 0, h - 0.1]) cylinder(r = (core_d + 1) / 2, h = h, center = true, $fn = 200);
|
|
||||||
//trim bottom
|
|
||||||
translate([0, 0, -h + 0.9]) cylinder(r = (core_d + 1) / 2, h = h, center = true, $fn = 200);
|
|
||||||
//finger grips
|
|
||||||
//translate([0, 24, 0]) rotate([-6, 0, 0]) cylinder(r = 10, h = 6, center = true, $fn = 100);
|
|
||||||
//translate([0, -24, 0]) rotate([6, 0, 0]) cylinder(r = 10, h = 6, center = true, $fn = 100);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
module gnal_spacer_16 () {
|
module gnal_spacer_solid () {
|
||||||
core_d = 29.5;
|
core_d = 29.5;
|
||||||
core_bottom_d = 26.2 + .2;
|
core_bottom_d = 26.2 + .2;
|
||||||
void_d = 18;
|
void_d = 18;
|
||||||
|
@ -389,11 +378,24 @@ module gnal_spacer_16 () {
|
||||||
union () {
|
union () {
|
||||||
difference () {
|
difference () {
|
||||||
cylinder(r = core_d / 2, h = h, center = true, $fn = 200);
|
cylinder(r = core_d / 2, h = h, center = true, $fn = 200);
|
||||||
cylinder(r = void_d / 2, h = h + 1, center = true, $fn = 200);
|
|
||||||
}
|
}
|
||||||
translate([0, 0, -.75]) rotate([0, 180, 0]) spacer_outer_ridges();
|
translate([0, 0, -.75]) rotate([0, 180, 0]) spacer_outer_ridges();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module gnal_spacer_16 () {
|
||||||
|
core_d = 29.5;
|
||||||
|
core_bottom_d = 26.2 + .2;
|
||||||
|
void_d = 18.3;
|
||||||
|
h = 8;
|
||||||
|
|
||||||
|
RIDGES = 8;
|
||||||
|
RIDGE_D = 3;
|
||||||
|
difference () {
|
||||||
|
gnal_spacer_solid();
|
||||||
|
cylinder(r = void_d / 2, h = h + 1, center = true, $fn = 200);
|
||||||
|
}
|
||||||
translate([0, 0, 0]) {
|
translate([0, 0, 0]) {
|
||||||
for (i = [0: RIDGES - 1]) {
|
for (i = [0: RIDGES - 1]) {
|
||||||
rotate([0, 0, i * (360 / RIDGES)]) translate([void_d / 2, 0, 0]) cylinder(r = RIDGE_D / 2, h = 8, center = true);
|
rotate([0, 0, i * (360 / RIDGES)]) translate([void_d / 2, 0, 0]) cylinder(r = RIDGE_D / 2, h = 8, center = true);
|
||||||
|
@ -405,9 +407,17 @@ module gnal_spacer_16 () {
|
||||||
* Spindles
|
* Spindles
|
||||||
**/
|
**/
|
||||||
|
|
||||||
module gnal_spindle_bottom_base ( HEX = false) {
|
module gnal_spindle_base ( ) {
|
||||||
D = 8.45 * 2;
|
D = 8.45 * 2;
|
||||||
H = 20;
|
H = 20;
|
||||||
|
union() {
|
||||||
|
translate([0, 0, -15]) {
|
||||||
|
cylinder(r = D / 2, h = H, center = true, $fn = FINE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module gnal_spindle_bottom_base ( HEX = false) {
|
||||||
//for grip
|
//for grip
|
||||||
BUMP = 2; //diameter
|
BUMP = 2; //diameter
|
||||||
BUMPS = 6;
|
BUMPS = 6;
|
||||||
|
@ -416,9 +426,7 @@ module gnal_spindle_bottom_base ( HEX = false) {
|
||||||
TOP_OFFSET = -24.5;
|
TOP_OFFSET = -24.5;
|
||||||
|
|
||||||
union() {
|
union() {
|
||||||
translate([0, 0, -15]) {
|
gnal_spindle_base();
|
||||||
cylinder(r = D / 2, h = H, center = true, $fn = FINE);
|
|
||||||
}
|
|
||||||
//hex version
|
//hex version
|
||||||
if (HEX) {
|
if (HEX) {
|
||||||
translate([0, 0, TOP_OFFSET]) {
|
translate([0, 0, TOP_OFFSET]) {
|
||||||
|
@ -445,7 +453,13 @@ module outer_screw (LEN) {
|
||||||
THREAD = 1.6;
|
THREAD = 1.6;
|
||||||
|
|
||||||
difference () {
|
difference () {
|
||||||
translate([0, 0, -7.1]) metric_thread (diameter=OD, pitch=PITCH, thread_size = THREAD, length=LEN);
|
translate([0, 0, -7.1]) {
|
||||||
|
if (DEBUG) {
|
||||||
|
cylinder(r = OD / 2, h = LEN);
|
||||||
|
} else {
|
||||||
|
metric_thread (diameter=OD, pitch=PITCH, thread_size = THREAD, length=LEN);
|
||||||
|
}
|
||||||
|
}
|
||||||
//bevel top of screw
|
//bevel top of screw
|
||||||
translate([0, 0, LEN - 8]) difference() {
|
translate([0, 0, LEN - 8]) difference() {
|
||||||
cylinder(r = 8, h = 3, center = true, $fn = FINE);
|
cylinder(r = 8, h = 3, center = true, $fn = FINE);
|
||||||
|
@ -466,12 +480,20 @@ module gnal_spindle_bottom (ALT = false, HEX = false) {
|
||||||
gnal_spindle_bottom_base(HEX);
|
gnal_spindle_bottom_base(HEX);
|
||||||
//inner screw negative
|
//inner screw negative
|
||||||
translate([0, 0, -30]) union() {
|
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);
|
metric_thread (diameter=OD, pitch=PITCH, thread_size = THREAD, length = IN_LEN);
|
||||||
|
}
|
||||||
translate([0, 0, 0.2]) {
|
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);
|
metric_thread (diameter=OD, pitch=PITCH, thread_size = THREAD, length = IN_LEN);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
difference () {
|
difference () {
|
||||||
//outer screw
|
//outer screw
|
||||||
|
@ -480,8 +502,6 @@ module gnal_spindle_bottom (ALT = false, HEX = false) {
|
||||||
} else {
|
} else {
|
||||||
outer_screw(LEN);
|
outer_screw(LEN);
|
||||||
}
|
}
|
||||||
//hollow center
|
|
||||||
cylinder(r = 3.8 / 2, h = 100, center = true, $fn = 60);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -583,8 +603,12 @@ module gnal_spindle_top () {
|
||||||
}
|
}
|
||||||
//screw
|
//screw
|
||||||
translate([0, 0, -37.5]) {
|
translate([0, 0, -37.5]) {
|
||||||
|
if (DEBUG) {
|
||||||
|
cylinder(r = 13.6 / 2, h = 21);
|
||||||
|
} else {
|
||||||
metric_thread (diameter=13.6, pitch = PITCH, thread_size = THREAD, length = 21);
|
metric_thread (diameter=13.6, pitch = PITCH, thread_size = THREAD, length = 21);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
//cylinder plug
|
//cylinder plug
|
||||||
translate([0, 0, -37.5 + (21 / 2) - 1]) {
|
translate([0, 0, -37.5 + (21 / 2) - 1]) {
|
||||||
cylinder(r = 12 / 2, h = 21, center = true, $fn = FINE);
|
cylinder(r = 12 / 2, h = 21, center = true, $fn = FINE);
|
||||||
|
@ -689,8 +713,12 @@ module gnal_spindle_single () {
|
||||||
}
|
}
|
||||||
//screw
|
//screw
|
||||||
translate([0, 0, -37.5 - SINGLE_INSERT]) {
|
translate([0, 0, -37.5 - SINGLE_INSERT]) {
|
||||||
|
if (DEBUG) {
|
||||||
|
cylinder(r = SINGLE_THREAD_D / 2, h = 21);
|
||||||
|
} else {
|
||||||
metric_thread (diameter=SINGLE_THREAD_D, pitch = PITCH, thread_size = THREAD, length = 21);
|
metric_thread (diameter=SINGLE_THREAD_D, pitch = PITCH, thread_size = THREAD, length = 21);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
//cylinder plug
|
//cylinder plug
|
||||||
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);
|
||||||
|
|
Loading…
Reference in New Issue