min_space

Minimum spacing between merged regions on one layer, or between two layers.

Semantics

layers takes one entry (same-layer spacing) or two (inter-layer spacing). Both layers are merged first (so overlapping/nested shapes don’t create spurious internal gaps), then every pair of regions is checked: for same-layer spacing, all distinct region pairs; for two layers, every region of layers[0] against every region of layers[1].

For each candidate pair, a bounding-box pre-filter skips pairs that can’t be within value before doing real geometry work. Surviving pairs are tested for overlap first — an overlap (or one region sitting inside another’s hole) is not a spacing violation and is skipped. Otherwise the true closest edge-to-edge distance between the two regions is computed (segment-to-segment, not just vertex-to-vertex, so it’s exact for any polygon shape, not only rectangles). A gap of exactly 0 (touching) is never a violation; a gap strictly between 0 and value is.

Each violation is owned by the tile whose core contains the gap’s midpoint, so a pair visible from several overlapping halo tiles is reported exactly once.

Layers

  • Same-layer form: one layer — checks every region against every other region of it.

  • Two-layer form: layers[0], layers[1] — checks every region of the first against every region of the second.

Parameters

None beyond layers and value (µm, the minimum required gap).

Violation markers

One edge marker per violating pair, drawn across the gap (from the closest point on one region to the closest point on the other).

KLayout equivalent

Region#space(value) for the same-layer form; Region#separation(other, value) for the two-layer form.

Example

- id: Act.b
  check: min_space
  layers: [Activ]
  value: 0.21