N = 2 # ok
N = 3 # fails
with BuildPart() as p:
with BuildSketch() as s:
with PolarLocations(0, N, 0, 180):
Rectangle(100, 1)
extrude(amount=-2, taper=-15)
Oddly, if you fillet the outside vertices even slightly, this will work:
N = 20
with BuildPart() as p:
with BuildSketch() as s:
with PolarLocations(0, N, 0, 180):
Rectangle(100, 1)
fillet(s.vertices().sort_by_distance((0,0,0))[N*2:], 0.1)
extrude(amount=-2, taper=-15)
The bug seems to be deep within the OCCT BRepOffsetAPI_MakeOffset code. This is the result of the offset:
which isn't very useful for the creation of the taper.
Oddly, if you fillet the outside vertices even slightly, this will work: