Vanilla 1.1.4 is a product of Lussumo. More Information: Documentation, Community Support.
1 to 4 of 4
Thanks for making your excellent program freely available.
The new utility Edit->Selection->Round Corners is amazing!
With it, I can take a layer which is rounded with one set of values (inner radius, outer radius) and change it to another set of values (inner radius, outer radius) and this works perfectly.
However, the DRC method layer#rounded_corners seems to behave differently.
Here's a link to a sample layout:
and here is Ruby DRC script code illustrating the problem:
# these are features on the sample layout
ly1 = input(1,0) # this layer has no rounding
ly2 = input(2,0) # this layer is rounded with 2 um inner and 10 um outer radii
# these are new layers created by this DRC script
ly3 = ly2.rounded_corners(0.0, 0.0, 128) # ly3 is un-rounded
ly4 = ly1.rounded_corners(1.0, 5.0, 128) # ly4 has different rounding than ly2
ly5 = ly2.rounded_corners(1.0, 5.0, 128) # ly5 tries to create different rounding from ly2
ly6 = ly4.xor(ly2)
ly6.output("rounded corner", "rounded corner problem") # note: rounding a square layer did work
ly7 = ly3.xor(ly1)
ly7.output("square corner", "square corner problem") # note: squaring corners didn't work
ly8 = ly5.xor(ly2)
ly8.output("rerounded corner", "rerounded corner problem")
Note that if the feature on GDS layer 2 is selected and then rounded using Edit->Selection->Round Corners with new values (inner = 1.0, outer = 5.0), it is updated correctly.
But, ly5 (created above) does not work correctly--it seems to have the same rounding as the source layer ly2.
(ly3, which is unrounded by setting the inner and outer radii to 0, does not appear to work correctly either.)
Note that ly4, which is created from the unrounded ly1, does work correctly.
Is this the expected behavior?
thanks, but could you reformat the post? It's hard to read. The forum supports Markdown markup, so you can embed code putting four blanks in front of each line.
In general, the DRC "round_corners" and the edit function are not the same. The edit function allows updating the radius while the DRC function will apply "more rounding". In effect, to emulate the editor feature, one would need a "undo rounded corners" before applying a new rounding.
Thanks--that makes sense.
Any pointers on what it would take to add the functionality of "unround" which is available in the edit function as a DRC function?
Naively, I would think it's just a matter of looping through the shapes on a DRC layer and feeding them to the existing edit function, but maybe there are other complications.
This is the pointer: https://github.com/klayoutmatthias/klayout/issues/2.