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 in cell.fill_region #134

EmilKleijn opened this issue Jun 21, 2018 · 4 comments

Error in cell.fill_region #134

EmilKleijn opened this issue Jun 21, 2018 · 4 comments


Copy link

In a Ruby script I am running, I use the fill_region function to add tiling. I have now encountered a problematic file that generates the following error in KLayout v0.25.3:
Internal error: ../../../src/db/db/ m_open.emtpy () was not true in Cell:fill_region

The fill_region command runs sucessfully in v0.24.8

Required files for reproducing the issue:

Includes the export script, the fill cell, and the problematic cell.


Copy link

Thanks a lot for the test case. I will look into this.


Copy link


I'm able to reproduce this issue and isolate the internal data which cause this error. Internal a big polygon with zero-width spikes is generated. I assume due to some implicit normalization these got deleted in 0.24.x.

I'll try to provide a fix this this. I'm afraid there is no simple workaround currently except using 0.24.

Best regards,


Copy link

Hi Matthias,

Thanks for looking into this! I'm glad you can reproduce the issue.


klayoutmatthias added a commit that referenced this issue Jun 25, 2018
The issue was caused by an internal error in the edge processor.
Effectively the weak attractor scheme was causing this problem.
As the weak attractors are making things worse rather than
better I dropped them.

In theory, the weak attractors render an edge undisturbed by
neighboring intersection points, but in cases or parallel edges
this lead to problems: omitting cut points violates the output
edge configuration warranties the the polygon stitcher fails.

In addition, to maintain the solution for bug #74, the cut point
capture condition was relaxed, so that edge crossing the exact
corner of the snapping rectangle of a point are not considered
Copy link

Hi Emil,

GitHub automatically closed this issue when I committed ... :-)

I am able to fix the problem and will release this with the next minor release. It will take a little as I try to collect a few commits before I release.



netbsd-srcmastr pushed a commit to NetBSD/pkgsrc that referenced this issue Sep 22, 2018
0.25.4          (2018-08-25):
* Bugfix: KLayout/klayout#121
       Issue with multiple reads of GDS2 layouts including PCells
* Bugfix: KLayout/klayout#134
       Error in cell.fill_region caused by big polygon with
* Bugfix: KLayout/klayout#139
       Libraries have not been reassigned when loading a GDS file
       from command line (does not happen on File/Open)
* Bugfix: KLayout/klayout#141
       Issue with RBA::QHostAddress (ambiguous overload) on Qt5
* Bugfix: KLayout/klayout#142
       Issue with RBA::RecursiveShapeIterator#region=
* Bugfix: KLayout/klayout#144
       The Salt package descriptions are not shown with Motif
* Bugfix: KLayout/klayout#148
       Wrong font is used
* Bugfix: KLayout/klayout#152
       Shapes#size reported a wrong shape count in viewer mode
* Bugfix: KLayout/klayout#153
       Application crash when editing guiding shape properties
* Bugfix: KLayout/klayout#155
       Program freezes after replacing nothing by something in
       Macro editor
* Bugfix: KLayout/klayout#157
       "Replace cell with ..." rejected cell names with a library
* Bugfix: KLayout/klayout#158
       Repaint issue on cell context
* Bugfix: KLayout/klayout#159
       Tech specific macros and DRC scripts were not shown in tech
* Bugfix: 8 bit indexed GIF images can be used for package icons now
* Enhancement: Provide a way to specify the type of a macro
       This feature is mainly useful for command line arguments.
       If you run KLayout with "klayout -b -r myscript"
       it will not be able to determine the type of macro without
       a suffix.

       You can now explicitly specify a certain type by
       giving the suffix implicitly like: "klayout -b -r myscript[rb]"
       This will read "myscript" but pretend it was "myscript.rb"
       and execute it as Ruby script.

       This feature is handy if you need to run a file with a
       specific interpreter but cannot modify the file name.
* Enhancement: Selection now shows PCell display names
       Before, the internal name was shown for instances
* Enhancement: There is an option in the View menu to show or hide markers
       Markers may hide layout under them. With this feature you can
       quickly disable all markers and the layout becomes visible.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
None yet
None yet

No branches or pull requests

2 participants