Files
modeling-app/docs/kcl/startSketchOn.md
Jess Frazelle 4439229ad2 turn back on the test i tturned off (#6522)
* random other cahnges

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* turn back on test

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* docs

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* lots of enhancements

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* cleanup

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* mesh test

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* mesh test

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* check panics

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* check panics

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* check panics

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* cleanup

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* if running in vitest make single threadedd

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* check if running in vitest

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* console logs

Signed-off-by: Jess Frazelle <github@jessfraz.com>

---------

Signed-off-by: Jess Frazelle <github@jessfraz.com>
2025-04-27 23:54:32 +00:00

574 KiB

title, excerpt, layout
title excerpt layout
startSketchOn Start a new 2-dimensional sketch on a specific plane or face. manual

Start a new 2-dimensional sketch on a specific plane or face.

Sketch on Face Behavior

There are some important behaviors to understand when sketching on a face:

The resulting sketch will include the face and thus Solid that was sketched on. So say you were to export the resulting Sketch / Solid from a sketch on a face, you would get both the artifact of the sketch on the face and the parent face / Solid itself.

This is important to understand because if you were to then sketch on the resulting Solid, it would again include the face and parent Solid that was sketched on. This could go on indefinitely.

The point is if you want to export the result of a sketch on a face, you only need to export the final Solid that was created from the sketch on the face, since it will include all the parent faces and Solids.

startSketchOn(
  planeOrSolid: SketchData,
  face?: FaceTag,
): SketchSurface

Arguments

Name Type Description Required
planeOrSolid SketchData The plane or solid to sketch on Yes
face FaceTag Identify a face of a solid if a solid is specified as the input argument (plane_or_solid) No

Returns

SketchSurface - A sketch type.

Examples

exampleSketch = startSketchOn(XY)
  |> startProfile(at = [0, 0])
  |> line(end = [10, 0])
  |> line(end = [0, 10])
  |> line(end = [-10, 0])
  |> close()

example = extrude(exampleSketch, length = 5)

exampleSketch002 = startSketchOn(example, face = END)
  |> startProfile(at = [1, 1])
  |> line(end = [8, 0])
  |> line(end = [0, 8])
  |> line(end = [-8, 0])
  |> close()

example002 = extrude(exampleSketch002, length = 5)

exampleSketch003 = startSketchOn(example002, face = END)
  |> startProfile(at = [2, 2])
  |> line(end = [6, 0])
  |> line(end = [0, 6])
  |> line(end = [-6, 0])
  |> close()

example003 = extrude(exampleSketch003, length = 5)

Rendered example of startSketchOn 0

// Sketch on the end of an extruded face by tagging the end face.


exampleSketch = startSketchOn(XY)
  |> startProfile(at = [0, 0])
  |> line(end = [10, 0])
  |> line(end = [0, 10])
  |> line(end = [-10, 0])
  |> close()

example = extrude(exampleSketch, length = 5, tagEnd = $end01)

exampleSketch002 = startSketchOn(example, face = end01)
  |> startProfile(at = [1, 1])
  |> line(end = [8, 0])
  |> line(end = [0, 8])
  |> line(end = [-8, 0])
  |> close()

example002 = extrude(exampleSketch002, length = 5, tagEnd = $end02)

exampleSketch003 = startSketchOn(example002, face = end02)
  |> startProfile(at = [2, 2])
  |> line(end = [6, 0])
  |> line(end = [0, 6])
  |> line(end = [-6, 0])
  |> close()

example003 = extrude(exampleSketch003, length = 5)

Rendered example of startSketchOn 1

exampleSketch = startSketchOn(XY)
  |> startProfile(at = [0, 0])
  |> line(end = [10, 0])
  |> line(end = [0, 10], tag = $sketchingFace)
  |> line(end = [-10, 0])
  |> close()

example = extrude(exampleSketch, length = 10)

exampleSketch002 = startSketchOn(example, face = sketchingFace)
  |> startProfile(at = [1, 1])
  |> line(end = [8, 0])
  |> line(end = [0, 8])
  |> line(end = [-8, 0])
  |> close(tag = $sketchingFace002)

example002 = extrude(exampleSketch002, length = 10)

exampleSketch003 = startSketchOn(example002, face = sketchingFace002)
  |> startProfile(at = [-8, 12])
  |> line(end = [0, 6])
  |> line(end = [6, 0])
  |> line(end = [0, -6])
  |> close()

example003 = extrude(exampleSketch003, length = 5)

Rendered example of startSketchOn 2

exampleSketch = startSketchOn(XY)
  |> startProfile(at = [4, 12])
  |> line(end = [2, 0])
  |> line(end = [0, -6])
  |> line(end = [4, -6])
  |> line(end = [0, -6])
  |> line(end = [-3.75, -4.5])
  |> line(end = [0, -5.5])
  |> line(end = [-2, 0])
  |> close()

example = revolve(exampleSketch, axis = Y, angle = 180)

exampleSketch002 = startSketchOn(example, face = END)
  |> startProfile(at = [4.5, -5])
  |> line(end = [0, 5])
  |> line(end = [5, 0])
  |> line(end = [0, -5])
  |> close()

example002 = extrude(exampleSketch002, length = 5)

Rendered example of startSketchOn 3

// Sketch on the end of a revolved face by tagging the end face.


exampleSketch = startSketchOn(XY)
  |> startProfile(at = [4, 12])
  |> line(end = [2, 0])
  |> line(end = [0, -6])
  |> line(end = [4, -6])
  |> line(end = [0, -6])
  |> line(end = [-3.75, -4.5])
  |> line(end = [0, -5.5])
  |> line(end = [-2, 0])
  |> close()

example = revolve(
  exampleSketch,
  axis = Y,
  angle = 180,
  tagEnd = $end01,
)

exampleSketch002 = startSketchOn(example, face = end01)
  |> startProfile(at = [4.5, -5])
  |> line(end = [0, 5])
  |> line(end = [5, 0])
  |> line(end = [0, -5])
  |> close()

example002 = extrude(exampleSketch002, length = 5)

Rendered example of startSketchOn 4

a1 = startSketchOn({
       origin = { x = 0, y = 0, z = 0 },
       xAxis = { x = 1, y = 0, z = 0 },
       yAxis = { x = 0, y = 1, z = 0 },
       zAxis = { x = 0, y = 0, z = 1 }
     })
  |> startProfile(at = [0, 0])
  |> line(end = [100.0, 0])
  |> yLine(length = -100.0)
  |> xLine(length = -100.0)
  |> yLine(length = 100.0)
  |> close()
  |> extrude(length = 3.14)

Rendered example of startSketchOn 5