Home Forums KLayout Issues with length of Euler bend

Viewing 2 posts - 1 through 2 (of 2 total)
  • Author
  • #6559


    I am having some trouble with the Euler bend.  The expected length, the bend’s property length_geo, and the length on the mask only match for a 90 degree bend, and otherwise they are all different.  I’m using the current Nazca version.  Can you advise please?

    Sample Code:

    import nazca as nd
    import numpy as np
    nd.add_layer(name='rib', layer=(10,0), fab_name='example', accuracy=0.001)
    with nd.Cell(name='top_cell') as top_cell:
        #expected path length: L = 2 * Radius * Angle(rad)
        #The third value in tuples below are approximate lengths I measured from the mask.
        for radius,angle,masklength in [(12.5,180,55),(12.5,90,39),(50,90,156),(50,8,47),(50,4,33),(50,2,23.4),(50,1,16.6),(25,1,8.3),(12.5,1,4.1),]:
        print('Radius/Angle: ({:.1f}/{}) Expected length: {:.2f}, length_geo: {:.2f}, mask measured length: {}'.format(radius,angle,2*radius*angle*np.pi/180, euler1.length_geo,masklength))


    Rad/Angle: (12.5/180)  Expected length: 78.54, length_geo: 27.77, mask measured length: 55

    Rad/Angle: (12.5/90)  Expected length: 39.27, length_geo: 39.27, mask measured length: 39

    Rad/Angle: (50.0/90)  Expected length: 157.08, length_geo: 157.08, mask measured length: 156

    Rad/Angle: (50.0/8)  Expected length: 13.96, length_geo: 526.86, mask measured length: 47

    Rad/Angle: (50.0/4)  Expected length: 6.98, length_geo: 745.09, mask measured length: 33

    Rad/Angle: (50.0/2)  Expected length: 3.49, length_geo: 1053.72, mask measured length: 23.4

    Rad/Angle: (50.0/1)  Expected length: 1.75, length_geo: 1490.19, mask measured length: 16.6

    Rad/Angle: (25.0/1)  Expected length: 0.87, length_geo: 745.09, mask measured length: 8.3

    Rad/Angle: (12.5/1)  Expected length: 0.44, length_geo: 372.55, mask measured length: 4.1


    Thanks, Jon


    Dear Jon,

    A correct observation. This has been fixed a while ago in the development version and will make it in the new public Nazca release. That release will also have more advanced Euler bends that by default fix euler-bend scaling as well as provide automated transitions to arc-bends if a specified mininum bend radius is reached. The updated Euler will also use a better discretisation setting for the specified mask resolution.


Viewing 2 posts - 1 through 2 (of 2 total)
  • You must be logged in to reply to this topic.