import pyaimport mathdef create_hexagon(center_x, center_y, radius): """Create a single hexagon""" points = [] for i in range(6): angle = 2 * math.pi * i / 6 x = center_x + radius * math.cos(angle) y = center_y + radius * math.sin(angle) points.append(pya.Point(int(x * 1000), int(y * 1000))) return pya.Polygon(points)# Create layoutlayout = pya.Layout()layer_index = layout.insert_layer(pya.LayerInfo(1, 0))cell = layout.create_cell("TOP")# Hexagon parametersradius = 0.5 # Hexagon radiusspacing = radius * 1.8 # Spacing between hexagons# Create hexagon arrayrows = 5cols = 5for row in range(rows): for col in range(cols): # Calculate hexagon center position (staggered arrangement) if row % 2 == 0: x = col * (radius * 1.732) * 2 # 1.732 = √3 else: x = (col + 0.5) * (radius * 1.732) * 2 y = row * radius * 1.5 hexagon = create_hexagon(x, y, radius) cell.shapes(layer_index).insert(hexagon)# Save filelayout.write("hexagon_array.gds")