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) {