2, style='romand', line_width=0.044, layer=l_smBeam) ] xmax_cell = Cell('MerryChristmas') for i, xmas_text in enumerate(xmas_texts): xmas_text.translate( tuple( np.array(-xmas_text.bounding_box.mean(0)) + np.array([20, -80 - i * 10.]))) # Center justify label xmax_cell.add(xmas_text) TopCell = Cell('GrowthTheoryTopCell') TopCell.add(wheel1, origin=(-170., -50.), rotation=-90.) TopCell.add(wheel2, origin=(-175., -50.), rotation=-90.) TopCell.add(wheel3, origin=(0, -80)) TopCell.add(PitchDep, origin=(-200., -250.)) TopCell.add(LenWidDep, origin=(-200., -50.)) TopCell.add(xmax_cell, origin=(-110., 60.)) return TopCell if __name__ == "__main__": TopCell = make_theory_cell() # Add the copied cell to a Layout and save layout = Layout('LIBRARY') layout.add(TopCell) layout.save('GrowthTheoryCell_B.gds')
wafer = MBEWafer('MembranesWafer', wafer_r=wafer_r, cells=[topCell], cell_gap=CELL_GAP, mkWidth=tDicingMarks, cellsAtEdges=False) file_string = str(waferVer) filename = file_string.replace(' ', '_') # Add pattern for ellipsometry check of SiO2 etching size = 2000 rect = Rectangle((size / 2., size / 2.), (-size / 2., -size / 2.), layer=10) rectCell = Cell('EtchCheckSquare') rectCell.add(rect) rect_layout = Layout('LIBRARY') rect_layout.add(rectCell) rect_layout.save(filename + '_etchCheck.gds') rect_layout.add(rectCell) # wafer.add(rectCell, origin=(0, -2000)) layout.add(wafer) layout.save(filename + '.gds') # Output down chip for doing aligned jobs layout_down = Layout('LIBRARY') layout_down.add(wafer.block_down) layout_down.save(filename + '_downblock.gds') # Output up chip for doing aligned jobs layout_up = Layout('LIBRARY') layout_up.add(wafer.block_up)
smField4.make_many_shapes(25, areas, pitch, shapes, skew, l_smBeam) centerAlignField = Frame("CenterAlignField", (smFrameSize, smFrameSize), []) # Add everything together to a top cell topCell = Cell("TopCell") # topCell.add(lgField) smFrameSpacing = 400 # Spacing between the three small frames dx = smFrameSpacing + smFrameSize dy = smFrameSpacing + smFrameSize topCell.add(smField1, origin=(-dx / 2., dy / 2.)) topCell.add(smField2, origin=(dx / 2., dy / 2.)) topCell.add(smField3, origin=(-dx / 2., -dy / 2.)) topCell.add(smField4, origin=(dx / 2., -dy / 2.)) # topCell.add(centerAlignField, origin=(0., 0.)) # %%Create the layout and output GDS file layout = Layout('LIBRARY', precision=1e-10) wafer = MBEWafer('MembranesWafer', wafer_r=wafer_r, cells=[topCell], cell_gap=CELL_GAP, mkWidth=tDicingMarks, cellsAtEdges=False) layout.add(wafer) file_string = str(waferVer) filename = file_string.replace(' ', '_') + '.gds' layout.save(filename)