* Parse an unparse type decls (and refactor impl attributes slightly) Signed-off-by: Nick Cameron <nrc@ncameron.org> * Remove special treatment of geometric types from parser and executor Signed-off-by: Nick Cameron <nrc@ncameron.org> * Generate docs for std types Signed-off-by: Nick Cameron <nrc@ncameron.org> * Hover tool-tips for types and fixup the frontend Signed-off-by: Nick Cameron <nrc@ncameron.org> * Fixes Signed-off-by: Nick Cameron <nrc@ncameron.org> --------- Signed-off-by: Nick Cameron <nrc@ncameron.org>
		
			
				
	
	
		
			122 lines
		
	
	
		
			490 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			122 lines
		
	
	
		
			490 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
---
 | 
						|
title: "offsetPlane"
 | 
						|
excerpt: "Offset a plane by a distance along its normal."
 | 
						|
layout: manual
 | 
						|
---
 | 
						|
 | 
						|
Offset a plane by a distance along its normal.
 | 
						|
 | 
						|
For example, if you offset the 'XZ' plane by 10, the new plane will be parallel to the 'XZ' plane and 10 units away from it.
 | 
						|
 | 
						|
```js
 | 
						|
offsetPlane(
 | 
						|
  plane: PlaneData,
 | 
						|
  offset: number,
 | 
						|
): Plane
 | 
						|
```
 | 
						|
 | 
						|
 | 
						|
### Arguments
 | 
						|
 | 
						|
| Name | Type | Description | Required |
 | 
						|
|----------|------|-------------|----------|
 | 
						|
| `plane` | [`PlaneData`](/docs/kcl/types/PlaneData) | The plane (e.g. 'XY') which this new plane is created from. | Yes |
 | 
						|
| `offset` | [`number`](/docs/kcl/types/number) | Distance from the standard plane this new plane will be created at. | Yes |
 | 
						|
 | 
						|
### Returns
 | 
						|
 | 
						|
[`Plane`](/docs/kcl/types/Plane)
 | 
						|
 | 
						|
 | 
						|
### Examples
 | 
						|
 | 
						|
```js
 | 
						|
// Loft a square and a circle on the `XY` plane using offset.
 | 
						|
squareSketch = startSketchOn('XY')
 | 
						|
  |> startProfileAt([-100, 200], %)
 | 
						|
  |> line(end = [200, 0])
 | 
						|
  |> line(end = [0, -200])
 | 
						|
  |> line(end = [-200, 0])
 | 
						|
  |> line(endAbsolute = [profileStartX(%), profileStartY(%)])
 | 
						|
  |> close()
 | 
						|
 | 
						|
circleSketch = startSketchOn(offsetPlane('XY', offset = 150))
 | 
						|
  |> circle(center = [0, 100], radius = 50)
 | 
						|
 | 
						|
loft([squareSketch, circleSketch])
 | 
						|
```
 | 
						|
 | 
						|

 | 
						|
 | 
						|
```js
 | 
						|
// Loft a square and a circle on the `XZ` plane using offset.
 | 
						|
squareSketch = startSketchOn('XZ')
 | 
						|
  |> startProfileAt([-100, 200], %)
 | 
						|
  |> line(end = [200, 0])
 | 
						|
  |> line(end = [0, -200])
 | 
						|
  |> line(end = [-200, 0])
 | 
						|
  |> line(endAbsolute = [profileStartX(%), profileStartY(%)])
 | 
						|
  |> close()
 | 
						|
 | 
						|
circleSketch = startSketchOn(offsetPlane('XZ', offset = 150))
 | 
						|
  |> circle(center = [0, 100], radius = 50)
 | 
						|
 | 
						|
loft([squareSketch, circleSketch])
 | 
						|
```
 | 
						|
 | 
						|

 | 
						|
 | 
						|
```js
 | 
						|
// Loft a square and a circle on the `YZ` plane using offset.
 | 
						|
squareSketch = startSketchOn('YZ')
 | 
						|
  |> startProfileAt([-100, 200], %)
 | 
						|
  |> line(end = [200, 0])
 | 
						|
  |> line(end = [0, -200])
 | 
						|
  |> line(end = [-200, 0])
 | 
						|
  |> line(endAbsolute = [profileStartX(%), profileStartY(%)])
 | 
						|
  |> close()
 | 
						|
 | 
						|
circleSketch = startSketchOn(offsetPlane('YZ', offset = 150))
 | 
						|
  |> circle(center = [0, 100], radius = 50)
 | 
						|
 | 
						|
loft([squareSketch, circleSketch])
 | 
						|
```
 | 
						|
 | 
						|

 | 
						|
 | 
						|
```js
 | 
						|
// Loft a square and a circle on the `-XZ` plane using offset.
 | 
						|
squareSketch = startSketchOn('-XZ')
 | 
						|
  |> startProfileAt([-100, 200], %)
 | 
						|
  |> line(end = [200, 0])
 | 
						|
  |> line(end = [0, -200])
 | 
						|
  |> line(end = [-200, 0])
 | 
						|
  |> line(endAbsolute = [profileStartX(%), profileStartY(%)])
 | 
						|
  |> close()
 | 
						|
 | 
						|
circleSketch = startSketchOn(offsetPlane('-XZ', offset = -150))
 | 
						|
  |> circle(center = [0, 100], radius = 50)
 | 
						|
 | 
						|
loft([squareSketch, circleSketch])
 | 
						|
```
 | 
						|
 | 
						|

 | 
						|
 | 
						|
```js
 | 
						|
// A circle on the XY plane
 | 
						|
startSketchOn("XY")
 | 
						|
  |> startProfileAt([0, 0], %)
 | 
						|
  |> circle(radius = 10, center = [0, 0])
 | 
						|
 | 
						|
// Triangle on the plane 4 units above
 | 
						|
startSketchOn(offsetPlane("XY", offset = 4))
 | 
						|
  |> startProfileAt([0, 0], %)
 | 
						|
  |> line(end = [10, 0])
 | 
						|
  |> line(end = [0, 10])
 | 
						|
  |> close()
 | 
						|
```
 | 
						|
 | 
						|

 | 
						|
 | 
						|
 |