diff --git a/primitives.scad b/primitives.scad index 921e0e4..110b30b 100644 --- a/primitives.scad +++ b/primitives.scad @@ -177,12 +177,13 @@ module cylinder(r=undef, d=undef, r1=undef, r2=undef, d1=undef, d2=undef, h=unde r1 = get_radius(r1=r1, r=r, d1=d1, d=d, dflt=1); r2 = get_radius(r1=r2, r=r, d1=d2, d=d, dflt=1); l = first_defined([h, l]); - hh = h/2; + hh = l/2; sides = segs(max(r1,r2)); size = [r1*2, r1*2, l]; + path = [[0,hh],[r2,hh],[r1,-hh],[0,-hh]]; orient_and_anchor(size, orient, anchor, center, spin=spin, size2=[r2*2,r2*2], noncentered=BOTTOM, geometry="cylinder", chain=true) { rotate_extrude(convexity=2, $fn=sides) { - polygon([[0,hh],[r2,hh],[r1,-hh],[0,-hh]]); + polygon(path); } children(); }