Tagged: Euler, trace, length_geo
 This topic has 1 reply, 2 voices, and was last updated 1 year, 1 month ago by Ronald.

AuthorPosts

17 August 2021 at 19:26 #6559LaserJonParticipant
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
5 October 2021 at 23:04 #6591RonaldKeymasterDear 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 eulerbend scaling as well as provide automated transitions to arcbends if a specified mininum bend radius is reached. The updated Euler will also use a better discretisation setting for the specified mask resolution.
Ronald

AuthorPosts
 You must be logged in to reply to this topic.