Compare commits
48 Commits
v0.56.0
...
nightly-v2
Author | SHA1 | Date | |
---|---|---|---|
1e056cfd8a | |||
32db31e6c3 | |||
9c246d6621 | |||
9c52f5b19a | |||
0464de33b1 | |||
1ed6bb8a7c | |||
8f72920764 | |||
574d6dae7f | |||
cf2e9d4b91 | |||
7ab879a94f | |||
21da3c6482 | |||
5f836358c0 | |||
f407762259 | |||
dea20861a0 | |||
bc818f10c3 | |||
19f5031ef7 | |||
b71eb4fb89 | |||
c327c73087 | |||
4fe8741ea7 | |||
75916d4300 | |||
e65a6b6a38 | |||
86a83cadd3 | |||
00553c34ab | |||
ace9a59a45 | |||
09ebb517d9 | |||
1c697d30ee | |||
c2dd4d1d2e | |||
6866c9d418 | |||
819ee23565 | |||
02a37e207f | |||
7356af556a | |||
88288c3979 | |||
763b05e2e6 | |||
39351aed58 | |||
e8e7c22b95 | |||
ad975152c1 | |||
ed406734a7 | |||
89bae66257 | |||
16f5d9c284 | |||
00148d84d8 | |||
390cedf79f | |||
b686c79b49 | |||
2d77aa0d36 | |||
012102fe86 | |||
1a6b147107 | |||
2978b34b7b | |||
dee77e814a | |||
820082d7f2 |
@ -1,3 +1,3 @@
|
||||
[codespell]
|
||||
ignore-words-list: crate,everytime,inout,co-ordinate,ot,nwo,atleast,ue,afterall,ser,fromM,FromM
|
||||
skip: **/target,node_modules,build,dist,./out,**/Cargo.lock,./docs/kcl/*.md,./e2e/playwright/lib/console-error-whitelist.ts,.package-lock.json,**/package-lock.json,./openapi/*.json,./packages/codemirror-lang-kcl/test/all.test.ts,./public/kcl-samples,./rust/kcl-lib/tests/kcl_samples,tsconfig.tsbuildinfo,./src/lib/machine-api.d.ts
|
||||
skip: **/target,node_modules,build,dist,./out,**/Cargo.lock,./docs/**/*.md,./e2e/playwright/lib/console-error-whitelist.ts,.package-lock.json,**/package-lock.json,./openapi/*.json,./packages/codemirror-lang-kcl/test/all.test.ts,./public/kcl-samples,./rust/kcl-lib/tests/kcl_samples,tsconfig.tsbuildinfo,./src/lib/machine-api.d.ts
|
||||
|
12
.github/ci-cd-scripts/playwright-electron.sh
vendored
12
.github/ci-cd-scripts/playwright-electron.sh
vendored
@ -7,11 +7,11 @@ if [[ ! -f "test-results/.last-run.json" ]]; then
|
||||
# If no last run artifact, than run Playwright normally
|
||||
echo "run playwright normally"
|
||||
if [[ "$3" == *ubuntu* ]]; then
|
||||
xvfb-run --auto-servernum --server-args="-screen 0 1280x960x24" -- npm run test:playwright:electron:ubuntu -- --shard=$1/$2 || true
|
||||
xvfb-run --auto-servernum --server-args="-screen 0 1280x960x24" -- npm run test:playwright:electron -- --shard=$1/$2 || true
|
||||
elif [[ "$3" == *windows* ]]; then
|
||||
npm run test:playwright:electron:windows -- --shard=$1/$2 || true
|
||||
npm run test:playwright:electron -- --grep=@windows --shard=$1/$2 || true
|
||||
elif [[ "$3" == *macos* ]]; then
|
||||
npm run test:playwright:electron:macos -- --shard=$1/$2 || true
|
||||
npm run test:playwright:electron -- --grep=@macos --shard=$1/$2 || true
|
||||
else
|
||||
echo "Do not run Playwright. Unable to detect os runtime."
|
||||
exit 1
|
||||
@ -31,11 +31,11 @@ while [[ $retry -le $max_retries ]]; do
|
||||
echo "retried=true" >>$GITHUB_OUTPUT
|
||||
echo "run playwright with last failed tests and retry $retry"
|
||||
if [[ "$3" == *ubuntu* ]]; then
|
||||
xvfb-run --auto-servernum --server-args="-screen 0 1280x960x24" -- npm run test:playwright:electron:ubuntu -- --last-failed || true
|
||||
xvfb-run --auto-servernum --server-args="-screen 0 1280x960x24" -- npm run test:playwright:electron -- --last-failed || true
|
||||
elif [[ "$3" == *windows* ]]; then
|
||||
npm run test:playwright:electron:windows -- --last-failed || true
|
||||
npm run test:playwright:electron -- --grep=@windows --last-failed || true
|
||||
elif [[ "$3" == *macos* ]]; then
|
||||
npm run test:playwright:electron:macos -- --last-failed || true
|
||||
npm run test:playwright:electron -- --grep=@macos --last-failed || true
|
||||
else
|
||||
echo "Do not run playwright. Unable to detect os runtime."
|
||||
exit 1
|
||||
|
441
.github/dependabot.yml
vendored
441
.github/dependabot.yml
vendored
@ -16,9 +16,12 @@ updates:
|
||||
security:
|
||||
applies-to: security-updates
|
||||
update-types:
|
||||
- major
|
||||
- minor
|
||||
- patch
|
||||
security-major:
|
||||
applies-to: security-updates
|
||||
update-types:
|
||||
- major
|
||||
patch:
|
||||
applies-to: version-updates
|
||||
update-types:
|
||||
@ -49,9 +52,408 @@ updates:
|
||||
security:
|
||||
applies-to: security-updates
|
||||
update-types:
|
||||
- major
|
||||
- minor
|
||||
- patch
|
||||
security-major:
|
||||
applies-to: security-updates
|
||||
update-types:
|
||||
- major
|
||||
patch:
|
||||
applies-to: version-updates
|
||||
update-types:
|
||||
- patch
|
||||
major:
|
||||
applies-to: version-updates
|
||||
update-types:
|
||||
- major
|
||||
minor:
|
||||
applies-to: version-updates
|
||||
update-types:
|
||||
- minor
|
||||
- patch
|
||||
- package-ecosystem: cargo
|
||||
directory: /rust/kcl-python-bindings
|
||||
schedule:
|
||||
interval: weekly
|
||||
day: monday
|
||||
time: '03:00'
|
||||
timezone: America/Los_Angeles
|
||||
open-pull-requests-limit: 5
|
||||
reviewers:
|
||||
- adamchalmers
|
||||
- franknoirot
|
||||
- irev-dev
|
||||
- jessfraz
|
||||
groups:
|
||||
security:
|
||||
applies-to: security-updates
|
||||
update-types:
|
||||
- minor
|
||||
- patch
|
||||
security-major:
|
||||
applies-to: security-updates
|
||||
update-types:
|
||||
- major
|
||||
patch:
|
||||
applies-to: version-updates
|
||||
update-types:
|
||||
- patch
|
||||
major:
|
||||
applies-to: version-updates
|
||||
update-types:
|
||||
- major
|
||||
minor:
|
||||
applies-to: version-updates
|
||||
update-types:
|
||||
- minor
|
||||
- patch
|
||||
- package-ecosystem: cargo
|
||||
directory: /rust/kcl-to-core
|
||||
schedule:
|
||||
interval: weekly
|
||||
day: monday
|
||||
time: '03:00'
|
||||
timezone: America/Los_Angeles
|
||||
open-pull-requests-limit: 5
|
||||
reviewers:
|
||||
- adamchalmers
|
||||
- franknoirot
|
||||
- irev-dev
|
||||
- jessfraz
|
||||
groups:
|
||||
security:
|
||||
applies-to: security-updates
|
||||
update-types:
|
||||
- minor
|
||||
- patch
|
||||
security-major:
|
||||
applies-to: security-updates
|
||||
update-types:
|
||||
- major
|
||||
patch:
|
||||
applies-to: version-updates
|
||||
update-types:
|
||||
- patch
|
||||
major:
|
||||
applies-to: version-updates
|
||||
update-types:
|
||||
- major
|
||||
minor:
|
||||
applies-to: version-updates
|
||||
update-types:
|
||||
- minor
|
||||
- patch
|
||||
- package-ecosystem: cargo
|
||||
directory: /rust/kcl-language-server-release
|
||||
schedule:
|
||||
interval: weekly
|
||||
day: monday
|
||||
time: '03:00'
|
||||
timezone: America/Los_Angeles
|
||||
open-pull-requests-limit: 5
|
||||
reviewers:
|
||||
- adamchalmers
|
||||
- franknoirot
|
||||
- irev-dev
|
||||
- jessfraz
|
||||
groups:
|
||||
security:
|
||||
applies-to: security-updates
|
||||
update-types:
|
||||
- minor
|
||||
- patch
|
||||
security-major:
|
||||
applies-to: security-updates
|
||||
update-types:
|
||||
- major
|
||||
patch:
|
||||
applies-to: version-updates
|
||||
update-types:
|
||||
- patch
|
||||
major:
|
||||
applies-to: version-updates
|
||||
update-types:
|
||||
- major
|
||||
minor:
|
||||
applies-to: version-updates
|
||||
update-types:
|
||||
- minor
|
||||
- patch
|
||||
- package-ecosystem: cargo
|
||||
directory: /rust/kcl-wasm-lib
|
||||
schedule:
|
||||
interval: weekly
|
||||
day: monday
|
||||
time: '03:00'
|
||||
timezone: America/Los_Angeles
|
||||
open-pull-requests-limit: 5
|
||||
reviewers:
|
||||
- adamchalmers
|
||||
- franknoirot
|
||||
- irev-dev
|
||||
- jessfraz
|
||||
groups:
|
||||
security:
|
||||
applies-to: security-updates
|
||||
update-types:
|
||||
- minor
|
||||
- patch
|
||||
security-major:
|
||||
applies-to: security-updates
|
||||
update-types:
|
||||
- major
|
||||
patch:
|
||||
applies-to: version-updates
|
||||
update-types:
|
||||
- patch
|
||||
major:
|
||||
applies-to: version-updates
|
||||
update-types:
|
||||
- major
|
||||
minor:
|
||||
applies-to: version-updates
|
||||
update-types:
|
||||
- minor
|
||||
- patch
|
||||
- package-ecosystem: cargo
|
||||
directory: /rust/kcl-derive-docs
|
||||
schedule:
|
||||
interval: weekly
|
||||
day: monday
|
||||
time: '03:00'
|
||||
timezone: America/Los_Angeles
|
||||
open-pull-requests-limit: 5
|
||||
reviewers:
|
||||
- adamchalmers
|
||||
- franknoirot
|
||||
- irev-dev
|
||||
- jessfraz
|
||||
groups:
|
||||
security:
|
||||
applies-to: security-updates
|
||||
update-types:
|
||||
- minor
|
||||
- patch
|
||||
security-major:
|
||||
applies-to: security-updates
|
||||
update-types:
|
||||
- major
|
||||
patch:
|
||||
applies-to: version-updates
|
||||
update-types:
|
||||
- patch
|
||||
major:
|
||||
applies-to: version-updates
|
||||
update-types:
|
||||
- major
|
||||
minor:
|
||||
applies-to: version-updates
|
||||
update-types:
|
||||
- minor
|
||||
- patch
|
||||
- package-ecosystem: cargo
|
||||
directory: /rust/kcl-bumper
|
||||
schedule:
|
||||
interval: weekly
|
||||
day: monday
|
||||
time: '03:00'
|
||||
timezone: America/Los_Angeles
|
||||
open-pull-requests-limit: 5
|
||||
reviewers:
|
||||
- adamchalmers
|
||||
- franknoirot
|
||||
- irev-dev
|
||||
- jessfraz
|
||||
groups:
|
||||
security:
|
||||
applies-to: security-updates
|
||||
update-types:
|
||||
- minor
|
||||
- patch
|
||||
security-major:
|
||||
applies-to: security-updates
|
||||
update-types:
|
||||
- major
|
||||
patch:
|
||||
applies-to: version-updates
|
||||
update-types:
|
||||
- patch
|
||||
major:
|
||||
applies-to: version-updates
|
||||
update-types:
|
||||
- major
|
||||
minor:
|
||||
applies-to: version-updates
|
||||
update-types:
|
||||
- minor
|
||||
- patch
|
||||
- package-ecosystem: cargo
|
||||
directory: /rust/kcl-language-server
|
||||
schedule:
|
||||
interval: weekly
|
||||
day: monday
|
||||
time: '03:00'
|
||||
timezone: America/Los_Angeles
|
||||
open-pull-requests-limit: 5
|
||||
reviewers:
|
||||
- adamchalmers
|
||||
- franknoirot
|
||||
- irev-dev
|
||||
- jessfraz
|
||||
groups:
|
||||
security:
|
||||
applies-to: security-updates
|
||||
update-types:
|
||||
- minor
|
||||
- patch
|
||||
security-major:
|
||||
applies-to: security-updates
|
||||
update-types:
|
||||
- major
|
||||
patch:
|
||||
applies-to: version-updates
|
||||
update-types:
|
||||
- patch
|
||||
major:
|
||||
applies-to: version-updates
|
||||
update-types:
|
||||
- major
|
||||
minor:
|
||||
applies-to: version-updates
|
||||
update-types:
|
||||
- minor
|
||||
- patch
|
||||
- package-ecosystem: cargo
|
||||
directory: /rust/kcl-lib
|
||||
schedule:
|
||||
interval: weekly
|
||||
day: monday
|
||||
time: '03:00'
|
||||
timezone: America/Los_Angeles
|
||||
open-pull-requests-limit: 5
|
||||
reviewers:
|
||||
- adamchalmers
|
||||
- franknoirot
|
||||
- irev-dev
|
||||
- jessfraz
|
||||
groups:
|
||||
security:
|
||||
applies-to: security-updates
|
||||
update-types:
|
||||
- minor
|
||||
- patch
|
||||
security-major:
|
||||
applies-to: security-updates
|
||||
update-types:
|
||||
- major
|
||||
patch:
|
||||
applies-to: version-updates
|
||||
update-types:
|
||||
- patch
|
||||
major:
|
||||
applies-to: version-updates
|
||||
update-types:
|
||||
- major
|
||||
minor:
|
||||
applies-to: version-updates
|
||||
update-types:
|
||||
- minor
|
||||
- patch
|
||||
- package-ecosystem: cargo
|
||||
directory: /rust/kcl-lib/fuzz
|
||||
schedule:
|
||||
interval: weekly
|
||||
day: monday
|
||||
time: '03:00'
|
||||
timezone: America/Los_Angeles
|
||||
open-pull-requests-limit: 5
|
||||
reviewers:
|
||||
- adamchalmers
|
||||
- franknoirot
|
||||
- irev-dev
|
||||
- jessfraz
|
||||
groups:
|
||||
security:
|
||||
applies-to: security-updates
|
||||
update-types:
|
||||
- minor
|
||||
- patch
|
||||
security-major:
|
||||
applies-to: security-updates
|
||||
update-types:
|
||||
- major
|
||||
patch:
|
||||
applies-to: version-updates
|
||||
update-types:
|
||||
- patch
|
||||
major:
|
||||
applies-to: version-updates
|
||||
update-types:
|
||||
- major
|
||||
minor:
|
||||
applies-to: version-updates
|
||||
update-types:
|
||||
- minor
|
||||
- patch
|
||||
- package-ecosystem: cargo
|
||||
directory: /rust/kcl-test-server
|
||||
schedule:
|
||||
interval: weekly
|
||||
day: monday
|
||||
time: '03:00'
|
||||
timezone: America/Los_Angeles
|
||||
open-pull-requests-limit: 5
|
||||
reviewers:
|
||||
- adamchalmers
|
||||
- franknoirot
|
||||
- irev-dev
|
||||
- jessfraz
|
||||
groups:
|
||||
security:
|
||||
applies-to: security-updates
|
||||
update-types:
|
||||
- minor
|
||||
- patch
|
||||
security-major:
|
||||
applies-to: security-updates
|
||||
update-types:
|
||||
- major
|
||||
patch:
|
||||
applies-to: version-updates
|
||||
update-types:
|
||||
- patch
|
||||
major:
|
||||
applies-to: version-updates
|
||||
update-types:
|
||||
- major
|
||||
minor:
|
||||
applies-to: version-updates
|
||||
update-types:
|
||||
- minor
|
||||
- patch
|
||||
- package-ecosystem: cargo
|
||||
directory: /rust/kcl-directory-test-macro
|
||||
schedule:
|
||||
interval: weekly
|
||||
day: monday
|
||||
time: '03:00'
|
||||
timezone: America/Los_Angeles
|
||||
open-pull-requests-limit: 5
|
||||
reviewers:
|
||||
- adamchalmers
|
||||
- franknoirot
|
||||
- irev-dev
|
||||
- jessfraz
|
||||
groups:
|
||||
security:
|
||||
applies-to: security-updates
|
||||
update-types:
|
||||
- minor
|
||||
- patch
|
||||
security-major:
|
||||
applies-to: security-updates
|
||||
update-types:
|
||||
- major
|
||||
patch:
|
||||
applies-to: version-updates
|
||||
update-types:
|
||||
@ -82,9 +484,12 @@ updates:
|
||||
security:
|
||||
applies-to: security-updates
|
||||
update-types:
|
||||
- major
|
||||
- minor
|
||||
- patch
|
||||
security-major:
|
||||
applies-to: security-updates
|
||||
update-types:
|
||||
- major
|
||||
patch:
|
||||
applies-to: version-updates
|
||||
update-types:
|
||||
@ -115,9 +520,12 @@ updates:
|
||||
security:
|
||||
applies-to: security-updates
|
||||
update-types:
|
||||
- major
|
||||
- minor
|
||||
- patch
|
||||
security-major:
|
||||
applies-to: security-updates
|
||||
update-types:
|
||||
- major
|
||||
patch:
|
||||
applies-to: version-updates
|
||||
update-types:
|
||||
@ -148,9 +556,12 @@ updates:
|
||||
security:
|
||||
applies-to: security-updates
|
||||
update-types:
|
||||
- major
|
||||
- minor
|
||||
- patch
|
||||
security-major:
|
||||
applies-to: security-updates
|
||||
update-types:
|
||||
- major
|
||||
patch:
|
||||
applies-to: version-updates
|
||||
update-types:
|
||||
@ -181,9 +592,12 @@ updates:
|
||||
security:
|
||||
applies-to: security-updates
|
||||
update-types:
|
||||
- major
|
||||
- minor
|
||||
- patch
|
||||
security-major:
|
||||
applies-to: security-updates
|
||||
update-types:
|
||||
- major
|
||||
patch:
|
||||
applies-to: version-updates
|
||||
update-types:
|
||||
@ -214,9 +628,12 @@ updates:
|
||||
security:
|
||||
applies-to: security-updates
|
||||
update-types:
|
||||
- major
|
||||
- minor
|
||||
- patch
|
||||
security-major:
|
||||
applies-to: security-updates
|
||||
update-types:
|
||||
- major
|
||||
patch:
|
||||
applies-to: version-updates
|
||||
update-types:
|
||||
@ -247,9 +664,12 @@ updates:
|
||||
security:
|
||||
applies-to: security-updates
|
||||
update-types:
|
||||
- major
|
||||
- minor
|
||||
- patch
|
||||
security-major:
|
||||
applies-to: security-updates
|
||||
update-types:
|
||||
- major
|
||||
patch:
|
||||
applies-to: version-updates
|
||||
update-types:
|
||||
@ -280,9 +700,12 @@ updates:
|
||||
security:
|
||||
applies-to: security-updates
|
||||
update-types:
|
||||
- major
|
||||
- minor
|
||||
- patch
|
||||
security-major:
|
||||
applies-to: security-updates
|
||||
update-types:
|
||||
- major
|
||||
patch:
|
||||
applies-to: version-updates
|
||||
update-types:
|
||||
|
13
.github/workflows/cargo-test.yml
vendored
13
.github/workflows/cargo-test.yml
vendored
@ -84,9 +84,10 @@ jobs:
|
||||
run: |
|
||||
set -euo pipefail
|
||||
cd rust
|
||||
cargo nextest run --workspace --features artifact-graph --retries=2 --no-fail-fast --profile ci simulation_tests::kcl_samples 2>&1 | tee /tmp/github-actions.log
|
||||
cargo nextest run --workspace --features artifact-graph --retries=10 --no-fail-fast --profile ci simulation_tests::kcl_samples 2>&1 | tee /tmp/github-actions.log
|
||||
env:
|
||||
KITTYCAD_API_TOKEN: ${{secrets.KITTYCAD_API_TOKEN}}
|
||||
KITTYCAD_API_TOKEN: ${{secrets.KITTYCAD_API_TOKEN_DEV}}
|
||||
ZOO_HOST: https://api.dev.zoo.dev
|
||||
RUST_BACKTRACE: full
|
||||
- name: Commit differences
|
||||
if: steps.path-changes.outputs.outside-kcl-samples == 'false' && steps.cargo-test-kcl-samples.outcome == 'failure'
|
||||
@ -116,7 +117,8 @@ jobs:
|
||||
env:
|
||||
# The default is auto, and insta behaves differently in CI vs. not.
|
||||
INSTA_UPDATE: always
|
||||
KITTYCAD_API_TOKEN: ${{secrets.KITTYCAD_API_TOKEN}}
|
||||
KITTYCAD_API_TOKEN: ${{secrets.KITTYCAD_API_TOKEN_DEV}}
|
||||
ZOO_HOST: https://api.dev.zoo.dev
|
||||
# Configure nextest when it's run by insta (via just).
|
||||
NEXTEST_PROFILE: ci
|
||||
RUST_BACKTRACE: full
|
||||
@ -178,9 +180,10 @@ jobs:
|
||||
ls -lah
|
||||
cd rust
|
||||
cargo nextest run\
|
||||
--retries=2 --no-fail-fast -P ci --archive-file nextest-archive.tar.zst \
|
||||
--retries=10 --no-fail-fast --profile ci --archive-file nextest-archive.tar.zst \
|
||||
--partition count:${{ matrix.partitionIndex}}/${{ matrix.partitionTotal }} \
|
||||
2>&1 | tee /tmp/github-actions.log
|
||||
env:
|
||||
KITTYCAD_API_TOKEN: ${{secrets.KITTYCAD_API_TOKEN}}
|
||||
KITTYCAD_API_TOKEN: ${{secrets.KITTYCAD_API_TOKEN_DEV}}
|
||||
ZOO_HOST: https://api.dev.zoo.dev
|
||||
|
||||
|
14
.github/workflows/generate-website-docs.yml
vendored
14
.github/workflows/generate-website-docs.yml
vendored
@ -38,15 +38,13 @@ jobs:
|
||||
run: |
|
||||
mkdir -p documentation/content/pages/docs/kcl/
|
||||
# cleanup old
|
||||
rm -rf documentation/content/pages/docs/kcl/*.md
|
||||
rm -rf documentation/content/pages/docs/kcl/types
|
||||
rm -rf documentation/content/pages/docs/kcl/settings
|
||||
rm -rf documentation/content/pages/docs/kcl/consts
|
||||
rm -rf documentation/content/pages/docs/kcl-std
|
||||
rm -rf documentation/content/pages/docs/kcl-lang
|
||||
# move new
|
||||
mv -f docs/kcl/*.md documentation/content/pages/docs/kcl/
|
||||
mv -f docs/kcl/types documentation/content/pages/docs/kcl/
|
||||
mv -f docs/kcl/settings documentation/content/pages/docs/kcl/
|
||||
mv -f docs/kcl/consts documentation/content/pages/docs/kcl/
|
||||
mv -f docs/kcl-std documentation/content/pages/docs
|
||||
mv -f docs/kcl-lang documentation/content/pages/docs
|
||||
# We don't need the README
|
||||
rm documentation/content/pages/docs/kcl-std/README.md
|
||||
- name: move kcl-samples
|
||||
shell: bash
|
||||
run: |
|
||||
|
3
.github/workflows/kcl-python-bindings.yml
vendored
3
.github/workflows/kcl-python-bindings.yml
vendored
@ -125,7 +125,8 @@ jobs:
|
||||
just setup-uv
|
||||
just test
|
||||
env:
|
||||
KITTYCAD_API_TOKEN: ${{ secrets.KITTYCAD_API_TOKEN }}
|
||||
KITTYCAD_API_TOKEN: ${{ secrets.KITTYCAD_API_TOKEN_DEV }}
|
||||
ZOO_HOST: https://api.dev.zoo.dev
|
||||
|
||||
sdist:
|
||||
runs-on: ubuntu-latest
|
||||
|
1
.gitignore
vendored
1
.gitignore
vendored
@ -85,3 +85,4 @@ venv
|
||||
|
||||
.vscode-test
|
||||
.biome/
|
||||
.million
|
||||
|
@ -97,7 +97,7 @@ The following will need to be run when checking out a new commit and guarantees
|
||||
```bash
|
||||
npm install
|
||||
npm run build:wasm
|
||||
npm start # or npm run build:local && npm run serve for slower but more production-like build
|
||||
npm start
|
||||
```
|
||||
|
||||
## Before submitting a PR
|
||||
|
20
Makefile
20
Makefile
@ -49,14 +49,9 @@ REACT_SOURCES := $(wildcard src/*.tsx) $(wildcard src/**/*.tsx)
|
||||
TYPESCRIPT_SOURCES := tsconfig.* $(wildcard src/*.ts) $(wildcard src/**/*.ts)
|
||||
VITE_SOURCES := $(wildcard vite.*) $(wildcard vite/**/*.tsx)
|
||||
|
||||
|
||||
.PHONY: build
|
||||
build: build-web build-desktop
|
||||
|
||||
.PHONY: build-web
|
||||
build-web: install public/kcl_wasm_lib_bg.wasm build/index.html
|
||||
|
||||
.PHONY: build-desktop
|
||||
build-desktop: install public/kcl_wasm_lib_bg.wasm .vite/build/main.js
|
||||
build: install public/kcl_wasm_lib_bg.wasm .vite/build/main.js
|
||||
|
||||
public/kcl_wasm_lib_bg.wasm: $(CARGO_SOURCES) $(RUST_SOURCES)
|
||||
ifdef WINDOWS
|
||||
@ -65,9 +60,6 @@ else
|
||||
npm run build:wasm:dev
|
||||
endif
|
||||
|
||||
build/index.html: $(REACT_SOURCES) $(TYPESCRIPT_SOURCES) $(VITE_SOURCES)
|
||||
npm run build:local
|
||||
|
||||
.vite/build/main.js: $(REACT_SOURCES) $(TYPESCRIPT_SOURCES) $(VITE_SOURCES)
|
||||
npm run tronb:vite:dev
|
||||
|
||||
@ -95,11 +87,11 @@ TARGET ?= desktop
|
||||
run: run-$(TARGET)
|
||||
|
||||
.PHONY: run-web
|
||||
run-web: install build-web ## Start the web app
|
||||
run-web: install build ## Start the web app
|
||||
npm run start
|
||||
|
||||
.PHONY: run-desktop
|
||||
run-desktop: install build-desktop ## Start the desktop app
|
||||
run-desktop: install build ## Start the desktop app
|
||||
npm run tron:start
|
||||
|
||||
###############################################################################
|
||||
@ -121,7 +113,7 @@ test-unit: install ## Run the unit tests
|
||||
test-e2e: test-e2e-$(TARGET)
|
||||
|
||||
.PHONY: test-e2e-web
|
||||
test-e2e-web: install build-web ## Run the web e2e tests
|
||||
test-e2e-web: install build ## Run the web e2e tests
|
||||
@ curl -fs localhost:3000 >/dev/null || ( echo "Error: localhost:3000 not available, 'make run-web' first" && exit 1 )
|
||||
ifdef E2E_GREP
|
||||
npm run chrome:test -- --headed --grep="$(E2E_GREP)" --max-failures=$(E2E_FAILURES)
|
||||
@ -130,7 +122,7 @@ else
|
||||
endif
|
||||
|
||||
.PHONY: test-e2e-desktop
|
||||
test-e2e-desktop: install build-desktop ## Run the desktop e2e tests
|
||||
test-e2e-desktop: install build ## Run the desktop e2e tests
|
||||
ifdef E2E_GREP
|
||||
npm run test:playwright:electron -- --grep="$(E2E_GREP)" --max-failures=$(E2E_FAILURES)
|
||||
else
|
||||
|
12
docs/kcl-lang/index.md
Normal file
12
docs/kcl-lang/index.md
Normal file
@ -0,0 +1,12 @@
|
||||
---
|
||||
title: "KCL Language Guide"
|
||||
excerpt: "Documentation of the KCL language for the Zoo Design Studio."
|
||||
layout: manual
|
||||
---
|
||||
|
||||
## Topics
|
||||
|
||||
* [`Types`](/docs/kcl-lang/types)
|
||||
* [`Modules`](/docs/kcl-lang/modules)
|
||||
* [`Settings`](/docs/kcl-lang/settings)
|
||||
* [`Known Issues`](/docs/kcl-lang/known-issues)
|
@ -12,7 +12,7 @@ to other modules.
|
||||
|
||||
```kcl
|
||||
// util.kcl
|
||||
export fn increment(x) {
|
||||
export fn increment(@x) {
|
||||
return x + 1
|
||||
}
|
||||
```
|
||||
@ -37,11 +37,11 @@ Multiple functions can be exported in a file.
|
||||
|
||||
```kcl
|
||||
// util.kcl
|
||||
export fn increment(x) {
|
||||
export fn increment(@x) {
|
||||
return x + 1
|
||||
}
|
||||
|
||||
export fn decrement(x) {
|
||||
export fn decrement(@x) {
|
||||
return x - 1
|
||||
}
|
||||
```
|
||||
@ -81,7 +81,7 @@ fn cube(center) {
|
||||
|> extrude(length = 10)
|
||||
}
|
||||
|
||||
myCube = cube([0, 0])
|
||||
myCube = cube(center = [0, 0])
|
||||
```
|
||||
|
||||
*Pros*
|
@ -55,20 +55,6 @@ This setting has further nested options. See the schema for full details.
|
||||
The onboarding status of the app.
|
||||
|
||||
|
||||
**Default:** None
|
||||
|
||||
##### theme_color
|
||||
|
||||
The hue of the primary theme color for the app.
|
||||
|
||||
|
||||
**Default:** None
|
||||
|
||||
##### enable_ssao
|
||||
|
||||
Whether or not Screen Space Ambient Occlusion (SSAO) is enabled.
|
||||
|
||||
|
||||
**Default:** None
|
||||
|
||||
##### dismiss_web_banner
|
||||
@ -128,13 +114,6 @@ The default unit to use in modeling dimensions.
|
||||
Highlight edges of 3D objects?
|
||||
|
||||
|
||||
**Default:** None
|
||||
|
||||
##### show_debug_panel
|
||||
|
||||
Whether to show the debug panel, which lets you see various states of the app to aid in development. Remove this when we remove backwards compatibility with the old settings file.
|
||||
|
||||
|
||||
**Default:** None
|
||||
|
||||
##### enable_ssao
|
@ -57,34 +57,6 @@ This setting has further nested options. See the schema for full details.
|
||||
The onboarding status of the app.
|
||||
|
||||
|
||||
**Default:** None
|
||||
|
||||
##### project_directory
|
||||
|
||||
Backwards compatible project directory setting.
|
||||
|
||||
|
||||
**Default:** None
|
||||
|
||||
##### theme
|
||||
|
||||
Backwards compatible theme setting.
|
||||
|
||||
|
||||
**Default:** None
|
||||
|
||||
##### theme_color
|
||||
|
||||
The hue of the primary theme color for the app.
|
||||
|
||||
|
||||
**Default:** None
|
||||
|
||||
##### enable_ssao
|
||||
|
||||
Whether or not Screen Space Ambient Occlusion (SSAO) is enabled.
|
||||
|
||||
|
||||
**Default:** None
|
||||
|
||||
##### dismiss_web_banner
|
||||
@ -103,7 +75,7 @@ When the user is idle, teardown the stream after some time.
|
||||
|
||||
##### allow_orbit_in_sketch_mode
|
||||
|
||||
When the user is idle, and this is true, the stream will be torn down.
|
||||
Allow orbiting in sketch mode.
|
||||
|
||||
|
||||
**Default:** None
|
||||
@ -159,13 +131,6 @@ The controls for how to navigate the 3D view.
|
||||
Highlight edges of 3D objects?
|
||||
|
||||
|
||||
**Default:** None
|
||||
|
||||
##### show_debug_panel
|
||||
|
||||
Whether to show the debug panel, which lets you see various states of the app to aid in development. Remove this when we remove backwards compatibility with the old settings file.
|
||||
|
||||
|
||||
**Default:** None
|
||||
|
||||
##### enable_ssao
|
@ -8,16 +8,16 @@ layout: manual
|
||||
|
||||
There are three levels of settings available in Zoo Design Studio:
|
||||
|
||||
1. [User Settings](/docs/kcl/settings/user): Global settings that apply to all projects, stored in `user.toml`
|
||||
2. [Project Settings](/docs/kcl/settings/project): Settings specific to a project, stored in `project.toml`
|
||||
1. [User Settings](/docs/kcl/settings-user): Global settings that apply to all projects, stored in `user.toml`
|
||||
2. [Project Settings](/docs/kcl/settings-project): Settings specific to a project, stored in `project.toml`
|
||||
3. Per-file Settings: Settings that apply to a single KCL file, specified using the `@settings` attribute
|
||||
|
||||
## Configuration Files
|
||||
|
||||
Zoo Design Studio uses TOML files for configuration:
|
||||
|
||||
* **User Settings**: `user.toml` - See [complete documentation](/docs/kcl/settings/user)
|
||||
* **Project Settings**: `project.toml` - See [complete documentation](/docs/kcl/settings/project)
|
||||
* **User Settings**: `user.toml` - See [complete documentation](/docs/kcl/settings-user)
|
||||
* **Project Settings**: `project.toml` - See [complete documentation](/docs/kcl/settings-project)
|
||||
|
||||
## Per-file settings
|
||||
|
||||
@ -25,7 +25,7 @@ Settings which affect a single file are configured using the settings attribute.
|
||||
This must be at the top of the KCL file (comments before the attribute are permitted).
|
||||
For example:
|
||||
|
||||
```js
|
||||
```kcl
|
||||
// The settings attribute.
|
||||
@settings(defaultLengthUnit = in)
|
||||
|
@ -9,10 +9,6 @@ layout: manual
|
||||
All these types can be nested in various forms where nesting applies. Like
|
||||
arrays can hold objects and vice versa.
|
||||
|
||||
## Boolean
|
||||
|
||||
`true` or `false` work when defining values.
|
||||
|
||||
## Constant declaration
|
||||
|
||||
Constants are defined with a name and a value, like so:
|
||||
@ -23,7 +19,7 @@ myBool = false
|
||||
|
||||
Currently you cannot redeclare a constant.
|
||||
|
||||
## Array
|
||||
## Arrays
|
||||
|
||||
An array is defined with `[]` braces. What is inside the brackets can
|
||||
be of any type. For example, the following is completely valid:
|
||||
@ -36,7 +32,7 @@ If you want to get a value from an array you can use the index like so:
|
||||
`myArray[0]`.
|
||||
|
||||
|
||||
## Object
|
||||
## Objects
|
||||
|
||||
An object is defined with `{}` braces. Here is an example object:
|
||||
|
||||
@ -47,6 +43,15 @@ myObj = { a = 0, b = "thing" }
|
||||
We support two different ways of getting properties from objects, you can call
|
||||
`myObj.a` or `myObj["a"]` both work.
|
||||
|
||||
## `ImportedGeometry`
|
||||
|
||||
Using `import` you can import geometry defined using other CAD software. In KCL,
|
||||
these objects have type `ImportedGeometry` and can mostly be treated like any
|
||||
other solid (they can be rotated, scaled, etc.), although there is no access to
|
||||
their internal components. See the [modules and imports docs](modules) for more
|
||||
detail on importing geometry.
|
||||
|
||||
|
||||
## Binary expressions
|
||||
|
||||
You can also do math! Let's show an example below:
|
||||
@ -176,7 +181,7 @@ Check the docs page for each function and look at its examples to see.
|
||||
|
||||
Tags are used to give a name (tag) to a specific path.
|
||||
|
||||
### Tag Declaration
|
||||
### `TagDeclarator`
|
||||
|
||||
The syntax for declaring a tag is `$myTag` you would use it in the following
|
||||
way:
|
||||
@ -199,14 +204,24 @@ startSketchOn(XZ)
|
||||
|> close()
|
||||
```
|
||||
|
||||
### Tag Identifier
|
||||
### `TagIdentifier`
|
||||
|
||||
As per the example above you can use the tag identifier to get a reference to the
|
||||
tagged object. The syntax for this is `myTag`.
|
||||
|
||||
In the example above we use the tag identifier to get the angle of the segment
|
||||
`segAng(rectangleSegmentA001, %)`.
|
||||
`segAng(rectangleSegmentA001)`.
|
||||
|
||||
### `Start`
|
||||
|
||||
There is a special tag, `START` (with type `Start`, although under the cover, it's a string)
|
||||
for identifying the face of a solid which was the start of an extrusion (i.e., the surface which
|
||||
is extruded).
|
||||
|
||||
### `End`
|
||||
|
||||
There is a special tag, `END` (with type `End`, although under the cover, it's a string)
|
||||
for identifying the face of a solid which was finishes an extrusion.
|
||||
|
||||
### Tag Scope
|
||||
|
||||
@ -234,8 +249,8 @@ fn rect(origin) {
|
||||
|> close()
|
||||
}
|
||||
|
||||
rect([0, 0])
|
||||
rect([20, 0])
|
||||
rect(origin = [0, 0])
|
||||
rect(origin = [20, 0])
|
||||
```
|
||||
|
||||
Those tags would only be available in the `rect` function and not globally.
|
||||
@ -264,8 +279,8 @@ fn rect(origin) {
|
||||
|> close()
|
||||
}
|
||||
|
||||
rect([0, 0])
|
||||
myRect = rect([20, 0])
|
||||
rect(origin = [0, 0])
|
||||
myRect = rect(origin = [20, 0])
|
||||
|
||||
myRect
|
||||
|> extrude(length = 10)
|
5
docs/kcl-std/README.md
Normal file
5
docs/kcl-std/README.md
Normal file
@ -0,0 +1,5 @@
|
||||
# Autogenerated docs
|
||||
|
||||
Everything in this directory and its subdirectories (except this file) is automatically generated. Do not edit anything in this directory directly, your changes will be lost.
|
||||
|
||||
The directory contents are generated by running the `test_generate_stdlib_markdown_docs` test in `/rust/kcl-lib/src/docs/gen_std_tests.rs`. Files are generated from the standard library declared in KCL (`/rust/kcl-lib/std`) and in Rust (`/rust/kcl-lib/src/std`), and by copying files from `../kcl-src`.
|
@ -10,34 +10,33 @@ Draw a line segment relative to the current origin using the polar measure of so
|
||||
|
||||
```kcl
|
||||
angledLine(
|
||||
sketch: [Sketch](/docs/kcl/types/Sketch),
|
||||
angle: [number](/docs/kcl/types/number),
|
||||
length?: [number](/docs/kcl/types/number),
|
||||
lengthX?: [number](/docs/kcl/types/number),
|
||||
lengthY?: [number](/docs/kcl/types/number),
|
||||
endAbsoluteX?: [number](/docs/kcl/types/number),
|
||||
endAbsoluteY?: [number](/docs/kcl/types/number),
|
||||
tag?: [TagDeclarator](/docs/kcl/types#tag-declaration),
|
||||
): [Sketch](/docs/kcl/types/Sketch)
|
||||
sketch: Sketch,
|
||||
angle: number,
|
||||
length?: number,
|
||||
lengthX?: number,
|
||||
lengthY?: number,
|
||||
endAbsoluteX?: number,
|
||||
endAbsoluteY?: number,
|
||||
tag?: TagDeclarator,
|
||||
): Sketch
|
||||
```
|
||||
|
||||
|
||||
### Arguments
|
||||
|
||||
| Name | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `sketch` | [`Sketch`](/docs/kcl/types/Sketch) | Which sketch should this path be added to? | Yes |
|
||||
| `angle` | [`number`](/docs/kcl/types/number) | Which angle should the line be drawn at? | Yes |
|
||||
| `length` | [`number`](/docs/kcl/types/number) | Draw the line this distance along the given angle. Only one of `length`, `lengthX`, `lengthY`, `endAbsoluteX`, `endAbsoluteY` can be given. | No |
|
||||
| `lengthX` | [`number`](/docs/kcl/types/number) | Draw the line this distance along the X axis. Only one of `length`, `lengthX`, `lengthY`, `endAbsoluteX`, `endAbsoluteY` can be given. | No |
|
||||
| `lengthY` | [`number`](/docs/kcl/types/number) | Draw the line this distance along the Y axis. Only one of `length`, `lengthX`, `lengthY`, `endAbsoluteX`, `endAbsoluteY` can be given. | No |
|
||||
| `endAbsoluteX` | [`number`](/docs/kcl/types/number) | Draw the line along the given angle until it reaches this point along the X axis. Only one of `length`, `lengthX`, `lengthY`, `endAbsoluteX`, `endAbsoluteY` can be given. | No |
|
||||
| `endAbsoluteY` | [`number`](/docs/kcl/types/number) | Draw the line along the given angle until it reaches this point along the Y axis. Only one of `length`, `lengthX`, `lengthY`, `endAbsoluteX`, `endAbsoluteY` can be given. | No |
|
||||
| `tag` | [`TagDeclarator`](/docs/kcl/types#tag-declaration) | Create a new tag which refers to this line | No |
|
||||
| `sketch` | [`Sketch`](/docs/kcl-std/types/std-types-Sketch) | Which sketch should this path be added to? | Yes |
|
||||
| `angle` | [`number`](/docs/kcl-std/types/std-types-number) | Which angle should the line be drawn at? | Yes |
|
||||
| `length` | [`number`](/docs/kcl-std/types/std-types-number) | Draw the line this distance along the given angle. Only one of `length`, `lengthX`, `lengthY`, `endAbsoluteX`, `endAbsoluteY` can be given. | No |
|
||||
| `lengthX` | [`number`](/docs/kcl-std/types/std-types-number) | Draw the line this distance along the X axis. Only one of `length`, `lengthX`, `lengthY`, `endAbsoluteX`, `endAbsoluteY` can be given. | No |
|
||||
| `lengthY` | [`number`](/docs/kcl-std/types/std-types-number) | Draw the line this distance along the Y axis. Only one of `length`, `lengthX`, `lengthY`, `endAbsoluteX`, `endAbsoluteY` can be given. | No |
|
||||
| `endAbsoluteX` | [`number`](/docs/kcl-std/types/std-types-number) | Draw the line along the given angle until it reaches this point along the X axis. Only one of `length`, `lengthX`, `lengthY`, `endAbsoluteX`, `endAbsoluteY` can be given. | No |
|
||||
| `endAbsoluteY` | [`number`](/docs/kcl-std/types/std-types-number) | Draw the line along the given angle until it reaches this point along the Y axis. Only one of `length`, `lengthX`, `lengthY`, `endAbsoluteX`, `endAbsoluteY` can be given. | No |
|
||||
| [`tag`](/docs/kcl-std/types/std-types-tag) | [`TagDeclarator`](/docs/kcl-lang/types#TagDeclarator) | Create a new tag which refers to this line | No |
|
||||
|
||||
### Returns
|
||||
|
||||
[`Sketch`](/docs/kcl/types/Sketch)
|
||||
[`Sketch`](/docs/kcl-std/types/std-types-Sketch)
|
||||
|
||||
|
||||
### Examples
|
@ -10,28 +10,27 @@ Draw an angled line from the current origin, constructing a line segment such th
|
||||
|
||||
```kcl
|
||||
angledLineThatIntersects(
|
||||
sketch: [Sketch](/docs/kcl/types/Sketch),
|
||||
angle: [number](/docs/kcl/types/number),
|
||||
intersectTag: [TagIdentifier](/docs/kcl/types#tag-identifier),
|
||||
offset?: [number](/docs/kcl/types/number),
|
||||
tag?: [TagDeclarator](/docs/kcl/types#tag-declaration),
|
||||
): [Sketch](/docs/kcl/types/Sketch)
|
||||
sketch: Sketch,
|
||||
angle: number,
|
||||
intersectTag: TagIdentifier,
|
||||
offset?: number,
|
||||
tag?: TagDeclarator,
|
||||
): Sketch
|
||||
```
|
||||
|
||||
|
||||
### Arguments
|
||||
|
||||
| Name | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `sketch` | [`Sketch`](/docs/kcl/types/Sketch) | Which sketch should this path be added to? | Yes |
|
||||
| `angle` | [`number`](/docs/kcl/types/number) | Which angle should the line be drawn at? | Yes |
|
||||
| `intersectTag` | [`TagIdentifier`](/docs/kcl/types#tag-identifier) | The tag of the line to intersect with | Yes |
|
||||
| `offset` | [`number`](/docs/kcl/types/number) | The offset from the intersecting line. Defaults to 0. | No |
|
||||
| `tag` | [`TagDeclarator`](/docs/kcl/types#tag-declaration) | Create a new tag which refers to this line | No |
|
||||
| `sketch` | [`Sketch`](/docs/kcl-std/types/std-types-Sketch) | Which sketch should this path be added to? | Yes |
|
||||
| `angle` | [`number`](/docs/kcl-std/types/std-types-number) | Which angle should the line be drawn at? | Yes |
|
||||
| `intersectTag` | [`TagIdentifier`](/docs/kcl-lang/types#TagIdentifier) | The tag of the line to intersect with | Yes |
|
||||
| `offset` | [`number`](/docs/kcl-std/types/std-types-number) | The offset from the intersecting line. Defaults to 0. | No |
|
||||
| [`tag`](/docs/kcl-std/types/std-types-tag) | [`TagDeclarator`](/docs/kcl-lang/types#TagDeclarator) | Create a new tag which refers to this line | No |
|
||||
|
||||
### Returns
|
||||
|
||||
[`Sketch`](/docs/kcl/types/Sketch)
|
||||
[`Sketch`](/docs/kcl-std/types/std-types-Sketch)
|
||||
|
||||
|
||||
### Examples
|
@ -10,26 +10,25 @@ This will work on any solid, including extruded solids, revolved solids, and she
|
||||
|
||||
```kcl
|
||||
appearance(
|
||||
solids: [[Solid](/docs/kcl/types/Solid)OrImportedGeometry](/docs/kcl/types/[Solid](/docs/kcl/types/Solid)OrImportedGeometry),
|
||||
color: String,
|
||||
metalness?: [number](/docs/kcl/types/number),
|
||||
roughness?: [number](/docs/kcl/types/number),
|
||||
): [[Solid](/docs/kcl/types/Solid)OrImportedGeometry](/docs/kcl/types/[Solid](/docs/kcl/types/Solid)OrImportedGeometry)
|
||||
solids: [Solid] | ImportedGeometry,
|
||||
color: string,
|
||||
metalness?: number,
|
||||
roughness?: number,
|
||||
): [Solid] | ImportedGeometry
|
||||
```
|
||||
|
||||
|
||||
### Arguments
|
||||
|
||||
| Name | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `solids` | [`SolidOrImportedGeometry`](/docs/kcl/types/SolidOrImportedGeometry) | The solid(s) whose appearance is being set | Yes |
|
||||
| `color` | `String` | Color of the new material, a hex string like '#ff0000' | Yes |
|
||||
| `metalness` | [`number`](/docs/kcl/types/number) | Metalness of the new material, a percentage like 95.7. | No |
|
||||
| `roughness` | [`number`](/docs/kcl/types/number) | Roughness of the new material, a percentage like 95.7. | No |
|
||||
| `solids` | [`[Solid]`](/docs/kcl-std/types/std-types-Solid) or [`ImportedGeometry`](/docs/kcl-lang/types#ImportedGeometry) | The solid(s) whose appearance is being set | Yes |
|
||||
| `color` | [`string`](/docs/kcl-std/types/std-types-string) | Color of the new material, a hex string like '#ff0000' | Yes |
|
||||
| `metalness` | [`number`](/docs/kcl-std/types/std-types-number) | Metalness of the new material, a percentage like 95.7. | No |
|
||||
| `roughness` | [`number`](/docs/kcl-std/types/std-types-number) | Roughness of the new material, a percentage like 95.7. | No |
|
||||
|
||||
### Returns
|
||||
|
||||
[`SolidOrImportedGeometry`](/docs/kcl/types/SolidOrImportedGeometry) - Data for a solid or an imported geometry.
|
||||
[`[Solid]`](/docs/kcl-std/types/std-types-Solid) or [`ImportedGeometry`](/docs/kcl-lang/types#ImportedGeometry) - Data for a solid or an imported geometry.
|
||||
|
||||
|
||||
### Examples
|
||||
@ -72,9 +71,9 @@ fn cube(center) {
|
||||
|> extrude(length = 10)
|
||||
}
|
||||
|
||||
example0 = cube([0, 0])
|
||||
example1 = cube([20, 0])
|
||||
example2 = cube([40, 0])
|
||||
example0 = cube(center = [0, 0])
|
||||
example1 = cube(center = [20, 0])
|
||||
example2 = cube(center = [40, 0])
|
||||
|
||||
appearance(
|
||||
[example0, example1],
|
@ -12,32 +12,31 @@ Unless this makes a lot of sense and feels like what you're looking for to const
|
||||
|
||||
```kcl
|
||||
arc(
|
||||
sketch: [Sketch](/docs/kcl/types/Sketch),
|
||||
angleStart?: [number](/docs/kcl/types/number),
|
||||
angleEnd?: [number](/docs/kcl/types/number),
|
||||
radius?: [number](/docs/kcl/types/number),
|
||||
interiorAbsolute?: [[[number](/docs/kcl/types/number)]](/docs/kcl/types/[number](/docs/kcl/types/number)),
|
||||
endAbsolute?: [[[number](/docs/kcl/types/number)]](/docs/kcl/types/[number](/docs/kcl/types/number)),
|
||||
tag?: [TagDeclarator](/docs/kcl/types#tag-declaration),
|
||||
): [Sketch](/docs/kcl/types/Sketch)
|
||||
sketch: Sketch,
|
||||
angleStart?: number,
|
||||
angleEnd?: number,
|
||||
radius?: number,
|
||||
interiorAbsolute?: Point2d,
|
||||
endAbsolute?: Point2d,
|
||||
tag?: TagDeclarator,
|
||||
): Sketch
|
||||
```
|
||||
|
||||
|
||||
### Arguments
|
||||
|
||||
| Name | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `sketch` | [`Sketch`](/docs/kcl/types/Sketch) | Which sketch should this path be added to? | Yes |
|
||||
| `angleStart` | [`number`](/docs/kcl/types/number) | Where along the circle should this arc start? | No |
|
||||
| `angleEnd` | [`number`](/docs/kcl/types/number) | Where along the circle should this arc end? | No |
|
||||
| `radius` | [`number`](/docs/kcl/types/number) | How large should the circle be? | No |
|
||||
| `interiorAbsolute` | [`[number]`](/docs/kcl/types/number) | Any point between the arc's start and end? Requires `endAbsolute`. Incompatible with `angleStart` or `angleEnd` | No |
|
||||
| `endAbsolute` | [`[number]`](/docs/kcl/types/number) | Where should this arc end? Requires `interiorAbsolute`. Incompatible with `angleStart` or `angleEnd` | No |
|
||||
| `tag` | [`TagDeclarator`](/docs/kcl/types#tag-declaration) | Create a new tag which refers to this line | No |
|
||||
| `sketch` | [`Sketch`](/docs/kcl-std/types/std-types-Sketch) | Which sketch should this path be added to? | Yes |
|
||||
| `angleStart` | [`number`](/docs/kcl-std/types/std-types-number) | Where along the circle should this arc start? | No |
|
||||
| `angleEnd` | [`number`](/docs/kcl-std/types/std-types-number) | Where along the circle should this arc end? | No |
|
||||
| `radius` | [`number`](/docs/kcl-std/types/std-types-number) | How large should the circle be? | No |
|
||||
| `interiorAbsolute` | [`Point2d`](/docs/kcl-std/types/std-types-Point2d) | Any point between the arc's start and end? Requires `endAbsolute`. Incompatible with `angleStart` or `angleEnd` | No |
|
||||
| `endAbsolute` | [`Point2d`](/docs/kcl-std/types/std-types-Point2d) | Where should this arc end? Requires `interiorAbsolute`. Incompatible with `angleStart` or `angleEnd` | No |
|
||||
| [`tag`](/docs/kcl-std/types/std-types-tag) | [`TagDeclarator`](/docs/kcl-lang/types#TagDeclarator) | Create a new tag which refers to this line | No |
|
||||
|
||||
### Returns
|
||||
|
||||
[`Sketch`](/docs/kcl/types/Sketch)
|
||||
[`Sketch`](/docs/kcl-std/types/std-types-Sketch)
|
||||
|
||||
|
||||
### Examples
|
@ -10,30 +10,29 @@ Check a value meets some expected conditions at runtime. Program terminates with
|
||||
|
||||
```kcl
|
||||
assert(
|
||||
actual: [number](/docs/kcl/types/number),
|
||||
isGreaterThan?: [number](/docs/kcl/types/number),
|
||||
isLessThan?: [number](/docs/kcl/types/number),
|
||||
isGreaterThanOrEqual?: [number](/docs/kcl/types/number),
|
||||
isLessThanOrEqual?: [number](/docs/kcl/types/number),
|
||||
isEqualTo?: [number](/docs/kcl/types/number),
|
||||
tolerance?: [number](/docs/kcl/types/number),
|
||||
error?: String,
|
||||
actual: number,
|
||||
isGreaterThan?: number,
|
||||
isLessThan?: number,
|
||||
isGreaterThanOrEqual?: number,
|
||||
isLessThanOrEqual?: number,
|
||||
isEqualTo?: number,
|
||||
tolerance?: number,
|
||||
error?: string,
|
||||
): ()
|
||||
```
|
||||
|
||||
|
||||
### Arguments
|
||||
|
||||
| Name | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `actual` | [`number`](/docs/kcl/types/number) | Value to check. It will be compared with one of the comparison arguments. | Yes |
|
||||
| `isGreaterThan` | [`number`](/docs/kcl/types/number) | Comparison argument. If given, checks the `actual` value is greater than this. | No |
|
||||
| `isLessThan` | [`number`](/docs/kcl/types/number) | Comparison argument. If given, checks the `actual` value is less than this. | No |
|
||||
| `isGreaterThanOrEqual` | [`number`](/docs/kcl/types/number) | Comparison argument. If given, checks the `actual` value is greater than or equal to this. | No |
|
||||
| `isLessThanOrEqual` | [`number`](/docs/kcl/types/number) | Comparison argument. If given, checks the `actual` value is less than or equal to this. | No |
|
||||
| `isEqualTo` | [`number`](/docs/kcl/types/number) | Comparison argument. If given, checks the `actual` value is less than or equal to this. | No |
|
||||
| `tolerance` | [`number`](/docs/kcl/types/number) | If `isEqualTo` is used, this is the tolerance to allow for the comparison. This tolerance is used because KCL's number system has some floating-point imprecision when used with very large decimal places. | No |
|
||||
| `error` | `String` | If the value was false, the program will terminate with this error message | No |
|
||||
| `actual` | [`number`](/docs/kcl-std/types/std-types-number) | Value to check. It will be compared with one of the comparison arguments. | Yes |
|
||||
| `isGreaterThan` | [`number`](/docs/kcl-std/types/std-types-number) | Comparison argument. If given, checks the `actual` value is greater than this. | No |
|
||||
| `isLessThan` | [`number`](/docs/kcl-std/types/std-types-number) | Comparison argument. If given, checks the `actual` value is less than this. | No |
|
||||
| `isGreaterThanOrEqual` | [`number`](/docs/kcl-std/types/std-types-number) | Comparison argument. If given, checks the `actual` value is greater than or equal to this. | No |
|
||||
| `isLessThanOrEqual` | [`number`](/docs/kcl-std/types/std-types-number) | Comparison argument. If given, checks the `actual` value is less than or equal to this. | No |
|
||||
| `isEqualTo` | [`number`](/docs/kcl-std/types/std-types-number) | Comparison argument. If given, checks the `actual` value is less than or equal to this. | No |
|
||||
| `tolerance` | [`number`](/docs/kcl-std/types/std-types-number) | If `isEqualTo` is used, this is the tolerance to allow for the comparison. This tolerance is used because KCL's number system has some floating-point imprecision when used with very large decimal places. | No |
|
||||
| `error` | [`string`](/docs/kcl-std/types/std-types-string) | If the value was false, the program will terminate with this error message | No |
|
||||
|
||||
### Returns
|
||||
|
@ -10,18 +10,17 @@ Asserts that a value is the boolean value true.
|
||||
|
||||
```kcl
|
||||
assertIs(
|
||||
actual: [bool](/docs/kcl/types/bool),
|
||||
error?: String,
|
||||
actual: bool,
|
||||
error?: string,
|
||||
): ()
|
||||
```
|
||||
|
||||
|
||||
### Arguments
|
||||
|
||||
| Name | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `actual` | [`bool`](/docs/kcl/types/bool) | Value to check. If this is the boolean value true, assert passes. Otherwise it fails. | Yes |
|
||||
| `error` | `String` | If the value was false, the program will terminate with this error message | No |
|
||||
| `actual` | [`bool`](/docs/kcl-std/types/std-types-bool) | Value to check. If this is the boolean value true, assert passes. Otherwise it fails. | Yes |
|
||||
| `error` | [`string`](/docs/kcl-std/types/std-types-string) | If the value was false, the program will terminate with this error message | No |
|
||||
|
||||
### Returns
|
||||
|
@ -10,28 +10,27 @@ Draw a smooth, continuous, curved line segment from the current origin to the de
|
||||
|
||||
```kcl
|
||||
bezierCurve(
|
||||
sketch: [Sketch](/docs/kcl/types/Sketch),
|
||||
control1: [[[number](/docs/kcl/types/number)]](/docs/kcl/types/[number](/docs/kcl/types/number)),
|
||||
control2: [[[number](/docs/kcl/types/number)]](/docs/kcl/types/[number](/docs/kcl/types/number)),
|
||||
end: [[[number](/docs/kcl/types/number)]](/docs/kcl/types/[number](/docs/kcl/types/number)),
|
||||
tag?: [TagDeclarator](/docs/kcl/types#tag-declaration),
|
||||
): [Sketch](/docs/kcl/types/Sketch)
|
||||
sketch: Sketch,
|
||||
control1: Point2d,
|
||||
control2: Point2d,
|
||||
end: Point2d,
|
||||
tag?: TagDeclarator,
|
||||
): Sketch
|
||||
```
|
||||
|
||||
|
||||
### Arguments
|
||||
|
||||
| Name | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `sketch` | [`Sketch`](/docs/kcl/types/Sketch) | Which sketch should this path be added to? | Yes |
|
||||
| `control1` | [`[number]`](/docs/kcl/types/number) | First control point for the cubic | Yes |
|
||||
| `control2` | [`[number]`](/docs/kcl/types/number) | Second control point for the cubic | Yes |
|
||||
| `end` | [`[number]`](/docs/kcl/types/number) | How far away (along the X and Y axes) should this line go? | Yes |
|
||||
| `tag` | [`TagDeclarator`](/docs/kcl/types#tag-declaration) | Create a new tag which refers to this line | No |
|
||||
| `sketch` | [`Sketch`](/docs/kcl-std/types/std-types-Sketch) | Which sketch should this path be added to? | Yes |
|
||||
| `control1` | [`Point2d`](/docs/kcl-std/types/std-types-Point2d) | First control point for the cubic | Yes |
|
||||
| `control2` | [`Point2d`](/docs/kcl-std/types/std-types-Point2d) | Second control point for the cubic | Yes |
|
||||
| `end` | [`Point2d`](/docs/kcl-std/types/std-types-Point2d) | How far away (along the X and Y axes) should this line go? | Yes |
|
||||
| [`tag`](/docs/kcl-std/types/std-types-tag) | [`TagDeclarator`](/docs/kcl-lang/types#TagDeclarator) | Create a new tag which refers to this line | No |
|
||||
|
||||
### Returns
|
||||
|
||||
[`Sketch`](/docs/kcl/types/Sketch)
|
||||
[`Sketch`](/docs/kcl-std/types/std-types-Sketch)
|
||||
|
||||
|
||||
### Examples
|
@ -10,28 +10,27 @@ Construct a circle derived from 3 points.
|
||||
|
||||
```kcl
|
||||
circleThreePoint(
|
||||
sketchSurfaceOrGroup: [[Sketch](/docs/kcl/types/Sketch)OrSurface](/docs/kcl/types/[Sketch](/docs/kcl/types/Sketch)OrSurface),
|
||||
p1: [[[number](/docs/kcl/types/number)]](/docs/kcl/types/[number](/docs/kcl/types/number)),
|
||||
p2: [[[number](/docs/kcl/types/number)]](/docs/kcl/types/[number](/docs/kcl/types/number)),
|
||||
p3: [[[number](/docs/kcl/types/number)]](/docs/kcl/types/[number](/docs/kcl/types/number)),
|
||||
tag?: [TagDeclarator](/docs/kcl/types#tag-declaration),
|
||||
): [Sketch](/docs/kcl/types/Sketch)
|
||||
sketchSurfaceOrGroup: Sketch | Plane | Face,
|
||||
p1: Point2d,
|
||||
p2: Point2d,
|
||||
p3: Point2d,
|
||||
tag?: TagDeclarator,
|
||||
): Sketch
|
||||
```
|
||||
|
||||
|
||||
### Arguments
|
||||
|
||||
| Name | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `sketchSurfaceOrGroup` | [`SketchOrSurface`](/docs/kcl/types/SketchOrSurface) | Plane or surface to sketch on. | Yes |
|
||||
| `p1` | [`[number]`](/docs/kcl/types/number) | 1st point to derive the circle. | Yes |
|
||||
| `p2` | [`[number]`](/docs/kcl/types/number) | 2nd point to derive the circle. | Yes |
|
||||
| `p3` | [`[number]`](/docs/kcl/types/number) | 3rd point to derive the circle. | Yes |
|
||||
| `tag` | [`TagDeclarator`](/docs/kcl/types#tag-declaration) | Identifier for the circle to reference elsewhere. | No |
|
||||
| `sketchSurfaceOrGroup` | [`Sketch`](/docs/kcl-std/types/std-types-Sketch) or [`Plane`](/docs/kcl-std/types/std-types-Plane) or [`Face`](/docs/kcl-std/types/std-types-Face) | Plane or surface to sketch on. | Yes |
|
||||
| `p1` | [`Point2d`](/docs/kcl-std/types/std-types-Point2d) | 1st point to derive the circle. | Yes |
|
||||
| `p2` | [`Point2d`](/docs/kcl-std/types/std-types-Point2d) | 2nd point to derive the circle. | Yes |
|
||||
| `p3` | [`Point2d`](/docs/kcl-std/types/std-types-Point2d) | 3rd point to derive the circle. | Yes |
|
||||
| [`tag`](/docs/kcl-std/types/std-types-tag) | [`TagDeclarator`](/docs/kcl-lang/types#TagDeclarator) | Identifier for the circle to reference elsewhere. | No |
|
||||
|
||||
### Returns
|
||||
|
||||
[`Sketch`](/docs/kcl/types/Sketch)
|
||||
[`Sketch`](/docs/kcl-std/types/std-types-Sketch)
|
||||
|
||||
|
||||
### Examples
|
@ -13,19 +13,18 @@ This doesn't really have much utility unless you need the equivalent of a double
|
||||
Really only use this function if YOU ARE SURE you need it. In most cases you do not need clone and using a pattern with `instance = 2` is more appropriate.
|
||||
|
||||
```kcl
|
||||
clone(geometry: [GeometryWithImportedGeometry](/docs/kcl/types/GeometryWithImportedGeometry)): [GeometryWithImportedGeometry](/docs/kcl/types/GeometryWithImportedGeometry)
|
||||
clone(geometry: Solid | Sketch | ImportedGeometry): Solid | Sketch | ImportedGeometry
|
||||
```
|
||||
|
||||
|
||||
### Arguments
|
||||
|
||||
| Name | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `geometry` | [`GeometryWithImportedGeometry`](/docs/kcl/types/GeometryWithImportedGeometry) | The sketch, solid, or imported geometry to be cloned | Yes |
|
||||
| `geometry` | [`Solid`](/docs/kcl-std/types/std-types-Solid) or [`Sketch`](/docs/kcl-std/types/std-types-Sketch) or [`ImportedGeometry`](/docs/kcl-lang/types#ImportedGeometry) | The sketch, solid, or imported geometry to be cloned | Yes |
|
||||
|
||||
### Returns
|
||||
|
||||
[`GeometryWithImportedGeometry`](/docs/kcl/types/GeometryWithImportedGeometry) - A geometry including an imported geometry.
|
||||
[`Solid`](/docs/kcl-std/types/std-types-Solid) or [`Sketch`](/docs/kcl-std/types/std-types-Sketch) or [`ImportedGeometry`](/docs/kcl-lang/types#ImportedGeometry) - A geometry including an imported geometry.
|
||||
|
||||
|
||||
### Examples
|
@ -10,22 +10,21 @@ Construct a line segment from the current origin back to the profile's origin, e
|
||||
|
||||
```kcl
|
||||
close(
|
||||
sketch: [Sketch](/docs/kcl/types/Sketch),
|
||||
tag?: [TagDeclarator](/docs/kcl/types#tag-declaration),
|
||||
): [Sketch](/docs/kcl/types/Sketch)
|
||||
sketch: Sketch,
|
||||
tag?: TagDeclarator,
|
||||
): Sketch
|
||||
```
|
||||
|
||||
|
||||
### Arguments
|
||||
|
||||
| Name | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `sketch` | [`Sketch`](/docs/kcl/types/Sketch) | The sketch you want to close | Yes |
|
||||
| `tag` | [`TagDeclarator`](/docs/kcl/types#tag-declaration) | Create a new tag which refers to this line | No |
|
||||
| `sketch` | [`Sketch`](/docs/kcl-std/types/std-types-Sketch) | The sketch you want to close | Yes |
|
||||
| [`tag`](/docs/kcl-std/types/std-types-tag) | [`TagDeclarator`](/docs/kcl-lang/types#TagDeclarator) | Create a new tag which refers to this line | No |
|
||||
|
||||
### Returns
|
||||
|
||||
[`Sketch`](/docs/kcl/types/Sketch)
|
||||
[`Sketch`](/docs/kcl-std/types/std-types-Sketch)
|
||||
|
||||
|
||||
### Examples
|
@ -10,30 +10,29 @@ You can provide more than one sketch to extrude, and they will all be extruded i
|
||||
|
||||
```kcl
|
||||
extrude(
|
||||
sketches: [[[Sketch](/docs/kcl/types/Sketch)]](/docs/kcl/types/[Sketch](/docs/kcl/types/Sketch)),
|
||||
length: [number](/docs/kcl/types/number),
|
||||
symmetric?: [bool](/docs/kcl/types/bool),
|
||||
bidirectionalLength?: [number](/docs/kcl/types/number),
|
||||
tagStart?: [TagDeclarator](/docs/kcl/types#tag-declaration),
|
||||
tagEnd?: [TagDeclarator](/docs/kcl/types#tag-declaration),
|
||||
): [[[Solid](/docs/kcl/types/Solid)]](/docs/kcl/types/[Solid](/docs/kcl/types/Solid))
|
||||
sketches: [Sketch],
|
||||
length: number,
|
||||
symmetric?: bool,
|
||||
bidirectionalLength?: number,
|
||||
tagStart?: TagDeclarator,
|
||||
tagEnd?: TagDeclarator,
|
||||
): [Solid]
|
||||
```
|
||||
|
||||
|
||||
### Arguments
|
||||
|
||||
| Name | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `sketches` | [`[Sketch]`](/docs/kcl/types/Sketch) | Which sketch or sketches should be extruded | Yes |
|
||||
| `length` | [`number`](/docs/kcl/types/number) | How far to extrude the given sketches | Yes |
|
||||
| `symmetric` | [`bool`](/docs/kcl/types/bool) | If true, the extrusion will happen symmetrically around the sketch. Otherwise, the | No |
|
||||
| `bidirectionalLength` | [`number`](/docs/kcl/types/number) | If specified, will also extrude in the opposite direction to 'distance' to the specified distance. If 'symmetric' is true, this value is ignored. | No |
|
||||
| `tagStart` | [`TagDeclarator`](/docs/kcl/types#tag-declaration) | A named tag for the face at the start of the extrusion, i.e. the original sketch | No |
|
||||
| `tagEnd` | [`TagDeclarator`](/docs/kcl/types#tag-declaration) | A named tag for the face at the end of the extrusion, i.e. the new face created by extruding the original sketch | No |
|
||||
| `sketches` | [`[Sketch]`](/docs/kcl-std/types/std-types-Sketch) | Which sketch or sketches should be extruded | Yes |
|
||||
| `length` | [`number`](/docs/kcl-std/types/std-types-number) | How far to extrude the given sketches | Yes |
|
||||
| `symmetric` | [`bool`](/docs/kcl-std/types/std-types-bool) | If true, the extrusion will happen symmetrically around the sketch. Otherwise, the | No |
|
||||
| `bidirectionalLength` | [`number`](/docs/kcl-std/types/std-types-number) | If specified, will also extrude in the opposite direction to 'distance' to the specified distance. If 'symmetric' is true, this value is ignored. | No |
|
||||
| `tagStart` | [`TagDeclarator`](/docs/kcl-lang/types#TagDeclarator) | A named tag for the face at the start of the extrusion, i.e. the original sketch | No |
|
||||
| `tagEnd` | [`TagDeclarator`](/docs/kcl-lang/types#TagDeclarator) | A named tag for the face at the end of the extrusion, i.e. the new face created by extruding the original sketch | No |
|
||||
|
||||
### Returns
|
||||
|
||||
[`[Solid]`](/docs/kcl/types/Solid)
|
||||
[`[Solid]`](/docs/kcl-std/types/std-types-Solid)
|
||||
|
||||
|
||||
### Examples
|
@ -10,32 +10,31 @@ Create a helix.
|
||||
|
||||
```kcl
|
||||
helix(
|
||||
revolutions: [number](/docs/kcl/types/number)(_),
|
||||
angleStart: [number](/docs/kcl/types/number)(Angle),
|
||||
ccw?: [bool](/docs/kcl/types/bool),
|
||||
radius?: [number](/docs/kcl/types/number)(Length),
|
||||
axis?: [Axis3d](/docs/kcl/types/Axis3d) | [Edge](/docs/kcl/types/Edge),
|
||||
length?: [number](/docs/kcl/types/number)(Length),
|
||||
cylinder?: [Solid](/docs/kcl/types/Solid),
|
||||
): [Helix](/docs/kcl/types/Helix)
|
||||
revolutions: number(_),
|
||||
angleStart: number(Angle),
|
||||
ccw?: bool,
|
||||
radius?: number(Length),
|
||||
axis?: Axis3d | Edge,
|
||||
length?: number(Length),
|
||||
cylinder?: Solid,
|
||||
): Helix
|
||||
```
|
||||
|
||||
|
||||
### Arguments
|
||||
|
||||
| Name | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `revolutions` | `number(_)` | Number of revolutions. | Yes |
|
||||
| `angleStart` | `number(Angle)` | Start angle. | Yes |
|
||||
| `ccw` | [`bool`](/docs/kcl/types/bool) | Is the helix rotation counter clockwise? The default is `false`. | No |
|
||||
| `ccw` | [`bool`](/docs/kcl-std/types/std-types-bool) | Is the helix rotation counter clockwise? The default is `false`. | No |
|
||||
| `radius` | `number(Length)` | Radius of the helix. | No |
|
||||
| `axis` | [`Axis3d`](/docs/kcl/types/Axis3d) or [`Edge`](/docs/kcl/types/Edge) | Axis to use for the helix. | No |
|
||||
| `axis` | [`Axis3d`](/docs/kcl-std/types/std-types-Axis3d) or [`Edge`](/docs/kcl-std/types/std-types-Edge) | Axis to use for the helix. | No |
|
||||
| `length` | `number(Length)` | Length of the helix. This is not necessary if the helix is created around an edge. If not given the length of the edge is used. | No |
|
||||
| `cylinder` | [`Solid`](/docs/kcl/types/Solid) | Cylinder to create the helix on. | No |
|
||||
| `cylinder` | [`Solid`](/docs/kcl-std/types/std-types-Solid) | Cylinder to create the helix on. | No |
|
||||
|
||||
### Returns
|
||||
|
||||
[`Helix`](/docs/kcl/types/Helix)
|
||||
[`Helix`](/docs/kcl-std/types/std-types-Helix)
|
||||
|
||||
|
||||
### Examples
|
@ -9,19 +9,18 @@ Compute the absolute value of a number.
|
||||
|
||||
|
||||
```kcl
|
||||
abs(@input: [number](/docs/kcl/types/number)): [number](/docs/kcl/types/number)
|
||||
abs(@input: number): number
|
||||
```
|
||||
|
||||
|
||||
### Arguments
|
||||
|
||||
| Name | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `input` | [`number`](/docs/kcl/types/number) | | Yes |
|
||||
| `input` | [`number`](/docs/kcl-std/types/std-types-number) | | Yes |
|
||||
|
||||
### Returns
|
||||
|
||||
[`number`](/docs/kcl/types/number)
|
||||
[`number`](/docs/kcl-std/types/std-types-number)
|
||||
|
||||
|
||||
### Examples
|
@ -9,10 +9,9 @@ Compute the arccosine of a number.
|
||||
|
||||
|
||||
```kcl
|
||||
acos(@num: [number](/docs/kcl/types/number)(_)): [number](/docs/kcl/types/number)(rad)
|
||||
acos(@num: number(_)): number(rad)
|
||||
```
|
||||
|
||||
|
||||
### Arguments
|
||||
|
||||
| Name | Type | Description | Required |
|
@ -9,10 +9,9 @@ Compute the arcsine of a number.
|
||||
|
||||
|
||||
```kcl
|
||||
asin(@num: [number](/docs/kcl/types/number)(_)): [number](/docs/kcl/types/number)(rad)
|
||||
asin(@num: number(_)): number(rad)
|
||||
```
|
||||
|
||||
|
||||
### Arguments
|
||||
|
||||
| Name | Type | Description | Required |
|
@ -9,10 +9,9 @@ Compute the arctangent of a number.
|
||||
Consider using `atan2()` instead for the true inverse of tangent.
|
||||
|
||||
```kcl
|
||||
atan(@num: [number](/docs/kcl/types/number)(_)): [number](/docs/kcl/types/number)(rad)
|
||||
atan(@num: number(_)): number(rad)
|
||||
```
|
||||
|
||||
|
||||
### Arguments
|
||||
|
||||
| Name | Type | Description | Required |
|
@ -10,12 +10,11 @@ Compute the four quadrant arctangent of Y and X.
|
||||
|
||||
```kcl
|
||||
atan2(
|
||||
y: [number](/docs/kcl/types/number)(Length),
|
||||
x: [number](/docs/kcl/types/number)(Length),
|
||||
): [number](/docs/kcl/types/number)(rad)
|
||||
y: number(Length),
|
||||
x: number(Length),
|
||||
): number(rad)
|
||||
```
|
||||
|
||||
|
||||
### Arguments
|
||||
|
||||
| Name | Type | Description | Required |
|
@ -9,19 +9,18 @@ Compute the smallest integer greater than or equal to a number.
|
||||
|
||||
|
||||
```kcl
|
||||
ceil(@input: [number](/docs/kcl/types/number)): [number](/docs/kcl/types/number)
|
||||
ceil(@input: number): number
|
||||
```
|
||||
|
||||
|
||||
### Arguments
|
||||
|
||||
| Name | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `input` | [`number`](/docs/kcl/types/number) | | Yes |
|
||||
| `input` | [`number`](/docs/kcl-std/types/std-types-number) | | Yes |
|
||||
|
||||
### Returns
|
||||
|
||||
[`number`](/docs/kcl/types/number)
|
||||
[`number`](/docs/kcl-std/types/std-types-number)
|
||||
|
||||
|
||||
### Examples
|
@ -9,10 +9,9 @@ Compute the cosine of a number.
|
||||
|
||||
|
||||
```kcl
|
||||
cos(@num: [number](/docs/kcl/types/number)(Angle)): [number](/docs/kcl/types/number)(_)
|
||||
cos(@num: number(Angle)): number(_)
|
||||
```
|
||||
|
||||
|
||||
### Arguments
|
||||
|
||||
| Name | Type | Description | Required |
|
@ -9,19 +9,18 @@ Compute the largest integer less than or equal to a number.
|
||||
|
||||
|
||||
```kcl
|
||||
floor(@input: [number](/docs/kcl/types/number)): [number](/docs/kcl/types/number)
|
||||
floor(@input: number): number
|
||||
```
|
||||
|
||||
|
||||
### Arguments
|
||||
|
||||
| Name | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `input` | [`number`](/docs/kcl/types/number) | | Yes |
|
||||
| `input` | [`number`](/docs/kcl-std/types/std-types-number) | | Yes |
|
||||
|
||||
### Returns
|
||||
|
||||
[`number`](/docs/kcl/types/number)
|
||||
[`number`](/docs/kcl-std/types/std-types-number)
|
||||
|
||||
|
||||
### Examples
|
@ -9,19 +9,18 @@ Compute the natural logarithm of the number.
|
||||
|
||||
|
||||
```kcl
|
||||
ln(@input: [number](/docs/kcl/types/number)): [number](/docs/kcl/types/number)
|
||||
ln(@input: number): number
|
||||
```
|
||||
|
||||
|
||||
### Arguments
|
||||
|
||||
| Name | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `input` | [`number`](/docs/kcl/types/number) | | Yes |
|
||||
| `input` | [`number`](/docs/kcl-std/types/std-types-number) | | Yes |
|
||||
|
||||
### Returns
|
||||
|
||||
[`number`](/docs/kcl/types/number)
|
||||
[`number`](/docs/kcl-std/types/std-types-number)
|
||||
|
||||
|
||||
### Examples
|
@ -12,22 +12,21 @@ and `log10` can produce more accurate results for base 10.
|
||||
|
||||
```kcl
|
||||
log(
|
||||
@input: [number](/docs/kcl/types/number),
|
||||
base: [number](/docs/kcl/types/number)(_),
|
||||
): [number](/docs/kcl/types/number)
|
||||
@input: number,
|
||||
base: number(_),
|
||||
): number
|
||||
```
|
||||
|
||||
|
||||
### Arguments
|
||||
|
||||
| Name | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `input` | [`number`](/docs/kcl/types/number) | The number to compute the logarithm of. | Yes |
|
||||
| `input` | [`number`](/docs/kcl-std/types/std-types-number) | The number to compute the logarithm of. | Yes |
|
||||
| `base` | `number(_)` | The base of the logarithm. | Yes |
|
||||
|
||||
### Returns
|
||||
|
||||
[`number`](/docs/kcl/types/number)
|
||||
[`number`](/docs/kcl-std/types/std-types-number)
|
||||
|
||||
|
||||
### Examples
|
@ -9,19 +9,18 @@ Compute the base 10 logarithm of the number.
|
||||
|
||||
|
||||
```kcl
|
||||
log10(@input: [number](/docs/kcl/types/number)): [number](/docs/kcl/types/number)
|
||||
log10(@input: number): number
|
||||
```
|
||||
|
||||
|
||||
### Arguments
|
||||
|
||||
| Name | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `input` | [`number`](/docs/kcl/types/number) | | Yes |
|
||||
| `input` | [`number`](/docs/kcl-std/types/std-types-number) | | Yes |
|
||||
|
||||
### Returns
|
||||
|
||||
[`number`](/docs/kcl/types/number)
|
||||
[`number`](/docs/kcl-std/types/std-types-number)
|
||||
|
||||
|
||||
### Examples
|
@ -9,19 +9,18 @@ Compute the base 2 logarithm of the number.
|
||||
|
||||
|
||||
```kcl
|
||||
log2(@input: [number](/docs/kcl/types/number)): [number](/docs/kcl/types/number)
|
||||
log2(@input: number): number
|
||||
```
|
||||
|
||||
|
||||
### Arguments
|
||||
|
||||
| Name | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `input` | [`number`](/docs/kcl/types/number) | | Yes |
|
||||
| `input` | [`number`](/docs/kcl-std/types/std-types-number) | | Yes |
|
||||
|
||||
### Returns
|
||||
|
||||
[`number`](/docs/kcl/types/number)
|
||||
[`number`](/docs/kcl-std/types/std-types-number)
|
||||
|
||||
|
||||
### Examples
|
@ -9,19 +9,18 @@ Compute the maximum of the given arguments.
|
||||
|
||||
|
||||
```kcl
|
||||
max(@input: [[number](/docs/kcl/types/number); 1+]): [number](/docs/kcl/types/number)
|
||||
max(@input: [number; 1+]): number
|
||||
```
|
||||
|
||||
|
||||
### Arguments
|
||||
|
||||
| Name | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `input` | `[number; 1+]` | An array of numbers to compute the maximum of. | Yes |
|
||||
| `input` | [`[number; 1+]`](/docs/kcl-std/types/std-types-number) | An array of numbers to compute the maximum of. | Yes |
|
||||
|
||||
### Returns
|
||||
|
||||
[`number`](/docs/kcl/types/number)
|
||||
[`number`](/docs/kcl-std/types/std-types-number)
|
||||
|
||||
|
||||
### Examples
|
@ -9,19 +9,18 @@ Compute the minimum of the given arguments.
|
||||
|
||||
|
||||
```kcl
|
||||
min(@input: [[number](/docs/kcl/types/number); 1+]): [number](/docs/kcl/types/number)
|
||||
min(@input: [number; 1+]): number
|
||||
```
|
||||
|
||||
|
||||
### Arguments
|
||||
|
||||
| Name | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `input` | `[number; 1+]` | An array of numbers to compute the minimum of. | Yes |
|
||||
| `input` | [`[number; 1+]`](/docs/kcl-std/types/std-types-number) | An array of numbers to compute the minimum of. | Yes |
|
||||
|
||||
### Returns
|
||||
|
||||
[`number`](/docs/kcl/types/number)
|
||||
[`number`](/docs/kcl-std/types/std-types-number)
|
||||
|
||||
|
||||
### Examples
|
@ -11,12 +11,11 @@ cartesian (x/y/z grid) coordinates.
|
||||
|
||||
```kcl
|
||||
polar(
|
||||
angle: [number](/docs/kcl/types/number)(rad),
|
||||
length: [number](/docs/kcl/types/number)(Length),
|
||||
): [Point2d](/docs/kcl/types/Point2d)
|
||||
angle: number(rad),
|
||||
length: number(Length),
|
||||
): Point2d
|
||||
```
|
||||
|
||||
|
||||
### Arguments
|
||||
|
||||
| Name | Type | Description | Required |
|
||||
@ -26,7 +25,7 @@ polar(
|
||||
|
||||
### Returns
|
||||
|
||||
[`Point2d`](/docs/kcl/types/Point2d)
|
||||
[`Point2d`](/docs/kcl-std/types/std-types-Point2d)
|
||||
|
||||
|
||||
### Examples
|
@ -10,22 +10,21 @@ Compute the number to a power.
|
||||
|
||||
```kcl
|
||||
pow(
|
||||
@input: [number](/docs/kcl/types/number),
|
||||
exp: [number](/docs/kcl/types/number)(_),
|
||||
): [number](/docs/kcl/types/number)
|
||||
@input: number,
|
||||
exp: number(_),
|
||||
): number
|
||||
```
|
||||
|
||||
|
||||
### Arguments
|
||||
|
||||
| Name | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `input` | [`number`](/docs/kcl/types/number) | The number to raise. | Yes |
|
||||
| `input` | [`number`](/docs/kcl-std/types/std-types-number) | The number to raise. | Yes |
|
||||
| `exp` | `number(_)` | The power to raise to. | Yes |
|
||||
|
||||
### Returns
|
||||
|
||||
[`number`](/docs/kcl/types/number)
|
||||
[`number`](/docs/kcl-std/types/std-types-number)
|
||||
|
||||
|
||||
### Examples
|
@ -11,22 +11,21 @@ If `num` is negative, the result will be too.
|
||||
|
||||
```kcl
|
||||
rem(
|
||||
@num: [number](/docs/kcl/types/number),
|
||||
divisor: [number](/docs/kcl/types/number),
|
||||
): [number](/docs/kcl/types/number)
|
||||
@num: number,
|
||||
divisor: number,
|
||||
): number
|
||||
```
|
||||
|
||||
|
||||
### Arguments
|
||||
|
||||
| Name | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `num` | [`number`](/docs/kcl/types/number) | The number which will be divided by `divisor`. | Yes |
|
||||
| `divisor` | [`number`](/docs/kcl/types/number) | The number which will divide `num`. | Yes |
|
||||
| `num` | [`number`](/docs/kcl-std/types/std-types-number) | The number which will be divided by `divisor`. | Yes |
|
||||
| `divisor` | [`number`](/docs/kcl-std/types/std-types-number) | The number which will divide `num`. | Yes |
|
||||
|
||||
### Returns
|
||||
|
||||
[`number`](/docs/kcl/types/number)
|
||||
[`number`](/docs/kcl-std/types/std-types-number)
|
||||
|
||||
|
||||
### Examples
|
@ -9,19 +9,18 @@ Round a number to the nearest integer.
|
||||
|
||||
|
||||
```kcl
|
||||
round(@input: [number](/docs/kcl/types/number)): [number](/docs/kcl/types/number)
|
||||
round(@input: number): number
|
||||
```
|
||||
|
||||
|
||||
### Arguments
|
||||
|
||||
| Name | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `input` | [`number`](/docs/kcl/types/number) | | Yes |
|
||||
| `input` | [`number`](/docs/kcl-std/types/std-types-number) | | Yes |
|
||||
|
||||
### Returns
|
||||
|
||||
[`number`](/docs/kcl/types/number)
|
||||
[`number`](/docs/kcl-std/types/std-types-number)
|
||||
|
||||
|
||||
### Examples
|
@ -9,10 +9,9 @@ Compute the sine of a number.
|
||||
|
||||
|
||||
```kcl
|
||||
sin(@num: [number](/docs/kcl/types/number)(Angle)): [number](/docs/kcl/types/number)(_)
|
||||
sin(@num: number(Angle)): number(_)
|
||||
```
|
||||
|
||||
|
||||
### Arguments
|
||||
|
||||
| Name | Type | Description | Required |
|
@ -9,19 +9,18 @@ Compute the square root of a number.
|
||||
|
||||
|
||||
```kcl
|
||||
sqrt(@input: [number](/docs/kcl/types/number)): [number](/docs/kcl/types/number)
|
||||
sqrt(@input: number): number
|
||||
```
|
||||
|
||||
|
||||
### Arguments
|
||||
|
||||
| Name | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `input` | [`number`](/docs/kcl/types/number) | | Yes |
|
||||
| `input` | [`number`](/docs/kcl-std/types/std-types-number) | | Yes |
|
||||
|
||||
### Returns
|
||||
|
||||
[`number`](/docs/kcl/types/number)
|
||||
[`number`](/docs/kcl-std/types/std-types-number)
|
||||
|
||||
|
||||
### Examples
|
@ -9,10 +9,9 @@ Compute the tangent of a number.
|
||||
|
||||
|
||||
```kcl
|
||||
tan(@num: [number](/docs/kcl/types/number)(Angle)): [number](/docs/kcl/types/number)(_)
|
||||
tan(@num: number(Angle)): number(_)
|
||||
```
|
||||
|
||||
|
||||
### Arguments
|
||||
|
||||
| Name | Type | Description | Required |
|
@ -10,23 +10,22 @@ For example, if you offset the `XZ` plane by 10, the new plane will be parallel
|
||||
plane and 10 units away from it.
|
||||
|
||||
```kcl
|
||||
offset[Plane](/docs/kcl/types/Plane)(
|
||||
@plane: [Plane](/docs/kcl/types/Plane),
|
||||
offset: [number](/docs/kcl/types/number)(Length),
|
||||
): [Plane](/docs/kcl/types/Plane)
|
||||
offsetPlane(
|
||||
@plane: Plane,
|
||||
offset: number(Length),
|
||||
): Plane
|
||||
```
|
||||
|
||||
|
||||
### Arguments
|
||||
|
||||
| Name | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `plane` | [`Plane`](/docs/kcl/types/Plane) | The plane (e.g. `XY`) which this new plane is created from. | Yes |
|
||||
| `plane` | [`Plane`](/docs/kcl-std/types/std-types-Plane) | The plane (e.g. `XY`) which this new plane is created from. | Yes |
|
||||
| `offset` | `number(Length)` | Distance from the standard plane this new plane will be created at. | Yes |
|
||||
|
||||
### Returns
|
||||
|
||||
[`Plane`](/docs/kcl/types/Plane)
|
||||
[`Plane`](/docs/kcl-std/types/std-types-Plane)
|
||||
|
||||
|
||||
### Examples
|
@ -19,34 +19,33 @@ revolved around the same axis.
|
||||
|
||||
```kcl
|
||||
revolve(
|
||||
@sketches: [[Sketch](/docs/kcl/types/Sketch); 1+],
|
||||
axis: [Axis2d](/docs/kcl/types/Axis2d) | [Edge](/docs/kcl/types/Edge),
|
||||
angle?: [number](/docs/kcl/types/number)(Angle),
|
||||
tolerance?: [number](/docs/kcl/types/number)(Length),
|
||||
symmetric?: [bool](/docs/kcl/types/bool),
|
||||
bidirectionalAngle?: [number](/docs/kcl/types/number)(Angle),
|
||||
@sketches: [Sketch; 1+],
|
||||
axis: Axis2d | Edge,
|
||||
angle?: number(Angle),
|
||||
tolerance?: number(Length),
|
||||
symmetric?: bool,
|
||||
bidirectionalAngle?: number(Angle),
|
||||
tagStart?: tag,
|
||||
tagEnd?: tag,
|
||||
): [Solid](/docs/kcl/types/Solid)
|
||||
): Solid
|
||||
```
|
||||
|
||||
|
||||
### Arguments
|
||||
|
||||
| Name | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `sketches` | `[Sketch; 1+]` | The sketch or set of sketches that should be revolved | Yes |
|
||||
| `axis` | [`Axis2d`](/docs/kcl/types/Axis2d) or [`Edge`](/docs/kcl/types/Edge) | Axis of revolution. | Yes |
|
||||
| `sketches` | [`[Sketch; 1+]`](/docs/kcl-std/types/std-types-Sketch) | The sketch or set of sketches that should be revolved | Yes |
|
||||
| `axis` | [`Axis2d`](/docs/kcl-std/types/std-types-Axis2d) or [`Edge`](/docs/kcl-std/types/std-types-Edge) | Axis of revolution. | Yes |
|
||||
| `angle` | `number(Angle)` | Angle to revolve (in degrees). Default is 360. | No |
|
||||
| `tolerance` | `number(Length)` | Tolerance for the revolve operation. | No |
|
||||
| `symmetric` | [`bool`](/docs/kcl/types/bool) | If true, the extrusion will happen symmetrically around the sketch. Otherwise, the extrusion will happen on only one side of the sketch. | No |
|
||||
| `symmetric` | [`bool`](/docs/kcl-std/types/std-types-bool) | If true, the extrusion will happen symmetrically around the sketch. Otherwise, the extrusion will happen on only one side of the sketch. | No |
|
||||
| `bidirectionalAngle` | `number(Angle)` | If specified, will also revolve in the opposite direction to 'angle' to the specified angle. If 'symmetric' is true, this value is ignored. | No |
|
||||
| `tagStart` | `tag` | A named tag for the face at the start of the revolve, i.e. the original sketch. | No |
|
||||
| `tagEnd` | `tag` | A named tag for the face at the end of the revolve. | No |
|
||||
| `tagStart` | [`tag`](/docs/kcl-std/types/std-types-tag) | A named tag for the face at the start of the revolve, i.e. the original sketch. | No |
|
||||
| `tagEnd` | [`tag`](/docs/kcl-std/types/std-types-tag) | A named tag for the face at the end of the revolve. | No |
|
||||
|
||||
### Returns
|
||||
|
||||
[`Solid`](/docs/kcl/types/Solid)
|
||||
[`Solid`](/docs/kcl-std/types/std-types-Solid)
|
||||
|
||||
|
||||
### Examples
|
@ -11,26 +11,25 @@ the provided (x, y) origin point.
|
||||
|
||||
```kcl
|
||||
circle(
|
||||
@sketch_or_surface: [Sketch](/docs/kcl/types/Sketch) | [Plane](/docs/kcl/types/Plane) | [Face](/docs/kcl/types/Face),
|
||||
center: [Point2d](/docs/kcl/types/Point2d),
|
||||
radius: [number](/docs/kcl/types/number)(Length),
|
||||
@sketch_or_surface: Sketch | Plane | Face,
|
||||
center: Point2d,
|
||||
radius: number(Length),
|
||||
tag?: tag,
|
||||
): [Sketch](/docs/kcl/types/Sketch)
|
||||
): Sketch
|
||||
```
|
||||
|
||||
|
||||
### Arguments
|
||||
|
||||
| Name | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `sketch_or_surface` | [`Sketch`](/docs/kcl/types/Sketch) or [`Plane`](/docs/kcl/types/Plane) or [`Face`](/docs/kcl/types/Face) | Sketch to extend, or plane or surface to sketch on. | Yes |
|
||||
| `center` | [`Point2d`](/docs/kcl/types/Point2d) | The center of the circle. | Yes |
|
||||
| `sketch_or_surface` | [`Sketch`](/docs/kcl-std/types/std-types-Sketch) or [`Plane`](/docs/kcl-std/types/std-types-Plane) or [`Face`](/docs/kcl-std/types/std-types-Face) | Sketch to extend, or plane or surface to sketch on. | Yes |
|
||||
| `center` | [`Point2d`](/docs/kcl-std/types/std-types-Point2d) | The center of the circle. | Yes |
|
||||
| `radius` | `number(Length)` | The radius of the circle. | Yes |
|
||||
| `tag` | `tag` | Create a new tag which refers to this circle. | No |
|
||||
| [`tag`](/docs/kcl-std/types/std-types-tag) | [`tag`](/docs/kcl-std/types/std-types-tag) | Create a new tag which refers to this circle. | No |
|
||||
|
||||
### Returns
|
||||
|
||||
[`Sketch`](/docs/kcl/types/Sketch)
|
||||
[`Sketch`](/docs/kcl-std/types/std-types-Sketch)
|
||||
|
||||
|
||||
### Examples
|
@ -12,22 +12,21 @@ Mirror occurs around a local sketch axis rather than a global axis.
|
||||
|
||||
```kcl
|
||||
mirror2d(
|
||||
@sketches: [[Sketch](/docs/kcl/types/Sketch); 1+],
|
||||
axis: [Axis2d](/docs/kcl/types/Axis2d) | [Edge](/docs/kcl/types/Edge),
|
||||
): [Sketch](/docs/kcl/types/Sketch)
|
||||
@sketches: [Sketch; 1+],
|
||||
axis: Axis2d | Edge,
|
||||
): Sketch
|
||||
```
|
||||
|
||||
|
||||
### Arguments
|
||||
|
||||
| Name | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `sketches` | `[Sketch; 1+]` | The sketch or sketches to be reflected. | Yes |
|
||||
| `axis` | [`Axis2d`](/docs/kcl/types/Axis2d) or [`Edge`](/docs/kcl/types/Edge) | The axis to reflect around. | Yes |
|
||||
| `sketches` | [`[Sketch; 1+]`](/docs/kcl-std/types/std-types-Sketch) | The sketch or sketches to be reflected. | Yes |
|
||||
| `axis` | [`Axis2d`](/docs/kcl-std/types/std-types-Axis2d) or [`Edge`](/docs/kcl-std/types/std-types-Edge) | The axis to reflect around. | Yes |
|
||||
|
||||
### Returns
|
||||
|
||||
[`Sketch`](/docs/kcl/types/Sketch)
|
||||
[`Sketch`](/docs/kcl-std/types/std-types-Sketch)
|
||||
|
||||
|
||||
### Examples
|
@ -12,26 +12,25 @@ a sharp, straight transitional edge.
|
||||
|
||||
```kcl
|
||||
chamfer(
|
||||
@solid: [Solid](/docs/kcl/types/Solid),
|
||||
length: [number](/docs/kcl/types/number)(Length),
|
||||
tags: [[Edge](/docs/kcl/types/Edge); 1+],
|
||||
@solid: Solid,
|
||||
length: number(Length),
|
||||
tags: [Edge; 1+],
|
||||
tag?: tag,
|
||||
): [Solid](/docs/kcl/types/Solid)
|
||||
): Solid
|
||||
```
|
||||
|
||||
|
||||
### Arguments
|
||||
|
||||
| Name | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `solid` | [`Solid`](/docs/kcl/types/Solid) | The solid whose edges should be chamfered | Yes |
|
||||
| `solid` | [`Solid`](/docs/kcl-std/types/std-types-Solid) | The solid whose edges should be chamfered | Yes |
|
||||
| `length` | `number(Length)` | The length of the chamfer | Yes |
|
||||
| `tags` | `[Edge; 1+]` | The paths you want to chamfer | Yes |
|
||||
| `tag` | `tag` | Create a new tag which refers to this chamfer | No |
|
||||
| `tags` | [`[Edge; 1+]`](/docs/kcl-std/types/std-types-Edge) | The paths you want to chamfer | Yes |
|
||||
| [`tag`](/docs/kcl-std/types/std-types-tag) | [`tag`](/docs/kcl-std/types/std-types-tag) | Create a new tag which refers to this chamfer | No |
|
||||
|
||||
### Returns
|
||||
|
||||
[`Solid`](/docs/kcl/types/Solid)
|
||||
[`Solid`](/docs/kcl-std/types/std-types-Solid)
|
||||
|
||||
|
||||
### Examples
|
||||
@ -76,7 +75,7 @@ sg = startSketchOn(XY)
|
||||
return sg
|
||||
}
|
||||
|
||||
part001 = cube([0,0], 20)
|
||||
part001 = cube(pos = [0,0], scale = 20)
|
||||
|> close(tag = $line1)
|
||||
|> extrude(length = 20)
|
||||
// We tag the chamfer to reference it later.
|
@ -12,28 +12,27 @@ will smoothly blend the transition.
|
||||
|
||||
```kcl
|
||||
fillet(
|
||||
@solid: [Solid](/docs/kcl/types/Solid),
|
||||
radius: [number](/docs/kcl/types/number)(Length),
|
||||
tags: [[Edge](/docs/kcl/types/Edge); 1+],
|
||||
tolerance?: [number](/docs/kcl/types/number)(Length),
|
||||
@solid: Solid,
|
||||
radius: number(Length),
|
||||
tags: [Edge; 1+],
|
||||
tolerance?: number(Length),
|
||||
tag?: tag,
|
||||
): [Solid](/docs/kcl/types/Solid)
|
||||
): Solid
|
||||
```
|
||||
|
||||
|
||||
### Arguments
|
||||
|
||||
| Name | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `solid` | [`Solid`](/docs/kcl/types/Solid) | The solid whose edges should be filletted | Yes |
|
||||
| `solid` | [`Solid`](/docs/kcl-std/types/std-types-Solid) | The solid whose edges should be filletted | Yes |
|
||||
| `radius` | `number(Length)` | The radius of the fillet | Yes |
|
||||
| `tags` | `[Edge; 1+]` | The paths you want to fillet | Yes |
|
||||
| `tags` | [`[Edge; 1+]`](/docs/kcl-std/types/std-types-Edge) | The paths you want to fillet | Yes |
|
||||
| `tolerance` | `number(Length)` | The tolerance for this fillet | No |
|
||||
| `tag` | `tag` | Create a new tag which refers to this fillet | No |
|
||||
| [`tag`](/docs/kcl-std/types/std-types-tag) | [`tag`](/docs/kcl-std/types/std-types-tag) | Create a new tag which refers to this fillet | No |
|
||||
|
||||
### Returns
|
||||
|
||||
[`Solid`](/docs/kcl/types/Solid)
|
||||
[`Solid`](/docs/kcl-std/types/std-types-Solid)
|
||||
|
||||
|
||||
### Examples
|
@ -11,22 +11,21 @@ provided thickness remains around the exterior of the shape.
|
||||
|
||||
```kcl
|
||||
hollow(
|
||||
@solid: [Solid](/docs/kcl/types/Solid),
|
||||
thickness: [number](/docs/kcl/types/number)(Length),
|
||||
): [Solid](/docs/kcl/types/Solid)
|
||||
@solid: Solid,
|
||||
thickness: number(Length),
|
||||
): Solid
|
||||
```
|
||||
|
||||
|
||||
### Arguments
|
||||
|
||||
| Name | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `solid` | [`Solid`](/docs/kcl/types/Solid) | Which solid to hollow out | Yes |
|
||||
| `solid` | [`Solid`](/docs/kcl-std/types/std-types-Solid) | Which solid to hollow out | Yes |
|
||||
| `thickness` | `number(Length)` | The thickness of the remaining shell | Yes |
|
||||
|
||||
### Returns
|
||||
|
||||
[`Solid`](/docs/kcl/types/Solid)
|
||||
[`Solid`](/docs/kcl-std/types/std-types-Solid)
|
||||
|
||||
|
||||
### Examples
|
@ -11,24 +11,23 @@ provided thickness remains, taking volume starting at the providedface, leaving
|
||||
|
||||
```kcl
|
||||
shell(
|
||||
@solids: [[Solid](/docs/kcl/types/Solid); 1+],
|
||||
thickness: [number](/docs/kcl/types/number)(Length),
|
||||
@solids: [Solid; 1+],
|
||||
thickness: number(Length),
|
||||
faces: [tag; 1+],
|
||||
): [[[Solid](/docs/kcl/types/Solid)]](/docs/kcl/types/[Solid](/docs/kcl/types/Solid))
|
||||
): [Solid]
|
||||
```
|
||||
|
||||
|
||||
### Arguments
|
||||
|
||||
| Name | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `solids` | `[Solid; 1+]` | Which solid (or solids) to shell out | Yes |
|
||||
| `solids` | [`[Solid; 1+]`](/docs/kcl-std/types/std-types-Solid) | Which solid (or solids) to shell out | Yes |
|
||||
| `thickness` | `number(Length)` | The thickness of the shell | Yes |
|
||||
| `faces` | `[tag; 1+]` | The faces you want removed | Yes |
|
||||
| `faces` | [`[tag; 1+]`](/docs/kcl-std/types/std-types-tag) | The faces you want removed | Yes |
|
||||
|
||||
### Returns
|
||||
|
||||
[`[Solid]`](/docs/kcl/types/Solid)
|
||||
[`[Solid]`](/docs/kcl-std/types/std-types-Solid)
|
||||
|
||||
|
||||
### Examples
|
@ -9,10 +9,9 @@ Convert a number to centimeters from its current units.
|
||||
|
||||
|
||||
```kcl
|
||||
units::toCentimeters(@num: [number](/docs/kcl/types/number)(cm)): [number](/docs/kcl/types/number)(cm)
|
||||
units::toCentimeters(@num: number(cm)): number(cm)
|
||||
```
|
||||
|
||||
|
||||
### Arguments
|
||||
|
||||
| Name | Type | Description | Required |
|
@ -9,10 +9,9 @@ Converts a number to degrees from its current units.
|
||||
|
||||
|
||||
```kcl
|
||||
units::toDegrees(@num: [number](/docs/kcl/types/number)(deg)): [number](/docs/kcl/types/number)(deg)
|
||||
units::toDegrees(@num: number(deg)): number(deg)
|
||||
```
|
||||
|
||||
|
||||
### Arguments
|
||||
|
||||
| Name | Type | Description | Required |
|
@ -9,10 +9,9 @@ Convert a number to feet from its current units.
|
||||
|
||||
|
||||
```kcl
|
||||
units::toFeet(@num: [number](/docs/kcl/types/number)(ft)): [number](/docs/kcl/types/number)(ft)
|
||||
units::toFeet(@num: number(ft)): number(ft)
|
||||
```
|
||||
|
||||
|
||||
### Arguments
|
||||
|
||||
| Name | Type | Description | Required |
|
@ -9,10 +9,9 @@ Convert a number to inches from its current units.
|
||||
|
||||
|
||||
```kcl
|
||||
units::toInches(@num: [number](/docs/kcl/types/number)(in)): [number](/docs/kcl/types/number)(in)
|
||||
units::toInches(@num: number(in)): number(in)
|
||||
```
|
||||
|
||||
|
||||
### Arguments
|
||||
|
||||
| Name | Type | Description | Required |
|
@ -9,10 +9,9 @@ Convert a number to meters from its current units.
|
||||
|
||||
|
||||
```kcl
|
||||
units::toMeters(@num: [number](/docs/kcl/types/number)(m)): [number](/docs/kcl/types/number)(m)
|
||||
units::toMeters(@num: number(m)): number(m)
|
||||
```
|
||||
|
||||
|
||||
### Arguments
|
||||
|
||||
| Name | Type | Description | Required |
|
@ -9,10 +9,9 @@ Convert a number to millimeters from its current units.
|
||||
|
||||
|
||||
```kcl
|
||||
units::toMillimeters(@num: [number](/docs/kcl/types/number)(mm)): [number](/docs/kcl/types/number)(mm)
|
||||
units::toMillimeters(@num: number(mm)): number(mm)
|
||||
```
|
||||
|
||||
|
||||
### Arguments
|
||||
|
||||
| Name | Type | Description | Required |
|
@ -9,10 +9,9 @@ Converts a number to radians from its current units.
|
||||
|
||||
|
||||
```kcl
|
||||
units::toRadians(@num: [number](/docs/kcl/types/number)(rad)): [number](/docs/kcl/types/number)(rad)
|
||||
units::toRadians(@num: number(rad)): number(rad)
|
||||
```
|
||||
|
||||
|
||||
### Arguments
|
||||
|
||||
| Name | Type | Description | Required |
|
@ -9,10 +9,9 @@ Converts a number to yards from its current units.
|
||||
|
||||
|
||||
```kcl
|
||||
units::toYards(@num: [number](/docs/kcl/types/number)(yd)): [number](/docs/kcl/types/number)(yd)
|
||||
units::toYards(@num: number(yd)): number(yd)
|
||||
```
|
||||
|
||||
|
||||
### Arguments
|
||||
|
||||
| Name | Type | Description | Required |
|
@ -9,15 +9,14 @@ Get the shared edge between two faces.
|
||||
|
||||
|
||||
```kcl
|
||||
getCommon[Edge](/docs/kcl/types/Edge)(faces: [[TagIdentifier](/docs/kcl/types#tag-identifier)]): Uuid
|
||||
getCommonEdge(faces: [TagIdentifier]): Uuid
|
||||
```
|
||||
|
||||
|
||||
### Arguments
|
||||
|
||||
| Name | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `faces` | `[TagIdentifier]` | The tags of the faces you want to find the common edge between | Yes |
|
||||
| `faces` | [`[TagIdentifier]`](/docs/kcl-lang/types#TagIdentifier) | The tags of the faces you want to find the common edge between | Yes |
|
||||
|
||||
### Returns
|
||||
|
@ -9,15 +9,14 @@ Get the next adjacent edge to the edge given.
|
||||
|
||||
|
||||
```kcl
|
||||
getNextAdjacent[Edge](/docs/kcl/types/Edge)(edge: [TagIdentifier](/docs/kcl/types#tag-identifier)): Uuid
|
||||
getNextAdjacentEdge(edge: TagIdentifier): Uuid
|
||||
```
|
||||
|
||||
|
||||
### Arguments
|
||||
|
||||
| Name | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `edge` | [`TagIdentifier`](/docs/kcl/types#tag-identifier) | The tag of the edge you want to find the next adjacent edge of. | Yes |
|
||||
| `edge` | [`TagIdentifier`](/docs/kcl-lang/types#TagIdentifier) | The tag of the edge you want to find the next adjacent edge of. | Yes |
|
||||
|
||||
### Returns
|
||||
|
@ -9,15 +9,14 @@ Get the opposite edge to the edge given.
|
||||
|
||||
|
||||
```kcl
|
||||
getOpposite[Edge](/docs/kcl/types/Edge)(edge: [TagIdentifier](/docs/kcl/types#tag-identifier)): Uuid
|
||||
getOppositeEdge(edge: TagIdentifier): Uuid
|
||||
```
|
||||
|
||||
|
||||
### Arguments
|
||||
|
||||
| Name | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `edge` | [`TagIdentifier`](/docs/kcl/types#tag-identifier) | The tag of the edge you want to find the opposite edge of. | Yes |
|
||||
| `edge` | [`TagIdentifier`](/docs/kcl-lang/types#TagIdentifier) | The tag of the edge you want to find the opposite edge of. | Yes |
|
||||
|
||||
### Returns
|
||||
|
@ -9,15 +9,14 @@ Get the previous adjacent edge to the edge given.
|
||||
|
||||
|
||||
```kcl
|
||||
getPreviousAdjacent[Edge](/docs/kcl/types/Edge)(edge: [TagIdentifier](/docs/kcl/types#tag-identifier)): Uuid
|
||||
getPreviousAdjacentEdge(edge: TagIdentifier): Uuid
|
||||
```
|
||||
|
||||
|
||||
### Arguments
|
||||
|
||||
| Name | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `edge` | [`TagIdentifier`](/docs/kcl/types#tag-identifier) | The tag of the edge you want to find the previous adjacent edge of. | Yes |
|
||||
| `edge` | [`TagIdentifier`](/docs/kcl-lang/types#TagIdentifier) | The tag of the edge you want to find the previous adjacent edge of. | Yes |
|
||||
|
||||
### Returns
|
||||
|
160
docs/kcl-std/index.md
Normal file
160
docs/kcl-std/index.md
Normal file
@ -0,0 +1,160 @@
|
||||
---
|
||||
title: "KCL Standard Library"
|
||||
excerpt: "Documentation for the KCL standard library for the Zoo Design Studio."
|
||||
layout: manual
|
||||
---
|
||||
|
||||
## Table of Contents
|
||||
|
||||
### Functions
|
||||
|
||||
* [**std**](/docs/kcl-std/modules/std)
|
||||
* [`angledLine`](/docs/kcl-std/angledLine)
|
||||
* [`angledLineThatIntersects`](/docs/kcl-std/angledLineThatIntersects)
|
||||
* [`appearance`](/docs/kcl-std/appearance)
|
||||
* [`arc`](/docs/kcl-std/arc)
|
||||
* [`assert`](/docs/kcl-std/assert)
|
||||
* [`assertIs`](/docs/kcl-std/assertIs)
|
||||
* [`bezierCurve`](/docs/kcl-std/bezierCurve)
|
||||
* [`circleThreePoint`](/docs/kcl-std/circleThreePoint)
|
||||
* [`clone`](/docs/kcl-std/clone)
|
||||
* [`close`](/docs/kcl-std/close)
|
||||
* [`extrude`](/docs/kcl-std/extrude)
|
||||
* [`getCommonEdge`](/docs/kcl-std/getCommonEdge)
|
||||
* [`getNextAdjacentEdge`](/docs/kcl-std/getNextAdjacentEdge)
|
||||
* [`getOppositeEdge`](/docs/kcl-std/getOppositeEdge)
|
||||
* [`getPreviousAdjacentEdge`](/docs/kcl-std/getPreviousAdjacentEdge)
|
||||
* [`helix`](/docs/kcl-std/functions/std-helix)
|
||||
* [`intersect`](/docs/kcl-std/intersect)
|
||||
* [`involuteCircular`](/docs/kcl-std/involuteCircular)
|
||||
* [`lastSegX`](/docs/kcl-std/lastSegX)
|
||||
* [`lastSegY`](/docs/kcl-std/lastSegY)
|
||||
* [`legAngX`](/docs/kcl-std/legAngX)
|
||||
* [`legAngY`](/docs/kcl-std/legAngY)
|
||||
* [`legLen`](/docs/kcl-std/legLen)
|
||||
* [`line`](/docs/kcl-std/line)
|
||||
* [`loft`](/docs/kcl-std/loft)
|
||||
* [`map`](/docs/kcl-std/map)
|
||||
* [`offsetPlane`](/docs/kcl-std/functions/std-offsetPlane)
|
||||
* [`patternCircular2d`](/docs/kcl-std/patternCircular2d)
|
||||
* [`patternCircular3d`](/docs/kcl-std/patternCircular3d)
|
||||
* [`patternLinear2d`](/docs/kcl-std/patternLinear2d)
|
||||
* [`patternLinear3d`](/docs/kcl-std/patternLinear3d)
|
||||
* [`patternTransform`](/docs/kcl-std/patternTransform)
|
||||
* [`patternTransform2d`](/docs/kcl-std/patternTransform2d)
|
||||
* [`polygon`](/docs/kcl-std/polygon)
|
||||
* [`pop`](/docs/kcl-std/pop)
|
||||
* [`profileStart`](/docs/kcl-std/profileStart)
|
||||
* [`profileStartX`](/docs/kcl-std/profileStartX)
|
||||
* [`profileStartY`](/docs/kcl-std/profileStartY)
|
||||
* [`push`](/docs/kcl-std/push)
|
||||
* [`reduce`](/docs/kcl-std/reduce)
|
||||
* [`revolve`](/docs/kcl-std/functions/std-revolve)
|
||||
* [`rotate`](/docs/kcl-std/rotate)
|
||||
* [`scale`](/docs/kcl-std/scale)
|
||||
* [`segAng`](/docs/kcl-std/segAng)
|
||||
* [`segEnd`](/docs/kcl-std/segEnd)
|
||||
* [`segEndX`](/docs/kcl-std/segEndX)
|
||||
* [`segEndY`](/docs/kcl-std/segEndY)
|
||||
* [`segLen`](/docs/kcl-std/segLen)
|
||||
* [`segStart`](/docs/kcl-std/segStart)
|
||||
* [`segStartX`](/docs/kcl-std/segStartX)
|
||||
* [`segStartY`](/docs/kcl-std/segStartY)
|
||||
* [`startProfile`](/docs/kcl-std/startProfile)
|
||||
* [`startSketchOn`](/docs/kcl-std/startSketchOn)
|
||||
* [`subtract`](/docs/kcl-std/subtract)
|
||||
* [`subtract2d`](/docs/kcl-std/subtract2d)
|
||||
* [`sweep`](/docs/kcl-std/sweep)
|
||||
* [`tangentToEnd`](/docs/kcl-std/tangentToEnd)
|
||||
* [`tangentialArc`](/docs/kcl-std/tangentialArc)
|
||||
* [`translate`](/docs/kcl-std/translate)
|
||||
* [`union`](/docs/kcl-std/union)
|
||||
* [`xLine`](/docs/kcl-std/xLine)
|
||||
* [`yLine`](/docs/kcl-std/yLine)
|
||||
* [**std::math**](/docs/kcl-std/modules/std-math)
|
||||
* [`abs`](/docs/kcl-std/functions/std-math-abs)
|
||||
* [`acos`](/docs/kcl-std/functions/std-math-acos)
|
||||
* [`asin`](/docs/kcl-std/functions/std-math-asin)
|
||||
* [`atan`](/docs/kcl-std/functions/std-math-atan)
|
||||
* [`atan2`](/docs/kcl-std/functions/std-math-atan2)
|
||||
* [`ceil`](/docs/kcl-std/functions/std-math-ceil)
|
||||
* [`cos`](/docs/kcl-std/functions/std-math-cos)
|
||||
* [`floor`](/docs/kcl-std/functions/std-math-floor)
|
||||
* [`ln`](/docs/kcl-std/functions/std-math-ln)
|
||||
* [`log`](/docs/kcl-std/functions/std-math-log)
|
||||
* [`log10`](/docs/kcl-std/functions/std-math-log10)
|
||||
* [`log2`](/docs/kcl-std/functions/std-math-log2)
|
||||
* [`max`](/docs/kcl-std/functions/std-math-max)
|
||||
* [`min`](/docs/kcl-std/functions/std-math-min)
|
||||
* [`polar`](/docs/kcl-std/functions/std-math-polar)
|
||||
* [`pow`](/docs/kcl-std/functions/std-math-pow)
|
||||
* [`rem`](/docs/kcl-std/functions/std-math-rem)
|
||||
* [`round`](/docs/kcl-std/functions/std-math-round)
|
||||
* [`sin`](/docs/kcl-std/functions/std-math-sin)
|
||||
* [`sqrt`](/docs/kcl-std/functions/std-math-sqrt)
|
||||
* [`tan`](/docs/kcl-std/functions/std-math-tan)
|
||||
* [**std::sketch**](/docs/kcl-std/modules/std-sketch)
|
||||
* [`circle`](/docs/kcl-std/functions/std-sketch-circle)
|
||||
* [`mirror2d`](/docs/kcl-std/functions/std-sketch-mirror2d)
|
||||
* [**std::solid**](/docs/kcl-std/modules/std-solid)
|
||||
* [`chamfer`](/docs/kcl-std/functions/std-solid-chamfer)
|
||||
* [`fillet`](/docs/kcl-std/functions/std-solid-fillet)
|
||||
* [`hollow`](/docs/kcl-std/functions/std-solid-hollow)
|
||||
* [`shell`](/docs/kcl-std/functions/std-solid-shell)
|
||||
* [**std::units**](/docs/kcl-std/modules/std-units)
|
||||
* [`units::toCentimeters`](/docs/kcl-std/functions/std-units-toCentimeters)
|
||||
* [`units::toDegrees`](/docs/kcl-std/functions/std-units-toDegrees)
|
||||
* [`units::toFeet`](/docs/kcl-std/functions/std-units-toFeet)
|
||||
* [`units::toInches`](/docs/kcl-std/functions/std-units-toInches)
|
||||
* [`units::toMeters`](/docs/kcl-std/functions/std-units-toMeters)
|
||||
* [`units::toMillimeters`](/docs/kcl-std/functions/std-units-toMillimeters)
|
||||
* [`units::toRadians`](/docs/kcl-std/functions/std-units-toRadians)
|
||||
* [`units::toYards`](/docs/kcl-std/functions/std-units-toYards)
|
||||
|
||||
### Constants
|
||||
|
||||
* [**std**](/docs/kcl-std/modules/std)
|
||||
* [`END`](/docs/kcl-std/consts/std-END)
|
||||
* [`START`](/docs/kcl-std/consts/std-START)
|
||||
* [`X`](/docs/kcl-std/consts/std-X)
|
||||
* [`XY`](/docs/kcl-std/consts/std-XY)
|
||||
* [`XZ`](/docs/kcl-std/consts/std-XZ)
|
||||
* [`Y`](/docs/kcl-std/consts/std-Y)
|
||||
* [`YZ`](/docs/kcl-std/consts/std-YZ)
|
||||
* [`Z`](/docs/kcl-std/consts/std-Z)
|
||||
* [**std::math**](/docs/kcl-std/modules/std-math)
|
||||
* [`E`](/docs/kcl-std/consts/std-math-E)
|
||||
* [`PI`](/docs/kcl-std/consts/std-math-PI)
|
||||
* [`TAU`](/docs/kcl-std/consts/std-math-TAU)
|
||||
* [**std::turns**](/docs/kcl-std/modules/std-turns)
|
||||
* [`turns::HALF_TURN`](/docs/kcl-std/consts/std-turns-HALF_TURN)
|
||||
* [`turns::QUARTER_TURN`](/docs/kcl-std/consts/std-turns-QUARTER_TURN)
|
||||
* [`turns::THREE_QUARTER_TURN`](/docs/kcl-std/consts/std-turns-THREE_QUARTER_TURN)
|
||||
* [`turns::ZERO`](/docs/kcl-std/consts/std-turns-ZERO)
|
||||
|
||||
### Types
|
||||
|
||||
See also the [types overview](/docs/kcl-lang/types)
|
||||
|
||||
* [**Primitive types**](/docs/kcl-std/modules/Primitive types)
|
||||
* [`End`](/docs/kcl-std/types#End)
|
||||
* [`ImportedGeometry`](/docs/kcl-std/types#ImportedGeometry)
|
||||
* [`Start`](/docs/kcl-std/types#Start)
|
||||
* [`TagDeclarator`](/docs/kcl-std/types#TagDeclarator)
|
||||
* [`TagIdentifier`](/docs/kcl-std/types#TagIdentifier)
|
||||
* [`any`](/docs/kcl-std/types/std-types-any)
|
||||
* [`bool`](/docs/kcl-std/types/std-types-bool)
|
||||
* [`number`](/docs/kcl-std/types/std-types-number)
|
||||
* [`string`](/docs/kcl-std/types/std-types-string)
|
||||
* [`tag`](/docs/kcl-std/types/std-types-tag)
|
||||
* [**std::types**](/docs/kcl-std/modules/std-types)
|
||||
* [`Axis2d`](/docs/kcl-std/types/std-types-Axis2d)
|
||||
* [`Axis3d`](/docs/kcl-std/types/std-types-Axis3d)
|
||||
* [`Edge`](/docs/kcl-std/types/std-types-Edge)
|
||||
* [`Face`](/docs/kcl-std/types/std-types-Face)
|
||||
* [`Helix`](/docs/kcl-std/types/std-types-Helix)
|
||||
* [`Plane`](/docs/kcl-std/types/std-types-Plane)
|
||||
* [`Point2d`](/docs/kcl-std/types/std-types-Point2d)
|
||||
* [`Point3d`](/docs/kcl-std/types/std-types-Point3d)
|
||||
* [`Sketch`](/docs/kcl-std/types/std-types-Sketch)
|
||||
* [`Solid`](/docs/kcl-std/types/std-types-Solid)
|
@ -10,22 +10,21 @@ Intersect computes the geometric intersection of multiple solid bodies, returnin
|
||||
|
||||
```kcl
|
||||
intersect(
|
||||
solids: [[[Solid](/docs/kcl/types/Solid)]](/docs/kcl/types/[Solid](/docs/kcl/types/Solid)),
|
||||
tolerance?: [number](/docs/kcl/types/number),
|
||||
): [[[Solid](/docs/kcl/types/Solid)]](/docs/kcl/types/[Solid](/docs/kcl/types/Solid))
|
||||
solids: [Solid],
|
||||
tolerance?: number,
|
||||
): [Solid]
|
||||
```
|
||||
|
||||
|
||||
### Arguments
|
||||
|
||||
| Name | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `solids` | [`[Solid]`](/docs/kcl/types/Solid) | The solids to intersect. | Yes |
|
||||
| `tolerance` | [`number`](/docs/kcl/types/number) | The tolerance to use for the intersection operation. | No |
|
||||
| `solids` | [`[Solid]`](/docs/kcl-std/types/std-types-Solid) | The solids to intersect. | Yes |
|
||||
| `tolerance` | [`number`](/docs/kcl-std/types/std-types-number) | The tolerance to use for the intersection operation. | No |
|
||||
|
||||
### Returns
|
||||
|
||||
[`[Solid]`](/docs/kcl/types/Solid)
|
||||
[`[Solid]`](/docs/kcl-std/types/std-types-Solid)
|
||||
|
||||
|
||||
### Examples
|
||||
@ -44,8 +43,8 @@ fn cube(center, size) {
|
||||
|> extrude(length = 10)
|
||||
}
|
||||
|
||||
part001 = cube([0, 0], 10)
|
||||
part002 = cube([7, 3], 5)
|
||||
part001 = cube(center = [0, 0], size = 10)
|
||||
part002 = cube(center = [7, 3], size = 5)
|
||||
|> translate(z = 1)
|
||||
|
||||
intersectedPart = intersect([part001, part002])
|
||||
@ -69,8 +68,8 @@ fn cube(center, size) {
|
||||
|> extrude(length = 10)
|
||||
}
|
||||
|
||||
part001 = cube([0, 0], 10)
|
||||
part002 = cube([7, 3], 5)
|
||||
part001 = cube(center = [0, 0], size = 10)
|
||||
part002 = cube(center = [7, 3], size = 5)
|
||||
|> translate(z = 1)
|
||||
|
||||
// This is the equivalent of: intersect([part001, part002])
|
@ -10,30 +10,29 @@ Extend the current sketch with a new involute circular curve.
|
||||
|
||||
```kcl
|
||||
involuteCircular(
|
||||
sketch: [Sketch](/docs/kcl/types/Sketch),
|
||||
startRadius: [number](/docs/kcl/types/number),
|
||||
endRadius: [number](/docs/kcl/types/number),
|
||||
angle: [number](/docs/kcl/types/number),
|
||||
reverse?: [bool](/docs/kcl/types/bool),
|
||||
tag?: [TagDeclarator](/docs/kcl/types#tag-declaration),
|
||||
): [Sketch](/docs/kcl/types/Sketch)
|
||||
sketch: Sketch,
|
||||
startRadius: number,
|
||||
endRadius: number,
|
||||
angle: number,
|
||||
reverse?: bool,
|
||||
tag?: TagDeclarator,
|
||||
): Sketch
|
||||
```
|
||||
|
||||
|
||||
### Arguments
|
||||
|
||||
| Name | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `sketch` | [`Sketch`](/docs/kcl/types/Sketch) | Which sketch should this path be added to? | Yes |
|
||||
| `startRadius` | [`number`](/docs/kcl/types/number) | The involute is described between two circles, start_radius is the radius of the inner circle. | Yes |
|
||||
| `endRadius` | [`number`](/docs/kcl/types/number) | The involute is described between two circles, end_radius is the radius of the outer circle. | Yes |
|
||||
| `angle` | [`number`](/docs/kcl/types/number) | The angle to rotate the involute by. A value of zero will produce a curve with a tangent along the x-axis at the start point of the curve. | Yes |
|
||||
| `reverse` | [`bool`](/docs/kcl/types/bool) | If reverse is true, the segment will start from the end of the involute, otherwise it will start from that start. Defaults to false. | No |
|
||||
| `tag` | [`TagDeclarator`](/docs/kcl/types#tag-declaration) | Create a new tag which refers to this line | No |
|
||||
| `sketch` | [`Sketch`](/docs/kcl-std/types/std-types-Sketch) | Which sketch should this path be added to? | Yes |
|
||||
| `startRadius` | [`number`](/docs/kcl-std/types/std-types-number) | The involute is described between two circles, start_radius is the radius of the inner circle. | Yes |
|
||||
| `endRadius` | [`number`](/docs/kcl-std/types/std-types-number) | The involute is described between two circles, end_radius is the radius of the outer circle. | Yes |
|
||||
| `angle` | [`number`](/docs/kcl-std/types/std-types-number) | The angle to rotate the involute by. A value of zero will produce a curve with a tangent along the x-axis at the start point of the curve. | Yes |
|
||||
| `reverse` | [`bool`](/docs/kcl-std/types/std-types-bool) | If reverse is true, the segment will start from the end of the involute, otherwise it will start from that start. Defaults to false. | No |
|
||||
| [`tag`](/docs/kcl-std/types/std-types-tag) | [`TagDeclarator`](/docs/kcl-lang/types#TagDeclarator) | Create a new tag which refers to this line | No |
|
||||
|
||||
### Returns
|
||||
|
||||
[`Sketch`](/docs/kcl/types/Sketch)
|
||||
[`Sketch`](/docs/kcl-std/types/std-types-Sketch)
|
||||
|
||||
|
||||
### Examples
|
@ -9,19 +9,18 @@ Extract the 'x' axis value of the last line segment in the provided 2-d sketch.
|
||||
|
||||
|
||||
```kcl
|
||||
lastSegX(sketch: [Sketch](/docs/kcl/types/Sketch)): [number](/docs/kcl/types/number)
|
||||
lastSegX(sketch: Sketch): number
|
||||
```
|
||||
|
||||
|
||||
### Arguments
|
||||
|
||||
| Name | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `sketch` | [`Sketch`](/docs/kcl/types/Sketch) | The sketch whose line segment is being queried | Yes |
|
||||
| `sketch` | [`Sketch`](/docs/kcl-std/types/std-types-Sketch) | The sketch whose line segment is being queried | Yes |
|
||||
|
||||
### Returns
|
||||
|
||||
[`number`](/docs/kcl/types/number)
|
||||
[`number`](/docs/kcl-std/types/std-types-number)
|
||||
|
||||
|
||||
### Examples
|
@ -9,19 +9,18 @@ Extract the 'y' axis value of the last line segment in the provided 2-d sketch.
|
||||
|
||||
|
||||
```kcl
|
||||
lastSegY(sketch: [Sketch](/docs/kcl/types/Sketch)): [number](/docs/kcl/types/number)
|
||||
lastSegY(sketch: Sketch): number
|
||||
```
|
||||
|
||||
|
||||
### Arguments
|
||||
|
||||
| Name | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `sketch` | [`Sketch`](/docs/kcl/types/Sketch) | The sketch whose line segment is being queried | Yes |
|
||||
| `sketch` | [`Sketch`](/docs/kcl-std/types/std-types-Sketch) | The sketch whose line segment is being queried | Yes |
|
||||
|
||||
### Returns
|
||||
|
||||
[`number`](/docs/kcl/types/number)
|
||||
[`number`](/docs/kcl-std/types/std-types-number)
|
||||
|
||||
|
||||
### Examples
|
37
docs/kcl-std/legAngX.md
Normal file
37
docs/kcl-std/legAngX.md
Normal file
@ -0,0 +1,37 @@
|
||||
---
|
||||
title: "legAngX"
|
||||
excerpt: "Compute the angle of the given leg for x."
|
||||
layout: manual
|
||||
---
|
||||
|
||||
Compute the angle of the given leg for x.
|
||||
|
||||
|
||||
|
||||
```kcl
|
||||
legAngX(
|
||||
hypotenuse: number,
|
||||
leg: number,
|
||||
): number
|
||||
```
|
||||
|
||||
### Arguments
|
||||
|
||||
| Name | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `hypotenuse` | [`number`](/docs/kcl-std/types/std-types-number) | The length of the triangle's hypotenuse | Yes |
|
||||
| `leg` | [`number`](/docs/kcl-std/types/std-types-number) | The length of one of the triangle's legs (i.e. non-hypotenuse side) | Yes |
|
||||
|
||||
### Returns
|
||||
|
||||
[`number`](/docs/kcl-std/types/std-types-number)
|
||||
|
||||
|
||||
### Examples
|
||||
|
||||
```kcl
|
||||
legAngX(hypotenuse = 5, leg = 3)
|
||||
```
|
||||
|
||||
|
||||
|
37
docs/kcl-std/legAngY.md
Normal file
37
docs/kcl-std/legAngY.md
Normal file
@ -0,0 +1,37 @@
|
||||
---
|
||||
title: "legAngY"
|
||||
excerpt: "Compute the angle of the given leg for y."
|
||||
layout: manual
|
||||
---
|
||||
|
||||
Compute the angle of the given leg for y.
|
||||
|
||||
|
||||
|
||||
```kcl
|
||||
legAngY(
|
||||
hypotenuse: number,
|
||||
leg: number,
|
||||
): number
|
||||
```
|
||||
|
||||
### Arguments
|
||||
|
||||
| Name | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `hypotenuse` | [`number`](/docs/kcl-std/types/std-types-number) | The length of the triangle's hypotenuse | Yes |
|
||||
| `leg` | [`number`](/docs/kcl-std/types/std-types-number) | The length of one of the triangle's legs (i.e. non-hypotenuse side) | Yes |
|
||||
|
||||
### Returns
|
||||
|
||||
[`number`](/docs/kcl-std/types/std-types-number)
|
||||
|
||||
|
||||
### Examples
|
||||
|
||||
```kcl
|
||||
legAngY(hypotenuse = 5, leg = 3)
|
||||
```
|
||||
|
||||
|
||||
|
37
docs/kcl-std/legLen.md
Normal file
37
docs/kcl-std/legLen.md
Normal file
@ -0,0 +1,37 @@
|
||||
---
|
||||
title: "legLen"
|
||||
excerpt: "Compute the length of the given leg."
|
||||
layout: manual
|
||||
---
|
||||
|
||||
Compute the length of the given leg.
|
||||
|
||||
|
||||
|
||||
```kcl
|
||||
legLen(
|
||||
hypotenuse: number,
|
||||
leg: number,
|
||||
): number
|
||||
```
|
||||
|
||||
### Arguments
|
||||
|
||||
| Name | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `hypotenuse` | [`number`](/docs/kcl-std/types/std-types-number) | The length of the triangle's hypotenuse | Yes |
|
||||
| `leg` | [`number`](/docs/kcl-std/types/std-types-number) | The length of one of the triangle's legs (i.e. non-hypotenuse side) | Yes |
|
||||
|
||||
### Returns
|
||||
|
||||
[`number`](/docs/kcl-std/types/std-types-number)
|
||||
|
||||
|
||||
### Examples
|
||||
|
||||
```kcl
|
||||
legLen(hypotenuse = 5, leg = 3)
|
||||
```
|
||||
|
||||
|
||||
|
@ -10,26 +10,25 @@ Extend the current sketch with a new straight line.
|
||||
|
||||
```kcl
|
||||
line(
|
||||
sketch: [Sketch](/docs/kcl/types/Sketch),
|
||||
endAbsolute?: [[[number](/docs/kcl/types/number)]](/docs/kcl/types/[number](/docs/kcl/types/number)),
|
||||
end?: [[[number](/docs/kcl/types/number)]](/docs/kcl/types/[number](/docs/kcl/types/number)),
|
||||
tag?: [TagDeclarator](/docs/kcl/types#tag-declaration),
|
||||
): [Sketch](/docs/kcl/types/Sketch)
|
||||
sketch: Sketch,
|
||||
endAbsolute?: Point2d,
|
||||
end?: Point2d,
|
||||
tag?: TagDeclarator,
|
||||
): Sketch
|
||||
```
|
||||
|
||||
|
||||
### Arguments
|
||||
|
||||
| Name | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `sketch` | [`Sketch`](/docs/kcl/types/Sketch) | Which sketch should this path be added to? | Yes |
|
||||
| `endAbsolute` | [`[number]`](/docs/kcl/types/number) | Which absolute point should this line go to? Incompatible with `end`. | No |
|
||||
| `end` | [`[number]`](/docs/kcl/types/number) | How far away (along the X and Y axes) should this line go? Incompatible with `endAbsolute`. | No |
|
||||
| `tag` | [`TagDeclarator`](/docs/kcl/types#tag-declaration) | Create a new tag which refers to this line | No |
|
||||
| `sketch` | [`Sketch`](/docs/kcl-std/types/std-types-Sketch) | Which sketch should this path be added to? | Yes |
|
||||
| `endAbsolute` | [`Point2d`](/docs/kcl-std/types/std-types-Point2d) | Which absolute point should this line go to? Incompatible with `end`. | No |
|
||||
| `end` | [`Point2d`](/docs/kcl-std/types/std-types-Point2d) | How far away (along the X and Y axes) should this line go? Incompatible with `endAbsolute`. | No |
|
||||
| [`tag`](/docs/kcl-std/types/std-types-tag) | [`TagDeclarator`](/docs/kcl-lang/types#TagDeclarator) | Create a new tag which refers to this line | No |
|
||||
|
||||
### Returns
|
||||
|
||||
[`Sketch`](/docs/kcl/types/Sketch)
|
||||
[`Sketch`](/docs/kcl-std/types/std-types-Sketch)
|
||||
|
||||
|
||||
### Examples
|
@ -10,32 +10,31 @@ The sketches need to closed and on the same plane.
|
||||
|
||||
```kcl
|
||||
loft(
|
||||
sketches: [[[Sketch](/docs/kcl/types/Sketch)]](/docs/kcl/types/[Sketch](/docs/kcl/types/Sketch)),
|
||||
vDegree: NonZeroU32,
|
||||
bezApproximateRational: [bool](/docs/kcl/types/bool),
|
||||
baseCurveIndex?: integer,
|
||||
tolerance?: [number](/docs/kcl/types/number),
|
||||
tagStart?: [TagDeclarator](/docs/kcl/types#tag-declaration),
|
||||
tagEnd?: [TagDeclarator](/docs/kcl/types#tag-declaration),
|
||||
): [Solid](/docs/kcl/types/Solid)
|
||||
sketches: [Sketch],
|
||||
vDegree: number,
|
||||
bezApproximateRational: bool,
|
||||
baseCurveIndex?: number,
|
||||
tolerance?: number,
|
||||
tagStart?: TagDeclarator,
|
||||
tagEnd?: TagDeclarator,
|
||||
): Solid
|
||||
```
|
||||
|
||||
|
||||
### Arguments
|
||||
|
||||
| Name | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `sketches` | [`[Sketch]`](/docs/kcl/types/Sketch) | Which sketches to loft. Must include at least 2 sketches. | Yes |
|
||||
| `vDegree` | `NonZeroU32` | Degree of the interpolation. Must be greater than zero. For example, use 2 for quadratic, or 3 for cubic interpolation in the V direction. This defaults to 2, if not specified. | Yes |
|
||||
| `bezApproximateRational` | [`bool`](/docs/kcl/types/bool) | Attempt to approximate rational curves (such as arcs) using a bezier. This will remove banding around interpolations between arcs and non-arcs. It may produce errors in other scenarios Over time, this field won't be necessary. | Yes |
|
||||
| `baseCurveIndex` | `integer` | This can be set to override the automatically determined topological base curve, which is usually the first section encountered. | No |
|
||||
| `tolerance` | [`number`](/docs/kcl/types/number) | Tolerance for the loft operation. | No |
|
||||
| `tagStart` | [`TagDeclarator`](/docs/kcl/types#tag-declaration) | A named tag for the face at the start of the loft, i.e. the original sketch | No |
|
||||
| `tagEnd` | [`TagDeclarator`](/docs/kcl/types#tag-declaration) | A named tag for the face at the end of the loft, i.e. the last sketch | No |
|
||||
| `sketches` | [`[Sketch]`](/docs/kcl-std/types/std-types-Sketch) | Which sketches to loft. Must include at least 2 sketches. | Yes |
|
||||
| `vDegree` | [`number`](/docs/kcl-std/types/std-types-number) | Degree of the interpolation. Must be greater than zero. For example, use 2 for quadratic, or 3 for cubic interpolation in the V direction. This defaults to 2, if not specified. | Yes |
|
||||
| `bezApproximateRational` | [`bool`](/docs/kcl-std/types/std-types-bool) | Attempt to approximate rational curves (such as arcs) using a bezier. This will remove banding around interpolations between arcs and non-arcs. It may produce errors in other scenarios Over time, this field won't be necessary. | Yes |
|
||||
| `baseCurveIndex` | [`number`](/docs/kcl-std/types/std-types-number) | This can be set to override the automatically determined topological base curve, which is usually the first section encountered. | No |
|
||||
| `tolerance` | [`number`](/docs/kcl-std/types/std-types-number) | Tolerance for the loft operation. | No |
|
||||
| `tagStart` | [`TagDeclarator`](/docs/kcl-lang/types#TagDeclarator) | A named tag for the face at the start of the loft, i.e. the original sketch | No |
|
||||
| `tagEnd` | [`TagDeclarator`](/docs/kcl-lang/types#TagDeclarator) | A named tag for the face at the end of the loft, i.e. the last sketch | No |
|
||||
|
||||
### Returns
|
||||
|
||||
[`Solid`](/docs/kcl/types/Solid)
|
||||
[`Solid`](/docs/kcl-std/types/std-types-Solid)
|
||||
|
||||
|
||||
### Examples
|
@ -10,29 +10,28 @@ Given a list like `[a, b, c]`, and a function like `f`, returns `[f(a), f(b), f(
|
||||
|
||||
```kcl
|
||||
map(
|
||||
array: [[[KclValue](/docs/kcl/types/KclValue)]](/docs/kcl/types/[KclValue](/docs/kcl/types/KclValue)),
|
||||
array: [any],
|
||||
f: FunctionSource,
|
||||
): [[[KclValue](/docs/kcl/types/KclValue)]](/docs/kcl/types/[KclValue](/docs/kcl/types/KclValue))
|
||||
): [any]
|
||||
```
|
||||
|
||||
|
||||
### Arguments
|
||||
|
||||
| Name | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `array` | [`[KclValue]`](/docs/kcl/types/KclValue) | Input array. The output array is this input array, but every element has had the function `f` run on it. | Yes |
|
||||
| `array` | [`[any]`](/docs/kcl-std/types/std-types-any) | Input array. The output array is this input array, but every element has had the function `f` run on it. | Yes |
|
||||
| `f` | `FunctionSource` | A function. The output array is just the input array, but `f` has been run on every item. | Yes |
|
||||
|
||||
### Returns
|
||||
|
||||
[`[KclValue]`](/docs/kcl/types/KclValue)
|
||||
[`[any]`](/docs/kcl-std/types/std-types-any)
|
||||
|
||||
|
||||
### Examples
|
||||
|
||||
```kcl
|
||||
r = 10 // radius
|
||||
fn drawCircle(id) {
|
||||
fn drawCircle(@id) {
|
||||
return startSketchOn(XY)
|
||||
|> circle(center = [id * 2 * r, 0], radius = r)
|
||||
}
|
38
docs/kcl-std/modules/std-math.md
Normal file
38
docs/kcl-std/modules/std-math.md
Normal file
@ -0,0 +1,38 @@
|
||||
---
|
||||
title: "std::math"
|
||||
excerpt: ""
|
||||
layout: manual
|
||||
---
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## Functions and constants
|
||||
|
||||
* [`E`](/docs/kcl-std/consts/std-math-E)
|
||||
* [`PI`](/docs/kcl-std/consts/std-math-PI)
|
||||
* [`TAU`](/docs/kcl-std/consts/std-math-TAU)
|
||||
* [`abs`](/docs/kcl-std/functions/std-math-abs)
|
||||
* [`acos`](/docs/kcl-std/functions/std-math-acos)
|
||||
* [`asin`](/docs/kcl-std/functions/std-math-asin)
|
||||
* [`atan`](/docs/kcl-std/functions/std-math-atan)
|
||||
* [`atan2`](/docs/kcl-std/functions/std-math-atan2)
|
||||
* [`ceil`](/docs/kcl-std/functions/std-math-ceil)
|
||||
* [`cos`](/docs/kcl-std/functions/std-math-cos)
|
||||
* [`floor`](/docs/kcl-std/functions/std-math-floor)
|
||||
* [`ln`](/docs/kcl-std/functions/std-math-ln)
|
||||
* [`log`](/docs/kcl-std/functions/std-math-log)
|
||||
* [`log10`](/docs/kcl-std/functions/std-math-log10)
|
||||
* [`log2`](/docs/kcl-std/functions/std-math-log2)
|
||||
* [`max`](/docs/kcl-std/functions/std-math-max)
|
||||
* [`min`](/docs/kcl-std/functions/std-math-min)
|
||||
* [`polar`](/docs/kcl-std/functions/std-math-polar)
|
||||
* [`pow`](/docs/kcl-std/functions/std-math-pow)
|
||||
* [`rem`](/docs/kcl-std/functions/std-math-rem)
|
||||
* [`round`](/docs/kcl-std/functions/std-math-round)
|
||||
* [`sin`](/docs/kcl-std/functions/std-math-sin)
|
||||
* [`sqrt`](/docs/kcl-std/functions/std-math-sqrt)
|
||||
* [`tan`](/docs/kcl-std/functions/std-math-tan)
|
||||
|
16
docs/kcl-std/modules/std-sketch.md
Normal file
16
docs/kcl-std/modules/std-sketch.md
Normal file
@ -0,0 +1,16 @@
|
||||
---
|
||||
title: "std::sketch"
|
||||
excerpt: ""
|
||||
layout: manual
|
||||
---
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## Functions and constants
|
||||
|
||||
* [`circle`](/docs/kcl-std/functions/std-sketch-circle)
|
||||
* [`mirror2d`](/docs/kcl-std/functions/std-sketch-mirror2d)
|
||||
|
18
docs/kcl-std/modules/std-solid.md
Normal file
18
docs/kcl-std/modules/std-solid.md
Normal file
@ -0,0 +1,18 @@
|
||||
---
|
||||
title: "std::solid"
|
||||
excerpt: ""
|
||||
layout: manual
|
||||
---
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## Functions and constants
|
||||
|
||||
* [`chamfer`](/docs/kcl-std/functions/std-solid-chamfer)
|
||||
* [`fillet`](/docs/kcl-std/functions/std-solid-fillet)
|
||||
* [`hollow`](/docs/kcl-std/functions/std-solid-hollow)
|
||||
* [`shell`](/docs/kcl-std/functions/std-solid-shell)
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user