Dear Edgars,
I think the following should do what you want, or, at least, point you in the right direction.
import nazca as nd
gds = nd.load_gds(filename='my_file.gds', topcellsonly=False, asdict=False)
for params in nd.cell_iter(gds, revisit=True):
if params.cell_start:
name = params.cell.cell_name
for name not in Device_dictionary:
continue
# get cell's translation (pointer) and flip w.r.t. cell_top
pointer, flip = params.transflip_glob
for annot, xy in params.iters['annotation']:
if flip:
p = nd.Pointer(xy[0], -xy[1])
else:
p = nd.Pointer(*xy)
# add pin position in the cell to the cell translation.
print(name, pointer.copy().move_ptr(p).xya())
Xaveer
-
This reply was modified 7 months, 4 weeks ago by Xaveer.
-
This reply was modified 7 months, 4 weeks ago by Katarzyna.
-
This reply was modified 7 months, 4 weeks ago by Katarzyna.