// -*- C -*- module FArcSegment_mask(beta) { for (i=[0 : 0.75 : 3]) { rotate(i*beta/4) polygon([[0, 0], [1, 0], [cos(beta), sin(beta)]]); } } module FArcSegment(xc,yc,inrad,outrad,alpha,delta) { translate(xc,yc) { intersection() { difference() { circle(r=outrad); circle(r=inrad); } rotate(alpha) scale(outrad*2) { FArcSegment_mask(delta); } } } } FArcSegment(10,10, 20,30, 20,10);