xmonCross = XmonCross(xmon_center, cross_width, cross_len, cross_gnd_gap) # cutting everything out except for the tail that will be capcitavely coupled # to Xmon for key in list(worm.primitives.keys()): if (key == "cop_tail" ) or key.startswith("fork") or key.startswith("erased"): pass else: del worm.primitives[key] # calculate bounding box dimensions tmp_reg = Region() worm.place(tmp_reg) xmonCross.place(tmp_reg) bbox = tmp_reg.bbox() # calculate simulation box dimensions CHIP.dx = 3 * bbox.width() CHIP.dy = 2 * bbox.height() chip_p1 = DPoint(bbox.center()) + DPoint(-0.5 * CHIP.dx, -0.5 * CHIP.dy) chip_p2 = DPoint(bbox.center()) + DPoint(0.5 * CHIP.dx, 0.5 * CHIP.dy) chip_box = pya.Box(DPoint(0, 0), DPoint(CHIP.dx, CHIP.dy)) # forming resonator's tail upper side open-circuited for simulation p1 = worm.cop_tail.start p2 = p1 + DPoint(0, 20e3) empty_cpw_tail_start = CPW(0, Z_res.b / 2, p1, p2) # placing all objects in proper order and translating them to origin
cv = mw.create_layout(1) lv = mw.current_view() else: cv = lv.active_cellview() # find or create the desired by programmer cell and layer layout = cv.layout() layout.dbu = 0.001 if (layout.has_cell("testScript")): pass else: cell = layout.create_cell("testScript") info = pya.LayerInfo(1, 0) layer_i = layout.layer(info) lv.select_cell(cell.cell_index(), 0) lv.add_missing_layers() region = Region() Z0 = CPW(1e3, 1e3, DPoint(0, 0), DPoint(1e6, 0)) Z0.place(region) print(region.bbox()) # output: () cell.shapes(layer_i).insert(region) # output: nothing is drawn '''region = Region() Z0 = CPW( 1e3,1e3, DPoint(0,0), DPoint(1e6,0) ) region = region + Z0.metal_region - Z0.empty_region print( region.bbox() ) # output: (0,-500,1e6,500) cell.shapes( layer_i ).insert( region ) #output: line is drawn as intended ''' lv.zoom_fit()