Hi jiunnweiyeh,
I run a quick test with your code with my test gds, and I remove line by line and found that if save_image fountion is placed inside "each_inst" loop, then it might not generate image correctly.
Currently I am not quite s…
Hi jiunnweiyeh,
I don't know whether I read you code correctly or not, but my best guess is you are trying to do a automatic measuring the inner dimension of cell with a border layer (93, 0) and take the screenshot.
Because I don't have the gds t…
Hi jiunnweiyeh,
I think there are some possible reasons causing shapes are not shown correctly in the screenshot
Desired cell is not set to new top
show cell with "cellName" as the new top before taking screenshot
layoutView =…
Hi Matthias
Thanks for look into the files and error, this makes alot of sense to me now.
Indeed I use empty arrays in some cases to suppress paths that I would like to drop, which should be the cause of this error.
And thats why when I move all …
Hi ManzAutomations
here's an example of showing a cell and with custom zoom, layer and annotation
import pyadef customView(cellName, zoomBox = None, hideLayer=[], annotationsPoints = []): mainWindow = pya.Application.instance().main_window()…
Hi Default
if you check the path segment by segment like the image show below, you'll observe colsely you'll see that the path is actually doing a quite sharp turn and causing the edge portion swinging back and forth and results in a broken edge co…
Hi ManzAutomations
since you are trying to implement alot of customization into each view (zoom, layer visibility and annotations), I recommend to use "session" to save each view status.
mw = pya.Application.instance().main_window()mw.sa…
Hi bmebu
I've tried the code, and it works fine after a small tweak
viewed_cell = cell_view.cell()viewed_cell = cell_view.cell #use "cell" instead of "cell()" which causes error
After this you should have a path in your lay…
HI mikamar
by using this you can get the layer color, texture and border style image,
view = pya.Application.instance().main_window().current_view()layer_iter = view.begin_layers()while not(layer_iter.at_end()): #get layer icons in image form …
Hi jiunnweiyeh
the case that triggers this error is when we tried to find an intersection point of two parallel segments
I've modified the condition for connecting broken sections
if the line is not connected, check the slope and create an inters…
Hi jiunnweiyeh
I think i made the example abundantly long, the basic idea is to create a customWidget and make it reusable.
following code is a bare minimum example of creates a OptionSelectWidget class that inherts QWidget
in initalize function y…
Hi jiunnweiyeh
It's me again, I've adapt your method and do some modification, the change I made is adding a new point at where small line segment is being removed.
the purpose of this it to keep all the lines at it original place and avoid having …
Hi jiunnweiyeh
if you don't care what causes the small gap and just want a fixed and get a gap-free version of the layer
you can try to utilize the size up and down function to eliminate gaps and output to a separate layer for tape out.
and this …
Hi jiunnweiyeh
incase you need to embed a image into your widget without any external path dependency, you can try to convert the image in to a base64 string and paste it into your code.
here's an example of how to embed image into your program:
…
Hi jiunnweiyeh
seems like you are trying to create a DRC UI and requires a lot of repeated components that is tedious to define one-by-one.
here's an example of wraping a group custom component in to a reusable CustomListItem object, which might a…
Hi jviram
if you don't mind to brute force the line end by pcell, here's an example:
left side is a path w/o forcing 90 deg
right side is a path w/ forcing 90 deg
**increase arc points can improve the smoothness of the arc.
(Image)
import pyaim…
Hi jiunnweiyeh
I think DRC will turn all the shapes in to polygons or edge pairs, which at that stage the engine can no longer distinguish betwee a path and a shape object.
by using KLayout API we can easily filter out path objects and check for s…
Thanks Matthias,
I disabled the debugger and now it works as intended.
Didn't thought about that and I was about to implement a force update on every click. :D
Hi jiunnweiyeh
in the set up menu Display --> optimization option
there's a "drop small cells if" option, this option Klayout will tried to drop small shapes during rendering to reduce system load.
Unchecking this KLayout will not su…
Here's an pcell example of placing rects on the wafer. By converting the pcell in to flat cell and using "search & relpace" function in "edit" menu you can turn those rects into desired cell instances.
(Image)
example scri…