From 3ac08e732c38272def707ebdb84dadda7ad0cc49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Lanzend=C3=B6rfer?= <david.lanzendoerfer@o2s.ch> Date: Tue, 27 Nov 2018 15:45:47 +0800 Subject: [PATCH] Modified script * XOR-ing the label text into the edge of the mask as adviced by the technician * Mirrored all the layers so that the will appear correctly on the wafer --- Vendors/HKUST/Python/make_masks.py | 34 ++++++++++++++++++++++-------- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/Vendors/HKUST/Python/make_masks.py b/Vendors/HKUST/Python/make_masks.py index 76d39b9..ceddee9 100755 --- a/Vendors/HKUST/Python/make_masks.py +++ b/Vendors/HKUST/Python/make_masks.py @@ -61,6 +61,15 @@ def get_frame(bb): return ret +def mirrored_polygons(cell): + bb=cell.get_bounding_box() + width=bb[1][0]-bb[0][0] + pgs=cell.get_polygons() + for pg in pgs: + for tp in pg: + tp[0]=width-tp[0] + return pgs + def make_masks(frame,mask_type,mask_mappings): i=1 for m in mask_mappings: @@ -72,8 +81,22 @@ def make_masks(frame,mask_type,mask_mappings): if(len(gdsii.top_level())==1): for c in gdsii.top_level(): topcell=c.flatten(single_layer=1) - + toppgs=topcell.get_polygons() #we have four tiles ready to be filled + for idx in range(4): + if(len(m)>idx): + cellname="mask_"+m[idx] + tp=get_offset(idx) + fs=2000 + tp[1]=97800 + if((idx==2)or(idx==3)): + tp[1]=16000 + text=gdspy.Text(cellname, fs, tp) + #text=text.fillet(radius=45, points_per_2pi=256, max_points=199, precision=0.001) + toppgs=gdspy.fast_boolean(toppgs,text,"xor") + topcell=gdspy.Cell(mask_type+str(i)) + topcell.add(toppgs) + for idx in range(4): if(len(m)>idx): cellname="mask_"+m[idx] @@ -83,7 +106,7 @@ def make_masks(frame,mask_type,mask_mappings): for c in ngdsii.top_level(): cell=c.flatten(single_layer=1) try: - pgs = cell.get_polygons() + pgs = mirrored_polygons(cell) except: print("No polygons found") @@ -101,13 +124,6 @@ def make_masks(frame,mask_type,mask_mappings): if((idx>=0) and (idx<=3)): topcell.add(gdspy.Polygon(pg)) - tp=get_offset(idx) - fs=1000 - tp[1]=tp[1]-spacing - tp[1]=tp[1]-fs*1.5 - tp[1]=tp[1]-frame_width - topcell.add(gdspy.Text(cellname, fs, tp)) - topcell=topcell.flatten(single_layer=1) outgdsii.add(topcell) outgdsii.write_gds("Vendors/HKUST/Masks/"+mask_type+str(i)+".gds") -- GitLab