Previous: ``` startProfileAt([x, y], %) startProfileAt([x, y], sketch001) ``` New: ``` startProfile(%, at = [x, y]) startProfile(sketch001, at = [x, y]) ```
		
			
				
	
	
		
			105 lines
		
	
	
		
			342 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			105 lines
		
	
	
		
			342 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
---
 | 
						|
title: "extrude"
 | 
						|
excerpt: "Extend a 2-dimensional sketch through a third dimension in order to create new 3-dimensional volume, or if extruded into an existing volume, cut into an existing solid."
 | 
						|
layout: manual
 | 
						|
---
 | 
						|
 | 
						|
Extend a 2-dimensional sketch through a third dimension in order to create new 3-dimensional volume, or if extruded into an existing volume, cut into an existing solid.
 | 
						|
 | 
						|
You can provide more than one sketch to extrude, and they will all be extruded in the same direction.
 | 
						|
 | 
						|
```js
 | 
						|
extrude(
 | 
						|
  sketches: [Sketch],
 | 
						|
  length: number,
 | 
						|
  symmetric?: bool,
 | 
						|
  bidirectionalLength?: number,
 | 
						|
  tagStart?: TagDeclarator,
 | 
						|
  tagEnd?: TagDeclarator,
 | 
						|
): [Solid]
 | 
						|
```
 | 
						|
 | 
						|
 | 
						|
### Arguments
 | 
						|
 | 
						|
| Name | Type | Description | Required |
 | 
						|
|----------|------|-------------|----------|
 | 
						|
| `sketches` | [`[Sketch]`](/docs/kcl/types/Sketch) | Which sketch or sketches should be extruded | Yes |
 | 
						|
| `length` | [`number`](/docs/kcl/types/number) | How far to extrude the given sketches | Yes |
 | 
						|
| `symmetric` | [`bool`](/docs/kcl/types/bool) | If true, the extrusion will happen symmetrically around the sketch. Otherwise, the | No |
 | 
						|
| `bidirectionalLength` | [`number`](/docs/kcl/types/number) | If specified, will also extrude in the opposite direction to 'distance' to the specified distance. If 'symmetric' is true, this value is ignored. | No |
 | 
						|
| `tagStart` | [`TagDeclarator`](/docs/kcl/types#tag-declaration) | A named tag for the face at the start of the extrusion, i.e. the original sketch | No |
 | 
						|
| `tagEnd` | [`TagDeclarator`](/docs/kcl/types#tag-declaration) | A named tag for the face at the end of the extrusion, i.e. the new face created by extruding the original sketch | No |
 | 
						|
 | 
						|
### Returns
 | 
						|
 | 
						|
[`[Solid]`](/docs/kcl/types/Solid)
 | 
						|
 | 
						|
 | 
						|
### Examples
 | 
						|
 | 
						|
```js
 | 
						|
example = startSketchOn(XZ)
 | 
						|
  |> startProfile(at = [0, 0])
 | 
						|
  |> line(end = [10, 0])
 | 
						|
  |> arc(angleStart = 120, angleEnd = 0, radius = 5)
 | 
						|
  |> line(end = [5, 0])
 | 
						|
  |> line(end = [0, 10])
 | 
						|
  |> bezierCurve(control1 = [-10, 0], control2 = [2, 10], end = [-5, 10])
 | 
						|
  |> line(end = [-5, -2])
 | 
						|
  |> close()
 | 
						|
  |> extrude(length = 10)
 | 
						|
```
 | 
						|
 | 
						|

 | 
						|
 | 
						|
```js
 | 
						|
exampleSketch = startSketchOn(XZ)
 | 
						|
  |> startProfile(at = [-10, 0])
 | 
						|
  |> arc(angleStart = 120, angleEnd = -60, radius = 5)
 | 
						|
  |> line(end = [10, 0])
 | 
						|
  |> line(end = [5, 0])
 | 
						|
  |> bezierCurve(control1 = [-3, 0], control2 = [2, 10], end = [-5, 10])
 | 
						|
  |> line(end = [-4, 10])
 | 
						|
  |> line(end = [-5, -2])
 | 
						|
  |> close()
 | 
						|
 | 
						|
example = extrude(exampleSketch, length = 10)
 | 
						|
```
 | 
						|
 | 
						|

 | 
						|
 | 
						|
```js
 | 
						|
exampleSketch = startSketchOn(XZ)
 | 
						|
  |> startProfile(at = [-10, 0])
 | 
						|
  |> arc(angleStart = 120, angleEnd = -60, radius = 5)
 | 
						|
  |> line(end = [10, 0])
 | 
						|
  |> line(end = [5, 0])
 | 
						|
  |> bezierCurve(control1 = [-3, 0], control2 = [2, 10], end = [-5, 10])
 | 
						|
  |> line(end = [-4, 10])
 | 
						|
  |> line(end = [-5, -2])
 | 
						|
  |> close()
 | 
						|
 | 
						|
example = extrude(exampleSketch, length = 20, symmetric = true)
 | 
						|
```
 | 
						|
 | 
						|

 | 
						|
 | 
						|
```js
 | 
						|
exampleSketch = startSketchOn(XZ)
 | 
						|
  |> startProfile(at = [-10, 0])
 | 
						|
  |> arc(angleStart = 120, angleEnd = -60, radius = 5)
 | 
						|
  |> line(end = [10, 0])
 | 
						|
  |> line(end = [5, 0])
 | 
						|
  |> bezierCurve(control1 = [-3, 0], control2 = [2, 10], end = [-5, 10])
 | 
						|
  |> line(end = [-4, 10])
 | 
						|
  |> line(end = [-5, -2])
 | 
						|
  |> close()
 | 
						|
 | 
						|
example = extrude(exampleSketch, length = 10, bidirectionalLength = 50)
 | 
						|
```
 | 
						|
 | 
						|

 | 
						|
 | 
						|
 |