Start v3. Render time breakthrough makes it the only viable design to iterate.

This commit is contained in:
mmcwilliams 2020-05-27 15:10:13 -04:00
parent e3c7913be2
commit 5d17925f9e
3 changed files with 27 additions and 32 deletions

4
100ft_v3/gnal_100ft.scad Normal file
View File

@ -0,0 +1,4 @@
include <../libraries/gnal_v3.scad>;
$fn = 200;
spiral(60, 45.55, 2.075, $fn);

4
50ft_v3/gnal_50ft.scad Normal file
View File

@ -0,0 +1,4 @@
include <../libraries/gnal_v3.scad>;
$fn = 200;
spiral(40, 45.55, 2.075, $fn);

View File

@ -1,13 +1,24 @@
include <./path_extrude.scad>;
function X (start_r, spacing, fn, r, i) = (start_r + (r * spacing) + (i * calcIncrement(spacing, fn))) * cos(i * calcAngle(fn));
function Y (start_r, spacing, fn, r, i) = (start_r + (r * spacing) + (i * calcIncrement(spacing, fn))) * sin(i * calcAngle(fn));
D=47; // start diameter
N=40; // number of spirals
FN=500;
$fn=FN;
include <../libraries/path_extrude.scad>;
function circ (d) = PI * d;
function calcFacetSize (end_d, fn) = circ( end_d ) / fn;
//function calcSteps(rotations, fn) = fn * rotations;
function calcAngle (fn) = 360 / fn;
function calcFn(start_d, start_fn, end_d, spacing, r) = start_fn +
( ((circ(calcR(start_d, spacing, r) * 2) - circ(start_d) )
/ (circ(end_d) - circ(start_d))) * ($fn - start_fn));
function calcR(start_d, spacing, r) = (start_d / 2) + (spacing * r);
function calcIncrement(spacing, fn) = spacing / fn;
/**
* spiral_7 - Combination of spiral_3 and spiral_4 that doesn't sacrifice
* performance. Hits an overflow when $fn is higher than 245 which creates
* 8418 vectors at 60 rotations. It's an edge casem
**/
module spiral (rotations = 40, start_d = 48, spacing = 2.075, fn) {
bottom = -7.1;
w = 1.2;
@ -24,27 +35,6 @@ include <../libraries/path_extrude.scad>;
[w, 0]
];
function X (start_r, spacing, fn, r, i) = (start_r + (r * spacing) + (i * calcIncrement(spacing, fn))) * cos(i * calcAngle(fn));
function Y (start_r, spacing, fn, r, i) = (start_r + (r * spacing) + (i * calcIncrement(spacing, fn))) * sin(i * calcAngle(fn));
function circ (d) = PI * d;
function calcFacetSize (end_d, fn) = circ( end_d ) / fn;
//function calcSteps(rotations, fn) = fn * rotations;
function calcAngle (fn) = 360 / fn;
function calcFn(start_d, start_fn, end_d, spacing, r) = start_fn +
( ((circ(calcR(start_d, spacing, r) * 2) - circ(start_d) )
/ (circ(end_d) - circ(start_d))) * ($fn - start_fn));
function calcR(start_d, spacing, r) = (start_d / 2) + (spacing * r);
function calcIncrement(spacing, fn) = spacing / fn;
/**
* spiral_7 - Combination of spiral_3 and spiral_4 that doesn't sacrifice
* performance. Hits an overflow when $fn is higher than 245 which creates
* 8418 vectors at 60 rotations. It's an edge casem
**/
module spiral (rotations = 40, start_d = 48, spacing = 2.075, fn) {
end_d = start_d + (spacing * 2 * rotations);
end_r = end_d / 2;
start_r = start_d / 2;
@ -61,6 +51,3 @@ module spiral (rotations = 40, start_d = 48, spacing = 2.075, fn) {
];
path_extrude(exShape=facetProfile, exPath=spiralPath);
}
spiral(N, D, 2.075, $fn);