Compare commits
53 Commits
v0.56.0
...
serena/clo
| Author | SHA1 | Date | |
|---|---|---|---|
| 422bfa5147 | |||
| 941eacd559 | |||
| e06a09ed42 | |||
| 9fcc792b7e | |||
| 1841e63021 | |||
| 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,4 @@
|
||||
[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,./test-results,./playwright-report,./kcl-book/book
|
||||
|
||||
|
||||
@ -87,6 +87,14 @@
|
||||
{
|
||||
"selector": "CallExpression[callee.object.name='TOML'][callee.property.name='parse']",
|
||||
"message": "Do not use TOML.parse directly. Use the wrappers in test-utils instead like tomlToSettings."
|
||||
},
|
||||
{
|
||||
"selector": "CallExpression[callee.property.name='split'] > Literal[value='/']",
|
||||
"message": "Avoid using split with '/'."
|
||||
},
|
||||
{
|
||||
"selector": "CallExpression[callee.property.name='join'] > Literal[value='/']",
|
||||
"message": "Avoid using join with '/'."
|
||||
}
|
||||
],
|
||||
"no-restricted-imports": [
|
||||
|
||||
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`.
|
||||
58
docs/kcl-std/angledLine.md
Normal file
58
docs/kcl-std/angledLine.md
Normal file
File diff suppressed because one or more lines are too long
52
docs/kcl-std/angledLineThatIntersects.md
Normal file
52
docs/kcl-std/angledLineThatIntersects.md
Normal file
File diff suppressed because one or more lines are too long
219
docs/kcl-std/appearance.md
Normal file
219
docs/kcl-std/appearance.md
Normal file
File diff suppressed because one or more lines are too long
65
docs/kcl-std/arc.md
Normal file
65
docs/kcl-std/arc.md
Normal file
File diff suppressed because one or more lines are too long
63
docs/kcl-std/assert.md
Normal file
63
docs/kcl-std/assert.md
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
51
docs/kcl-std/bezierCurve.md
Normal file
51
docs/kcl-std/bezierCurve.md
Normal file
File diff suppressed because one or more lines are too long
46
docs/kcl-std/circleThreePoint.md
Normal file
46
docs/kcl-std/circleThreePoint.md
Normal file
File diff suppressed because one or more lines are too long
257
docs/kcl-std/clone.md
Normal file
257
docs/kcl-std/clone.md
Normal file
File diff suppressed because one or more lines are too long
55
docs/kcl-std/close.md
Normal file
55
docs/kcl-std/close.md
Normal file
File diff suppressed because one or more lines are too long
103
docs/kcl-std/extrude.md
Normal file
103
docs/kcl-std/extrude.md
Normal file
File diff suppressed because one or more lines are too long
@ -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) - A 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) | A number | Yes |
|
||||
|
||||
### Returns
|
||||
|
||||
[`number`](/docs/kcl/types/number)
|
||||
[`number`](/docs/kcl-std/types/std-types-number) - A 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) | A number | Yes |
|
||||
|
||||
### Returns
|
||||
|
||||
[`number`](/docs/kcl/types/number)
|
||||
[`number`](/docs/kcl-std/types/std-types-number) - A 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) | A number | Yes |
|
||||
|
||||
### Returns
|
||||
|
||||
[`number`](/docs/kcl/types/number)
|
||||
[`number`](/docs/kcl-std/types/std-types-number) - A 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) | A number | Yes |
|
||||
|
||||
### Returns
|
||||
|
||||
[`number`](/docs/kcl/types/number)
|
||||
[`number`](/docs/kcl-std/types/std-types-number) - A 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) - A 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) | A number | Yes |
|
||||
|
||||
### Returns
|
||||
|
||||
[`number`](/docs/kcl/types/number)
|
||||
[`number`](/docs/kcl-std/types/std-types-number) - A 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) | A number | Yes |
|
||||
|
||||
### Returns
|
||||
|
||||
[`number`](/docs/kcl/types/number)
|
||||
[`number`](/docs/kcl-std/types/std-types-number) - A 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) - A 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) - A 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) - A point in two dimensional space.
|
||||
|
||||
|
||||
### 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) - A 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) - A 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) | A number | Yes |
|
||||
|
||||
### Returns
|
||||
|
||||
[`number`](/docs/kcl/types/number)
|
||||
[`number`](/docs/kcl-std/types/std-types-number) - A 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) | A number | Yes |
|
||||
|
||||
### Returns
|
||||
|
||||
[`number`](/docs/kcl/types/number)
|
||||
[`number`](/docs/kcl-std/types/std-types-number) - A 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) - A plane.
|
||||
|
||||
|
||||
### 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) - A sketch is a collection of paths.
|
||||
|
||||
|
||||
### Examples
|
||||
286
docs/kcl-std/functions/std-sketch-revolve.md
Normal file
286
docs/kcl-std/functions/std-sketch-revolve.md
Normal file
File diff suppressed because one or more lines are too long
@ -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) - A solid is a collection of extrude surfaces.
|
||||
|
||||
|
||||
### 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) - A solid is a collection of extrude surfaces.
|
||||
|
||||
|
||||
### 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) - A solid is a collection of extrude surfaces.
|
||||
|
||||
|
||||
### 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
|
||||
121
docs/kcl-std/functions/std-transform-mirror2d.md
Normal file
121
docs/kcl-std/functions/std-transform-mirror2d.md
Normal file
File diff suppressed because one or more lines are too long
@ -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 |
|
||||
53
docs/kcl-std/getCommonEdge.md
Normal file
53
docs/kcl-std/getCommonEdge.md
Normal file
File diff suppressed because one or more lines are too long
44
docs/kcl-std/getNextAdjacentEdge.md
Normal file
44
docs/kcl-std/getNextAdjacentEdge.md
Normal file
File diff suppressed because one or more lines are too long
44
docs/kcl-std/getOppositeEdge.md
Normal file
44
docs/kcl-std/getOppositeEdge.md
Normal file
File diff suppressed because one or more lines are too long
44
docs/kcl-std/getPreviousAdjacentEdge.md
Normal file
44
docs/kcl-std/getPreviousAdjacentEdge.md
Normal file
File diff suppressed because one or more lines are too long
162
docs/kcl-std/index.md
Normal file
162
docs/kcl-std/index.md
Normal file
@ -0,0 +1,162 @@
|
||||
---
|
||||
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)
|
||||
* [`appearance`](/docs/kcl-std/appearance)
|
||||
* [`assert`](/docs/kcl-std/assert)
|
||||
* [`assertIs`](/docs/kcl-std/assertIs)
|
||||
* [`clone`](/docs/kcl-std/clone)
|
||||
* [`helix`](/docs/kcl-std/functions/std-helix)
|
||||
* [`offsetPlane`](/docs/kcl-std/functions/std-offsetPlane)
|
||||
* [`patternLinear2d`](/docs/kcl-std/patternLinear2d)
|
||||
* [**std::array**](/docs/kcl-std/modules/std-array)
|
||||
* [`map`](/docs/kcl-std/map)
|
||||
* [`pop`](/docs/kcl-std/pop)
|
||||
* [`push`](/docs/kcl-std/push)
|
||||
* [`reduce`](/docs/kcl-std/reduce)
|
||||
* [**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)
|
||||
* [`legAngX`](/docs/kcl-std/legAngX)
|
||||
* [`legAngY`](/docs/kcl-std/legAngY)
|
||||
* [`legLen`](/docs/kcl-std/legLen)
|
||||
* [`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)
|
||||
* [`angledLine`](/docs/kcl-std/angledLine)
|
||||
* [`angledLineThatIntersects`](/docs/kcl-std/angledLineThatIntersects)
|
||||
* [`arc`](/docs/kcl-std/arc)
|
||||
* [`bezierCurve`](/docs/kcl-std/bezierCurve)
|
||||
* [`circle`](/docs/kcl-std/functions/std-sketch-circle)
|
||||
* [`circleThreePoint`](/docs/kcl-std/circleThreePoint)
|
||||
* [`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)
|
||||
* [`involuteCircular`](/docs/kcl-std/involuteCircular)
|
||||
* [`lastSegX`](/docs/kcl-std/lastSegX)
|
||||
* [`lastSegY`](/docs/kcl-std/lastSegY)
|
||||
* [`line`](/docs/kcl-std/line)
|
||||
* [`loft`](/docs/kcl-std/loft)
|
||||
* [`patternCircular2d`](/docs/kcl-std/patternCircular2d)
|
||||
* [`patternTransform2d`](/docs/kcl-std/patternTransform2d)
|
||||
* [`polygon`](/docs/kcl-std/polygon)
|
||||
* [`profileStart`](/docs/kcl-std/profileStart)
|
||||
* [`profileStartX`](/docs/kcl-std/profileStartX)
|
||||
* [`profileStartY`](/docs/kcl-std/profileStartY)
|
||||
* [`revolve`](/docs/kcl-std/functions/std-sketch-revolve)
|
||||
* [`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)
|
||||
* [`subtract2d`](/docs/kcl-std/subtract2d)
|
||||
* [`sweep`](/docs/kcl-std/sweep)
|
||||
* [`tangentToEnd`](/docs/kcl-std/tangentToEnd)
|
||||
* [`tangentialArc`](/docs/kcl-std/tangentialArc)
|
||||
* [`xLine`](/docs/kcl-std/xLine)
|
||||
* [`yLine`](/docs/kcl-std/yLine)
|
||||
* [**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)
|
||||
* [`intersect`](/docs/kcl-std/intersect)
|
||||
* [`patternCircular3d`](/docs/kcl-std/patternCircular3d)
|
||||
* [`patternLinear3d`](/docs/kcl-std/patternLinear3d)
|
||||
* [`patternTransform`](/docs/kcl-std/patternTransform)
|
||||
* [`shell`](/docs/kcl-std/functions/std-solid-shell)
|
||||
* [`subtract`](/docs/kcl-std/subtract)
|
||||
* [`union`](/docs/kcl-std/union)
|
||||
* [**std::transform**](/docs/kcl-std/modules/std-transform)
|
||||
* [`mirror2d`](/docs/kcl-std/functions/std-transform-mirror2d)
|
||||
* [`rotate`](/docs/kcl-std/rotate)
|
||||
* [`scale`](/docs/kcl-std/scale)
|
||||
* [`translate`](/docs/kcl-std/translate)
|
||||
* [**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)
|
||||
81
docs/kcl-std/intersect.md
Normal file
81
docs/kcl-std/intersect.md
Normal file
File diff suppressed because one or more lines are too long
56
docs/kcl-std/involuteCircular.md
Normal file
56
docs/kcl-std/involuteCircular.md
Normal file
File diff suppressed because one or more lines are too long
42
docs/kcl-std/lastSegX.md
Normal file
42
docs/kcl-std/lastSegX.md
Normal file
File diff suppressed because one or more lines are too long
42
docs/kcl-std/lastSegY.md
Normal file
42
docs/kcl-std/lastSegY.md
Normal file
File diff suppressed because one or more lines are too long
37
docs/kcl-std/legAngX.md
Normal file
37
docs/kcl-std/legAngX.md
Normal file
@ -0,0 +1,37 @@
|
||||
---
|
||||
title: "std::math::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) - A 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: "std::math::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) - A 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: "std::math::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) - A number
|
||||
|
||||
|
||||
### Examples
|
||||
|
||||
```kcl
|
||||
legLen(hypotenuse = 5, leg = 3)
|
||||
```
|
||||
|
||||
|
||||
|
||||
61
docs/kcl-std/line.md
Normal file
61
docs/kcl-std/line.md
Normal file
File diff suppressed because one or more lines are too long
120
docs/kcl-std/loft.md
Normal file
120
docs/kcl-std/loft.md
Normal file
File diff suppressed because one or more lines are too long
61
docs/kcl-std/map.md
Normal file
61
docs/kcl-std/map.md
Normal file
File diff suppressed because one or more lines are too long
12
docs/kcl-std/modules/std-array.md
Normal file
12
docs/kcl-std/modules/std-array.md
Normal file
@ -0,0 +1,12 @@
|
||||
---
|
||||
title: "std::array"
|
||||
excerpt: ""
|
||||
layout: manual
|
||||
---
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
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)
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user