Cheesing

class Cheesing(multi_poly: MultiPolygon, all_nocheese_gds: list, lib: Library, minx: float, miny: float, maxx: float, maxy: float, chip_name: str, edge_nocheese: float, layer: int, is_neg_mask: bool, datatype_cheese: int, datatype_keepout: int, fab: bool, logger: Logger, max_points: int, precision: float, cheese_shape: int = 0, shape_0_x: float = 5e-05, shape_0_y: float = 5e-05, shape_1_radius: float = 2.5e-05, delta_x: float = 0.0001, delta_y: float = 0.0001)[source]

Create a cheese cell based on input of no-cheese locations.

Create cheesing polygons based on the no-cheese regions.

Parameters:
  • multi_poly – No-cheese areas per layer (shapely multipolygon).

  • all_nocheese_gds – Same geometry in a gdstk-friendly list.

  • lib – Library that will hold all generated cells.

  • minx – Chip minimum x location.

  • miny – Chip minimum y location.

  • maxx – Chip maximum x location.

  • maxy – Chip maximum y location.

  • chip_name – User-defined chip name.

  • edge_nocheese – Buffer around the chip perimeter to leave un-cheesed.

  • layer – Layer number for calculating the cheese.

  • is_neg_mask – If True, export a negative mask; otherwise positive.

  • datatype_cheese – Datatype for cheese polygons.

  • datatype_keepout – Datatype for keepout regions.

  • fab – If True, output fabrication-ready layers; if False, include intermediate/debug layers.

  • max_points – Maximum number of points for a polygon in gdstk.

  • precision – gdstk precision to use.

  • logger – Logger to emit warnings/errors.

  • cheese_shape – 0 for rectangle, 1 for circle.

  • shape_0_x – Rectangle width (centered at 0,0).

  • shape_0_y – Rectangle height (centered at 0,0).

  • shape_1_radius – Circle radius.

  • delta_x – Spacing between holes in x.

  • delta_y – Spacing between holes in y.

Methods

apply_cheesing() Library[source]

Prototype, not complete.

Need to populate self.lib with cheese holes.