Create a 30m spiral design. Switch openscad render script to manifold from fast-csg. Render times *drop*.

This commit is contained in:
Matt McWilliams 2024-10-23 10:02:52 -04:00
parent fa1bf6d8a1
commit 2d82d2d04f
4 changed files with 29 additions and 19 deletions

View File

@ -1,6 +1,6 @@
MIT License
Copyright (c) 2021 Matt McWilliams
Copyright (c) 2024 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:

View File

@ -6,12 +6,12 @@ SPOKE_COUNT = 24;
FN = 200;
$fn = FN;
module gnal_50ft_spiral (spiral_count = 40, od = 215.75, quarter = false) {
outer_d = 215;
outer_d_inside = 209;
module gnal_50ft_spiral (spiral_count = 40, od = 215, quarter = false, reinforced = true) {
outer_d = od;
outer_d_inside = outer_d - 6;
outer_h = 7.5;
spoke_len = 81;
spoke_len = ((outer_d - 48) / 2) - 2.5; //81;
spoke_w = 3;
spoke_h = 4.2 + 3;
@ -46,6 +46,7 @@ module gnal_50ft_spiral (spiral_count = 40, od = 215.75, quarter = false) {
}
}
//secondary spokes
/*
for (i = [0 : SPOKE_COUNT]) {
rotate([0, 0, (i + 0.5) * (360 / SPOKE_COUNT)]) {
translate([(outer_d / 2) - (spoke_2_len / 2) - 2, 0, -3.6]) {
@ -53,12 +54,15 @@ module gnal_50ft_spiral (spiral_count = 40, od = 215.75, quarter = false) {
}
}
}
*/
//spoke cross bars
for (i = [0 : SPOKE_COUNT]) {
rotate([0, 0, (i + 0.5) * (360 / SPOKE_COUNT)]) {
translate([63, 0, -3.6]) {
rotate([0, 0, 20]) {
cube([ spoke_w, 18, spoke_h], center = true);
if (outer_d > 130) {
for (i = [0 : SPOKE_COUNT]) {
rotate([0, 0, (i + 0.5) * (360 / SPOKE_COUNT)]) {
translate([63, 0, -3.6]) {
rotate([0, 0, 20]) {
cube([ spoke_w, 18, spoke_h], center = true);
}
}
}
}
@ -66,7 +70,7 @@ module gnal_50ft_spiral (spiral_count = 40, od = 215.75, quarter = false) {
translate([0, 0, -.1]) {
rotate([0, 0, -90]) {
film_guide(spiral_count);
film_guide(spiral_count, reinforced = reinforced);
}
}
}
@ -182,17 +186,19 @@ module gnal_50ft_top () {
}
}
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, reinforced = true) {
spiral(rotations, id, spacing, bottom, $fn);
//reinforce outer spiral
difference () {
spiral_reinforcement(208.9, spacing, -0.1, $fn);
translate([107.35, 6, 0]) cube([5, 15, 10], center = true);
if (reinforced) {
difference () {
spiral_reinforcement(208.9, spacing, -0.1, $fn);
translate([107.35, 6, 0]) cube([5, 15, 10], center = true);
}
}
}
PART="spiral";
PART="30ft_spiral";
if (PART == "spiral") {
gnal_50ft_spiral();
@ -224,6 +230,8 @@ if (PART == "spiral") {
gnal_spindle_single();
} else if (PART == "spindle_stacking") {
rotate([0, 180, 0]) gnal_stacking_spindle();
} else if (PART == "30ft_spiral") {
gnal_50ft_spiral(spiral_count = 19, od = 127, reinforced = false);
} else if (PART == "spiral_test") {
difference () {
gnal_50ft_spiral();

View File

@ -48,7 +48,9 @@ function calcIncrement(spacing, fn) = spacing / fn;
* 2019.05 (and maybe earlier), but should be explored.
**/
module spiral (rotations = 40, start_d = 48, spacing = 2.075, bottom = -7.1, fn) {
diam = (rotations * spacing * 2) + start_d;
echo("DIAM", diam);
echo("SPIRAL", rotations * PI * ((start_d + diam) / 2));
//bottom = -7.1;
w = 1.4;
top_w = .8;

View File

@ -63,9 +63,9 @@ render_part () {
start=`date +%s`
if [[ "${SIZE}" == "100ft" ]]; then
openscad --csglimit=20000000 -o "$stl" -D "PART=\"${FILE}\"" -D "FN=800" -D "DEBUG=false" "${scad}"
openscad --enable manifold --csglimit=20000000 -o "$stl" -D "PART=\"${FILE}\"" -D "FN=800" -D "DEBUG=false" "${scad}"
else
openscad --csglimit=20000000 -o "$stl" -D "PART=\"${FILE}\"" -D "FN=600" -D "DEBUG=false" "${scad}"
openscad --enable manifold --csglimit=20000000 -o "$stl" -D "PART=\"${FILE}\"" -D "FN=600" -D "DEBUG=false" "${scad}"
fi
end=`date +%s`