Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error: [GDSTK] Unable to link hole in boolean operation. #254

Open
David-Pahl opened this issue Jun 10, 2024 · 3 comments
Open

Error: [GDSTK] Unable to link hole in boolean operation. #254

David-Pahl opened this issue Jun 10, 2024 · 3 comments

Comments

@David-Pahl
Copy link

How do I resolve the error [GDSTK] Unable to link hole in boolean operation.

It appears when I perform a boolean "not" operation of the shape, first image attached (white is the part that is cutout). In most situations where this shape is generated, it works.

image

Sometimes, however, the boolean operation results in the following:
image

A hacky solution had previously been to scale the gridsize, as this is probably a rounding issue. But even when going to max precision the situation is not always resolved. I have also tried scaling up the shapes, then performing the boolean operation and then scaling the shapes down to their original size, but this also doesn't always resolve the issue.

Finally, if I change the cutout shapes to the following it always works, but this is not the cutout shape I want.

image

Any ideas on how to solve this issue? Thanks

@heitzmann
Copy link
Owner

Hard to say, usually these floating point issues can be resolved by setting an appropriate scaling. if that's not the case, them it gets a lot more complicated. Would it be possible to build it without rotation, maybe?

@David-Pahl
Copy link
Author

David-Pahl commented Jun 12, 2024 via email

@tvt173
Copy link

tvt173 commented Jun 13, 2024

i suggest trying the booleans with klayout. i find that booleans in klayout are generally more robust. klayout shapes and operations are based on integer (dbu) values, not floating point, which helps to eliminate this class of error

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants