Hi Jim,
you can use master or any other branch, but without warranty.
The usual approach (and the one favoured by GitHub) is: features are developed in branches. When they are considered stable enough they are integrated into the master (pull request). Hence the master is kind of "latest greatest", but with a certain risk of being spoiled. There are also forks from other user with their own masters and branches. Don't confuse them with the ones from the KLayout project.
But eventually, when the master is considered to have a sufficient quality, a release is made by creating a release tag (https://github.com/KLayout/klayout/releases). A release is a snapshot which is then turned into Windows binaries, Linux packages, PyPI wheels etc. This this is a lengthy process and I don't want to do this too often.
Matthias
Hello,
The "convert_cell_to_static" method does not replace the cell - it will rather create a new, equivalent one. In order to replace all cells, you have first to create the static versions, then translate the instances and finally dele…
Sorry, typo in the documentation: to output the number of violations, use
drc_TANK_width.data.size
"size" is ambiguous as it also means the "sizing" (bias) feature. It should rather be "count" or similar :(
Matthias
Hi Jim,
the location is listed in the first statement (here: line 4). Currently, you have to close the message box, switch to the original tab and navigate to line 4.
Syntax errors are notoriously hard to capture as they don't come with a stack tr…
Hi Jim,
please see my comments of the previous post too ... I'm digging through the recent bunch of posts (somewhat made people post all their questions right before Halloween - is this supposed to be scary?).
The syntax in general is Ruby, so you…
Hi jonathan,
thanks for sharing this.
One comment maybe: if you're just looking for a layer, you can simply type the number into the layer list. A search text box will open then (Caution: bindkeys won't open the search box, but trigger the respect…
Hi Jim,
I have once started a fake "PDK" project to give some examples: https://github.com/klayoutmatthias/si4all/tree/master
It contains a simplistic design manual and a DRC so far. LVS did not exist at the time I made this up, but will…
Hello,
That's obviously another issue with 4k resolution.
As the icons (which have a fixed dimension) get smaller as compared to the font size, the texts get clipped. In this case the "0px" etc. fields get the same size as the ones with …
Hello,
your code is more readable if you use Markdown formatting and put a single line with a triple backtick before and after your code.
You can use DRC for your purpose if you know that using the "data" method you can access each layer…
Well, in a sense the bindkeys are loaded from a file :)
If you mean to have an easy way to exchange bindkeys: bindkeys can also be defined by script. So essentially, a script could load the bindkeys from a file in a script-defined format. You could…
I'm just saying, an automated translation script would not be possible without violating copyright rules.
A document describing the translation - well, I'd not do it myself, but I don't think this is forbidden.
Regards,
Matthias
Thanks for the clarification .. I missed the meaning of "yet to encounter" :)
For MacOS there actually is a special handling for high resolution displays. I did not see so far this is required for Windows. But I can make this configurable…
Hi jonathan,
"None" was intended to reset the cursor to the application default, not make it invisible. But for Python, "None" is a reserved word, so this is not available :-(
I'll give a different name (i.e. "Default"…
Hi Jim,
oh yes .. by definition that's a small object.
But if this is annoying, you can disable "zoom on paste" in Setup/Navigation/Zoom And Pan: Select "Don't change view" or "Pan to pasted object" - both modes won't…
Hi Pavel,
thanks for sharing this. For rectangles, there is the "with_bbox_min" and "with_bbox_max" method which selected boxes based on their minimum of maximum dimension. These methods allow selecting object with an attribute …
Hi Jonathan,
thanks for the hint about the class order.
Regarding your points:
1.) There is no cursor - actually there is just the mouse pointer and it can't (or should not) be manipulated. So if you want a snapping cursor, you have to implement …
Yes there is :-)
To switch to "Select" mode, use:
pya.MainWindow.instance().menu().action("@toolbar.select").trigger()
To switch to "Move" mode, use:
pya.MainWindow.instance().menu().action("@toolbar.move"…
Hi Preet,
I guess that this would then rather be a "binning" feature, not DRC.
DRC is just "less than". The edge pairs mark those situations where the distance between two edges is less than a given distance. If your layout is …
Hi Jim (I think :-) ),
The limitation isn't by KLayout but within the PNG library - I think it can't handle memory chunks bigger than 2G. If you're happy with monochrome, you can try the monochrome option in the "save_image_with_options" …
Hi Thomas,
thanks for the code :-)
It's still possible however, just to draw manually ... just place a "TEXT" PCell from the "Basic" library, go to the "PCell" tab in the instance properties and enter the layer and te…
Hi Thomas,
Thanks for sharing this code. About the name, I'd not worry ... this is a generated "speaking" description and that does not have impact on the functionality.
If you want to avoid this you can take the PCell directly from the …
Hi Tomas,
You mean to keep the integer-unit objects such as Box, CellInstArray when working with the database API?
I'll keep the integer-unit objects forever, so you don't have to update :-)
Seriously, the integer-unit objects are somewhat more s…
Hi Preet,
what do you mean by "same DRC violations"? Same distance? Or just violations?
Are we still talking about pya scripts? Or do you mean DRC?
Matthias
Hi zzz,
"errno 2" is a Unix error code saying the file can't be found ... I think this happens in your case because the path does not exist completely.
For example, if the path if "/home/matthias/output/layout.gds" and "ou…
Hi Preet,
edge pairs aren't real layout objects ... while edges can be represented by two-point paths with zero width, there is no such representation of an edge pair in GDS. I assume that edge pairs are getting resolved into single edges when you …
Hi Tamara,
xsection isn't a technology component. It's a separate thing. So that's simply not possible for now.
The whole XSection thing is a pretty simple hack and I have some doubts whether it has the quality of a intrinsic feature such as DRC.
…
P.S. "convert to PCell" is partially covered by PCellDeclaration#parameters_from_shape. But still you have to delete the shape and insert the PCell instance yourself.
Hi Thomas,
Well ... there is a pitfall.
Please you a DPath object with Micrometer values instead. So that would be
path_points = [DPoint.new(0,0), DPoint.new(20,0), DPoint.new(20,20)]path_width = 2path = DPath.new(path_points, path_width)param = …