From 39d90f8d8bf33e40150fe4fb603c02d6e6830ea0 Mon Sep 17 00:00:00 2001 From: Justin Lin Date: Wed, 17 May 2017 10:13:56 +0800 Subject: [PATCH] supported closed sections --- src/polysections.scad | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/src/polysections.scad b/src/polysections.scad index 3b142126..5c28d1b0 100644 --- a/src/polysections.scad +++ b/src/polysections.scad @@ -49,23 +49,30 @@ module polysections(sections, triangles = "SOLID") { leng_sects = len(sects); leng_pts_sect = len(sects[0]); - first_idxes = [for(i = [0:leng_pts_sect - 1]) leng_pts_sect - 1 - i]; - - last_idxes = [ - for(i = [0:leng_pts_sect - 1]) - i + leng_pts_sect * (leng_sects - 1) - ]; - v_pts = [ for(sect = sects) for(pt = sect) pt - ]; + ]; - polyhedron( - v_pts, - concat([first_idxes], side_indexes(sects), [last_idxes]) - ); + if(sects[0] == sects[leng_sects - 1]) { + polyhedron( + v_pts, + side_indexes(sects) + ); + } else { + first_idxes = [for(i = [0:leng_pts_sect - 1]) leng_pts_sect - 1 - i]; + + last_idxes = [ + for(i = [0:leng_pts_sect - 1]) + i + leng_pts_sect * (leng_sects - 1) + ]; + + polyhedron( + v_pts, + concat([first_idxes], side_indexes(sects), [last_idxes]) + ); + } } module hollow_sections(sects) {