---
title: "mirror2d"
excerpt: "Mirror a sketch."
layout: manual
---

Mirror a sketch.

Only works on unclosed sketches for now.

Mirror occurs around a local sketch axis rather than a global axis.

```js
mirror2d(data: Mirror2dData, sketch_set: SketchSet) -> [Sketch]
```


### Arguments

| Name | Type | Description | Required |
|----------|------|-------------|----------|
| `data` | [`Mirror2dData`](/docs/kcl/types/Mirror2dData) | Data for a mirror. | Yes |
| `sketch_set` | [`SketchSet`](/docs/kcl/types/SketchSet) | A sketch or a group of sketches. | Yes |

### Returns

[`[Sketch]`](/docs/kcl/types/Sketch) 


### Examples

```js
// Mirror an un-closed sketch across the Y axis.
sketch001 = startSketchOn('XZ')
  |> startProfileAt([0, 10], %)
  |> line(end = [15, 0])
  |> line(end = [-7, -3])
  |> line(end = [9, -1])
  |> line(end = [-8, -5])
  |> line(end = [9, -3])
  |> line(end = [-8, -3])
  |> line(end = [9, -1])
  |> line(end = [-19, -0])
  |> mirror2d({ axis = 'Y' }, %)

example = extrude(sketch001, length = 10)
```

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

```js
// Mirror a un-closed sketch across the Y axis.
sketch001 = startSketchOn('XZ')
  |> startProfileAt([0, 8.5], %)
  |> line(end = [20, -8.5])
  |> line(end = [-20, -8.5])
  |> mirror2d({ axis = 'Y' }, %)

example = extrude(sketch001, length = 10)
```

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

```js
// Mirror a un-closed sketch across an edge.
helper001 = startSketchOn('XZ')
  |> startProfileAt([0, 0], %)
  |> line(end = [0, 10], tag = $edge001)

sketch001 = startSketchOn('XZ')
  |> startProfileAt([0, 8.5], %)
  |> line(end = [20, -8.5])
  |> line(end = [-20, -8.5])
  |> mirror2d({ axis = edge001 }, %)

// example = extrude(sketch001, length = 10)
```

![Rendered example of mirror2d 2](data:image/png;base64,[encoded data, 57980 characters])

```js
// Mirror an un-closed sketch across a custom axis.
sketch001 = startSketchOn('XZ')
  |> startProfileAt([0, 8.5], %)
  |> line(end = [20, -8.5])
  |> line(end = [-20, -8.5])
  |> mirror2d({
       axis = {
         custom = {
           axis = [0.0, 1.0],
           origin = [0.0, 0.0]
         }
       }
     }, %)

example = extrude(sketch001, length = 10)
```

![Rendered example of mirror2d 3](data:image/png;base64,[encoded data, 75472 characters])


