Files
modeling-app/docs/kcl/std-sketch-mirror2d.md
Jonathan Tran 319c60d4fa BREAKING: Change tangential arc to keyword args (#6266)
* 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>
2025-04-11 14:17:20 -04:00

388 KiB

title, excerpt, layout
title excerpt layout
std::sketch::mirror2d Mirror a sketch. manual

Mirror a sketch.

Only works on unclosed sketches for now.

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

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.

Returns

Sketch

Examples

// 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 std::sketch::mirror2d 0

// 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 std::sketch::mirror2d 1

// 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 std::sketch::mirror2d 2

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

Rendered example of std::sketch::mirror2d 3

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

Rendered example of std::sketch::mirror2d 4