Thanks for looking into this. I wasn't able to reproduce the error in the file that you sent either.
In the attached GDS file though, layer 20 contains a path as drawn, and layer 30 contains a copy of it which I've rounded with 72um outer radius, 50um inner radius, and 100 points.
I'm using version 0.25.3 of KLayout on macOS High Sierra 10.13.6
On 7/21/19 5:12 PM, Matthias Köfferlein wrote:
I'm sorry, but I can't reproduce the issue. I have prepared some layout which looks roughly like the one you pasted:
But all I get are reasonable images. Here for example outer radius = 225, inner radius = 200:
Could you provide a layout file and give some details about KLayout version and OS?
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub<#306?email_source=notifications&email_token=AJYBGK6L37B6D4IZ2VGWDF3QATGKFA5CNFSM4IFHQYBKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD2OLVOA#issuecomment-513587896>, or mute the thread<https://github.com/notifications/unsubscribe-auth/AJYBGK2GHGG3FKZSAKM2ZDDQATGKFANCNFSM4IFHQYBA>.
Maybe this is because you replied by mail to this conversation thread. I think that GitHub strips attachments from mail replies. Maybe you can navigate to GitHub and drag and drop the file there. You will probably need to provide a .zip archive to make GitHub accept it. The issue link is: #306
Thanks for the file ... I found some time to look into this issue.
Here is the analysis: The rounding function tries to guess whether the original shape already had some rounding and tries to undo this before applying the new rounding. In this case, because of the bent nature of the wire, the algorithm is fooled into thinking some rounding had been applied already. There is a numerical issue which eventually leads to this strange result.
I think the solution should be twofold: first, the algorithm needs to be a little more robust numerically and with respect to telling true rounded from fake rounded cases. Second, there needs to be an option to start with the actual polygon rather than the "unrounded" version.
This fix adds a "amend" option to the rounded corners
dialog - disabling this option allows to skip the "undo rounding"
step in case the algorithm does not determine the rounding
properties of the input properly.
Without "amend" enabled, the rounding will always be
applied atop of any existing rounding.