From ba79fbcad88ab8242681d2f0e803f53f08cc3305 Mon Sep 17 00:00:00 2001 From: Adam Chalmers Date: Mon, 4 Nov 2024 15:55:43 -0600 Subject: [PATCH] New KCL stdlib function 'segEnd' Part of --- docs/kcl/index.md | 1 + docs/kcl/segEnd.md | 53 + docs/kcl/std.json | 903 ++++++++++++++++++ src/wasm-lib/kcl/src/std/args.rs | 53 +- src/wasm-lib/kcl/src/std/assert.rs | 12 +- src/wasm-lib/kcl/src/std/convert.rs | 2 +- src/wasm-lib/kcl/src/std/math.rs | 2 +- src/wasm-lib/kcl/src/std/mod.rs | 1 + src/wasm-lib/kcl/src/std/segment.rs | 46 + .../serial_test_example_segment_end0.png | Bin 0 -> 66894 bytes 10 files changed, 1040 insertions(+), 33 deletions(-) create mode 100644 docs/kcl/segEnd.md create mode 100644 src/wasm-lib/kcl/tests/outputs/serial_test_example_segment_end0.png diff --git a/docs/kcl/index.md b/docs/kcl/index.md index 75f3c19d4b..5235ea42ff 100644 --- a/docs/kcl/index.md +++ b/docs/kcl/index.md @@ -84,6 +84,7 @@ layout: manual * [`rem`](kcl/rem) * [`revolve`](kcl/revolve) * [`segAng`](kcl/segAng) +* [`segEnd`](kcl/segEnd) * [`segEndX`](kcl/segEndX) * [`segEndY`](kcl/segEndY) * [`segLen`](kcl/segLen) diff --git a/docs/kcl/segEnd.md b/docs/kcl/segEnd.md new file mode 100644 index 0000000000..85ae38b7fc --- /dev/null +++ b/docs/kcl/segEnd.md @@ -0,0 +1,53 @@ +--- +title: "segEnd" +excerpt: "Compute the ending point of the provided line segment." +layout: manual +--- + +Compute the ending point of the provided line segment. + + + +```js +segEnd(tag: TagIdentifier) -> [number] +``` + + +### Arguments + +| Name | Type | Description | Required | +|----------|------|-------------|----------| +| `tag` | [`TagIdentifier`](/docs/kcl/types#tag-identifier) | | Yes | + +### Returns + +`[number]` + + +### Examples + +```js +w = 15 +cube = startSketchAt([0, 0]) + |> line([w, 0], %, $line1) + |> line([0, w], %, $line2) + |> line([-w, 0], %, $line3) + |> line([0, -w], %, $line4) + |> close(%) + |> extrude(5, %) + +fn cylinder = (radius, tag) => { + return startSketchAt([0, 0]) + |> circle({ radius: radius, center: segEnd(tag) }, %) + |> extrude(radius, %) +} + +cylinder(1, line1) +cylinder(2, line2) +cylinder(3, line3) +cylinder(4, line4) +``` + +![Rendered example of segEnd 0](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAEFFUlEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq/6dXud1Xue9ueqqq/7f+4d/+Iffvu+++27lqquuuuqqq676n4TK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kIQkACQhCUlIAkASkpCEJAAkIQlJSEISkpCEJCQhCUlEBJKQREQgiYggIogIIoKIICKICEoplFKICEop1FoppVBKodZKrZVaK7VWaq3UWqm1Umul1kophVorpRRKKZRSiAgigoggIlgulwzDwNHREfe77777bv2t3/qt7/7RH/3Rz+Gqq6666qqrrrrqqquu+s+AHvSgB3HVVVddddVV/1tcc801D37t137t93qd13md977mmmseDLC7u8vf/M3f8Lu/+7tIAkASAJK4nyQAJAEgiftJ4n6SuJ8k7ieJiEASkpCEJCQBIAlJSEISkpCEJAAkIQlJSAJAEpKQhCQkASAJSUhCEgCSkIQkJCEJSUhCEpKQhCQiAklIIiKQREQQEUQEEUFEEBFEBKUUIoJSCqUUSinUWimlUGul1kqtlVortVZqrdRaqbVSa6WUQq2VUgqlFEopRAQAq9WKw8NDHugf/uEffvu3fuu3vue3fuu3vpurrrrqqquuuuqqq6666j8TetCDHsRVV1111VVX/W9z5syZB734i7/467zjO77jZ11zzTUPBrh06RK33norf/u3f8sznvEMJAEgCQBJAEjifpIAkMT9JHE/SdxPEpKQhCQkIQlJSEISkpCEJCQhCQBJSEISkpAEgCQkIQlJAEhCEpKQBIAkJCEJSUhCEpKQhCQkIQlJRASSkEREIImIICKQRERQSiEiiAhKKUQEpRRKKZRSqLVSSqHWSq2VWiu1Vmqt1FqptVJrpdZKKYVaK6UUJDFNE6vVige67777bv2t3/qt7/7RH/3Rz+Gqq6666qqrrrrqqquu+q+CHvSgB3HVVVddddVV/5u9zuu8znu/zuu8znu92Iu92GvzTLu7u/zt3/4tt912G7fddhsAkrifJAAkcT9J3E8S95MEgCQkIQlJSEISkpCEJCQhCUlIAkASkpCEJCQBIAlJSEISkgCQhCQkIQkASUhCEpKQhCQkIQlJSEISkpBERCCJiEASEUFEIImIICIopRARlFKICEoplFIopVBrpZRCrZVaK7VWSil0XUetlVortVZqrUgiIpimiQe67777bv2t3/qt7/7t3/7t77nvvvtu5aqrrrrqqquuuuqqq676r4Ye9KAHcdVVV1111VX/F5w5c+ZBr/M6r/Per/M6r/Pe11xzzYN5pkuXLvG3f/u33Hbbbdx2220ASAJAEveTxP0kcT9JAEhCEpKQhCQkIQlJSEISkpAEgCQkIQlJSEISAJKQhCQkASAJSUhCEgCSkIQkJCEJSUhCEpKQhCQkIQlJRASSiAgkERFIIiKICCKCUgoRQURQSqGUQimFUgq1Vkop1FoppVBrpdZK13V0XUff95RSkMQD3Xfffbf+6I/+6Of8/d///W+dPXv2GVx11VVXXXXVVVddddVV/53Qgx70IK666qqrrrrq/5oXe7EXe+3XeZ3Xea/XeZ3XeW8e4NKlS9x2223cdttt/N3f/R0AkgCQxP0kcT9JAEhCEpKQhCQkIQlJSEISkgCQhCQkIQlJSAJAEpKQhCQkASAJSUhCEgCSkIQkJCEJSUhCEpKQhCQkIQlJRASSkEREEBFIIiKICCKCiKCUQkRQSqGUQimFUgqlFGqt1Frp+57t7W1msxld1/Hc/uEf/uG3//7v//63f/RHf/RzuOqqq6666qqrrrrqqqv+J0EPetCDuOqqq6666qr/q86cOfOga6655iGv8zqv816v8zqv8948wKVLlwC47bbb+Pu//3tuu+02JHE/SdxPEgARgSQkIQlJSEISkpAEgCQkIQlJSEISAJKQhCQkIQkASUhCEpIAkIQkJCEJSUhCEpKQhCQkIQlJSEISEYEkJBERRASSiAgigoggIiilEBGUUiilsFgs2N7epu97Njc3WSwWPLf77rvv1t/6rd/67n/4h3/4nX/4h3/4ba666qqrrrrqqquuuuqq/6nQgx70IK666qqrrrrq/4trrrnmwa/92q/9Xi/+4i/+2i/2Yi/22jyXS5cucfvtt3Pbbbext7fH7bffDoAkACQhiYhAEpKQhCQAJCEJSUhCEpKQhCQAJCEJSUhCEgCSkIQkJAEgCUlIQhKSkIQkACQhiYhAEpKQhCQkERFIIiKQREQQEUQEEcFiseDEiRPM53N2dnbY3t7m+bnvvvtu/a3f+q3vBvjRH/3Rz+Gqq6666qqrrrrqqquu+t8CPehBD+Kqq6666qqr/j+65pprHnzmzJkHv9iLvdhrvfiLv/hrv9iLvdhr83xcunSJ22+/HYA77riDvb097rzzTiQhCUlIQhKSkIQkJCEJSUgCQBKSkIQkJAEgCUlIQhIAkpCEJCQhCUlIAkASkpCEJCICSUhCEpKICDY2NtjY2ODkyZNI4uTJk8znc+bzOc/Pfffdd+vZs2dv/fu///vf/od/+Iff/od/+Iff4aqrrrrqqquuuuqqq6763wo96EEP4qqrrrrqqquugmuuuebBAC/2Yi/22i/2Yi/2Wtdcc82DX+zFXuy1eQH29vYAuPPOOwG48847kcT+/j6SODg44ODgAEkASEISkpCEJAAkIQlJSEISAJKQhCQkIQlJAEhic3MTSWxubrK5ucnm5iaS2NjYYGNjg42NDRaLBS/Mfffdd+s//MM//PZ999136z/8wz/89j/8wz/8DlddddVVV1111VVXXXXV/yXoQQ96EFddddVVV1111fN3zTXXPBjgxV7sxV77xV7sxV4L4Jprrnnwi73Yi702/wr7+/tIwjYHBwcASALg4OAAAEkASGJzc5P7SQJgc3OTzc1N/rXuu+++W8+ePXvrfffdd+t9991369mzZ59x3333Pf0f/uEffoerrrrqqquuuuqqq6666v869KAHPYirrrrqqquuuupf75prrnnwmTNnHnzNNdc8CNCLvdiLvRbANddc82CAM2fOPPiaa655MP9J7rvvvlsBzp49e+t9991363333XcrwNmzZ59x33333Xr27Nlb77vvvlu56qqrrrrqqquuuuqqq/4/Qw960IO46qqrrrrqqqv+c11zzTUPtm1JOnPmzIN5Nl9zzTUP4Tn5vvvuewbPyWfPnn3GfffddytXXXXVVVddddVVV1111VUvOvSgBz2Iq6666qqrrrrqqquuuuqqq6666qqrrrrq/yQqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r+IfAZI+8lXI0MuwAAAAAElFTkSuQmCC) + + diff --git a/docs/kcl/std.json b/docs/kcl/std.json index 2a49b6a5fc..12f9a36fd0 100644 --- a/docs/kcl/std.json +++ b/docs/kcl/std.json @@ -160120,6 +160120,909 @@ "exampleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> line([10, 0], %)\n |> line([5, 10], %, $seg01)\n |> line([-10, 0], %)\n |> angledLine([segAng(seg01), 10], %)\n |> line([-10, 0], %)\n |> angledLine([segAng(seg01), -15], %)\n |> close(%)\n\nexample = extrude(4, exampleSketch)" ] }, + { + "name": "segEnd", + "summary": "Compute the ending point of the provided line segment.", + "description": "", + "tags": [], + "args": [ + { + "name": "tag", + "type": "TagIdentifier", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "TagIdentifier", + "type": "object", + "required": [ + "__meta", + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "info": { + "allOf": [ + { + "$ref": "#/components/schemas/TagEngineInfo" + } + ], + "nullable": true + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + }, + "definitions": { + "TagEngineInfo": { + "description": "Engine information for a tag.", + "type": "object", + "required": [ + "id", + "sketch" + ], + "properties": { + "id": { + "description": "The id of the tagged object.", + "type": "string", + "format": "uuid" + }, + "sketch": { + "description": "The sketch the tag is on.", + "type": "string", + "format": "uuid" + }, + "path": { + "description": "The path the tag is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Path" + } + ], + "nullable": true + }, + "surface": { + "description": "The surface information for the tag.", + "allOf": [ + { + "$ref": "#/components/schemas/ExtrudeSurface" + } + ], + "nullable": true + } + } + }, + "Path": { + "description": "A path.", + "oneOf": [ + { + "description": "A path that goes to a point.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "ToPoint" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment that goes to a point", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArcTo" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArc" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "a complete arc", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Circle" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "the arc's radius", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A path that is horizontal.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "x" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Horizontal" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "An angled line to.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "AngledLineTo" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "y": { + "description": "The y coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Base" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A circular arc, not necessarily tangential to the current point.", + "type": "object", + "required": [ + "__geoMeta", + "center", + "from", + "radius", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Arc" + ] + }, + "center": { + "description": "Center of the circle that this arc is drawn on.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "Radius of the circle that this arc is drawn on.", + "type": "number", + "format": "double" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + } + ] + }, + "TagDeclarator": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "digest": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 32, + "minItems": 32, + "nullable": true + }, + "start": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "end": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + } + } + }, + "GeoMeta": { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "id", + "sourceRange" + ], + "properties": { + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + "SourceRange": { + "type": "array", + "items": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "maxItems": 2, + "minItems": 2 + }, + "ExtrudeSurface": { + "description": "An extrude surface.", + "oneOf": [ + { + "description": "An extrude plane.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudePlane" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "An extruded arc.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudeArc" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "faceId": { + "description": "The id for the chamfer surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "faceId": { + "description": "The id for the fillet surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + } + ] + }, + "Metadata": { + "description": "Metadata.", + "type": "object", + "required": [ + "sourceRange" + ], + "properties": { + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + } + } + }, + "required": true + } + ], + "returnValue": { + "name": "", + "type": "[number]", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "Array_size_2_of_double", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "required": true + }, + "unpublished": false, + "deprecated": false, + "examples": [ + "w = 15\ncube = startSketchAt([0, 0])\n |> line([w, 0], %, $line1)\n |> line([0, w], %, $line2)\n |> line([-w, 0], %, $line3)\n |> line([0, -w], %, $line4)\n |> close(%)\n |> extrude(5, %)\n\nfn cylinder = (radius, tag) => {\n return startSketchAt([0, 0])\n |> circle({ radius: radius, center: segEnd(tag) }, %)\n |> extrude(radius, %)\n}\n\ncylinder(1, line1)\ncylinder(2, line2)\ncylinder(3, line3)\ncylinder(4, line4)" + ] + }, { "name": "segEndX", "summary": "Compute the ending point of the provided line segment along the 'x' axis.", diff --git a/src/wasm-lib/kcl/src/std/args.rs b/src/wasm-lib/kcl/src/std/args.rs index b3ef1c442f..34c233c5ab 100644 --- a/src/wasm-lib/kcl/src/std/args.rs +++ b/src/wasm-lib/kcl/src/std/args.rs @@ -181,47 +181,39 @@ impl Args { Ok(()) } - fn make_user_val_from_json(&self, j: serde_json::Value) -> Result { - Ok(KclValue::UserVal(crate::executor::UserVal { + fn make_user_val_from_json(&self, j: serde_json::Value) -> KclValue { + KclValue::UserVal(crate::executor::UserVal { value: j, meta: vec![Metadata { source_range: self.source_range, }], - })) + }) } - pub(crate) fn make_null_user_val(&self) -> Result { + pub(crate) fn make_null_user_val(&self) -> KclValue { self.make_user_val_from_json(serde_json::Value::Null) } - pub(crate) fn make_user_val_from_i64(&self, n: i64) -> Result { + pub(crate) fn make_user_val_from_i64(&self, n: i64) -> KclValue { self.make_user_val_from_json(serde_json::Value::Number(serde_json::Number::from(n))) } pub(crate) fn make_user_val_from_f64(&self, f: f64) -> Result { - self.make_user_val_from_json(serde_json::Value::Number(serde_json::Number::from_f64(f).ok_or_else( - || { - KclError::Type(KclErrorDetails { - message: format!("Failed to convert `{}` to a number", f), - source_ranges: vec![self.source_range], - }) - }, - )?)) + f64_to_jnum(f, vec![self.source_range]).map(|x| self.make_user_val_from_json(x)) + } + + pub(crate) fn make_user_val_from_point(&self, p: [f64; 2]) -> Result { + let x = f64_to_jnum(p[0], vec![self.source_range])?; + let y = f64_to_jnum(p[1], vec![self.source_range])?; + let array = serde_json::Value::Array(vec![x, y]); + Ok(self.make_user_val_from_json(array)) } pub(crate) fn make_user_val_from_f64_array(&self, f: Vec) -> Result { - let mut arr = Vec::new(); - for n in f { - arr.push(serde_json::Value::Number(serde_json::Number::from_f64(n).ok_or_else( - || { - KclError::Type(KclErrorDetails { - message: format!("Failed to convert `{}` to a number", n), - source_ranges: vec![self.source_range], - }) - }, - )?)); - } - self.make_user_val_from_json(serde_json::Value::Array(arr)) + f.into_iter() + .map(|n| f64_to_jnum(n, vec![self.source_range])) + .collect::, _>>() + .map(|arr| self.make_user_val_from_json(serde_json::Value::Array(arr))) } pub(crate) fn get_number(&self) -> Result { @@ -750,3 +742,14 @@ impl<'a> FromKclValue<'a> for SketchSurface { } } } + +fn f64_to_jnum(f: f64, source_ranges: Vec) -> Result { + serde_json::Number::from_f64(f) + .ok_or_else(|| { + KclError::Type(KclErrorDetails { + message: format!("Failed to convert `{f}` to a number"), + source_ranges, + }) + }) + .map(serde_json::Value::Number) +} diff --git a/src/wasm-lib/kcl/src/std/assert.rs b/src/wasm-lib/kcl/src/std/assert.rs index f4cb15c359..5a71efe73c 100644 --- a/src/wasm-lib/kcl/src/std/assert.rs +++ b/src/wasm-lib/kcl/src/std/assert.rs @@ -24,7 +24,7 @@ async fn _assert(value: bool, message: &str, args: &Args) -> Result<(), KclError pub async fn assert(_exec_state: &mut ExecState, args: Args) -> Result { let (data, description): (bool, String) = args.get_data()?; inner_assert(data, &description, &args).await?; - args.make_null_user_val() + Ok(args.make_null_user_val()) } /// Check a value at runtime, and raise an error if the argument provided @@ -44,7 +44,7 @@ async fn inner_assert(data: bool, message: &str, args: &Args) -> Result<(), KclE pub async fn assert_lt(_exec_state: &mut ExecState, args: Args) -> Result { let (left, right, description): (f64, f64, String) = args.get_data()?; inner_assert_lt(left, right, &description, &args).await?; - args.make_null_user_val() + Ok(args.make_null_user_val()) } /// Check that a numerical value is less than to another at runtime, @@ -63,7 +63,7 @@ async fn inner_assert_lt(left: f64, right: f64, message: &str, args: &Args) -> R pub async fn assert_gt(_exec_state: &mut ExecState, args: Args) -> Result { let (left, right, description): (f64, f64, String) = args.get_data()?; inner_assert_gt(left, right, &description, &args).await?; - args.make_null_user_val() + Ok(args.make_null_user_val()) } /// Check that a numerical value equals another at runtime, @@ -96,7 +96,7 @@ async fn inner_assert_equal(left: f64, right: f64, epsilon: f64, message: &str, pub async fn assert_equal(_exec_state: &mut ExecState, args: Args) -> Result { let (left, right, epsilon, description): (f64, f64, f64, String) = args.get_data()?; inner_assert_equal(left, right, epsilon, &description, &args).await?; - args.make_null_user_val() + Ok(args.make_null_user_val()) } /// Check that a numerical value is greater than another at runtime, @@ -115,7 +115,7 @@ async fn inner_assert_gt(left: f64, right: f64, message: &str, args: &Args) -> R pub async fn assert_lte(_exec_state: &mut ExecState, args: Args) -> Result { let (left, right, description): (f64, f64, String) = args.get_data()?; inner_assert_lte(left, right, &description, &args).await?; - args.make_null_user_val() + Ok(args.make_null_user_val()) } /// Check that a numerical value is less than or equal to another at runtime, @@ -135,7 +135,7 @@ async fn inner_assert_lte(left: f64, right: f64, message: &str, args: &Args) -> pub async fn assert_gte(_exec_state: &mut ExecState, args: Args) -> Result { let (left, right, description): (f64, f64, String) = args.get_data()?; inner_assert_gte(left, right, &description, &args).await?; - args.make_null_user_val() + Ok(args.make_null_user_val()) } /// Check that a numerical value is greater than or equal to another at runtime, diff --git a/src/wasm-lib/kcl/src/std/convert.rs b/src/wasm-lib/kcl/src/std/convert.rs index 69e8729ff2..777eb0fe50 100644 --- a/src/wasm-lib/kcl/src/std/convert.rs +++ b/src/wasm-lib/kcl/src/std/convert.rs @@ -34,7 +34,7 @@ pub async fn int(_exec_state: &mut ExecState, args: Args) -> Result Result Result { + let tag: TagIdentifier = args.get_data()?; + let result = inner_segment_end(&tag, exec_state, args.clone())?; + + args.make_user_val_from_point(result) +} + +/// Compute the ending point of the provided line segment. +/// +/// ```no_run +/// w = 15 +/// cube = startSketchAt([0, 0]) +/// |> line([w, 0], %, $line1) +/// |> line([0, w], %, $line2) +/// |> line([-w, 0], %, $line3) +/// |> line([0, -w], %, $line4) +/// |> close(%) +/// |> extrude(5, %) +/// +/// fn cylinder = (radius, tag) => { +/// return startSketchAt([0, 0]) +/// |> circle({ radius: radius, center: segEnd(tag) }, %) +/// |> extrude(radius, %) +/// } +/// +/// cylinder(1, line1) +/// cylinder(2, line2) +/// cylinder(3, line3) +/// cylinder(4, line4) +/// ``` +#[stdlib { + name = "segEnd", +}] +fn inner_segment_end(tag: &TagIdentifier, exec_state: &mut ExecState, args: Args) -> Result<[f64; 2], KclError> { + let line = args.get_tag_engine_info(exec_state, tag)?; + let path = line.path.clone().ok_or_else(|| { + KclError::Type(KclErrorDetails { + message: format!("Expected a line segment with a path, found `{:?}`", line), + source_ranges: vec![args.source_range], + }) + })?; + + Ok(path.get_base().to) +} + /// Returns the segment end of x. pub async fn segment_end_x(exec_state: &mut ExecState, args: Args) -> Result { let tag: TagIdentifier = args.get_data()?; diff --git a/src/wasm-lib/kcl/tests/outputs/serial_test_example_segment_end0.png b/src/wasm-lib/kcl/tests/outputs/serial_test_example_segment_end0.png new file mode 100644 index 0000000000000000000000000000000000000000..f4a3e8c7ec593825cc275f10c02864eede3b83e9 GIT binary patch literal 66894 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