Compare commits

...

10 Commits

Author SHA1 Message Date
e8af61e11f Code completions for @settings (#5622)
Signed-off-by: Nick Cameron <nrc@ncameron.org>
2025-03-05 16:23:46 +13:00
de85c31e71 Make memory accessible from multiple threads/tasks (#5530)
Signed-off-by: Nick Cameron <nrc@ncameron.org>
2025-03-05 12:03:32 +13:00
725c56ea6f Fix to not specify the rust toolchain version everywhere (#5614)
* Fix to not specify the rust toolchain version everywhere

* Fix to source

* Fix warning about non-portable option to cp

* Fix to use built-in Swatinem/rust-cache

* Fix Swatinem/rust-cache to use the right directory
2025-03-04 20:39:22 +00:00
1b958ee29f Only save the themeColor setting on end of input (#5618)
* Only save the themeColor setting on end of input

Closes #4463 by making this input sliders less eager to write to disk,
which was gumming up the works.

* fmt
2025-03-04 14:11:38 -05:00
4b0f67e604 Explicitly set shell to bash for retry action in CI (#5610)
* Explicitly set shell to bash for retry action in CI

* Do not run tests on dep install failure

* Use single quotes for string

* Had the wrong name
2025-03-04 13:18:36 -05:00
8ba1a5cd4d Add button in settings menu to manually check for updates (#5607)
* Expose an electron handler for checking for updates

* Add "Check for updates" button to settings
2025-03-04 12:41:35 -05:00
df278c7e6a Various hover improvements (#5617)
* Show more info on hover for variables

Signed-off-by: Nick Cameron <nrc@ncameron.org>

* Move hover impls to lsp module

Signed-off-by: Nick Cameron <nrc@ncameron.org>

* Make hover work on names inside calls, fix doc line breaking, trim docs in tool tips

Signed-off-by: Nick Cameron <nrc@ncameron.org>

* Test the new hovers; fix signature syntax

Signed-off-by: Nick Cameron <nrc@ncameron.org>

* Hover tips for kwargs

Signed-off-by: Nick Cameron <nrc@ncameron.org>

---------

Signed-off-by: Nick Cameron <nrc@ncameron.org>
2025-03-04 09:53:31 +00:00
6e57a80c13 Bump script for kcl crates (#5612)
* start of kcl-bumper

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* works!

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* add readme

Signed-off-by: Jess Frazelle <github@jessfraz.com>

---------

Signed-off-by: Jess Frazelle <github@jessfraz.com>
2025-03-03 16:03:18 -06:00
efe6565857 Bump taiki-e/install-action from 2.48.20 to 2.49.11 (#5608)
Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.48.20 to 2.49.11.
- [Release notes](https://github.com/taiki-e/install-action/releases)
- [Commits](https://github.com/taiki-e/install-action/compare/v2.48.20...v2.49.11)

---
updated-dependencies:
- dependency-name: taiki-e/install-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-03 20:48:50 +00:00
fa0a34585b Bump once_cell from 1.20.2 to 1.20.3 in /rust (#5592)
Bumps [once_cell](https://github.com/matklad/once_cell) from 1.20.2 to 1.20.3.
- [Changelog](https://github.com/matklad/once_cell/blob/master/CHANGELOG.md)
- [Commits](https://github.com/matklad/once_cell/compare/v1.20.2...v1.20.3)

---
updated-dependencies:
- dependency-name: once_cell
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-03 11:58:20 -08:00
231 changed files with 9073 additions and 4929 deletions

View File

@ -22,7 +22,7 @@ jobs:
uses: Swatinem/rust-cache@v2 uses: Swatinem/rust-cache@v2
with: with:
workspaces: './rust' workspaces: './rust'
- uses: taiki-e/install-action@2dbeb927f58939d3aa13bf06ba0c0a34b76b9bfb - uses: taiki-e/install-action@a209ff0ce0349f9e7cadc4ba8f6a415c8d3b0813
with: with:
tool: wasm-pack tool: wasm-pack
- name: build wasm - name: build wasm

View File

@ -41,7 +41,7 @@ jobs:
workspaces: './rust' workspaces: './rust'
# TODO: see if we can fetch from main instead if no diff at rust # TODO: see if we can fetch from main instead if no diff at rust
- uses: taiki-e/install-action@2dbeb927f58939d3aa13bf06ba0c0a34b76b9bfb - uses: taiki-e/install-action@a209ff0ce0349f9e7cadc4ba8f6a415c8d3b0813
with: with:
tool: wasm-pack tool: wasm-pack
@ -134,6 +134,7 @@ jobs:
# Windows is picky sometimes and fails on fetch. Step takes about ~30s # Windows is picky sometimes and fails on fetch. Step takes about ~30s
uses: nick-fields/retry@v3.0.2 uses: nick-fields/retry@v3.0.2
with: with:
shell: bash
timeout_minutes: 2 timeout_minutes: 2
max_attempts: 3 max_attempts: 3
command: yarn install command: yarn install
@ -185,6 +186,7 @@ jobs:
# TODO: Fix electron-notarize flakes. The logs above should help gather more data on failures # TODO: Fix electron-notarize flakes. The logs above should help gather more data on failures
uses: nick-fields/retry@v3.0.2 uses: nick-fields/retry@v3.0.2
with: with:
shell: bash
timeout_minutes: 10 timeout_minutes: 10
max_attempts: 3 max_attempts: 3
command: yarn tronb:package:prod command: yarn tronb:package:prod
@ -246,6 +248,7 @@ jobs:
# TODO: Fix electron-notarize flakes. The logs above should help gather more data on failures # TODO: Fix electron-notarize flakes. The logs above should help gather more data on failures
uses: nick-fields/retry@v3.0.2 uses: nick-fields/retry@v3.0.2
with: with:
shell: bash
timeout_minutes: 10 timeout_minutes: 10
max_attempts: 3 max_attempts: 3
command: yarn tronb:package:prod command: yarn tronb:package:prod

View File

@ -19,15 +19,14 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- name: Install latest rust - name: Use correct Rust toolchain
uses: actions-rs/toolchain@v1 shell: bash
run: |
cp --update=none rust/rust-toolchain.toml ./ || true
- name: Install rust
uses: actions-rust-lang/setup-rust-toolchain@v1
with: with:
toolchain: 1.85 cache-workspaces: rust
override: true
default: true
- name: Rust Cache
uses: Swatinem/rust-cache@v2.6.1
- name: Run check - name: Run check
run: | run: |

View File

@ -26,17 +26,16 @@ jobs:
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- uses: taiki-e/install-action@just - uses: taiki-e/install-action@just
- name: Install latest rust - name: Use correct Rust toolchain
uses: actions-rs/toolchain@v1 shell: bash
run: |
cp --update=none rust/rust-toolchain.toml ./ || true
- name: Install rust
uses: actions-rust-lang/setup-rust-toolchain@v1
with: with:
toolchain: 1.85 cache-workspaces: rust
override: true
default: true
components: clippy components: clippy
- name: Rust Cache
uses: Swatinem/rust-cache@v2.6.1
- name: Run clippy - name: Run clippy
run: | run: |
cd rust cd rust

View File

@ -28,17 +28,16 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- name: Install latest rust - name: Use correct Rust toolchain
uses: actions-rs/toolchain@v1 shell: bash
run: |
cp --update=none rust/rust-toolchain.toml ./ || true
- name: Install rust
uses: actions-rust-lang/setup-rust-toolchain@v1
with: with:
toolchain: 1.85 cache-workspaces: rust
override: true
default: true
components: rustfmt components: rustfmt
- name: Rust Cache
uses: Swatinem/rust-cache@v2.6.1
- name: Run cargo fmt - name: Run cargo fmt
run: | run: |
cd rust cd rust

View File

@ -16,12 +16,14 @@ jobs:
runs-on: ubuntu-latest-8-cores runs-on: ubuntu-latest-8-cores
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- name: Install latest rust - name: Use correct Rust toolchain
uses: actions-rs/toolchain@v1 shell: bash
run: |
cp --update=none rust/rust-toolchain.toml ./ || true
- name: Install rust
uses: actions-rust-lang/setup-rust-toolchain@v1
with: with:
toolchain: 1.85 cache: false # Configured below.
override: true
default: true
- name: Install vector - name: Install vector
run: | run: |
curl --proto '=https' --tlsv1.2 -sSfL https://sh.vector.dev > /tmp/vector.sh curl --proto '=https' --tlsv1.2 -sSfL https://sh.vector.dev > /tmp/vector.sh
@ -40,6 +42,8 @@ jobs:
- uses: taiki-e/install-action@nextest - uses: taiki-e/install-action@nextest
- name: Rust Cache - name: Rust Cache
uses: Swatinem/rust-cache@v2.6.1 uses: Swatinem/rust-cache@v2.6.1
with:
workspaces: rust
- name: cargo test - name: cargo test
shell: bash shell: bash
run: |- run: |-

View File

@ -51,6 +51,7 @@ jobs:
node-version-file: '.nvmrc' node-version-file: '.nvmrc'
cache: 'yarn' cache: 'yarn'
- name: Install dependencies - name: Install dependencies
id: deps-install
shell: bash shell: bash
run: yarn run: yarn
- name: Cache Playwright Browsers - name: Cache Playwright Browsers
@ -80,7 +81,7 @@ jobs:
continue-on-error: true continue-on-error: true
- name: Setup Rust - name: Setup Rust
uses: dtolnay/rust-toolchain@stable uses: dtolnay/rust-toolchain@stable
- uses: taiki-e/install-action@2dbeb927f58939d3aa13bf06ba0c0a34b76b9bfb - uses: taiki-e/install-action@a209ff0ce0349f9e7cadc4ba8f6a415c8d3b0813
with: with:
tool: wasm-pack tool: wasm-pack
- name: Cache Wasm (because rust diff) - name: Cache Wasm (because rust diff)
@ -193,9 +194,10 @@ jobs:
path: test-results/ path: test-results/
- name: Run playwright/electron flow (with retries) - name: Run playwright/electron flow (with retries)
id: retry id: retry
if: ${{ !cancelled() && (success() || failure()) }} if: ${{ !cancelled() && steps.deps-install.outcome == 'success' }}
uses: nick-fields/retry@v3.0.2 uses: nick-fields/retry@v3.0.2
with: with:
shell: bash
command: .github/ci-cd-scripts/playwright-electron.sh ${{matrix.shardIndex}} ${{matrix.shardTotal}} ${{matrix.os}} command: .github/ci-cd-scripts/playwright-electron.sh ${{matrix.shardIndex}} ${{matrix.shardTotal}} ${{matrix.os}}
timeout_minutes: 30 timeout_minutes: 30
max_attempts: 25 max_attempts: 25

View File

@ -37,7 +37,7 @@ jobs:
node-version-file: '.nvmrc' node-version-file: '.nvmrc'
cache: 'yarn' cache: 'yarn'
- run: yarn install - run: yarn install
- uses: taiki-e/install-action@2dbeb927f58939d3aa13bf06ba0c0a34b76b9bfb - uses: taiki-e/install-action@a209ff0ce0349f9e7cadc4ba8f6a415c8d3b0813
with: with:
tool: wasm-pack tool: wasm-pack
- run: yarn build:wasm - run: yarn build:wasm
@ -56,7 +56,7 @@ jobs:
with: with:
workspaces: './rust' workspaces: './rust'
- uses: taiki-e/install-action@2dbeb927f58939d3aa13bf06ba0c0a34b76b9bfb - uses: taiki-e/install-action@a209ff0ce0349f9e7cadc4ba8f6a415c8d3b0813
with: with:
tool: wasm-pack tool: wasm-pack
- run: yarn build:wasm - run: yarn build:wasm
@ -98,7 +98,7 @@ jobs:
cache: 'yarn' cache: 'yarn'
- run: yarn install - run: yarn install
- uses: taiki-e/install-action@2dbeb927f58939d3aa13bf06ba0c0a34b76b9bfb - uses: taiki-e/install-action@a209ff0ce0349f9e7cadc4ba8f6a415c8d3b0813
with: with:
tool: wasm-pack tool: wasm-pack
- run: yarn build:wasm - run: yarn build:wasm
@ -127,7 +127,7 @@ jobs:
cache: 'yarn' cache: 'yarn'
- run: yarn install - run: yarn install
- uses: taiki-e/install-action@2dbeb927f58939d3aa13bf06ba0c0a34b76b9bfb - uses: taiki-e/install-action@a209ff0ce0349f9e7cadc4ba8f6a415c8d3b0813
with: with:
tool: wasm-pack tool: wasm-pack
- run: yarn build:wasm - run: yarn build:wasm

View File

@ -9,7 +9,7 @@ Compute the absolute value of a number.
```js ```js
abs(num: number) -> number abs(num: number): number
``` ```
### Tags ### Tags

View File

@ -9,7 +9,7 @@ Compute the arccosine of a number (in radians).
```js ```js
acos(num: number) -> number acos(num: number): number
``` ```
### Tags ### Tags

View File

@ -13,7 +13,7 @@ angleToMatchLengthX(
tag: TagIdentifier, tag: TagIdentifier,
to: number, to: number,
sketch: Sketch, sketch: Sketch,
) -> number ): number
``` ```

View File

@ -13,7 +13,7 @@ angleToMatchLengthY(
tag: TagIdentifier, tag: TagIdentifier,
to: number, to: number,
sketch: Sketch, sketch: Sketch,
) -> number ): number
``` ```

View File

@ -1,19 +1,19 @@
--- ---
title: "angledLine" title: "angledLine"
excerpt: "Draw a line segment relative to the current origin using the polar" excerpt: "Draw a line segment relative to the current origin using the polar measure of some angle and distance."
layout: manual layout: manual
--- ---
Draw a line segment relative to the current origin using the polar Draw a line segment relative to the current origin using the polar measure of some angle and distance.
measure of some angle and distance.
```js ```js
angledLine( angledLine(
data: AngledLineData, data: AngledLineData,
sketch: Sketch, sketch: Sketch,
tag?: TagDeclarator, tag?: TagDeclarator,
) -> Sketch ): Sketch
``` ```

View File

@ -1,19 +1,19 @@
--- ---
title: "angledLineOfXLength" title: "angledLineOfXLength"
excerpt: "Create a line segment from the current 2-dimensional sketch origin" excerpt: "Create a line segment from the current 2-dimensional sketch origin along some angle (in degrees) for some relative length in the 'x' dimension."
layout: manual layout: manual
--- ---
Create a line segment from the current 2-dimensional sketch origin Create a line segment from the current 2-dimensional sketch origin along some angle (in degrees) for some relative length in the 'x' dimension.
along some angle (in degrees) for some relative length in the 'x' dimension.
```js ```js
angledLineOfXLength( angledLineOfXLength(
data: AngledLineData, data: AngledLineData,
sketch: Sketch, sketch: Sketch,
tag?: TagDeclarator, tag?: TagDeclarator,
) -> Sketch ): Sketch
``` ```

View File

@ -1,19 +1,19 @@
--- ---
title: "angledLineOfYLength" title: "angledLineOfYLength"
excerpt: "Create a line segment from the current 2-dimensional sketch origin" excerpt: "Create a line segment from the current 2-dimensional sketch origin along some angle (in degrees) for some relative length in the 'y' dimension."
layout: manual layout: manual
--- ---
Create a line segment from the current 2-dimensional sketch origin Create a line segment from the current 2-dimensional sketch origin along some angle (in degrees) for some relative length in the 'y' dimension.
along some angle (in degrees) for some relative length in the 'y' dimension.
```js ```js
angledLineOfYLength( angledLineOfYLength(
data: AngledLineData, data: AngledLineData,
sketch: Sketch, sketch: Sketch,
tag?: TagDeclarator, tag?: TagDeclarator,
) -> Sketch ): Sketch
``` ```

View File

@ -1,19 +1,19 @@
--- ---
title: "angledLineThatIntersects" title: "angledLineThatIntersects"
excerpt: "Draw an angled line from the current origin, constructing a line segment" excerpt: "Draw an angled line from the current origin, constructing a line segment such that the newly created line intersects the desired target line segment."
layout: manual layout: manual
--- ---
Draw an angled line from the current origin, constructing a line segment Draw an angled line from the current origin, constructing a line segment such that the newly created line intersects the desired target line segment.
such that the newly created line intersects the desired target line segment.
```js ```js
angledLineThatIntersects( angledLineThatIntersects(
data: AngledLineThatIntersectsData, data: AngledLineThatIntersectsData,
sketch: Sketch, sketch: Sketch,
tag?: TagDeclarator, tag?: TagDeclarator,
) -> Sketch ): Sketch
``` ```

View File

@ -1,19 +1,19 @@
--- ---
title: "angledLineToX" title: "angledLineToX"
excerpt: "Create a line segment from the current 2-dimensional sketch origin" excerpt: "Create a line segment from the current 2-dimensional sketch origin along some angle (in degrees) for some length, ending at the provided value in the 'x' dimension."
layout: manual layout: manual
--- ---
Create a line segment from the current 2-dimensional sketch origin Create a line segment from the current 2-dimensional sketch origin along some angle (in degrees) for some length, ending at the provided value in the 'x' dimension.
along some angle (in degrees) for some length, ending at the provided value in the 'x' dimension.
```js ```js
angledLineToX( angledLineToX(
data: AngledLineToData, data: AngledLineToData,
sketch: Sketch, sketch: Sketch,
tag?: TagDeclarator, tag?: TagDeclarator,
) -> Sketch ): Sketch
``` ```

View File

@ -1,19 +1,19 @@
--- ---
title: "angledLineToY" title: "angledLineToY"
excerpt: "Create a line segment from the current 2-dimensional sketch origin" excerpt: "Create a line segment from the current 2-dimensional sketch origin along some angle (in degrees) for some length, ending at the provided value in the 'y' dimension."
layout: manual layout: manual
--- ---
Create a line segment from the current 2-dimensional sketch origin Create a line segment from the current 2-dimensional sketch origin along some angle (in degrees) for some length, ending at the provided value in the 'y' dimension.
along some angle (in degrees) for some length, ending at the provided value in the 'y' dimension.
```js ```js
angledLineToY( angledLineToY(
data: AngledLineToData, data: AngledLineToData,
sketch: Sketch, sketch: Sketch,
tag?: TagDeclarator, tag?: TagDeclarator,
) -> Sketch ): Sketch
``` ```

View File

@ -14,7 +14,7 @@ appearance(
color: String, color: String,
metalness?: number, metalness?: number,
roughness?: number, roughness?: number,
) -> SolidSet ): SolidSet
``` ```

View File

@ -15,7 +15,7 @@ arc(
data: ArcData, data: ArcData,
sketch: Sketch, sketch: Sketch,
tag?: TagDeclarator, tag?: TagDeclarator,
) -> Sketch ): Sketch
``` ```

View File

@ -1,10 +1,10 @@
--- ---
title: "arcTo" title: "arcTo"
excerpt: "Draw a 3 point arc." excerpt: "Draw a three point arc."
layout: manual layout: manual
--- ---
Draw a 3 point arc. Draw a three point arc.
The arc is constructed such that the start point is the current position of the sketch and two more points defined as the end and interior point. The interior point is placed between the start point and end point. The radius of the arc will be controlled by how far the interior point is placed from the start and end. The arc is constructed such that the start point is the current position of the sketch and two more points defined as the end and interior point. The interior point is placed between the start point and end point. The radius of the arc will be controlled by how far the interior point is placed from the start and end.
@ -13,7 +13,7 @@ arcTo(
data: ArcToData, data: ArcToData,
sketch: Sketch, sketch: Sketch,
tag?: TagDeclarator, tag?: TagDeclarator,
) -> Sketch ): Sketch
``` ```

View File

@ -9,7 +9,7 @@ Compute the arcsine of a number (in radians).
```js ```js
asin(num: number) -> number asin(num: number): number
``` ```
### Tags ### Tags

View File

@ -1,18 +1,18 @@
--- ---
title: "assert" title: "assert"
excerpt: "Check a value at runtime, and raise an error if the argument provided" excerpt: "Check a value at runtime, and raise an error if the argument provided is false."
layout: manual layout: manual
--- ---
Check a value at runtime, and raise an error if the argument provided Check a value at runtime, and raise an error if the argument provided is false.
is false.
```js ```js
assert( assert(
data: bool, data: bool,
message: string, message: string,
) -> () ): ()
``` ```

View File

@ -1,12 +1,12 @@
--- ---
title: "assertEqual" title: "assertEqual"
excerpt: "Check that a numerical value equals another at runtime," excerpt: "Check that a numerical value equals another at runtime, otherwise raise an error."
layout: manual layout: manual
--- ---
Check that a numerical value equals another at runtime, Check that a numerical value equals another at runtime, otherwise raise an error.
otherwise raise an error.
```js ```js
assertEqual( assertEqual(
@ -14,7 +14,7 @@ assertEqual(
right: number, right: number,
epsilon: number, epsilon: number,
message: string, message: string,
) -> () ): ()
``` ```

View File

@ -1,19 +1,19 @@
--- ---
title: "assertGreaterThan" title: "assertGreaterThan"
excerpt: "Check that a numerical value is greater than another at runtime," excerpt: "Check that a numerical value is greater than another at runtime, otherwise raise an error."
layout: manual layout: manual
--- ---
Check that a numerical value is greater than another at runtime, Check that a numerical value is greater than another at runtime, otherwise raise an error.
otherwise raise an error.
```js ```js
assertGreaterThan( assertGreaterThan(
left: number, left: number,
right: number, right: number,
message: string, message: string,
) -> () ): ()
``` ```

View File

@ -1,19 +1,19 @@
--- ---
title: "assertGreaterThanOrEq" title: "assertGreaterThanOrEq"
excerpt: "Check that a numerical value is greater than or equal to another at runtime," excerpt: "Check that a numerical value is greater than or equal to another at runtime, otherwise raise an error."
layout: manual layout: manual
--- ---
Check that a numerical value is greater than or equal to another at runtime, Check that a numerical value is greater than or equal to another at runtime, otherwise raise an error.
otherwise raise an error.
```js ```js
assertGreaterThanOrEq( assertGreaterThanOrEq(
left: number, left: number,
right: number, right: number,
message: string, message: string,
) -> () ): ()
``` ```

View File

@ -1,19 +1,19 @@
--- ---
title: "assertLessThan" title: "assertLessThan"
excerpt: "Check that a numerical value is less than to another at runtime," excerpt: "Check that a numerical value is less than to another at runtime, otherwise raise an error."
layout: manual layout: manual
--- ---
Check that a numerical value is less than to another at runtime, Check that a numerical value is less than to another at runtime, otherwise raise an error.
otherwise raise an error.
```js ```js
assertLessThan( assertLessThan(
left: number, left: number,
right: number, right: number,
message: string, message: string,
) -> () ): ()
``` ```

View File

@ -1,19 +1,19 @@
--- ---
title: "assertLessThanOrEq" title: "assertLessThanOrEq"
excerpt: "Check that a numerical value is less than or equal to another at runtime," excerpt: "Check that a numerical value is less than or equal to another at runtime, otherwise raise an error."
layout: manual layout: manual
--- ---
Check that a numerical value is less than or equal to another at runtime, Check that a numerical value is less than or equal to another at runtime, otherwise raise an error.
otherwise raise an error.
```js ```js
assertLessThanOrEq( assertLessThanOrEq(
left: number, left: number,
right: number, right: number,
message: string, message: string,
) -> () ): ()
``` ```

View File

@ -9,7 +9,7 @@ Compute the arctangent of a number (in radians).
```js ```js
atan(num: number) -> number atan(num: number): number
``` ```
### Tags ### Tags

View File

@ -12,7 +12,7 @@ Compute the four quadrant arctangent of Y and X (in radians).
atan2( atan2(
y: number, y: number,
x: number, x: number,
) -> number ): number
``` ```
### Tags ### Tags

View File

@ -1,19 +1,19 @@
--- ---
title: "bezierCurve" title: "bezierCurve"
excerpt: "Draw a smooth, continuous, curved line segment from the current origin to" excerpt: "Draw a smooth, continuous, curved line segment from the current origin to the desired (x, y), using a number of control points to shape the curve's shape."
layout: manual layout: manual
--- ---
Draw a smooth, continuous, curved line segment from the current origin to Draw a smooth, continuous, curved line segment from the current origin to the desired (x, y), using a number of control points to shape the curve's shape.
the desired (x, y), using a number of control points to shape the curve's shape.
```js ```js
bezierCurve( bezierCurve(
data: BezierData, data: BezierData,
sketch: Sketch, sketch: Sketch,
tag?: TagDeclarator, tag?: TagDeclarator,
) -> Sketch ): Sketch
``` ```

View File

@ -9,7 +9,7 @@ Compute the smallest integer greater than or equal to a number.
```js ```js
ceil(num: number) -> number ceil(num: number): number
``` ```
### Tags ### Tags

View File

@ -14,7 +14,7 @@ chamfer(
length: number, length: number,
tags: [EdgeReference], tags: [EdgeReference],
tag?: TagDeclarator, tag?: TagDeclarator,
) -> Solid ): Solid
``` ```

View File

@ -1,12 +1,12 @@
--- ---
title: "circle" title: "circle"
excerpt: "Construct a 2-dimensional circle, of the specified radius, centered at" excerpt: "Construct a 2-dimensional circle, of the specified radius, centered at the provided (x, y) origin point."
layout: manual layout: manual
--- ---
Construct a 2-dimensional circle, of the specified radius, centered at Construct a 2-dimensional circle, of the specified radius, centered at the provided (x, y) origin point.
the provided (x, y) origin point.
```js ```js
circle( circle(
@ -14,7 +14,7 @@ circle(
center: [number], center: [number],
radius: number, radius: number,
tag?: TagDeclarator, tag?: TagDeclarator,
) -> Sketch ): Sketch
``` ```

View File

@ -15,7 +15,7 @@ circleThreePoint(
p3: [number], p3: [number],
sketchSurfaceOrGroup: SketchOrSurface, sketchSurfaceOrGroup: SketchOrSurface,
tag?: TagDeclarator, tag?: TagDeclarator,
) -> Sketch ): Sketch
``` ```

View File

@ -1,18 +1,18 @@
--- ---
title: "close" title: "close"
excerpt: "Construct a line segment from the current origin back to the profile's" excerpt: "Construct a line segment from the current origin back to the profile's origin, ensuring the resulting 2-dimensional sketch is not open-ended."
layout: manual layout: manual
--- ---
Construct a line segment from the current origin back to the profile's Construct a line segment from the current origin back to the profile's origin, ensuring the resulting 2-dimensional sketch is not open-ended.
origin, ensuring the resulting 2-dimensional sketch is not open-ended.
```js ```js
close( close(
sketch: Sketch, sketch: Sketch,
tag?: TagDeclarator, tag?: TagDeclarator,
) -> Sketch ): Sketch
``` ```

View File

@ -15,7 +15,7 @@ For example, if the current project uses inches, this function will return `0.39
We merely provide these functions for convenience and readability, as `10 * cm()` is more readable that your intent is "I want 10 centimeters" than `10 * 10`, if the project settings are in millimeters. We merely provide these functions for convenience and readability, as `10 * cm()` is more readable that your intent is "I want 10 centimeters" than `10 * 10`, if the project settings are in millimeters.
```js ```js
cm() -> number cm(): number
``` ```
### Tags ### Tags

View File

@ -11,7 +11,7 @@ Return the value of Eulers number `e`.
**DEPRECATED** use the constant E **DEPRECATED** use the constant E
```js ```js
e() -> number e(): number
``` ```
### Tags ### Tags

View File

@ -1,18 +1,18 @@
--- ---
title: "extrude" title: "extrude"
excerpt: "Extend a 2-dimensional sketch through a third dimension in order to" 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 layout: manual
--- ---
Extend a 2-dimensional sketch through a third dimension in order to 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.
create new 3-dimensional volume, or if extruded into an existing volume, cut into an existing solid.
```js ```js
extrude( extrude(
sketchSet: SketchSet, sketchSet: SketchSet,
length: number, length: number,
) -> SolidSet ): SolidSet
``` ```

View File

@ -15,7 +15,7 @@ fillet(
tags: [EdgeReference], tags: [EdgeReference],
tolerance?: number, tolerance?: number,
tag?: TagDeclarator, tag?: TagDeclarator,
) -> Solid ): Solid
``` ```

View File

@ -9,7 +9,7 @@ Compute the largest integer less than or equal to a number.
```js ```js
floor(num: number) -> number floor(num: number): number
``` ```
### Tags ### Tags

View File

@ -15,7 +15,7 @@ For example, if the current project uses inches, this function will return `12`.
We merely provide these functions for convenience and readability, as `10 * ft()` is more readable that your intent is "I want 10 feet" than `10 * 304.8`, if the project settings are in millimeters. We merely provide these functions for convenience and readability, as `10 * ft()` is more readable that your intent is "I want 10 feet" than `10 * 304.8`, if the project settings are in millimeters.
```js ```js
ft() -> number ft(): number
``` ```
### Tags ### Tags

View File

@ -9,7 +9,7 @@ Get the next adjacent edge to the edge given.
```js ```js
getNextAdjacentEdge(tag: TagIdentifier) -> Uuid getNextAdjacentEdge(tag: TagIdentifier): Uuid
``` ```

View File

@ -9,7 +9,7 @@ Get the opposite edge to the edge given.
```js ```js
getOppositeEdge(tag: TagIdentifier) -> Uuid getOppositeEdge(tag: TagIdentifier): Uuid
``` ```

View File

@ -9,7 +9,7 @@ Get the previous adjacent edge to the edge given.
```js ```js
getPreviousAdjacentEdge(tag: TagIdentifier) -> Uuid getPreviousAdjacentEdge(tag: TagIdentifier): Uuid
``` ```

View File

@ -16,7 +16,7 @@ helix(
radius: number, radius: number,
axis: Axis3dOrEdgeReference, axis: Axis3dOrEdgeReference,
length?: number, length?: number,
) -> HelixValue ): HelixValue
``` ```

View File

@ -12,7 +12,7 @@ Create a helix on a cylinder.
helixRevolutions( helixRevolutions(
data: HelixRevolutionsData, data: HelixRevolutionsData,
solid: Solid, solid: Solid,
) -> Solid ): Solid
``` ```

View File

@ -12,7 +12,7 @@ Use a 2-dimensional sketch to cut a hole in another 2-dimensional sketch.
hole( hole(
holeSketch: SketchSet, holeSketch: SketchSet,
sketch: Sketch, sketch: Sketch,
) -> Sketch ): Sketch
``` ```

View File

@ -12,7 +12,7 @@ Remove volume from a 3-dimensional shape such that a wall of the provided thickn
hollow( hollow(
thickness: number, thickness: number,
solid: Solid, solid: Solid,
) -> Solid ): Solid
``` ```

View File

@ -18,7 +18,7 @@ Note: The import command currently only works when using the native Modeling App
import( import(
filePath: String, filePath: String,
options?: ImportFormat, options?: ImportFormat,
) -> ImportedGeometry ): ImportedGeometry
``` ```

View File

@ -15,7 +15,7 @@ For example, if the current project uses inches, this function will return `1`.
We merely provide these functions for convenience and readability, as `10 * inch()` is more readable that your intent is "I want 10 inches" than `10 * 25.4`, if the project settings are in millimeters. We merely provide these functions for convenience and readability, as `10 * inch()` is more readable that your intent is "I want 10 inches" than `10 * 25.4`, if the project settings are in millimeters.
```js ```js
inch() -> number inch(): number
``` ```
### Tags ### Tags

View File

@ -11,7 +11,7 @@ Convert a number to an integer.
DEPRECATED use floor(), ceil(), or round(). DEPRECATED use floor(), ceil(), or round().
```js ```js
int(num: number) -> number int(num: number): number
``` ```
### Tags ### Tags

View File

@ -1,15 +1,15 @@
--- ---
title: "lastSegX" title: "lastSegX"
excerpt: "Extract the 'x' axis value of the last line segment in the provided 2-d" excerpt: "Extract the 'x' axis value of the last line segment in the provided 2-d sketch."
layout: manual layout: manual
--- ---
Extract the 'x' axis value of the last line segment in the provided 2-d Extract the 'x' axis value of the last line segment in the provided 2-d sketch.
sketch.
```js ```js
lastSegX(sketch: Sketch) -> number lastSegX(sketch: Sketch): number
``` ```

View File

@ -1,15 +1,15 @@
--- ---
title: "lastSegY" title: "lastSegY"
excerpt: "Extract the 'y' axis value of the last line segment in the provided 2-d" excerpt: "Extract the 'y' axis value of the last line segment in the provided 2-d sketch."
layout: manual layout: manual
--- ---
Extract the 'y' axis value of the last line segment in the provided 2-d Extract the 'y' axis value of the last line segment in the provided 2-d sketch.
sketch.
```js ```js
lastSegY(sketch: Sketch) -> number lastSegY(sketch: Sketch): number
``` ```

View File

@ -12,7 +12,7 @@ Compute the angle of the given leg for x.
legAngX( legAngX(
hypotenuse: number, hypotenuse: number,
leg: number, leg: number,
) -> number ): number
``` ```
### Tags ### Tags

View File

@ -12,7 +12,7 @@ Compute the angle of the given leg for y.
legAngY( legAngY(
hypotenuse: number, hypotenuse: number,
leg: number, leg: number,
) -> number ): number
``` ```
### Tags ### Tags

View File

@ -12,7 +12,7 @@ Compute the length of the given leg.
legLen( legLen(
hypotenuse: number, hypotenuse: number,
leg: number, leg: number,
) -> number ): number
``` ```
### Tags ### Tags

View File

@ -14,7 +14,7 @@ line(
endAbsolute?: [number], endAbsolute?: [number],
end?: [number], end?: [number],
tag?: TagDeclarator, tag?: TagDeclarator,
) -> Sketch ): Sketch
``` ```

View File

@ -9,7 +9,7 @@ Compute the natural logarithm of the number.
```js ```js
ln(num: number) -> number ln(num: number): number
``` ```
### Tags ### Tags

View File

@ -15,7 +15,7 @@ loft(
bezApproximateRational: bool, bezApproximateRational: bool,
baseCurveIndex?: integer, baseCurveIndex?: integer,
tolerance?: number, tolerance?: number,
) -> Solid ): Solid
``` ```

View File

@ -12,7 +12,7 @@ The result might not be correctly rounded owing to implementation details; `log2
log( log(
num: number, num: number,
base: number, base: number,
) -> number ): number
``` ```
### Tags ### Tags

View File

@ -9,7 +9,7 @@ Compute the base 10 logarithm of the number.
```js ```js
log10(num: number) -> number log10(num: number): number
``` ```
### Tags ### Tags

View File

@ -9,7 +9,7 @@ Compute the base 2 logarithm of the number.
```js ```js
log2(num: number) -> number log2(num: number): number
``` ```
### Tags ### Tags

View File

@ -15,7 +15,7 @@ For example, if the current project uses inches, this function will return `39.3
We merely provide these functions for convenience and readability, as `10 * m()` is more readable that your intent is "I want 10 meters" than `10 * 1000`, if the project settings are in millimeters. We merely provide these functions for convenience and readability, as `10 * m()` is more readable that your intent is "I want 10 meters" than `10 * 1000`, if the project settings are in millimeters.
```js ```js
m() -> number m(): number
``` ```
### Tags ### Tags

View File

@ -12,7 +12,7 @@ Given a list like `[a, b, c]`, and a function like `f`, returns `[f(a), f(b), f(
map( map(
array: [KclValue], array: [KclValue],
mapFn: FunctionSource, mapFn: FunctionSource,
) -> [KclValue] ): [KclValue]
``` ```

View File

@ -9,7 +9,7 @@ Compute the maximum of the given arguments.
```js ```js
max(args: [number]) -> number max(args: [number]): number
``` ```
### Tags ### Tags

View File

@ -9,7 +9,7 @@ Compute the minimum of the given arguments.
```js ```js
min(args: [number]) -> number min(args: [number]): number
``` ```
### Tags ### Tags

View File

@ -14,7 +14,7 @@ Mirror occurs around a local sketch axis rather than a global axis.
mirror2d( mirror2d(
data: Mirror2dData, data: Mirror2dData,
sketchSet: SketchSet, sketchSet: SketchSet,
) -> [Sketch] ): [Sketch]
``` ```

View File

@ -15,7 +15,7 @@ For example, if the current project uses inches, this function will return `(1/2
We merely provide these functions for convenience and readability, as `10 * mm()` is more readable that your intent is "I want 10 millimeters" than `10 * (1/25.4)`, if the project settings are in inches. We merely provide these functions for convenience and readability, as `10 * mm()` is more readable that your intent is "I want 10 millimeters" than `10 * (1/25.4)`, if the project settings are in inches.
```js ```js
mm() -> number mm(): number
``` ```
### Tags ### Tags

View File

@ -12,7 +12,7 @@ For example, if you offset the 'XZ' plane by 10, the new plane will be parallel
offsetPlane( offsetPlane(
plane: PlaneData, plane: PlaneData,
offset: number, offset: number,
) -> Plane ): Plane
``` ```

View File

@ -1,12 +1,12 @@
--- ---
title: "patternCircular2d" title: "patternCircular2d"
excerpt: "Repeat a 2-dimensional sketch some number of times along a partial or" excerpt: "Repeat a 2-dimensional sketch some number of times along a partial or complete circle some specified number of times. Each object may additionally be rotated along the circle, ensuring orentation of the solid with respect to the center of the circle is maintained."
layout: manual layout: manual
--- ---
Repeat a 2-dimensional sketch some number of times along a partial or Repeat a 2-dimensional sketch some number of times along a partial or complete circle some specified number of times. Each object may additionally be rotated along the circle, ensuring orentation of the solid with respect to the center of the circle is maintained.
complete circle some specified number of times. Each object may additionally be rotated along the circle, ensuring orentation of the solid with respect to the center of the circle is maintained.
```js ```js
patternCircular2d( patternCircular2d(
@ -16,7 +16,7 @@ patternCircular2d(
arcDegrees: number, arcDegrees: number,
rotateDuplicates: bool, rotateDuplicates: bool,
useOriginal?: bool, useOriginal?: bool,
) -> [Sketch] ): [Sketch]
``` ```

View File

@ -1,12 +1,12 @@
--- ---
title: "patternCircular3d" title: "patternCircular3d"
excerpt: "Repeat a 3-dimensional solid some number of times along a partial or" excerpt: "Repeat a 3-dimensional solid some number of times along a partial or complete circle some specified number of times. Each object may additionally be rotated along the circle, ensuring orentation of the solid with respect to the center of the circle is maintained."
layout: manual layout: manual
--- ---
Repeat a 3-dimensional solid some number of times along a partial or Repeat a 3-dimensional solid some number of times along a partial or complete circle some specified number of times. Each object may additionally be rotated along the circle, ensuring orentation of the solid with respect to the center of the circle is maintained.
complete circle some specified number of times. Each object may additionally be rotated along the circle, ensuring orentation of the solid with respect to the center of the circle is maintained.
```js ```js
patternCircular3d( patternCircular3d(
@ -17,7 +17,7 @@ patternCircular3d(
arcDegrees: number, arcDegrees: number,
rotateDuplicates: bool, rotateDuplicates: bool,
useOriginal?: bool, useOriginal?: bool,
) -> [Solid] ): [Solid]
``` ```

View File

@ -1,12 +1,12 @@
--- ---
title: "patternLinear2d" title: "patternLinear2d"
excerpt: "Repeat a 2-dimensional sketch along some dimension, with a dynamic amount" excerpt: "Repeat a 2-dimensional sketch along some dimension, with a dynamic amount of distance between each repetition, some specified number of times."
layout: manual layout: manual
--- ---
Repeat a 2-dimensional sketch along some dimension, with a dynamic amount Repeat a 2-dimensional sketch along some dimension, with a dynamic amount of distance between each repetition, some specified number of times.
of distance between each repetition, some specified number of times.
```js ```js
patternLinear2d( patternLinear2d(
@ -15,7 +15,7 @@ patternLinear2d(
distance: number, distance: number,
axis: [number], axis: [number],
useOriginal?: bool, useOriginal?: bool,
) -> [Sketch] ): [Sketch]
``` ```

View File

@ -1,12 +1,10 @@
--- ---
title: "patternLinear3d" title: "patternLinear3d"
excerpt: "Repeat a 3-dimensional solid along a linear path, with a dynamic amount" excerpt: "Repeat a 3-dimensional solid along a linear path, with a dynamic amount of distance between each repetition, some specified number of times."
layout: manual layout: manual
--- ---
Repeat a 3-dimensional solid along a linear path, with a dynamic amount Repeat a 3-dimensional solid along a linear path, with a dynamic amount of distance between each repetition, some specified number of times.
of distance between each repetition, some specified number of times.
/// ///
@ -17,7 +15,7 @@ patternLinear3d(
distance: number, distance: number,
axis: [number], axis: [number],
useOriginal?: bool, useOriginal?: bool,
) -> [Solid] ): [Solid]
``` ```

View File

@ -40,7 +40,7 @@ patternTransform(
instances: integer, instances: integer,
transform: FunctionSource, transform: FunctionSource,
useOriginal?: bool, useOriginal?: bool,
) -> [Solid] ): [Solid]
``` ```

View File

@ -14,7 +14,7 @@ patternTransform2d(
instances: integer, instances: integer,
transform: FunctionSource, transform: FunctionSource,
useOriginal?: bool, useOriginal?: bool,
) -> [Sketch] ): [Sketch]
``` ```

View File

@ -11,7 +11,7 @@ Return the value of `pi`. Archimedes constant (π).
**DEPRECATED** use the constant PI **DEPRECATED** use the constant PI
```js ```js
pi() -> number pi(): number
``` ```
### Tags ### Tags

View File

@ -1,15 +1,15 @@
--- ---
title: "polar" title: "polar"
excerpt: "Convert polar/sphere (azimuth, elevation, distance) coordinates to" excerpt: "Convert polar/sphere (azimuth, elevation, distance) coordinates to cartesian (x/y/z grid) coordinates."
layout: manual layout: manual
--- ---
Convert polar/sphere (azimuth, elevation, distance) coordinates to Convert polar/sphere (azimuth, elevation, distance) coordinates to cartesian (x/y/z grid) coordinates.
cartesian (x/y/z grid) coordinates.
```js ```js
polar(data: PolarCoordsData) -> [number] polar(data: PolarCoordsData): [number]
``` ```

View File

@ -13,7 +13,7 @@ polygon(
data: PolygonData, data: PolygonData,
sketchSurfaceOrGroup: SketchOrSurface, sketchSurfaceOrGroup: SketchOrSurface,
tag?: TagDeclarator, tag?: TagDeclarator,
) -> Sketch ): Sketch
``` ```

View File

@ -9,7 +9,7 @@ Remove the last element from an array.
Returns a new array with the last element removed. Returns a new array with the last element removed.
```js ```js
pop(array: [KclValue]) -> KclValue pop(array: [KclValue]): KclValue
``` ```

View File

@ -12,7 +12,7 @@ Compute the number to a power.
pow( pow(
num: number, num: number,
pow: number, pow: number,
) -> number ): number
``` ```
### Tags ### Tags

View File

@ -1,15 +1,15 @@
--- ---
title: "profileStart" title: "profileStart"
excerpt: "Extract the provided 2-dimensional sketch's profile's origin" excerpt: "Extract the provided 2-dimensional sketch's profile's origin value."
layout: manual layout: manual
--- ---
Extract the provided 2-dimensional sketch's profile's origin Extract the provided 2-dimensional sketch's profile's origin value.
value.
```js ```js
profileStart(sketch: Sketch) -> [number] profileStart(sketch: Sketch): [number]
``` ```

View File

@ -1,15 +1,15 @@
--- ---
title: "profileStartX" title: "profileStartX"
excerpt: "Extract the provided 2-dimensional sketch's profile's origin's 'x'" excerpt: "Extract the provided 2-dimensional sketch's profile's origin's 'x' value."
layout: manual layout: manual
--- ---
Extract the provided 2-dimensional sketch's profile's origin's 'x' Extract the provided 2-dimensional sketch's profile's origin's 'x' value.
value.
```js ```js
profileStartX(sketch: Sketch) -> number profileStartX(sketch: Sketch): number
``` ```

View File

@ -1,15 +1,15 @@
--- ---
title: "profileStartY" title: "profileStartY"
excerpt: "Extract the provided 2-dimensional sketch's profile's origin's 'y'" excerpt: "Extract the provided 2-dimensional sketch's profile's origin's 'y' value."
layout: manual layout: manual
--- ---
Extract the provided 2-dimensional sketch's profile's origin's 'y' Extract the provided 2-dimensional sketch's profile's origin's 'y' value.
value.
```js ```js
profileStartY(sketch: Sketch) -> number profileStartY(sketch: Sketch): number
``` ```

View File

@ -12,7 +12,7 @@ Returns a new array with the element appended.
push( push(
array: [KclValue], array: [KclValue],
elem: KclValue, elem: KclValue,
) -> KclValue ): KclValue
``` ```

View File

@ -1,19 +1,19 @@
--- ---
title: "reduce" title: "reduce"
excerpt: "Take a starting value. Then, for each element of an array, calculate the next value," excerpt: "Take a starting value. Then, for each element of an array, calculate the next value, using the previous value and the element."
layout: manual layout: manual
--- ---
Take a starting value. Then, for each element of an array, calculate the next value, Take a starting value. Then, for each element of an array, calculate the next value, using the previous value and the element.
using the previous value and the element.
```js ```js
reduce( reduce(
array: [KclValue], array: [KclValue],
start: KclValue, start: KclValue,
reduceFn: FunctionSource, reduceFn: FunctionSource,
) -> KclValue ): KclValue
``` ```

View File

@ -1,18 +1,18 @@
--- ---
title: "rem" title: "rem"
excerpt: "Compute the remainder after dividing `num` by `div`." excerpt: "Compute the remainder after dividing `num` by `div`. If `num` is negative, the result will be too."
layout: manual layout: manual
--- ---
Compute the remainder after dividing `num` by `div`. Compute the remainder after dividing `num` by `div`. If `num` is negative, the result will be too.
If `num` is negative, the result will be too.
```js ```js
rem( rem(
num: number, num: number,
divisor: number, divisor: number,
) -> number ): number
``` ```
### Tags ### Tags

View File

@ -14,7 +14,7 @@ Revolve occurs around a local sketch axis rather than a global axis.
revolve( revolve(
data: RevolveData, data: RevolveData,
sketch: Sketch, sketch: Sketch,
) -> Solid ): Solid
``` ```

View File

@ -31,7 +31,7 @@ rotate(
axis?: [number], axis?: [number],
angle?: number, angle?: number,
global?: bool, global?: bool,
) -> Solid ): Solid
``` ```

View File

@ -9,7 +9,7 @@ Round a number to the nearest integer.
```js ```js
round(num: number) -> number round(num: number): number
``` ```
### Tags ### Tags

View File

@ -15,7 +15,7 @@ scale(
solid: Solid, solid: Solid,
scale: [number], scale: [number],
global?: bool, global?: bool,
) -> Solid ): Solid
``` ```

View File

@ -9,7 +9,7 @@ Compute the angle (in degrees) of the provided line segment.
```js ```js
segAng(tag: TagIdentifier) -> number segAng(tag: TagIdentifier): number
``` ```

View File

@ -9,7 +9,7 @@ Compute the ending point of the provided line segment.
```js ```js
segEnd(tag: TagIdentifier) -> [number] segEnd(tag: TagIdentifier): [number]
``` ```

View File

@ -9,7 +9,7 @@ Compute the ending point of the provided line segment along the 'x' axis.
```js ```js
segEndX(tag: TagIdentifier) -> number segEndX(tag: TagIdentifier): number
``` ```

View File

@ -9,7 +9,7 @@ Compute the ending point of the provided line segment along the 'y' axis.
```js ```js
segEndY(tag: TagIdentifier) -> number segEndY(tag: TagIdentifier): number
``` ```

View File

@ -9,7 +9,7 @@ Compute the length of the provided line segment.
```js ```js
segLen(tag: TagIdentifier) -> number segLen(tag: TagIdentifier): number
``` ```

View File

@ -9,7 +9,7 @@ Compute the starting point of the provided line segment.
```js ```js
segStart(tag: TagIdentifier) -> [number] segStart(tag: TagIdentifier): [number]
``` ```

View File

@ -9,7 +9,7 @@ Compute the starting point of the provided line segment along the 'x' axis.
```js ```js
segStartX(tag: TagIdentifier) -> number segStartX(tag: TagIdentifier): number
``` ```

View File

@ -9,7 +9,7 @@ Compute the starting point of the provided line segment along the 'y' axis.
```js ```js
segStartY(tag: TagIdentifier) -> number segStartY(tag: TagIdentifier): number
``` ```

View File

@ -1,19 +1,19 @@
--- ---
title: "shell" title: "shell"
excerpt: "Remove volume from a 3-dimensional shape such that a wall of the" excerpt: "Remove volume from a 3-dimensional shape such that a wall of the provided thickness remains, taking volume starting at the provided face, leaving it open in that direction."
layout: manual layout: manual
--- ---
Remove volume from a 3-dimensional shape such that a wall of the Remove volume from a 3-dimensional shape such that a wall of the provided thickness remains, taking volume starting at the provided face, leaving it open in that direction.
provided thickness remains, taking volume starting at the provided face, leaving it open in that direction.
```js ```js
shell( shell(
solidSet: SolidSet, solidSet: SolidSet,
thickness: number, thickness: number,
faces: [FaceTag], faces: [FaceTag],
) -> SolidSet ): SolidSet
``` ```

Some files were not shown because too many files have changed in this diff Show More