---
title: "hole"
excerpt: "Use a 2-dimensional sketch to cut a hole in another 2-dimensional sketch."
layout: manual
---

Use a 2-dimensional sketch to cut a hole in another 2-dimensional sketch.



```js
hole(hole_sketch: SketchSet, sketch: Sketch) -> Sketch
```


### Arguments

| Name | Type | Description | Required |
|----------|------|-------------|----------|
| `hole_sketch` | [`SketchSet`](/docs/kcl/types/SketchSet) | A sketch or a group of sketches. | Yes |
| `sketch` | [`Sketch`](/docs/kcl/types/Sketch) | A sketch is a collection of paths. | Yes |

### Returns

[`Sketch`](/docs/kcl/types/Sketch) - A sketch is a collection of paths.


### Examples

```js
exampleSketch = startSketchOn('XY')
  |> startProfileAt([0, 0], %)
  |> line(end = [0, 5])
  |> line(end = [5, 0])
  |> line(end = [0, -5])
  |> close()
  |> hole(circle({ center = [1, 1], radius = .25 }, %), %)
  |> hole(circle({ center = [1, 4], radius = .25 }, %), %)

example = extrude(exampleSketch, length = 1)
```

![Rendered example of hole 0](data:image/png;base64,[encoded data, 111372 characters])

```js
fn squareHoleSketch() {
  squareSketch = startSketchOn('-XZ')
    |> startProfileAt([-1, -1], %)
    |> line(end = [2, 0])
    |> line(end = [0, 2])
    |> line(end = [-2, 0])
    |> close()
  return squareSketch
}

exampleSketch = startSketchOn('-XZ')
  |> circle({ center = [0, 0], radius = 3 }, %)
  |> hole(squareHoleSketch(), %)
example = extrude(exampleSketch, length = 1)
```

![Rendered example of hole 1](data:image/png;base64,[encoded data, 83536 characters])


