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);
}
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)
@ -154,9 +157,11 @@ module pentagon_tube(height,radius,wall)
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)