It looks like you're new here. If you want to get involved, click one of these buttons!
I'm using 'extended' to dilate a series of design geometries with the join option. With some of the designs KLayout freezes at this process. If I forgo the 'join' option, it works fine, but it's not what I prefer. I have tried breaking the process apart by doing individual polygons from the layer, still some polygon is killing it. Is there something I should be watching out for in my geometry that's causing an endless loop or something?
Due to this issue, I attempted to wrap the extended command with a Timeout, but KLayout still freezes at same point.
begin
Timeout.timeout(5) do
buff = temp.edges.extended(0,0,fineDilation,0,true)
print "."
end
rescue Timeout::Error
buff = temp.edges.extended(0,0,fineDilation,0)
print "|"
end
Can KLayout deal with timeouts? Or does this mean the extended process is freezing KLayout and not it's script interrupter that's watching for the timeout.
Comments
Problem is that the time is wasted in C++, which Ruby can't control.
There is no way to avoid that except delegating the operation to a subprocess - i.e. writing the edges to a file, running KLayout as a subprocess in batch mode and collecting the results.
The freezing is likely to happen because collecting a large number of edges for the join operation is simply some computational effort. This may happen for example, if you have a large number of edges whose bounding boxes overlap. Or your case is simply made from a huge (~millions) of edges.
If you feel that is not the case and you can provide a testcase, I can try taking a look why the freeze happens.
Matthias
Thanks, yeah it's not that large, but overlapping bounding boxs might be the case. I've switched to using size instead of extended, working much faster.