We continue migrating KCL stdlib functions to use keyword arguments. Next up is the `angledLine` family of functions (except `angledLineThatIntersects, which will be a quick follow-up). Before vs. after: `angledLine({angle = 90, length = 3}, %, $edge)` => `angledLine(angle = 90, length = 3, tag = $edge)` `angledLineOfXLength({angle = 90, length = 3}, %, $edge)` => `angledLine(angle = 90, lengthX = 3, tag = $edge)` `angledLineOfYLength({angle = 90, length = 3}, %, $edge)` => `angledLine(angle = 90, lengthY = 3, tag = $edge)` `angledLineToX({angle = 90, length = 3}, %, $edge)` => `angledLine(angle = 90, endAbsoluteX = 3, tag = $edge)` `angledLineToY({angle = 90, length = 3}, %, $edge)` => `angledLine(angle = 90, endAbsoluteY = 3, tag = $edge)`
97 lines
302 KiB
Markdown
97 lines
302 KiB
Markdown
---
|
|
title: "tangentToEnd"
|
|
excerpt: "Returns the angle coming out of the end of the segment in degrees."
|
|
layout: manual
|
|
---
|
|
|
|
Returns the angle coming out of the end of the segment in degrees.
|
|
|
|
|
|
|
|
```js
|
|
tangentToEnd(tag: TagIdentifier): number
|
|
```
|
|
|
|
|
|
### Arguments
|
|
|
|
| Name | Type | Description | Required |
|
|
|----------|------|-------------|----------|
|
|
| [`tag`](/docs/kcl/types/tag) | [`TagIdentifier`](/docs/kcl/types#tag-identifier) | The line segment being queried by its tag | Yes |
|
|
|
|
### Returns
|
|
|
|
[`number`](/docs/kcl/types/number)
|
|
|
|
|
|
### Examples
|
|
|
|
```js
|
|
// Horizontal pill.
|
|
pillSketch = startSketchOn(XZ)
|
|
|> startProfileAt([0, 0], %)
|
|
|> line(end = [20, 0])
|
|
|> tangentialArcToRelative([0, 10], %, $arc1)
|
|
|> angledLine(angle = tangentToEnd(arc1), length = 20)
|
|
|> tangentialArcToRelative([0, -10], %)
|
|
|> close()
|
|
|
|
pillExtrude = extrude(pillSketch, length = 10)
|
|
```
|
|
|
|

|
|
|
|
```js
|
|
// Vertical pill. Use absolute coordinate for arc.
|
|
pillSketch = startSketchOn(XZ)
|
|
|> startProfileAt([0, 0], %)
|
|
|> line(end = [0, 20])
|
|
|> tangentialArcTo([10, 20], %, $arc1)
|
|
|> angledLine(angle = tangentToEnd(arc1), length = 20)
|
|
|> tangentialArcToRelative([-10, 0], %)
|
|
|> close()
|
|
|
|
pillExtrude = extrude(pillSketch, length = 10)
|
|
```
|
|
|
|

|
|
|
|
```js
|
|
rectangleSketch = startSketchOn(XZ)
|
|
|> startProfileAt([0, 0], %)
|
|
|> line(end = [10, 0], tag = $seg1)
|
|
|> angledLine(angle = tangentToEnd(seg1), length = 10)
|
|
|> line(end = [0, 10])
|
|
|> line(end = [-20, 0])
|
|
|> close()
|
|
|
|
rectangleExtrude = extrude(rectangleSketch, length = 10)
|
|
```
|
|
|
|

|
|
|
|
```js
|
|
bottom = startSketchOn(XY)
|
|
|> startProfileAt([0, 0], %)
|
|
|> arcTo({ end = [10, 10], interior = [5, 1] }, %, $arc1)
|
|
|> angledLine(angle = tangentToEnd(arc1), length = 20)
|
|
|> close()
|
|
```
|
|
|
|

|
|
|
|
```js
|
|
circSketch = startSketchOn(XY)
|
|
|> circle(center = [0, 0], radius = 3, tag = $circ)
|
|
|
|
triangleSketch = startSketchOn(XY)
|
|
|> startProfileAt([-5, 0], %)
|
|
|> angledLine(angle = tangentToEnd(circ), length = 10)
|
|
|> line(end = [-15, 0])
|
|
|> close()
|
|
```
|
|
|
|

|
|
|
|
|