regular_shapes: Extend hexagon module

Allow the hexagon to be defined by the distance between sides,
which is also the diameter of the inscribed circle.
This commit is contained in:
Rock Storm 2018-09-30 19:49:08 +01:00
parent f392483a80
commit 23dc11bc5f

View file

@ -41,9 +41,12 @@ module pentagon(radius)
reg_polygon(5,radius); reg_polygon(5,radius);
} }
module hexagon(radius) module hexagon(radius, diameter, across_flats)
{ {
reg_polygon(6,radius); r = radius;
r = diameter ? diameter/2 : radius;
r = across_flats ? across_flats/2/cos(30) : radius;
reg_polygon(6,r);
} }
module heptagon(radius) module heptagon(radius)
@ -154,9 +157,11 @@ module pentagon_tube(height,radius,wall)
tubify(radius,wall) pentagon_prism(height,radius); tubify(radius,wall) pentagon_prism(height,radius);
} }
module hexagon_prism(height,radius) module hexagon_prism(height, radius, across_flats)
{ {
linear_extrude(height=height) hexagon(radius); r = radius;
r = across_flats ? across_flats/2/cos(30) : radius;
linear_extrude(height=height) hexagon(r);
} }
module hexagon_tube(height,radius,wall) module hexagon_tube(height,radius,wall)