---
title: "startProfile"
subtitle: "Function in std::sketch"
excerpt: "Start a new profile at a given point."
layout: manual
---

Start a new profile at a given point.

```kcl
startProfile(
  @sketchSurface: Plane | Face,
  at: Point2d,
  tag?: TagDeclarator,
): Sketch
```



### Arguments

| Name | Type | Description | Required |
|----------|------|-------------|----------|
| `sketchSurface` | [`Plane`](/docs/kcl-std/types/std-types-Plane) or [`Face`](/docs/kcl-std/types/std-types-Face) | What to start the profile on | Yes |
| `at` | [`Point2d`](/docs/kcl-std/types/std-types-Point2d) | Where to start the profile. An absolute point. | Yes |
| [`tag`](/docs/kcl-std/types/std-types-tag) | [`TagDeclarator`](/docs/kcl-lang/types#TagDeclarator) | Tag this first starting point | No |

### Returns

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


### Examples

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

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

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

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

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

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

```kcl
exampleSketch = startSketchOn(-XZ)
  |> startProfile(at = [-10, 23])
  |> line(end = [10, 0])
  |> line(end = [0, 10])
  |> line(end = [-10, 0])
  |> close()

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

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


