* Change tangentialArc, tangentialArcTo, and tangentialArcToRelative to keyword args * Change tangentialArc offset to angle and convert to kw arg calls * Fix lints * Fix sketch errors and all unit tests passing * Fix tangentialArcTo calls in KCL samples * Update tangentialArc in samples * Update sim test output * Fix formatting * Fix mistake in merge * Fix gear rack sample * Update output after more samples fixes * Update gear rack output * Add end label to docs snippet * Fix to not add endAbsolute for an arc with radius or angle arguments * Update docs outputs * Fix formatting * Fix executor tests * Fix formatting * Fix bench input files * Fix spelling * Improve error messages --------- Co-authored-by: Adam Chalmers <adam.chalmers@zoo.dev>
123 lines
388 KiB
Markdown
123 lines
388 KiB
Markdown
---
|
|
title: "std::sketch::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(
|
|
@sketches: [Sketch; 1+],
|
|
axis: Axis2d | Edge,
|
|
): Sketch
|
|
```
|
|
|
|
|
|
### Arguments
|
|
|
|
| Name | Type | Description | Required |
|
|
|----------|------|-------------|----------|
|
|
| `sketches` | `[Sketch; 1+]` | The sketch or sketches to be reflected. | Yes |
|
|
| `axis` | `Axis2d | Edge` | The axis to reflect around. | 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)
|
|
```
|
|
|
|

|
|
|
|
```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)
|
|
```
|
|
|
|

|
|
|
|
```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)
|
|
```
|
|
|
|

|
|
|
|
```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 = {
|
|
direction = [0.0, 1.0],
|
|
origin = [0.0, 0.0]
|
|
})
|
|
|
|
example = extrude(sketch001, length = 10)
|
|
```
|
|
|
|

|
|
|
|
```js
|
|
// Sketch on the face of a mirrored sketch, that has been extruded.
|
|
sketch0011 = startSketchOn(XY)
|
|
|> startProfileAt([6.77, 0], %)
|
|
|> yLine(length = 1.27)
|
|
|> tangentialArc(endAbsolute = [5.96, 2.37])
|
|
|> tangentialArc(endAbsolute = [-6.2, 2.44])
|
|
|> tangentialArc(endAbsolute = [-6.6, 1.82])
|
|
|> yLine(length = -1.82)
|
|
|> mirror2d( axis = X )
|
|
|> extrude(length = 10)
|
|
|
|
sketch002 = startSketchOn(sketch0011, 'END')
|
|
|> circle( center = [-0.01, 1.58], radius = 1.2 )
|
|
|> extrude(length = 1.2)
|
|
|
|
shell([sketch002], faces = ['end'], thickness = .1 )
|
|
```
|
|
|
|

|
|
|
|
|