Home Forums KLayout Issues with length of Euler bend

Viewing 3 posts - 1 through 3 (of 3 total)
  • Author
    Posts
  • #6559
    LaserJon
    Participant

    Hi,

    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.clear_layers()
    nd.add_layer(name='rib', layer=(10,0), fab_name='example', accuracy=0.001)
    
    with nd.Cell(name='top_cell') as top_cell:
        #https://en.wikipedia.org/wiki/Euler_spiral
        #expected path length: L = 2 * Radius * Angle(rad)
        y=0
        #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),]:
        euler1=nd.euler(width1=1,width2=1,radius=radius,angle=angle,layer='rib').put(0,y,0)
        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))
        y-=5
    
    nd.export_gds(topcells=top_cell,filename='example_081321.gds')

    Output:

    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

    #6591
    Ronald
    Keymaster

    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.

    Ronald

    #7116
    Edgars
    Participant

    Dear Ronald,

    has the issue described above been fixed in 0.5.13 version of nazca design?

     

    Thanks,

    E

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