Files
juqs-collar/round_poly.scad
T
2022-01-09 15:53:50 -08:00

15 lines
421 B
OpenSCAD

include<math.scad>;
module round_poly(shape, radius, size = 0, sharpness = 0){
function grow(s, m) = [ for (i = s) i + normalize(i) * m];
function add_radius(s, r) = grow(s, r/cos(180/len(s)));
corner_r = lerp(radius, 0, sharpness);
corner_offset = lerp(0, radius, sharpness);
minkowski(){
polygon(add_radius(scale_xy(shape,size),corner_offset));
circle(max(corner_r, 0.0001));
}
}