archimedean_spiral_extrude.scad
1 /** 2 * archimedean_spiral_extrude.scad 3 * 4 * @copyright Justin Lin, 2017 5 * @license https://opensource.org/licenses/lgpl-3.0.html 6 * 7 * @see https://openhome.cc/eGossip/OpenSCAD/lib3x-archimedean_spiral_extrude.html 8 * 9 **/ 10 11 use <archimedean_spiral.scad> 12 use <cross_sections.scad> 13 use <sweep.scad> 14 15 module archimedean_spiral_extrude(shape_pts, arm_distance, init_angle, point_distance, num_of_points, 16 rt_dir = "CT_CLK", twist = 0, scale = 1.0, triangles = "SOLID") { 17 points_angles = archimedean_spiral( 18 arm_distance = arm_distance, 19 init_angle = init_angle, 20 point_distance = point_distance, 21 num_of_points = num_of_points, 22 rt_dir = rt_dir 23 ); 24 25 clk_a = rt_dir == "CT_CLK" ? 0 : 180; 26 27 points = [for(pa = points_angles) pa[0]]; 28 angles = [ 29 for(pa = points_angles) 30 [90, 0, pa[1] + clk_a] 31 ]; 32 33 sections = cross_sections(shape_pts, points, angles, twist, scale); 34 35 sweep( 36 sections, 37 triangles = triangles 38 ); 39 40 // testing hook 41 test_archimedean_spiral_extrude(sections); 42 } 43 44 // override it to test 45 module test_archimedean_spiral_extrude(sections) { 46 47 }