From f903a11192511889f87eac896eb679729c389939 Mon Sep 17 00:00:00 2001 From: Justin Lin Date: Sun, 7 May 2017 09:57:21 +0800 Subject: [PATCH] refactored --- src/circular_sector.scad | 6 ++---- src/ellipse.scad | 10 ++++------ src/helix.scad | 7 ++++--- src/helix_extrude.scad | 6 +++--- src/line2d.scad | 6 +++--- src/line3d.scad | 7 +++---- src/ring_extrude.scad | 6 +++--- src/rounded_cube.scad | 6 +++--- src/rounded_square.scad | 6 +++--- src/shape_ellipse.scad | 6 +++--- src/shape_square.scad | 6 +++--- 11 files changed, 34 insertions(+), 38 deletions(-) diff --git a/src/circular_sector.scad b/src/circular_sector.scad index 5ac45b27..e752e5de 100644 --- a/src/circular_sector.scad +++ b/src/circular_sector.scad @@ -10,12 +10,10 @@ * **/ +include <__private__/__frags.scad>; module circular_sector(radius, angles) { - frags = $fn > 0 ? - ($fn >= 3 ? $fn : 3) : - max(min(360 / $fa, radius * 6.28318 / $fs), 5) - ; + frags = __frags(radius); r = radius / cos(180 / frags); step = -360 / frags; diff --git a/src/ellipse.scad b/src/ellipse.scad index 1f43774e..86309388 100644 --- a/src/ellipse.scad +++ b/src/ellipse.scad @@ -11,12 +11,10 @@ * **/ -module ellipse(axes) { - frags = $fn > 0 ? - ($fn >= 3 ? $fn : 3) : - max(min(360 / $fa, axes[0] * 6.28318 / $fs), 5); - - step_a = 360 / frags; +include <__private__/__frags.scad>; + +module ellipse(axes) { + step_a = 360 / __frags(axes[0]); polygon( [ for(a = [0:step_a:360 - step_a]) diff --git a/src/helix.scad b/src/helix.scad index 8a80d577..c247a8ae 100644 --- a/src/helix.scad +++ b/src/helix.scad @@ -12,13 +12,14 @@ * **/ +include <__private__/__frags.scad>; + function helix(radius, levels, level_dist, vt_dir = "SPI_DOWN", rt_dir = "CT_CLK") = let( r1 = len(radius) == undef ? radius : radius[0], r2 = len(radius) == undef ? radius : radius[1], - _frags = $fn > 0 ? - ($fn >= 3 ? $fn : 3) : - max(min(360 / $fa, r1 * 6.28318 / $fs), 5), + init_r = vt_dir == "SPI_DOWN" ? r2 : r1, + _frags = __frags(init_r), h = level_dist * levels, vt_d = vt_dir == "SPI_DOWN" ? 1 : -1, rt_d = rt_dir == "CT_CLK" ? 1 : -1, diff --git a/src/helix_extrude.scad b/src/helix_extrude.scad index 439d1f78..cd7fe200 100644 --- a/src/helix_extrude.scad +++ b/src/helix_extrude.scad @@ -10,6 +10,8 @@ * **/ +include <__private__/__frags.scad>; + module helix_extrude(shape_pts, radius, levels, level_dist, vt_dir = "SPI_DOWN", rt_dir = "CT_CLK", twist = 0, scale = 1.0, triangles = "RADIAL") { @@ -19,9 +21,7 @@ module helix_extrude(shape_pts, radius, levels, level_dist, init_r = vt_dir == "SPI_DOWN" ? r2 : r1; - frags = $fn > 0 ? - ($fn >= 3 ? $fn : 3) : - max(min(360 / $fa, init_r * 6.28318 / $fs), 5); + frags = __frags(init_r); v_dir = vt_dir == "SPI_UP" ? 1 : -1; r_dir = rt_dir == "CT_CLK" ? 1 : -1; diff --git a/src/line2d.scad b/src/line2d.scad index b90433ff..cd6efcc9 100644 --- a/src/line2d.scad +++ b/src/line2d.scad @@ -10,6 +10,8 @@ * **/ +include <__private__/__frags.scad>; + module line2d(p1, p2, width, p1Style = "CAP_SQUARE", p2Style = "CAP_SQUARE") { half_width = 0.5 * width; @@ -27,9 +29,7 @@ module line2d(p1, p2, width, p1Style = "CAP_SQUARE", p2Style = "CAP_SQUARE") { p2 + offset2, p1 + offset2 ]); - frags = $fn > 0 ? - ($fn >= 3 ? $fn : 3) : - max(min(360 / $fa, half_width * 6.28318 / $fs), 5); + frags = __frags(half_width); remain = frags % 4; end_frags = (remain / 4) > 0.5 ? frags - remain + 4 : frags - remain; diff --git a/src/line3d.scad b/src/line3d.scad index 48b772e2..e2467445 100644 --- a/src/line3d.scad +++ b/src/line3d.scad @@ -10,13 +10,12 @@ * **/ +include <__private__/__frags.scad>; + module line3d(p1, p2, thickness, p1Style = "CAP_CIRCLE", p2Style = "CAP_CIRCLE") { r = thickness / 2; - frags = $fn > 0 ? - ($fn >= 3 ? $fn : 3) : - max(min(360 / $fa, r * 6.28318 / $fs), 5) - ; + frags = __frags(r); remain = frags % 4; frags_of_4 = (remain / 4) > 0.5 ? frags - remain + 4 : frags - remain; diff --git a/src/ring_extrude.scad b/src/ring_extrude.scad index ee684b54..8d2b8de7 100644 --- a/src/ring_extrude.scad +++ b/src/ring_extrude.scad @@ -11,10 +11,10 @@ * **/ +include <__private__/__frags.scad>; + module ring_extrude(shape_pts, radius, angle = 360, twist = 0, scale = 1.0, triangles = "RADIAL") { - frags = $fn > 0 ? - ($fn >= 3 ? $fn : 3) : - max(min(360 / $fa, radius * 6.28318 / $fs), 5); + frags = __frags(radius); angle_step = 360 / frags; as = [for(a = [0:angle_step:angle]) [90, 0, a]]; diff --git a/src/rounded_cube.scad b/src/rounded_cube.scad index 8b836457..1490d094 100644 --- a/src/rounded_cube.scad +++ b/src/rounded_cube.scad @@ -11,14 +11,14 @@ * **/ +include <__private__/__frags.scad>; + module rounded_cube(size, corner_r, center = false) { x = len(size) == undef ? size : size[0]; y = len(size) == undef ? size : size[1]; z = len(size) == undef ? size : size[2]; - frags = $fn > 0 ? - ($fn >= 3 ? $fn : 3) : - max(min(360 / $fa, corner_r * 6.28318 / $fs), 5); + frags = __frags(corner_r); remain = frags % 4; corner_frags = (remain / 4) > 0.5 ? frags - remain + 4 : frags - remain; diff --git a/src/rounded_square.scad b/src/rounded_square.scad index 830cba8c..13aff21a 100644 --- a/src/rounded_square.scad +++ b/src/rounded_square.scad @@ -11,10 +11,10 @@ * **/ +include <__private__/__frags.scad>; + module rounded_square(size, corner_r, center = false) { - frags = $fn > 0 ? - ($fn >= 3 ? $fn : 3) : - max(min(360 / $fa, corner_r * 6.28318 / $fs), 5); + frags = __frags(corner_r); remain = frags % 4; corner_frags = (remain / 4) > 0.5 ? frags - remain + 4 : frags - remain; diff --git a/src/shape_ellipse.scad b/src/shape_ellipse.scad index bd8ab327..20f0fe5c 100644 --- a/src/shape_ellipse.scad +++ b/src/shape_ellipse.scad @@ -12,11 +12,11 @@ * **/ +include <__private__/__frags.scad>; + function shape_ellipse(axes) = let( - frags = $fn > 0 ? - ($fn >= 3 ? $fn : 3) : - max(min(360 / $fa, axes[0] * 6.28318 / $fs), 5), + frags = __frags(axes[0]), step_a = 360 / frags, shape_pts = [ for(a = [0:step_a:360 - step_a]) diff --git a/src/shape_square.scad b/src/shape_square.scad index 3362332f..62903068 100644 --- a/src/shape_square.scad +++ b/src/shape_square.scad @@ -12,11 +12,11 @@ * **/ +include <__private__/__frags.scad>; + function shape_square(size, corner_r = 0) = let( - frags = $fn > 0 ? - ($fn >= 3 ? $fn : 3) : - max(min(360 / $fa, corner_r * 6.28318 / $fs), 5), + frags = __frags(corner_r), remain = frags % 4, corner_frags = (remain / 4) > 0.5 ? frags - remain + 4 : frags - remain, step_a = 360 / corner_frags,