Compare commits

..

1 Commits

Author SHA1 Message Date
b4fb903bd0 Add recursive isEven() test 2024-07-22 20:03:49 -04:00
303 changed files with 25132 additions and 98070 deletions

View File

@ -1,3 +1,3 @@
[codespell] [codespell]
ignore-words-list: crate,everytime,inout,co-ordinate,ot,nwo,absolutey,atleast,ue,afterall ignore-words-list: crate,everytime,inout,co-ordinate,ot,nwo,absolutey,atleast,ue
skip: **/target,node_modules,build,**/Cargo.lock,./docs/kcl/*.md,./src-tauri/gen/schemas skip: **/target,node_modules,build,**/Cargo.lock,./docs/kcl/*.md,./src-tauri/gen/schemas

View File

@ -20,11 +20,6 @@ concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true cancel-in-progress: true
permissions:
contents: write
pull-requests: write
actions: read
jobs: jobs:
check-format: check-format:
runs-on: 'ubuntu-latest' runs-on: 'ubuntu-latest'
@ -90,38 +85,7 @@ jobs:
- run: yarn simpleserver:ci - run: yarn simpleserver:ci
- name: Install Chromium Browser - run: yarn test:nowatch
run: yarn playwright install chromium --with-deps
- name: run unit tests
run: yarn test:nowatch
env:
VITE_KC_DEV_TOKEN: ${{ secrets.KITTYCAD_API_TOKEN_DEV }}
- name: check for changes
id: git-check
run: |
git add src/lang/std/artifactMapGraphs
if git status src/lang/std/artifactMapGraphs | grep -q "Changes to be committed"
then echo "modified=true" >> $GITHUB_OUTPUT
else echo "modified=false" >> $GITHUB_OUTPUT
fi
- name: Commit changes, if any
if: steps.git-check.outputs.modified == 'true'
run: |
git config --local user.email "github-actions[bot]@users.noreply.github.com"
git config --local user.name "github-actions[bot]"
git remote set-url origin https://${{ github.actor }}:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}.git
git fetch origin
echo ${{ github.head_ref }}
git checkout ${{ github.head_ref }}
# TODO when webkit works on ubuntu remove the os part of the commit message
git commit -am "Look at this (photo)Graph *in the voice of Nickelback*" || true
git push
git push origin ${{ github.head_ref }}
prepare-json-files: prepare-json-files:

View File

@ -1,49 +0,0 @@
name: generate machine-api types
on:
pull_request:
paths:
- 'openapi/machine-api.json'
- '.github/workflows/generate-machine-api-types.yml'
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
permissions:
contents: write
jobs:
generate:
runs-on: 'ubuntu-latest'
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
cache: 'yarn'
- run: yarn install
- run: yarn generate:machine-api
- run: yarn fmt
- name: check for changes
id: git-check
run: |
git add .
if git status | grep -q "Changes to be committed"
then echo "modified=true" >> $GITHUB_OUTPUT
else echo "modified=false" >> $GITHUB_OUTPUT
fi
- name: Commit changes, if any
if: steps.git-check.outputs.modified == 'true'
run: |
git add .
git config --local user.email "github-actions[bot]@users.noreply.github.com"
git config --local user.name "github-actions[bot]"
git remote set-url origin https://${{ github.actor }}:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}.git
git fetch origin
echo ${{ github.head_ref }}
git checkout ${{ github.head_ref }}
git commit -am "New machine-api types" || true
git push
git push origin ${{ github.head_ref }}

View File

@ -106,19 +106,13 @@ jobs:
- name: build web - name: build web
run: yarn build:local run: yarn build:local
- name: Run ubuntu/chrome snapshots - name: Run ubuntu/chrome snapshots
continue-on-error: true
run: | run: |
yarn playwright test --project="Google Chrome" --retries="3" --update-snapshots e2e/playwright/snapshot-tests.spec.ts yarn playwright test --project="Google Chrome" --update-snapshots e2e/playwright/snapshot-tests.spec.ts
env: env:
CI: true CI: true
token: ${{ secrets.KITTYCAD_API_TOKEN_DEV }} token: ${{ secrets.KITTYCAD_API_TOKEN_DEV }}
snapshottoken: ${{ secrets.KITTYCAD_API_TOKEN }} snapshottoken: ${{ secrets.KITTYCAD_API_TOKEN }}
- uses: actions/upload-artifact@v4
if: always()
with:
name: playwright-report-ubuntu-snapshot-${{ github.sha }}
path: playwright-report/
retention-days: 30
overwrite: true
- name: Clean up test-results - name: Clean up test-results
if: always() if: always()
continue-on-error: true continue-on-error: true

2
.gitignore vendored
View File

@ -39,7 +39,6 @@ src/wasm-lib/grackle/test_json_output
e2e/playwright/playwright-secrets.env e2e/playwright/playwright-secrets.env
e2e/playwright/temp1.png e2e/playwright/temp1.png
e2e/playwright/temp2.png e2e/playwright/temp2.png
e2e/playwright/temp3.png
# exports from snapshot-tests.spec.ts "exports of each format should work" # exports from snapshot-tests.spec.ts "exports of each format should work"
e2e/playwright/export-snapshots/* e2e/playwright/export-snapshots/*
!e2e/playwright/export-snapshots/*.png !e2e/playwright/export-snapshots/*.png
@ -49,7 +48,6 @@ e2e/playwright/export-snapshots/*
/playwright-report/ /playwright-report/
/blob-report/ /blob-report/
/playwright/.cache/ /playwright/.cache/
/src/lang/std/artifactMapCache
## generated files ## generated files

View File

@ -9,7 +9,7 @@ Returns the angle to match the given length for x.
```js ```js
angleToMatchLengthX(tag: TagIdentifier, to: number, sketch_group: SketchGroup) -> number angleToMatchLengthX(segment_name: TagIdentifier, to: number, sketch_group: SketchGroup) -> number
``` ```
### Examples ### Examples
@ -28,95 +28,9 @@ const extrusion = extrude(5, sketch001)
### Arguments ### Arguments
* `tag`: `TagIdentifier` (REQUIRED) * `segment_name`: `TagIdentifier` (REQUIRED)
```js ```js
{ {
// Engine information for a tag.
info: {
// The id of the tagged object.
id: uuid,
// The path the tag is on.
path: {
// The from point.
from: [number, number],
// The tag of the path.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
// The to point.
to: [number, number],
},
// The sketch group the tag is on.
sketchGroup: uuid,
// The surface information for the tag.
surface: {
// The face id for the extrude plane.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "extrudePlane",
} |
{
// The face id for the extrude plane.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
},
},
value: string, value: string,
} }
``` ```
@ -124,7 +38,7 @@ const extrusion = extrude(5, sketch001)
* `sketch_group`: `SketchGroup` - A sketch group is a collection of paths. (REQUIRED) * `sketch_group`: `SketchGroup` - A sketch group is a collection of paths. (REQUIRED)
```js ```js
{ {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: { on: {
@ -166,21 +80,15 @@ const extrusion = extrude(5, sketch001)
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -198,7 +106,7 @@ const extrusion = extrude(5, sketch001)
id: uuid, id: uuid,
// The sketch group. // The sketch group.
sketchGroup: { sketchGroup: {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: SketchSurface, on: SketchSurface,
@ -349,38 +257,6 @@ const extrusion = extrude(5, sketch001)
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
}, },
// The id of the face. // The id of the face.

View File

@ -9,7 +9,7 @@ Returns the angle to match the given length for y.
```js ```js
angleToMatchLengthY(tag: TagIdentifier, to: number, sketch_group: SketchGroup) -> number angleToMatchLengthY(segment_name: TagIdentifier, to: number, sketch_group: SketchGroup) -> number
``` ```
### Examples ### Examples
@ -32,95 +32,9 @@ const extrusion = extrude(5, sketch001)
### Arguments ### Arguments
* `tag`: `TagIdentifier` (REQUIRED) * `segment_name`: `TagIdentifier` (REQUIRED)
```js ```js
{ {
// Engine information for a tag.
info: {
// The id of the tagged object.
id: uuid,
// The path the tag is on.
path: {
// The from point.
from: [number, number],
// The tag of the path.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
// The to point.
to: [number, number],
},
// The sketch group the tag is on.
sketchGroup: uuid,
// The surface information for the tag.
surface: {
// The face id for the extrude plane.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "extrudePlane",
} |
{
// The face id for the extrude plane.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
},
},
value: string, value: string,
} }
``` ```
@ -128,7 +42,7 @@ const extrusion = extrude(5, sketch001)
* `sketch_group`: `SketchGroup` - A sketch group is a collection of paths. (REQUIRED) * `sketch_group`: `SketchGroup` - A sketch group is a collection of paths. (REQUIRED)
```js ```js
{ {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: { on: {
@ -170,21 +84,15 @@ const extrusion = extrude(5, sketch001)
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -202,7 +110,7 @@ const extrusion = extrude(5, sketch001)
id: uuid, id: uuid,
// The sketch group. // The sketch group.
sketchGroup: { sketchGroup: {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: SketchSurface, on: SketchSurface,
@ -353,38 +261,6 @@ const extrusion = extrude(5, sketch001)
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
}, },
// The id of the face. // The id of the face.

View File

@ -33,7 +33,7 @@ const example = extrude(10, exampleSketch)
* `data`: `AngledLineData` - Data to draw an angled line. (REQUIRED) * `data`: `AngledLineData` - Data to draw an angled line. (REQUIRED)
```js ```js
{ {
// The angle of the line (in degrees). // The angle of the line.
angle: number, angle: number,
// The length of the line. // The length of the line.
length: number, length: number,
@ -43,7 +43,7 @@ const example = extrude(10, exampleSketch)
* `sketch_group`: `SketchGroup` - A sketch group is a collection of paths. (REQUIRED) * `sketch_group`: `SketchGroup` - A sketch group is a collection of paths. (REQUIRED)
```js ```js
{ {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: { on: {
@ -85,21 +85,15 @@ const example = extrude(10, exampleSketch)
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -117,7 +111,7 @@ const example = extrude(10, exampleSketch)
id: uuid, id: uuid,
// The sketch group. // The sketch group.
sketchGroup: { sketchGroup: {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: SketchSurface, on: SketchSurface,
@ -268,38 +262,6 @@ const example = extrude(10, exampleSketch)
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
}, },
// The id of the face. // The id of the face.
@ -455,7 +417,7 @@ const example = extrude(10, exampleSketch)
`SketchGroup` - A sketch group is a collection of paths. `SketchGroup` - A sketch group is a collection of paths.
```js ```js
{ {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: { on: {
@ -497,21 +459,15 @@ const example = extrude(10, exampleSketch)
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -529,7 +485,7 @@ const example = extrude(10, exampleSketch)
id: uuid, id: uuid,
// The sketch group. // The sketch group.
sketchGroup: { sketchGroup: {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: SketchSurface, on: SketchSurface,
@ -680,38 +636,6 @@ const example = extrude(10, exampleSketch)
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
}, },
// The id of the face. // The id of the face.

View File

@ -32,7 +32,7 @@ const extrusion = extrude(10, sketch001)
* `data`: `AngledLineData` - Data to draw an angled line. (REQUIRED) * `data`: `AngledLineData` - Data to draw an angled line. (REQUIRED)
```js ```js
{ {
// The angle of the line (in degrees). // The angle of the line.
angle: number, angle: number,
// The length of the line. // The length of the line.
length: number, length: number,
@ -42,7 +42,7 @@ const extrusion = extrude(10, sketch001)
* `sketch_group`: `SketchGroup` - A sketch group is a collection of paths. (REQUIRED) * `sketch_group`: `SketchGroup` - A sketch group is a collection of paths. (REQUIRED)
```js ```js
{ {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: { on: {
@ -84,21 +84,15 @@ const extrusion = extrude(10, sketch001)
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -116,7 +110,7 @@ const extrusion = extrude(10, sketch001)
id: uuid, id: uuid,
// The sketch group. // The sketch group.
sketchGroup: { sketchGroup: {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: SketchSurface, on: SketchSurface,
@ -267,38 +261,6 @@ const extrusion = extrude(10, sketch001)
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
}, },
// The id of the face. // The id of the face.
@ -454,7 +416,7 @@ const extrusion = extrude(10, sketch001)
`SketchGroup` - A sketch group is a collection of paths. `SketchGroup` - A sketch group is a collection of paths.
```js ```js
{ {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: { on: {
@ -496,21 +458,15 @@ const extrusion = extrude(10, sketch001)
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -528,7 +484,7 @@ const extrusion = extrude(10, sketch001)
id: uuid, id: uuid,
// The sketch group. // The sketch group.
sketchGroup: { sketchGroup: {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: SketchSurface, on: SketchSurface,
@ -679,38 +635,6 @@ const extrusion = extrude(10, sketch001)
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
}, },
// The id of the face. // The id of the face.

View File

@ -34,7 +34,7 @@ const example = extrude(10, exampleSketch)
* `data`: `AngledLineData` - Data to draw an angled line. (REQUIRED) * `data`: `AngledLineData` - Data to draw an angled line. (REQUIRED)
```js ```js
{ {
// The angle of the line (in degrees). // The angle of the line.
angle: number, angle: number,
// The length of the line. // The length of the line.
length: number, length: number,
@ -44,7 +44,7 @@ const example = extrude(10, exampleSketch)
* `sketch_group`: `SketchGroup` - A sketch group is a collection of paths. (REQUIRED) * `sketch_group`: `SketchGroup` - A sketch group is a collection of paths. (REQUIRED)
```js ```js
{ {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: { on: {
@ -86,21 +86,15 @@ const example = extrude(10, exampleSketch)
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -118,7 +112,7 @@ const example = extrude(10, exampleSketch)
id: uuid, id: uuid,
// The sketch group. // The sketch group.
sketchGroup: { sketchGroup: {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: SketchSurface, on: SketchSurface,
@ -269,38 +263,6 @@ const example = extrude(10, exampleSketch)
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
}, },
// The id of the face. // The id of the face.
@ -456,7 +418,7 @@ const example = extrude(10, exampleSketch)
`SketchGroup` - A sketch group is a collection of paths. `SketchGroup` - A sketch group is a collection of paths.
```js ```js
{ {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: { on: {
@ -498,21 +460,15 @@ const example = extrude(10, exampleSketch)
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -530,7 +486,7 @@ const example = extrude(10, exampleSketch)
id: uuid, id: uuid,
// The sketch group. // The sketch group.
sketchGroup: { sketchGroup: {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: SketchSurface, on: SketchSurface,
@ -681,38 +637,6 @@ const example = extrude(10, exampleSketch)
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
}, },
// The id of the face. // The id of the face.

View File

@ -22,7 +22,7 @@ const exampleSketch = startSketchOn('XZ')
|> lineTo([0, 20], %) |> lineTo([0, 20], %)
|> angledLineThatIntersects({ |> angledLineThatIntersects({
angle: 80, angle: 80,
intersectTag: lineToIntersect, intersectTag: 'lineToIntersect',
offset: 10 offset: 10
}, %) }, %)
|> close(%) |> close(%)
@ -41,92 +41,6 @@ const example = extrude(10, exampleSketch)
angle: number, angle: number,
// The tag of the line to intersect with. // The tag of the line to intersect with.
intersectTag: { intersectTag: {
// Engine information for a tag.
info: {
// The id of the tagged object.
id: uuid,
// The path the tag is on.
path: {
// The from point.
from: [number, number],
// The tag of the path.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
// The to point.
to: [number, number],
},
// The sketch group the tag is on.
sketchGroup: uuid,
// The surface information for the tag.
surface: {
// The face id for the extrude plane.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "extrudePlane",
} |
{
// The face id for the extrude plane.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
},
},
value: string, value: string,
}, },
// The offset from the intersecting line. // The offset from the intersecting line.
@ -136,7 +50,7 @@ const example = extrude(10, exampleSketch)
* `sketch_group`: `SketchGroup` - A sketch group is a collection of paths. (REQUIRED) * `sketch_group`: `SketchGroup` - A sketch group is a collection of paths. (REQUIRED)
```js ```js
{ {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: { on: {
@ -178,21 +92,15 @@ const example = extrude(10, exampleSketch)
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -210,7 +118,7 @@ const example = extrude(10, exampleSketch)
id: uuid, id: uuid,
// The sketch group. // The sketch group.
sketchGroup: { sketchGroup: {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: SketchSurface, on: SketchSurface,
@ -361,38 +269,6 @@ const example = extrude(10, exampleSketch)
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
}, },
// The id of the face. // The id of the face.
@ -548,7 +424,7 @@ const example = extrude(10, exampleSketch)
`SketchGroup` - A sketch group is a collection of paths. `SketchGroup` - A sketch group is a collection of paths.
```js ```js
{ {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: { on: {
@ -590,21 +466,15 @@ const example = extrude(10, exampleSketch)
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -622,7 +492,7 @@ const example = extrude(10, exampleSketch)
id: uuid, id: uuid,
// The sketch group. // The sketch group.
sketchGroup: { sketchGroup: {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: SketchSurface, on: SketchSurface,
@ -773,38 +643,6 @@ const example = extrude(10, exampleSketch)
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
}, },
// The id of the face. // The id of the face.

View File

@ -41,7 +41,7 @@ const example = extrude(10, exampleSketch)
* `sketch_group`: `SketchGroup` - A sketch group is a collection of paths. (REQUIRED) * `sketch_group`: `SketchGroup` - A sketch group is a collection of paths. (REQUIRED)
```js ```js
{ {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: { on: {
@ -83,21 +83,15 @@ const example = extrude(10, exampleSketch)
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -115,7 +109,7 @@ const example = extrude(10, exampleSketch)
id: uuid, id: uuid,
// The sketch group. // The sketch group.
sketchGroup: { sketchGroup: {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: SketchSurface, on: SketchSurface,
@ -266,38 +260,6 @@ const example = extrude(10, exampleSketch)
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
}, },
// The id of the face. // The id of the face.
@ -453,7 +415,7 @@ const example = extrude(10, exampleSketch)
`SketchGroup` - A sketch group is a collection of paths. `SketchGroup` - A sketch group is a collection of paths.
```js ```js
{ {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: { on: {
@ -495,21 +457,15 @@ const example = extrude(10, exampleSketch)
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -527,7 +483,7 @@ const example = extrude(10, exampleSketch)
id: uuid, id: uuid,
// The sketch group. // The sketch group.
sketchGroup: { sketchGroup: {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: SketchSurface, on: SketchSurface,
@ -678,38 +634,6 @@ const example = extrude(10, exampleSketch)
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
}, },
// The id of the face. // The id of the face.

View File

@ -41,7 +41,7 @@ const example = extrude(10, exampleSketch)
* `sketch_group`: `SketchGroup` - A sketch group is a collection of paths. (REQUIRED) * `sketch_group`: `SketchGroup` - A sketch group is a collection of paths. (REQUIRED)
```js ```js
{ {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: { on: {
@ -83,21 +83,15 @@ const example = extrude(10, exampleSketch)
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -115,7 +109,7 @@ const example = extrude(10, exampleSketch)
id: uuid, id: uuid,
// The sketch group. // The sketch group.
sketchGroup: { sketchGroup: {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: SketchSurface, on: SketchSurface,
@ -266,38 +260,6 @@ const example = extrude(10, exampleSketch)
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
}, },
// The id of the face. // The id of the face.
@ -453,7 +415,7 @@ const example = extrude(10, exampleSketch)
`SketchGroup` - A sketch group is a collection of paths. `SketchGroup` - A sketch group is a collection of paths.
```js ```js
{ {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: { on: {
@ -495,21 +457,15 @@ const example = extrude(10, exampleSketch)
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -527,7 +483,7 @@ const example = extrude(10, exampleSketch)
id: uuid, id: uuid,
// The sketch group. // The sketch group.
sketchGroup: { sketchGroup: {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: SketchSurface, on: SketchSurface,
@ -678,38 +634,6 @@ const example = extrude(10, exampleSketch)
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
}, },
// The id of the face. // The id of the face.

View File

@ -19,8 +19,8 @@ const exampleSketch = startSketchOn('XZ')
|> startProfileAt([0, 0], %) |> startProfileAt([0, 0], %)
|> line([10, 0], %) |> line([10, 0], %)
|> arc({ |> arc({
angleStart: 0, angle_start: 0,
angleEnd: 280, angle_end: 280,
radius: 16 radius: 16
}, %) }, %)
|> close(%) |> close(%)
@ -34,9 +34,9 @@ const exampleSketch = startSketchOn('XZ')
```js ```js
{ {
// The end angle. // The end angle.
angleEnd: number, angle_end: number,
// The start angle. // The start angle.
angleStart: number, angle_start: number,
// The radius. // The radius.
radius: number, radius: number,
} | } |
@ -52,7 +52,7 @@ const exampleSketch = startSketchOn('XZ')
* `sketch_group`: `SketchGroup` - A sketch group is a collection of paths. (REQUIRED) * `sketch_group`: `SketchGroup` - A sketch group is a collection of paths. (REQUIRED)
```js ```js
{ {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: { on: {
@ -94,21 +94,15 @@ const exampleSketch = startSketchOn('XZ')
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -126,7 +120,7 @@ const exampleSketch = startSketchOn('XZ')
id: uuid, id: uuid,
// The sketch group. // The sketch group.
sketchGroup: { sketchGroup: {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: SketchSurface, on: SketchSurface,
@ -277,38 +271,6 @@ const exampleSketch = startSketchOn('XZ')
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
}, },
// The id of the face. // The id of the face.
@ -464,7 +426,7 @@ const exampleSketch = startSketchOn('XZ')
`SketchGroup` - A sketch group is a collection of paths. `SketchGroup` - A sketch group is a collection of paths.
```js ```js
{ {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: { on: {
@ -506,21 +468,15 @@ const exampleSketch = startSketchOn('XZ')
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -538,7 +494,7 @@ const exampleSketch = startSketchOn('XZ')
id: uuid, id: uuid,
// The sketch group. // The sketch group.
sketchGroup: { sketchGroup: {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: SketchSurface, on: SketchSurface,
@ -689,38 +645,6 @@ const exampleSketch = startSketchOn('XZ')
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
}, },
// The id of the face. // The id of the face.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -47,7 +47,7 @@ const example = extrude(10, exampleSketch)
* `sketch_group`: `SketchGroup` - A sketch group is a collection of paths. (REQUIRED) * `sketch_group`: `SketchGroup` - A sketch group is a collection of paths. (REQUIRED)
```js ```js
{ {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: { on: {
@ -89,21 +89,15 @@ const example = extrude(10, exampleSketch)
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -121,7 +115,7 @@ const example = extrude(10, exampleSketch)
id: uuid, id: uuid,
// The sketch group. // The sketch group.
sketchGroup: { sketchGroup: {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: SketchSurface, on: SketchSurface,
@ -272,38 +266,6 @@ const example = extrude(10, exampleSketch)
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
}, },
// The id of the face. // The id of the face.
@ -459,7 +421,7 @@ const example = extrude(10, exampleSketch)
`SketchGroup` - A sketch group is a collection of paths. `SketchGroup` - A sketch group is a collection of paths.
```js ```js
{ {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: { on: {
@ -501,21 +463,15 @@ const example = extrude(10, exampleSketch)
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -533,7 +489,7 @@ const example = extrude(10, exampleSketch)
id: uuid, id: uuid,
// The sketch group. // The sketch group.
sketchGroup: { sketchGroup: {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: SketchSurface, on: SketchSurface,
@ -684,38 +640,6 @@ const example = extrude(10, exampleSketch)
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
}, },
// The id of the face. // The id of the face.

View File

@ -31,10 +31,10 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
|> chamfer({ |> chamfer({
length: chamferLength, length: chamferLength,
tags: [ tags: [
getNextAdjacentEdge(edge1), getNextAdjacentEdge(edge1, %),
getNextAdjacentEdge(edge2), getNextAdjacentEdge(edge2, %),
getNextAdjacentEdge(edge3), getNextAdjacentEdge(edge3, %),
getNextAdjacentEdge(edge4) getNextAdjacentEdge(edge4, %)
] ]
}, %) }, %)
``` ```
@ -51,92 +51,6 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
// The tags of the paths you want to chamfer. // The tags of the paths you want to chamfer.
tags: [uuid | tags: [uuid |
{ {
// Engine information for a tag.
info: {
// The id of the tagged object.
id: uuid,
// The path the tag is on.
path: {
// The from point.
from: [number, number],
// The tag of the path.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
// The to point.
to: [number, number],
},
// The sketch group the tag is on.
sketchGroup: uuid,
// The surface information for the tag.
surface: {
// The face id for the extrude plane.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "extrudePlane",
} |
{
// The face id for the extrude plane.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
},
},
value: string, value: string,
}], }],
} }
@ -149,21 +63,15 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -181,7 +89,7 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
id: uuid, id: uuid,
// The sketch group. // The sketch group.
sketchGroup: { sketchGroup: {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: { on: {
@ -223,21 +131,15 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -289,38 +191,6 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
}, },
// The id of the face. // The id of the face.
@ -494,38 +364,6 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
} }
``` ```
@ -549,21 +387,15 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -581,7 +413,7 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
id: uuid, id: uuid,
// The sketch group. // The sketch group.
sketchGroup: { sketchGroup: {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: { on: {
@ -623,21 +455,15 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -689,38 +515,6 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
}, },
// The id of the face. // The id of the face.
@ -894,38 +688,6 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
} }
``` ```

View File

@ -82,21 +82,15 @@ const example = extrude(5, exampleSketch)
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -114,7 +108,7 @@ const example = extrude(5, exampleSketch)
id: uuid, id: uuid,
// The sketch group. // The sketch group.
sketchGroup: { sketchGroup: {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: SketchSurface, on: SketchSurface,
@ -265,38 +259,6 @@ const example = extrude(5, exampleSketch)
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
}, },
// The id of the face. // The id of the face.
@ -324,7 +286,7 @@ const example = extrude(5, exampleSketch)
}, },
} | } |
{ {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: { on: {
@ -366,21 +328,15 @@ const example = extrude(5, exampleSketch)
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -432,38 +388,6 @@ const example = extrude(5, exampleSketch)
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
}, },
// The id of the face. // The id of the face.
@ -619,7 +543,7 @@ const example = extrude(5, exampleSketch)
`SketchGroup` - A sketch group is a collection of paths. `SketchGroup` - A sketch group is a collection of paths.
```js ```js
{ {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: { on: {
@ -661,21 +585,15 @@ const example = extrude(5, exampleSketch)
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -693,7 +611,7 @@ const example = extrude(5, exampleSketch)
id: uuid, id: uuid,
// The sketch group. // The sketch group.
sketchGroup: { sketchGroup: {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: SketchSurface, on: SketchSurface,
@ -844,38 +762,6 @@ const example = extrude(5, exampleSketch)
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
}, },
// The id of the face. // The id of the face.

View File

@ -42,7 +42,7 @@ const example = extrude(10, exampleSketch)
* `sketch_group`: `SketchGroup` - A sketch group is a collection of paths. (REQUIRED) * `sketch_group`: `SketchGroup` - A sketch group is a collection of paths. (REQUIRED)
```js ```js
{ {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: { on: {
@ -84,21 +84,15 @@ const example = extrude(10, exampleSketch)
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -116,7 +110,7 @@ const example = extrude(10, exampleSketch)
id: uuid, id: uuid,
// The sketch group. // The sketch group.
sketchGroup: { sketchGroup: {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: SketchSurface, on: SketchSurface,
@ -267,38 +261,6 @@ const example = extrude(10, exampleSketch)
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
}, },
// The id of the face. // The id of the face.
@ -454,7 +416,7 @@ const example = extrude(10, exampleSketch)
`SketchGroup` - A sketch group is a collection of paths. `SketchGroup` - A sketch group is a collection of paths.
```js ```js
{ {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: { on: {
@ -496,21 +458,15 @@ const example = extrude(10, exampleSketch)
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -528,7 +484,7 @@ const example = extrude(10, exampleSketch)
id: uuid, id: uuid,
// The sketch group. // The sketch group.
sketchGroup: { sketchGroup: {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: SketchSurface, on: SketchSurface,
@ -679,38 +635,6 @@ const example = extrude(10, exampleSketch)
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
}, },
// The id of the face. // The id of the face.

View File

@ -19,8 +19,8 @@ const example = startSketchOn('XZ')
|> startProfileAt([0, 0], %) |> startProfileAt([0, 0], %)
|> line([10, 0], %) |> line([10, 0], %)
|> arc({ |> arc({
angleStart: 120, angle_end: 0,
angleEnd: 0, angle_start: 120,
radius: 5 radius: 5
}, %) }, %)
|> line([5, 0], %) |> line([5, 0], %)
@ -41,8 +41,8 @@ const example = startSketchOn('XZ')
const exampleSketch = startSketchOn('XZ') const exampleSketch = startSketchOn('XZ')
|> startProfileAt([-10, 0], %) |> startProfileAt([-10, 0], %)
|> arc({ |> arc({
angleStart: 120, angle_end: -60,
angleEnd: -60, angle_start: 120,
radius: 5 radius: 5
}, %) }, %)
|> line([10, 0], %) |> line([10, 0], %)
@ -67,7 +67,7 @@ const example = extrude(10, exampleSketch)
* `sketch_group_set`: `SketchGroupSet` - A sketch group or a group of sketch groups. (REQUIRED) * `sketch_group_set`: `SketchGroupSet` - A sketch group or a group of sketch groups. (REQUIRED)
```js ```js
{ {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: { on: {
@ -109,21 +109,15 @@ const example = extrude(10, exampleSketch)
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -141,7 +135,7 @@ const example = extrude(10, exampleSketch)
id: uuid, id: uuid,
// The sketch group. // The sketch group.
sketchGroup: { sketchGroup: {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: SketchSurface, on: SketchSurface,
@ -292,38 +286,6 @@ const example = extrude(10, exampleSketch)
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
}, },
// The id of the face. // The id of the face.
@ -479,21 +441,15 @@ const example = extrude(10, exampleSketch)
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -511,7 +467,7 @@ const example = extrude(10, exampleSketch)
id: uuid, id: uuid,
// The sketch group. // The sketch group.
sketchGroup: { sketchGroup: {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: { on: {
@ -553,21 +509,15 @@ const example = extrude(10, exampleSketch)
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -619,38 +569,6 @@ const example = extrude(10, exampleSketch)
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
}, },
// The id of the face. // The id of the face.
@ -825,38 +743,6 @@ const example = extrude(10, exampleSketch)
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
} | } |
{ {

File diff suppressed because one or more lines are too long

366
docs/kcl/getEdge.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

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -19,9 +19,10 @@ const part001 = startSketchOn('XY')
|> circle([5, 5], 10, %) |> circle([5, 5], 10, %)
|> extrude(10, %) |> extrude(10, %)
|> helix({ |> helix({
angleStart: 0, angle_start: 0,
ccw: true, ccw: true,
revolutions: 16 revolutions: 16,
angle_start: 0
}, %) }, %)
``` ```
@ -33,7 +34,7 @@ const part001 = startSketchOn('XY')
```js ```js
{ {
// Start angle (in degrees). // Start angle (in degrees).
angleStart: number, angle_start: number,
// Is the helix rotation counter clockwise? The default is `false`. // Is the helix rotation counter clockwise? The default is `false`.
ccw: string, ccw: string,
// Length of the helix. If this argument is not provided, the height of the extrude group is used. // Length of the helix. If this argument is not provided, the height of the extrude group is used.
@ -50,21 +51,15 @@ const part001 = startSketchOn('XY')
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -82,7 +77,7 @@ const part001 = startSketchOn('XY')
id: uuid, id: uuid,
// The sketch group. // The sketch group.
sketchGroup: { sketchGroup: {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: { on: {
@ -124,21 +119,15 @@ const part001 = startSketchOn('XY')
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -190,38 +179,6 @@ const part001 = startSketchOn('XY')
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
}, },
// The id of the face. // The id of the face.
@ -395,38 +352,6 @@ const part001 = startSketchOn('XY')
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
} }
``` ```
@ -441,21 +366,15 @@ const part001 = startSketchOn('XY')
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -473,7 +392,7 @@ const part001 = startSketchOn('XY')
id: uuid, id: uuid,
// The sketch group. // The sketch group.
sketchGroup: { sketchGroup: {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: { on: {
@ -515,21 +434,15 @@ const part001 = startSketchOn('XY')
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -581,38 +494,6 @@ const part001 = startSketchOn('XY')
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
}, },
// The id of the face. // The id of the face.
@ -786,38 +667,6 @@ const part001 = startSketchOn('XY')
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
} }
``` ```

View File

@ -53,7 +53,7 @@ const example = extrude(1, exampleSketch)
* `hole_sketch_group`: `SketchGroupSet` - A sketch group or a group of sketch groups. (REQUIRED) * `hole_sketch_group`: `SketchGroupSet` - A sketch group or a group of sketch groups. (REQUIRED)
```js ```js
{ {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: { on: {
@ -95,21 +95,15 @@ const example = extrude(1, exampleSketch)
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -127,7 +121,7 @@ const example = extrude(1, exampleSketch)
id: uuid, id: uuid,
// The sketch group. // The sketch group.
sketchGroup: { sketchGroup: {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: SketchSurface, on: SketchSurface,
@ -278,38 +272,6 @@ const example = extrude(1, exampleSketch)
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
}, },
// The id of the face. // The id of the face.
@ -457,7 +419,7 @@ const example = extrude(1, exampleSketch)
* `sketch_group`: `SketchGroup` - A sketch group is a collection of paths. (REQUIRED) * `sketch_group`: `SketchGroup` - A sketch group is a collection of paths. (REQUIRED)
```js ```js
{ {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: { on: {
@ -499,21 +461,15 @@ const example = extrude(1, exampleSketch)
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -531,7 +487,7 @@ const example = extrude(1, exampleSketch)
id: uuid, id: uuid,
// The sketch group. // The sketch group.
sketchGroup: { sketchGroup: {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: SketchSurface, on: SketchSurface,
@ -682,38 +638,6 @@ const example = extrude(1, exampleSketch)
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
}, },
// The id of the face. // The id of the face.
@ -860,7 +784,7 @@ const example = extrude(1, exampleSketch)
`SketchGroup` - A sketch group is a collection of paths. `SketchGroup` - A sketch group is a collection of paths.
```js ```js
{ {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: { on: {
@ -902,21 +826,15 @@ const example = extrude(1, exampleSketch)
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -934,7 +852,7 @@ const example = extrude(1, exampleSketch)
id: uuid, id: uuid,
// The sketch group. // The sketch group.
sketchGroup: { sketchGroup: {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: SketchSurface, on: SketchSurface,
@ -1085,38 +1003,6 @@ const example = extrude(1, exampleSketch)
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
}, },
// The id of the face. // The id of the face.

View File

@ -20,11 +20,6 @@ layout: manual
* [`angledLineToY`](kcl/angledLineToY) * [`angledLineToY`](kcl/angledLineToY)
* [`arc`](kcl/arc) * [`arc`](kcl/arc)
* [`asin`](kcl/asin) * [`asin`](kcl/asin)
* [`assert`](kcl/assert)
* [`assertGreaterThan`](kcl/assertGreaterThan)
* [`assertGreaterThanOrEq`](kcl/assertGreaterThanOrEq)
* [`assertLessThan`](kcl/assertLessThan)
* [`assertLessThanOrEq`](kcl/assertLessThanOrEq)
* [`atan`](kcl/atan) * [`atan`](kcl/atan)
* [`bezierCurve`](kcl/bezierCurve) * [`bezierCurve`](kcl/bezierCurve)
* [`ceil`](kcl/ceil) * [`ceil`](kcl/ceil)
@ -36,13 +31,13 @@ layout: manual
* [`extrude`](kcl/extrude) * [`extrude`](kcl/extrude)
* [`fillet`](kcl/fillet) * [`fillet`](kcl/fillet)
* [`floor`](kcl/floor) * [`floor`](kcl/floor)
* [`getEdge`](kcl/getEdge)
* [`getNextAdjacentEdge`](kcl/getNextAdjacentEdge) * [`getNextAdjacentEdge`](kcl/getNextAdjacentEdge)
* [`getOppositeEdge`](kcl/getOppositeEdge) * [`getOppositeEdge`](kcl/getOppositeEdge)
* [`getPreviousAdjacentEdge`](kcl/getPreviousAdjacentEdge) * [`getPreviousAdjacentEdge`](kcl/getPreviousAdjacentEdge)
* [`helix`](kcl/helix) * [`helix`](kcl/helix)
* [`hole`](kcl/hole) * [`hole`](kcl/hole)
* [`import`](kcl/import) * [`import`](kcl/import)
* [`int`](kcl/int)
* [`lastSegX`](kcl/lastSegX) * [`lastSegX`](kcl/lastSegX)
* [`lastSegY`](kcl/lastSegY) * [`lastSegY`](kcl/lastSegY)
* [`legAngX`](kcl/legAngX) * [`legAngX`](kcl/legAngX)
@ -62,7 +57,6 @@ layout: manual
* [`patternLinear3d`](kcl/patternLinear3d) * [`patternLinear3d`](kcl/patternLinear3d)
* [`patternTransform`](kcl/patternTransform) * [`patternTransform`](kcl/patternTransform)
* [`pi`](kcl/pi) * [`pi`](kcl/pi)
* [`polar`](kcl/polar)
* [`pow`](kcl/pow) * [`pow`](kcl/pow)
* [`profileStart`](kcl/profileStart) * [`profileStart`](kcl/profileStart)
* [`profileStartX`](kcl/profileStartX) * [`profileStartX`](kcl/profileStartX)

File diff suppressed because one or more lines are too long

View File

@ -33,7 +33,7 @@ const example = extrude(5, exampleSketch)
* `sketch_group`: `SketchGroup` - A sketch group is a collection of paths. (REQUIRED) * `sketch_group`: `SketchGroup` - A sketch group is a collection of paths. (REQUIRED)
```js ```js
{ {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: { on: {
@ -75,21 +75,15 @@ const example = extrude(5, exampleSketch)
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -107,7 +101,7 @@ const example = extrude(5, exampleSketch)
id: uuid, id: uuid,
// The sketch group. // The sketch group.
sketchGroup: { sketchGroup: {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: SketchSurface, on: SketchSurface,
@ -258,38 +252,6 @@ const example = extrude(5, exampleSketch)
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
}, },
// The id of the face. // The id of the face.

View File

@ -33,7 +33,7 @@ const example = extrude(5, exampleSketch)
* `sketch_group`: `SketchGroup` - A sketch group is a collection of paths. (REQUIRED) * `sketch_group`: `SketchGroup` - A sketch group is a collection of paths. (REQUIRED)
```js ```js
{ {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: { on: {
@ -75,21 +75,15 @@ const example = extrude(5, exampleSketch)
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -107,7 +101,7 @@ const example = extrude(5, exampleSketch)
id: uuid, id: uuid,
// The sketch group. // The sketch group.
sketchGroup: { sketchGroup: {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: SketchSurface, on: SketchSurface,
@ -258,38 +252,6 @@ const example = extrude(5, exampleSketch)
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
}, },
// The id of the face. // The id of the face.

View File

@ -46,7 +46,7 @@ const example = extrude(5, exampleSketch)
* `sketch_group`: `SketchGroup` - A sketch group is a collection of paths. (REQUIRED) * `sketch_group`: `SketchGroup` - A sketch group is a collection of paths. (REQUIRED)
```js ```js
{ {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: { on: {
@ -88,21 +88,15 @@ const example = extrude(5, exampleSketch)
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -120,7 +114,7 @@ const example = extrude(5, exampleSketch)
id: uuid, id: uuid,
// The sketch group. // The sketch group.
sketchGroup: { sketchGroup: {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: SketchSurface, on: SketchSurface,
@ -271,38 +265,6 @@ const example = extrude(5, exampleSketch)
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
}, },
// The id of the face. // The id of the face.
@ -458,7 +420,7 @@ const example = extrude(5, exampleSketch)
`SketchGroup` - A sketch group is a collection of paths. `SketchGroup` - A sketch group is a collection of paths.
```js ```js
{ {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: { on: {
@ -500,21 +462,15 @@ const example = extrude(5, exampleSketch)
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -532,7 +488,7 @@ const example = extrude(5, exampleSketch)
id: uuid, id: uuid,
// The sketch group. // The sketch group.
sketchGroup: { sketchGroup: {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: SketchSurface, on: SketchSurface,
@ -683,38 +639,6 @@ const example = extrude(5, exampleSketch)
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
}, },
// The id of the face. // The id of the face.

View File

@ -33,7 +33,7 @@ const example = extrude(5, exampleSketch)
* `sketch_group`: `SketchGroup` - A sketch group is a collection of paths. (REQUIRED) * `sketch_group`: `SketchGroup` - A sketch group is a collection of paths. (REQUIRED)
```js ```js
{ {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: { on: {
@ -75,21 +75,15 @@ const example = extrude(5, exampleSketch)
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -107,7 +101,7 @@ const example = extrude(5, exampleSketch)
id: uuid, id: uuid,
// The sketch group. // The sketch group.
sketchGroup: { sketchGroup: {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: SketchSurface, on: SketchSurface,
@ -258,38 +252,6 @@ const example = extrude(5, exampleSketch)
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
}, },
// The id of the face. // The id of the face.
@ -445,7 +407,7 @@ const example = extrude(5, exampleSketch)
`SketchGroup` - A sketch group is a collection of paths. `SketchGroup` - A sketch group is a collection of paths.
```js ```js
{ {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: { on: {
@ -487,21 +449,15 @@ const example = extrude(5, exampleSketch)
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -519,7 +475,7 @@ const example = extrude(5, exampleSketch)
id: uuid, id: uuid,
// The sketch group. // The sketch group.
sketchGroup: { sketchGroup: {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: SketchSurface, on: SketchSurface,
@ -670,38 +626,6 @@ const example = extrude(5, exampleSketch)
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
}, },
// The id of the face. // The id of the face.

View File

@ -51,7 +51,7 @@ const example = extrude(1, exampleSketch)
* `sketch_group_set`: `SketchGroupSet` - A sketch group or a group of sketch groups. (REQUIRED) * `sketch_group_set`: `SketchGroupSet` - A sketch group or a group of sketch groups. (REQUIRED)
```js ```js
{ {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: { on: {
@ -93,21 +93,15 @@ const example = extrude(1, exampleSketch)
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -125,7 +119,7 @@ const example = extrude(1, exampleSketch)
id: uuid, id: uuid,
// The sketch group. // The sketch group.
sketchGroup: { sketchGroup: {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: SketchSurface, on: SketchSurface,
@ -276,38 +270,6 @@ const example = extrude(1, exampleSketch)
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
}, },
// The id of the face. // The id of the face.

View File

@ -55,21 +55,15 @@ const example = extrude(-5, exampleSketch)
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -87,7 +81,7 @@ const example = extrude(-5, exampleSketch)
id: uuid, id: uuid,
// The sketch group. // The sketch group.
sketchGroup: { sketchGroup: {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: { on: {
@ -129,21 +123,15 @@ const example = extrude(-5, exampleSketch)
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -195,38 +183,6 @@ const example = extrude(-5, exampleSketch)
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
}, },
// The id of the face. // The id of the face.
@ -401,38 +357,6 @@ const example = extrude(-5, exampleSketch)
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
} | } |
{ {

View File

@ -44,7 +44,7 @@ const example = extrude(1, exampleSketch)
* `sketch_group_set`: `SketchGroupSet` - A sketch group or a group of sketch groups. (REQUIRED) * `sketch_group_set`: `SketchGroupSet` - A sketch group or a group of sketch groups. (REQUIRED)
```js ```js
{ {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: { on: {
@ -86,21 +86,15 @@ const example = extrude(1, exampleSketch)
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -118,7 +112,7 @@ const example = extrude(1, exampleSketch)
id: uuid, id: uuid,
// The sketch group. // The sketch group.
sketchGroup: { sketchGroup: {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: SketchSurface, on: SketchSurface,
@ -269,38 +263,6 @@ const example = extrude(1, exampleSketch)
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
}, },
// The id of the face. // The id of the face.

View File

@ -53,21 +53,15 @@ const example = extrude(1, exampleSketch)
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -85,7 +79,7 @@ const example = extrude(1, exampleSketch)
id: uuid, id: uuid,
// The sketch group. // The sketch group.
sketchGroup: { sketchGroup: {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: { on: {
@ -127,21 +121,15 @@ const example = extrude(1, exampleSketch)
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -193,38 +181,6 @@ const example = extrude(1, exampleSketch)
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
}, },
// The id of the face. // The id of the face.
@ -399,38 +355,6 @@ const example = extrude(1, exampleSketch)
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
} | } |
{ {

View File

@ -55,21 +55,15 @@ let vase = layer()
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -87,7 +81,7 @@ let vase = layer()
id: uuid, id: uuid,
// The sketch group. // The sketch group.
sketchGroup: { sketchGroup: {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: { on: {
@ -129,21 +123,15 @@ let vase = layer()
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -195,38 +183,6 @@ let vase = layer()
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
}, },
// The id of the face. // The id of the face.
@ -401,38 +357,6 @@ let vase = layer()
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
} | } |
{ {

File diff suppressed because one or more lines are too long

View File

@ -19,7 +19,7 @@ const sketch001 = startSketchOn('XY')
|> startProfileAt([5, 2], %) |> startProfileAt([5, 2], %)
|> angledLine({ angle: 120, length: 50 }, %, $seg01) |> angledLine({ angle: 120, length: 50 }, %, $seg01)
|> angledLine({ |> angledLine({
angle: segAng(seg01) + 120, angle: segAng(seg01, %) + 120,
length: 50 length: 50
}, %) }, %)
|> lineTo(profileStart(%), %) |> lineTo(profileStart(%), %)
@ -34,7 +34,7 @@ const sketch001 = startSketchOn('XY')
* `sketch_group`: `SketchGroup` - A sketch group is a collection of paths. (REQUIRED) * `sketch_group`: `SketchGroup` - A sketch group is a collection of paths. (REQUIRED)
```js ```js
{ {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: { on: {
@ -76,21 +76,15 @@ const sketch001 = startSketchOn('XY')
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -108,7 +102,7 @@ const sketch001 = startSketchOn('XY')
id: uuid, id: uuid,
// The sketch group. // The sketch group.
sketchGroup: { sketchGroup: {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: SketchSurface, on: SketchSurface,
@ -259,38 +253,6 @@ const sketch001 = startSketchOn('XY')
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
}, },
// The id of the face. // The id of the face.

View File

@ -29,7 +29,7 @@ const sketch001 = startSketchOn('XY')
* `sketch_group`: `SketchGroup` - A sketch group is a collection of paths. (REQUIRED) * `sketch_group`: `SketchGroup` - A sketch group is a collection of paths. (REQUIRED)
```js ```js
{ {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: { on: {
@ -71,21 +71,15 @@ const sketch001 = startSketchOn('XY')
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -103,7 +97,7 @@ const sketch001 = startSketchOn('XY')
id: uuid, id: uuid,
// The sketch group. // The sketch group.
sketchGroup: { sketchGroup: {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: SketchSurface, on: SketchSurface,
@ -254,38 +248,6 @@ const sketch001 = startSketchOn('XY')
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
}, },
// The id of the face. // The id of the face.

View File

@ -28,7 +28,7 @@ const sketch001 = startSketchOn('XY')
* `sketch_group`: `SketchGroup` - A sketch group is a collection of paths. (REQUIRED) * `sketch_group`: `SketchGroup` - A sketch group is a collection of paths. (REQUIRED)
```js ```js
{ {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: { on: {
@ -70,21 +70,15 @@ const sketch001 = startSketchOn('XY')
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -102,7 +96,7 @@ const sketch001 = startSketchOn('XY')
id: uuid, id: uuid,
// The sketch group. // The sketch group.
sketchGroup: { sketchGroup: {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: SketchSurface, on: SketchSurface,
@ -253,38 +247,6 @@ const sketch001 = startSketchOn('XY')
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
}, },
// The id of the face. // The id of the face.

View File

@ -107,7 +107,7 @@ const sketch001 = startSketchOn(box, "END")
|> circle([10, 10], 4, %) |> circle([10, 10], 4, %)
|> revolve({ |> revolve({
angle: 90, angle: 90,
axis: getOppositeEdge(revolveAxis) axis: getOppositeEdge(revolveAxis, box)
}, %) }, %)
``` ```
@ -157,92 +157,6 @@ const part001 = revolve({
} | } |
uuid | uuid |
{ {
// Engine information for a tag.
info: {
// The id of the tagged object.
id: uuid,
// The path the tag is on.
path: {
// The from point.
from: [number, number],
// The tag of the path.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
// The to point.
to: [number, number],
},
// The sketch group the tag is on.
sketchGroup: uuid,
// The surface information for the tag.
surface: {
// The face id for the extrude plane.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "extrudePlane",
} |
{
// The face id for the extrude plane.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
},
},
value: string, value: string,
}, },
} }
@ -250,7 +164,7 @@ uuid |
* `sketch_group`: `SketchGroup` - A sketch group is a collection of paths. (REQUIRED) * `sketch_group`: `SketchGroup` - A sketch group is a collection of paths. (REQUIRED)
```js ```js
{ {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: { on: {
@ -292,21 +206,15 @@ uuid |
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -324,7 +232,7 @@ uuid |
id: uuid, id: uuid,
// The sketch group. // The sketch group.
sketchGroup: { sketchGroup: {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: SketchSurface, on: SketchSurface,
@ -475,38 +383,6 @@ uuid |
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
}, },
// The id of the face. // The id of the face.
@ -658,21 +534,15 @@ uuid |
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -690,7 +560,7 @@ uuid |
id: uuid, id: uuid,
// The sketch group. // The sketch group.
sketchGroup: { sketchGroup: {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: { on: {
@ -732,21 +602,15 @@ uuid |
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -798,38 +662,6 @@ uuid |
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
}, },
// The id of the face. // The id of the face.
@ -1003,38 +835,6 @@ uuid |
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
} }
``` ```

View File

@ -9,7 +9,7 @@ Returns the angle of the segment.
```js ```js
segAng(tag: TagIdentifier) -> number segAng(segment_name: TagIdentifier, sketch_group: SketchGroup) -> number
``` ```
### Examples ### Examples
@ -20,9 +20,9 @@ const exampleSketch = startSketchOn('XZ')
|> line([10, 0], %) |> line([10, 0], %)
|> line([5, 10], %, $seg01) |> line([5, 10], %, $seg01)
|> line([-10, 0], %) |> line([-10, 0], %)
|> angledLine([segAng(seg01), 10], %) |> angledLine([segAng(seg01, %), 10], %)
|> line([-10, 0], %) |> line([-10, 0], %)
|> angledLine([segAng(seg01), -15], %) |> angledLine([segAng(seg01, %), -15], %)
|> close(%) |> close(%)
const example = extrude(4, exampleSketch) const example = extrude(4, exampleSketch)
@ -32,15 +32,89 @@ const example = extrude(4, exampleSketch)
### Arguments ### Arguments
* `tag`: `TagIdentifier` (REQUIRED) * `segment_name`: `TagIdentifier` (REQUIRED)
```js ```js
{ {
// Engine information for a tag. value: string,
info: { }
// The id of the tagged object. ```
* `sketch_group`: `SketchGroup` - A sketch group is a collection of paths. (REQUIRED)
```js
{
// The id of the sketch group.
id: uuid, id: uuid,
// The path the tag is on. // What the sketch is on (can be a plane or a face).
path: { on: {
// The id of the plane.
id: uuid,
// Origin of the plane.
origin: {
x: number,
y: number,
z: number,
},
type: "plane",
// Type for a plane.
value: "XY" | "XZ" | "YZ" | "Custom",
// What should the planes X axis be?
xAxis: {
x: number,
y: number,
z: number,
},
// What should the planes Y axis be?
yAxis: {
x: number,
y: number,
z: number,
},
// The z-axis (normal).
zAxis: {
x: number,
y: number,
z: number,
},
} |
{
// The extrude group the face is on.
extrudeGroup: {
// The id of the extrusion end cap
endCapId: uuid,
// Chamfers or fillets on this extrude group.
filletOrChamfers: [{
// The engine id of the edge to fillet.
edge_id: uuid,
// The id of the engine command that called this fillet.
id: uuid,
radius: number,
type: "fillet",
} |
{
// The engine id of the edge to chamfer.
edge_id: uuid,
// The id of the engine command that called this chamfer.
id: uuid,
length: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
}],
// The height of the extrude group.
height: number,
// The id of the extrude group.
id: uuid,
// The sketch group.
sketchGroup: {
// The id of the sketch group.
id: uuid,
// What the sketch is on (can be a plane or a face).
on: SketchSurface,
// The starting path.
start: {
// The from point. // The from point.
from: [number, number], from: [number, number],
// The tag of the path. // The tag of the path.
@ -53,10 +127,109 @@ const example = extrude(4, exampleSketch)
// The to point. // The to point.
to: [number, number], to: [number, number],
}, },
// The sketch group the tag is on. // Tag identifiers that have been declared in this sketch group.
sketchGroup: uuid, tags: {
// The surface information for the tag. },
surface: { // The paths in the sketch group.
value: [{
// The from point.
from: [number, number],
// The tag of the path.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
// The to point.
to: [number, number],
type: "ToPoint",
} |
{
// arc's direction
ccw: string,
// the arc's center
center: [number, number],
// The from point.
from: [number, number],
// The tag of the path.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
// The to point.
to: [number, number],
type: "TangentialArcTo",
} |
{
// The from point.
from: [number, number],
// The tag of the path.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
// The to point.
to: [number, number],
type: "TangentialArc",
} |
{
// The from point.
from: [number, number],
// The tag of the path.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
// The to point.
to: [number, number],
type: "Horizontal",
// The x coordinate.
x: number,
} |
{
// The from point.
from: [number, number],
// The tag of the path.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
// The to point.
to: [number, number],
type: "AngledLineTo",
// The x coordinate.
x: number,
// The y coordinate.
y: number,
} |
{
// The from point.
from: [number, number],
// The tag of the path.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
// The to point.
to: [number, number],
type: "Base",
}],
},
// The id of the extrusion start cap
startCapId: uuid,
// The extrude surfaces.
value: [{
// The face id for the extrude plane. // The face id for the extrude plane.
faceId: uuid, faceId: uuid,
// The id of the geometry. // The id of the geometry.
@ -87,41 +260,144 @@ const example = extrude(4, exampleSketch)
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} | }],
{ },
// The id for the chamfer surface. // The id of the face.
faceId: uuid,
// The id of the geometry.
id: uuid, id: uuid,
// The source range. type: "face",
sourceRange: [number, number], // The tag of the face.
// The tag. value: string,
// What should the faces X axis be?
xAxis: {
x: number,
y: number,
z: number,
},
// What should the faces Y axis be?
yAxis: {
x: number,
y: number,
z: number,
},
// The z-axis (normal).
zAxis: {
x: number,
y: number,
z: number,
},
},
// The starting path.
start: {
// The from point.
from: [number, number],
// The tag of the path.
tag: { tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number], digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number, end: number,
start: number, start: number,
value: string, value: string,
}, },
type: "chamfer", // The to point.
} | to: [number, number],
{ },
// The id for the fillet surface. // Tag identifiers that have been declared in this sketch group.
faceId: uuid, tags: {
// The id of the geometry. },
id: uuid, // The paths in the sketch group.
// The source range. value: [{
sourceRange: [number, number], // The from point.
// The tag. from: [number, number],
// The tag of the path.
tag: { tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number], digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number, end: number,
start: number, start: number,
value: string, value: string,
}, },
type: "fillet", // The to point.
}, to: [number, number],
}, type: "ToPoint",
} |
{
// arc's direction
ccw: string,
// the arc's center
center: [number, number],
// The from point.
from: [number, number],
// The tag of the path.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string, value: string,
},
// The to point.
to: [number, number],
type: "TangentialArcTo",
} |
{
// The from point.
from: [number, number],
// The tag of the path.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
// The to point.
to: [number, number],
type: "TangentialArc",
} |
{
// The from point.
from: [number, number],
// The tag of the path.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
// The to point.
to: [number, number],
type: "Horizontal",
// The x coordinate.
x: number,
} |
{
// The from point.
from: [number, number],
// The tag of the path.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
// The to point.
to: [number, number],
type: "AngledLineTo",
// The x coordinate.
x: number,
// The y coordinate.
y: number,
} |
{
// The from point.
from: [number, number],
// The tag of the path.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
// The to point.
to: [number, number],
type: "Base",
}],
} }
``` ```

View File

@ -9,7 +9,7 @@ Returns the segment end of x.
```js ```js
segEndX(tag: TagIdentifier) -> number segEndX(segment_name: TagIdentifier, sketch_group: SketchGroup) -> number
``` ```
### Examples ### Examples
@ -19,7 +19,7 @@ const exampleSketch = startSketchOn('XZ')
|> startProfileAt([0, 0], %) |> startProfileAt([0, 0], %)
|> line([20, 0], %, $thing) |> line([20, 0], %, $thing)
|> line([0, 5], %) |> line([0, 5], %)
|> line([segEndX(thing), 0], %) |> line([segEndX(thing, %), 0], %)
|> line([-20, 10], %) |> line([-20, 10], %)
|> close(%) |> close(%)
@ -30,15 +30,89 @@ const example = extrude(5, exampleSketch)
### Arguments ### Arguments
* `tag`: `TagIdentifier` (REQUIRED) * `segment_name`: `TagIdentifier` (REQUIRED)
```js ```js
{ {
// Engine information for a tag. value: string,
info: { }
// The id of the tagged object. ```
* `sketch_group`: `SketchGroup` - A sketch group is a collection of paths. (REQUIRED)
```js
{
// The id of the sketch group.
id: uuid, id: uuid,
// The path the tag is on. // What the sketch is on (can be a plane or a face).
path: { on: {
// The id of the plane.
id: uuid,
// Origin of the plane.
origin: {
x: number,
y: number,
z: number,
},
type: "plane",
// Type for a plane.
value: "XY" | "XZ" | "YZ" | "Custom",
// What should the planes X axis be?
xAxis: {
x: number,
y: number,
z: number,
},
// What should the planes Y axis be?
yAxis: {
x: number,
y: number,
z: number,
},
// The z-axis (normal).
zAxis: {
x: number,
y: number,
z: number,
},
} |
{
// The extrude group the face is on.
extrudeGroup: {
// The id of the extrusion end cap
endCapId: uuid,
// Chamfers or fillets on this extrude group.
filletOrChamfers: [{
// The engine id of the edge to fillet.
edge_id: uuid,
// The id of the engine command that called this fillet.
id: uuid,
radius: number,
type: "fillet",
} |
{
// The engine id of the edge to chamfer.
edge_id: uuid,
// The id of the engine command that called this chamfer.
id: uuid,
length: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
}],
// The height of the extrude group.
height: number,
// The id of the extrude group.
id: uuid,
// The sketch group.
sketchGroup: {
// The id of the sketch group.
id: uuid,
// What the sketch is on (can be a plane or a face).
on: SketchSurface,
// The starting path.
start: {
// The from point. // The from point.
from: [number, number], from: [number, number],
// The tag of the path. // The tag of the path.
@ -51,10 +125,109 @@ const example = extrude(5, exampleSketch)
// The to point. // The to point.
to: [number, number], to: [number, number],
}, },
// The sketch group the tag is on. // Tag identifiers that have been declared in this sketch group.
sketchGroup: uuid, tags: {
// The surface information for the tag. },
surface: { // The paths in the sketch group.
value: [{
// The from point.
from: [number, number],
// The tag of the path.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
// The to point.
to: [number, number],
type: "ToPoint",
} |
{
// arc's direction
ccw: string,
// the arc's center
center: [number, number],
// The from point.
from: [number, number],
// The tag of the path.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
// The to point.
to: [number, number],
type: "TangentialArcTo",
} |
{
// The from point.
from: [number, number],
// The tag of the path.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
// The to point.
to: [number, number],
type: "TangentialArc",
} |
{
// The from point.
from: [number, number],
// The tag of the path.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
// The to point.
to: [number, number],
type: "Horizontal",
// The x coordinate.
x: number,
} |
{
// The from point.
from: [number, number],
// The tag of the path.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
// The to point.
to: [number, number],
type: "AngledLineTo",
// The x coordinate.
x: number,
// The y coordinate.
y: number,
} |
{
// The from point.
from: [number, number],
// The tag of the path.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
// The to point.
to: [number, number],
type: "Base",
}],
},
// The id of the extrusion start cap
startCapId: uuid,
// The extrude surfaces.
value: [{
// The face id for the extrude plane. // The face id for the extrude plane.
faceId: uuid, faceId: uuid,
// The id of the geometry. // The id of the geometry.
@ -85,41 +258,144 @@ const example = extrude(5, exampleSketch)
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} | }],
{ },
// The id for the chamfer surface. // The id of the face.
faceId: uuid,
// The id of the geometry.
id: uuid, id: uuid,
// The source range. type: "face",
sourceRange: [number, number], // The tag of the face.
// The tag. value: string,
// What should the faces X axis be?
xAxis: {
x: number,
y: number,
z: number,
},
// What should the faces Y axis be?
yAxis: {
x: number,
y: number,
z: number,
},
// The z-axis (normal).
zAxis: {
x: number,
y: number,
z: number,
},
},
// The starting path.
start: {
// The from point.
from: [number, number],
// The tag of the path.
tag: { tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number], digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number, end: number,
start: number, start: number,
value: string, value: string,
}, },
type: "chamfer", // The to point.
} | to: [number, number],
{ },
// The id for the fillet surface. // Tag identifiers that have been declared in this sketch group.
faceId: uuid, tags: {
// The id of the geometry. },
id: uuid, // The paths in the sketch group.
// The source range. value: [{
sourceRange: [number, number], // The from point.
// The tag. from: [number, number],
// The tag of the path.
tag: { tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number], digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number, end: number,
start: number, start: number,
value: string, value: string,
}, },
type: "fillet", // The to point.
}, to: [number, number],
}, type: "ToPoint",
} |
{
// arc's direction
ccw: string,
// the arc's center
center: [number, number],
// The from point.
from: [number, number],
// The tag of the path.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string, value: string,
},
// The to point.
to: [number, number],
type: "TangentialArcTo",
} |
{
// The from point.
from: [number, number],
// The tag of the path.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
// The to point.
to: [number, number],
type: "TangentialArc",
} |
{
// The from point.
from: [number, number],
// The tag of the path.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
// The to point.
to: [number, number],
type: "Horizontal",
// The x coordinate.
x: number,
} |
{
// The from point.
from: [number, number],
// The tag of the path.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
// The to point.
to: [number, number],
type: "AngledLineTo",
// The x coordinate.
x: number,
// The y coordinate.
y: number,
} |
{
// The from point.
from: [number, number],
// The tag of the path.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
// The to point.
to: [number, number],
type: "Base",
}],
} }
``` ```

View File

@ -9,7 +9,7 @@ Returns the segment end of y.
```js ```js
segEndY(tag: TagIdentifier) -> number segEndY(segment_name: TagIdentifier, sketch_group: SketchGroup) -> number
``` ```
### Examples ### Examples
@ -20,7 +20,7 @@ const exampleSketch = startSketchOn('XZ')
|> line([20, 0], %) |> line([20, 0], %)
|> line([0, 3], %, $thing) |> line([0, 3], %, $thing)
|> line([-10, 0], %) |> line([-10, 0], %)
|> line([0, segEndY(thing)], %) |> line([0, segEndY(thing, %)], %)
|> line([-10, 0], %) |> line([-10, 0], %)
|> close(%) |> close(%)
@ -31,15 +31,89 @@ const example = extrude(5, exampleSketch)
### Arguments ### Arguments
* `tag`: `TagIdentifier` (REQUIRED) * `segment_name`: `TagIdentifier` (REQUIRED)
```js ```js
{ {
// Engine information for a tag. value: string,
info: { }
// The id of the tagged object. ```
* `sketch_group`: `SketchGroup` - A sketch group is a collection of paths. (REQUIRED)
```js
{
// The id of the sketch group.
id: uuid, id: uuid,
// The path the tag is on. // What the sketch is on (can be a plane or a face).
path: { on: {
// The id of the plane.
id: uuid,
// Origin of the plane.
origin: {
x: number,
y: number,
z: number,
},
type: "plane",
// Type for a plane.
value: "XY" | "XZ" | "YZ" | "Custom",
// What should the planes X axis be?
xAxis: {
x: number,
y: number,
z: number,
},
// What should the planes Y axis be?
yAxis: {
x: number,
y: number,
z: number,
},
// The z-axis (normal).
zAxis: {
x: number,
y: number,
z: number,
},
} |
{
// The extrude group the face is on.
extrudeGroup: {
// The id of the extrusion end cap
endCapId: uuid,
// Chamfers or fillets on this extrude group.
filletOrChamfers: [{
// The engine id of the edge to fillet.
edge_id: uuid,
// The id of the engine command that called this fillet.
id: uuid,
radius: number,
type: "fillet",
} |
{
// The engine id of the edge to chamfer.
edge_id: uuid,
// The id of the engine command that called this chamfer.
id: uuid,
length: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
}],
// The height of the extrude group.
height: number,
// The id of the extrude group.
id: uuid,
// The sketch group.
sketchGroup: {
// The id of the sketch group.
id: uuid,
// What the sketch is on (can be a plane or a face).
on: SketchSurface,
// The starting path.
start: {
// The from point. // The from point.
from: [number, number], from: [number, number],
// The tag of the path. // The tag of the path.
@ -52,10 +126,109 @@ const example = extrude(5, exampleSketch)
// The to point. // The to point.
to: [number, number], to: [number, number],
}, },
// The sketch group the tag is on. // Tag identifiers that have been declared in this sketch group.
sketchGroup: uuid, tags: {
// The surface information for the tag. },
surface: { // The paths in the sketch group.
value: [{
// The from point.
from: [number, number],
// The tag of the path.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
// The to point.
to: [number, number],
type: "ToPoint",
} |
{
// arc's direction
ccw: string,
// the arc's center
center: [number, number],
// The from point.
from: [number, number],
// The tag of the path.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
// The to point.
to: [number, number],
type: "TangentialArcTo",
} |
{
// The from point.
from: [number, number],
// The tag of the path.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
// The to point.
to: [number, number],
type: "TangentialArc",
} |
{
// The from point.
from: [number, number],
// The tag of the path.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
// The to point.
to: [number, number],
type: "Horizontal",
// The x coordinate.
x: number,
} |
{
// The from point.
from: [number, number],
// The tag of the path.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
// The to point.
to: [number, number],
type: "AngledLineTo",
// The x coordinate.
x: number,
// The y coordinate.
y: number,
} |
{
// The from point.
from: [number, number],
// The tag of the path.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
// The to point.
to: [number, number],
type: "Base",
}],
},
// The id of the extrusion start cap
startCapId: uuid,
// The extrude surfaces.
value: [{
// The face id for the extrude plane. // The face id for the extrude plane.
faceId: uuid, faceId: uuid,
// The id of the geometry. // The id of the geometry.
@ -86,41 +259,144 @@ const example = extrude(5, exampleSketch)
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} | }],
{ },
// The id for the chamfer surface. // The id of the face.
faceId: uuid,
// The id of the geometry.
id: uuid, id: uuid,
// The source range. type: "face",
sourceRange: [number, number], // The tag of the face.
// The tag. value: string,
// What should the faces X axis be?
xAxis: {
x: number,
y: number,
z: number,
},
// What should the faces Y axis be?
yAxis: {
x: number,
y: number,
z: number,
},
// The z-axis (normal).
zAxis: {
x: number,
y: number,
z: number,
},
},
// The starting path.
start: {
// The from point.
from: [number, number],
// The tag of the path.
tag: { tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number], digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number, end: number,
start: number, start: number,
value: string, value: string,
}, },
type: "chamfer", // The to point.
} | to: [number, number],
{ },
// The id for the fillet surface. // Tag identifiers that have been declared in this sketch group.
faceId: uuid, tags: {
// The id of the geometry. },
id: uuid, // The paths in the sketch group.
// The source range. value: [{
sourceRange: [number, number], // The from point.
// The tag. from: [number, number],
// The tag of the path.
tag: { tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number], digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number, end: number,
start: number, start: number,
value: string, value: string,
}, },
type: "fillet", // The to point.
}, to: [number, number],
}, type: "ToPoint",
} |
{
// arc's direction
ccw: string,
// the arc's center
center: [number, number],
// The from point.
from: [number, number],
// The tag of the path.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string, value: string,
},
// The to point.
to: [number, number],
type: "TangentialArcTo",
} |
{
// The from point.
from: [number, number],
// The tag of the path.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
// The to point.
to: [number, number],
type: "TangentialArc",
} |
{
// The from point.
from: [number, number],
// The tag of the path.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
// The to point.
to: [number, number],
type: "Horizontal",
// The x coordinate.
x: number,
} |
{
// The from point.
from: [number, number],
// The tag of the path.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
// The to point.
to: [number, number],
type: "AngledLineTo",
// The x coordinate.
x: number,
// The y coordinate.
y: number,
} |
{
// The from point.
from: [number, number],
// The tag of the path.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
// The to point.
to: [number, number],
type: "Base",
}],
} }
``` ```

View File

@ -9,7 +9,7 @@ Returns the length of the segment.
```js ```js
segLen(tag: TagIdentifier) -> number segLen(segment_name: TagIdentifier, sketch_group: SketchGroup) -> number
``` ```
### Examples ### Examples
@ -19,7 +19,7 @@ const exampleSketch = startSketchOn("XZ")
|> startProfileAt([0, 0], %) |> startProfileAt([0, 0], %)
|> angledLine({ angle: 60, length: 10 }, %, $thing) |> angledLine({ angle: 60, length: 10 }, %, $thing)
|> tangentialArc({ offset: -120, radius: 5 }, %) |> tangentialArc({ offset: -120, radius: 5 }, %)
|> angledLine({ angle: -60, length: segLen(thing) }, %) |> angledLine({ angle: -60, length: segLen(thing, %) }, %)
|> close(%) |> close(%)
const example = extrude(5, exampleSketch) const example = extrude(5, exampleSketch)
@ -29,15 +29,89 @@ const example = extrude(5, exampleSketch)
### Arguments ### Arguments
* `tag`: `TagIdentifier` (REQUIRED) * `segment_name`: `TagIdentifier` (REQUIRED)
```js ```js
{ {
// Engine information for a tag. value: string,
info: { }
// The id of the tagged object. ```
* `sketch_group`: `SketchGroup` - A sketch group is a collection of paths. (REQUIRED)
```js
{
// The id of the sketch group.
id: uuid, id: uuid,
// The path the tag is on. // What the sketch is on (can be a plane or a face).
path: { on: {
// The id of the plane.
id: uuid,
// Origin of the plane.
origin: {
x: number,
y: number,
z: number,
},
type: "plane",
// Type for a plane.
value: "XY" | "XZ" | "YZ" | "Custom",
// What should the planes X axis be?
xAxis: {
x: number,
y: number,
z: number,
},
// What should the planes Y axis be?
yAxis: {
x: number,
y: number,
z: number,
},
// The z-axis (normal).
zAxis: {
x: number,
y: number,
z: number,
},
} |
{
// The extrude group the face is on.
extrudeGroup: {
// The id of the extrusion end cap
endCapId: uuid,
// Chamfers or fillets on this extrude group.
filletOrChamfers: [{
// The engine id of the edge to fillet.
edge_id: uuid,
// The id of the engine command that called this fillet.
id: uuid,
radius: number,
type: "fillet",
} |
{
// The engine id of the edge to chamfer.
edge_id: uuid,
// The id of the engine command that called this chamfer.
id: uuid,
length: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
}],
// The height of the extrude group.
height: number,
// The id of the extrude group.
id: uuid,
// The sketch group.
sketchGroup: {
// The id of the sketch group.
id: uuid,
// What the sketch is on (can be a plane or a face).
on: SketchSurface,
// The starting path.
start: {
// The from point. // The from point.
from: [number, number], from: [number, number],
// The tag of the path. // The tag of the path.
@ -50,10 +124,109 @@ const example = extrude(5, exampleSketch)
// The to point. // The to point.
to: [number, number], to: [number, number],
}, },
// The sketch group the tag is on. // Tag identifiers that have been declared in this sketch group.
sketchGroup: uuid, tags: {
// The surface information for the tag. },
surface: { // The paths in the sketch group.
value: [{
// The from point.
from: [number, number],
// The tag of the path.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
// The to point.
to: [number, number],
type: "ToPoint",
} |
{
// arc's direction
ccw: string,
// the arc's center
center: [number, number],
// The from point.
from: [number, number],
// The tag of the path.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
// The to point.
to: [number, number],
type: "TangentialArcTo",
} |
{
// The from point.
from: [number, number],
// The tag of the path.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
// The to point.
to: [number, number],
type: "TangentialArc",
} |
{
// The from point.
from: [number, number],
// The tag of the path.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
// The to point.
to: [number, number],
type: "Horizontal",
// The x coordinate.
x: number,
} |
{
// The from point.
from: [number, number],
// The tag of the path.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
// The to point.
to: [number, number],
type: "AngledLineTo",
// The x coordinate.
x: number,
// The y coordinate.
y: number,
} |
{
// The from point.
from: [number, number],
// The tag of the path.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
// The to point.
to: [number, number],
type: "Base",
}],
},
// The id of the extrusion start cap
startCapId: uuid,
// The extrude surfaces.
value: [{
// The face id for the extrude plane. // The face id for the extrude plane.
faceId: uuid, faceId: uuid,
// The id of the geometry. // The id of the geometry.
@ -84,41 +257,144 @@ const example = extrude(5, exampleSketch)
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} | }],
{ },
// The id for the chamfer surface. // The id of the face.
faceId: uuid,
// The id of the geometry.
id: uuid, id: uuid,
// The source range. type: "face",
sourceRange: [number, number], // The tag of the face.
// The tag. value: string,
// What should the faces X axis be?
xAxis: {
x: number,
y: number,
z: number,
},
// What should the faces Y axis be?
yAxis: {
x: number,
y: number,
z: number,
},
// The z-axis (normal).
zAxis: {
x: number,
y: number,
z: number,
},
},
// The starting path.
start: {
// The from point.
from: [number, number],
// The tag of the path.
tag: { tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number], digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number, end: number,
start: number, start: number,
value: string, value: string,
}, },
type: "chamfer", // The to point.
} | to: [number, number],
{ },
// The id for the fillet surface. // Tag identifiers that have been declared in this sketch group.
faceId: uuid, tags: {
// The id of the geometry. },
id: uuid, // The paths in the sketch group.
// The source range. value: [{
sourceRange: [number, number], // The from point.
// The tag. from: [number, number],
// The tag of the path.
tag: { tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number], digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number, end: number,
start: number, start: number,
value: string, value: string,
}, },
type: "fillet", // The to point.
}, to: [number, number],
}, type: "ToPoint",
} |
{
// arc's direction
ccw: string,
// the arc's center
center: [number, number],
// The from point.
from: [number, number],
// The tag of the path.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string, value: string,
},
// The to point.
to: [number, number],
type: "TangentialArcTo",
} |
{
// The from point.
from: [number, number],
// The tag of the path.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
// The to point.
to: [number, number],
type: "TangentialArc",
} |
{
// The from point.
from: [number, number],
// The tag of the path.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
// The to point.
to: [number, number],
type: "Horizontal",
// The x coordinate.
x: number,
} |
{
// The from point.
from: [number, number],
// The tag of the path.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
// The to point.
to: [number, number],
type: "AngledLineTo",
// The x coordinate.
x: number,
// The y coordinate.
y: number,
} |
{
// The from point.
from: [number, number],
// The tag of the path.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
// The to point.
to: [number, number],
type: "Base",
}],
} }
``` ```

View File

@ -37,92 +37,6 @@ shell({ faces: ['end'], thickness: 0.25 }, firstSketch)
// The faces you want removed. // The faces you want removed.
faces: ["start" | "end" | faces: ["start" | "end" |
{ {
// Engine information for a tag.
info: {
// The id of the tagged object.
id: uuid,
// The path the tag is on.
path: {
// The from point.
from: [number, number],
// The tag of the path.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
// The to point.
to: [number, number],
},
// The sketch group the tag is on.
sketchGroup: uuid,
// The surface information for the tag.
surface: {
// The face id for the extrude plane.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "extrudePlane",
} |
{
// The face id for the extrude plane.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
},
},
value: string, value: string,
}], }],
// The thickness of the shell. // The thickness of the shell.
@ -137,21 +51,15 @@ shell({ faces: ['end'], thickness: 0.25 }, firstSketch)
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -169,7 +77,7 @@ shell({ faces: ['end'], thickness: 0.25 }, firstSketch)
id: uuid, id: uuid,
// The sketch group. // The sketch group.
sketchGroup: { sketchGroup: {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: { on: {
@ -211,21 +119,15 @@ shell({ faces: ['end'], thickness: 0.25 }, firstSketch)
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -277,38 +179,6 @@ shell({ faces: ['end'], thickness: 0.25 }, firstSketch)
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
}, },
// The id of the face. // The id of the face.
@ -482,38 +352,6 @@ shell({ faces: ['end'], thickness: 0.25 }, firstSketch)
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
} }
``` ```
@ -528,21 +366,15 @@ shell({ faces: ['end'], thickness: 0.25 }, firstSketch)
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -560,7 +392,7 @@ shell({ faces: ['end'], thickness: 0.25 }, firstSketch)
id: uuid, id: uuid,
// The sketch group. // The sketch group.
sketchGroup: { sketchGroup: {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: { on: {
@ -602,21 +434,15 @@ shell({ faces: ['end'], thickness: 0.25 }, firstSketch)
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -668,38 +494,6 @@ shell({ faces: ['end'], thickness: 0.25 }, firstSketch)
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
}, },
// The id of the face. // The id of the face.
@ -873,38 +667,6 @@ shell({ faces: ['end'], thickness: 0.25 }, firstSketch)
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
} }
``` ```

View File

@ -97,21 +97,15 @@ const example = extrude(5, exampleSketch)
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -129,7 +123,7 @@ const example = extrude(5, exampleSketch)
id: uuid, id: uuid,
// The sketch group. // The sketch group.
sketchGroup: { sketchGroup: {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: { on: {
@ -337,38 +331,6 @@ const example = extrude(5, exampleSketch)
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
}, },
// The id of the face. // The id of the face.
@ -411,7 +373,7 @@ const example = extrude(5, exampleSketch)
`SketchGroup` - A sketch group is a collection of paths. `SketchGroup` - A sketch group is a collection of paths.
```js ```js
{ {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: { on: {
@ -453,21 +415,15 @@ const example = extrude(5, exampleSketch)
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -485,7 +441,7 @@ const example = extrude(5, exampleSketch)
id: uuid, id: uuid,
// The sketch group. // The sketch group.
sketchGroup: { sketchGroup: {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: SketchSurface, on: SketchSurface,
@ -636,38 +592,6 @@ const example = extrude(5, exampleSketch)
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
}, },
// The id of the face. // The id of the face.

View File

@ -59,7 +59,7 @@ const example = extrude(5, exampleSketch)
`SketchGroup` - A sketch group is a collection of paths. `SketchGroup` - A sketch group is a collection of paths.
```js ```js
{ {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: { on: {
@ -101,21 +101,15 @@ const example = extrude(5, exampleSketch)
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -133,7 +127,7 @@ const example = extrude(5, exampleSketch)
id: uuid, id: uuid,
// The sketch group. // The sketch group.
sketchGroup: { sketchGroup: {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: SketchSurface, on: SketchSurface,
@ -284,38 +278,6 @@ const example = extrude(5, exampleSketch)
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
}, },
// The id of the face. // The id of the face.

View File

@ -55,7 +55,7 @@ const exampleSketch = startSketchOn("XY")
const example = extrude(10, exampleSketch) const example = extrude(10, exampleSketch)
const exampleSketch002 = startSketchOn(example, sketchingFace) const exampleSketch002 = startSketchOn(example, 'sketchingFace')
|> startProfileAt([1, 1], %) |> startProfileAt([1, 1], %)
|> line([8, 0], %) |> line([8, 0], %)
|> line([0, 8], %) |> line([0, 8], %)
@ -64,7 +64,7 @@ const exampleSketch002 = startSketchOn(example, sketchingFace)
const example002 = extrude(10, exampleSketch002) const example002 = extrude(10, exampleSketch002)
const exampleSketch003 = startSketchOn(example002, sketchingFace002) const exampleSketch003 = startSketchOn(example002, 'sketchingFace002')
|> startProfileAt([-8, 12], %) |> startProfileAt([-8, 12], %)
|> line([0, 6], %) |> line([0, 6], %)
|> line([6, 0], %) |> line([6, 0], %)
@ -106,9 +106,9 @@ const example002 = extrude(5, exampleSketch002)
const a1 = startSketchOn({ const a1 = startSketchOn({
plane: { plane: {
origin: { x: 0, y: 0, z: 0 }, origin: { x: 0, y: 0, z: 0 },
xAxis: { x: 1, y: 0, z: 0 }, x_axis: { x: 1, y: 0, z: 0 },
yAxis: { x: 0, y: 1, z: 0 }, y_axis: { x: 0, y: 1, z: 0 },
zAxis: { x: 0, y: 0, z: 1 } z_axis: { x: 0, y: 0, z: 1 }
} }
}) })
|> startProfileAt([0, 0], %) |> startProfileAt([0, 0], %)
@ -141,19 +141,19 @@ const a1 = startSketchOn({
z: number, z: number,
}, },
// What should the planes X axis be? // What should the planes X axis be?
xAxis: { x_axis: {
x: number, x: number,
y: number, y: number,
z: number, z: number,
}, },
// What should the planes Y axis be? // What should the planes Y axis be?
yAxis: { y_axis: {
x: number, x: number,
y: number, y: number,
z: number, z: number,
}, },
// The z-axis (normal). // The z-axis (normal).
zAxis: { z_axis: {
x: number, x: number,
y: number, y: number,
z: number, z: number,
@ -166,21 +166,15 @@ const a1 = startSketchOn({
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -198,7 +192,7 @@ const a1 = startSketchOn({
id: uuid, id: uuid,
// The sketch group. // The sketch group.
sketchGroup: { sketchGroup: {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: { on: {
@ -406,38 +400,6 @@ const a1 = startSketchOn({
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
} }
``` ```
@ -445,92 +407,6 @@ const a1 = startSketchOn({
```js ```js
"start" | "end" | "start" | "end" |
{ {
// Engine information for a tag.
info: {
// The id of the tagged object.
id: uuid,
// The path the tag is on.
path: {
// The from point.
from: [number, number],
// The tag of the path.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
// The to point.
to: [number, number],
},
// The sketch group the tag is on.
sketchGroup: uuid,
// The surface information for the tag.
surface: {
// The face id for the extrude plane.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "extrudePlane",
} |
{
// The face id for the extrude plane.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
},
},
value: string, value: string,
} }
``` ```
@ -578,21 +454,15 @@ const a1 = startSketchOn({
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -610,7 +480,7 @@ const a1 = startSketchOn({
id: uuid, id: uuid,
// The sketch group. // The sketch group.
sketchGroup: { sketchGroup: {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: { on: {
@ -818,38 +688,6 @@ const a1 = startSketchOn({
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
}, },
// The id of the face. // The id of the face.

File diff suppressed because it is too large Load Diff

View File

@ -42,7 +42,7 @@ const example = extrude(10, exampleSketch)
* `sketch_group`: `SketchGroup` - A sketch group is a collection of paths. (REQUIRED) * `sketch_group`: `SketchGroup` - A sketch group is a collection of paths. (REQUIRED)
```js ```js
{ {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: { on: {
@ -84,21 +84,15 @@ const example = extrude(10, exampleSketch)
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -116,7 +110,7 @@ const example = extrude(10, exampleSketch)
id: uuid, id: uuid,
// The sketch group. // The sketch group.
sketchGroup: { sketchGroup: {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: SketchSurface, on: SketchSurface,
@ -267,38 +261,6 @@ const example = extrude(10, exampleSketch)
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
}, },
// The id of the face. // The id of the face.
@ -454,7 +416,7 @@ const example = extrude(10, exampleSketch)
`SketchGroup` - A sketch group is a collection of paths. `SketchGroup` - A sketch group is a collection of paths.
```js ```js
{ {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: { on: {
@ -496,21 +458,15 @@ const example = extrude(10, exampleSketch)
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -528,7 +484,7 @@ const example = extrude(10, exampleSketch)
id: uuid, id: uuid,
// The sketch group. // The sketch group.
sketchGroup: { sketchGroup: {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: SketchSurface, on: SketchSurface,
@ -679,38 +635,6 @@ const example = extrude(10, exampleSketch)
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
}, },
// The id of the face. // The id of the face.

View File

@ -33,7 +33,7 @@ const example = extrude(10, exampleSketch)
* `sketch_group`: `SketchGroup` - A sketch group is a collection of paths. (REQUIRED) * `sketch_group`: `SketchGroup` - A sketch group is a collection of paths. (REQUIRED)
```js ```js
{ {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: { on: {
@ -75,21 +75,15 @@ const example = extrude(10, exampleSketch)
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -107,7 +101,7 @@ const example = extrude(10, exampleSketch)
id: uuid, id: uuid,
// The sketch group. // The sketch group.
sketchGroup: { sketchGroup: {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: SketchSurface, on: SketchSurface,
@ -258,38 +252,6 @@ const example = extrude(10, exampleSketch)
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
}, },
// The id of the face. // The id of the face.
@ -445,7 +407,7 @@ const example = extrude(10, exampleSketch)
`SketchGroup` - A sketch group is a collection of paths. `SketchGroup` - A sketch group is a collection of paths.
```js ```js
{ {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: { on: {
@ -487,21 +449,15 @@ const example = extrude(10, exampleSketch)
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -519,7 +475,7 @@ const example = extrude(10, exampleSketch)
id: uuid, id: uuid,
// The sketch group. // The sketch group.
sketchGroup: { sketchGroup: {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: SketchSurface, on: SketchSurface,
@ -670,38 +626,6 @@ const example = extrude(10, exampleSketch)
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
}, },
// The id of the face. // The id of the face.

View File

@ -36,7 +36,7 @@ const example = extrude(10, exampleSketch)
* `sketch_group`: `SketchGroup` - A sketch group is a collection of paths. (REQUIRED) * `sketch_group`: `SketchGroup` - A sketch group is a collection of paths. (REQUIRED)
```js ```js
{ {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: { on: {
@ -78,21 +78,15 @@ const example = extrude(10, exampleSketch)
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -110,7 +104,7 @@ const example = extrude(10, exampleSketch)
id: uuid, id: uuid,
// The sketch group. // The sketch group.
sketchGroup: { sketchGroup: {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: SketchSurface, on: SketchSurface,
@ -261,38 +255,6 @@ const example = extrude(10, exampleSketch)
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
}, },
// The id of the face. // The id of the face.
@ -448,7 +410,7 @@ const example = extrude(10, exampleSketch)
`SketchGroup` - A sketch group is a collection of paths. `SketchGroup` - A sketch group is a collection of paths.
```js ```js
{ {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: { on: {
@ -490,21 +452,15 @@ const example = extrude(10, exampleSketch)
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -522,7 +478,7 @@ const example = extrude(10, exampleSketch)
id: uuid, id: uuid,
// The sketch group. // The sketch group.
sketchGroup: { sketchGroup: {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: SketchSurface, on: SketchSurface,
@ -673,38 +629,6 @@ const example = extrude(10, exampleSketch)
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
}, },
// The id of the face. // The id of the face.

View File

@ -36,7 +36,7 @@ const example = extrude(10, exampleSketch)
* `sketch_group`: `SketchGroup` - A sketch group is a collection of paths. (REQUIRED) * `sketch_group`: `SketchGroup` - A sketch group is a collection of paths. (REQUIRED)
```js ```js
{ {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: { on: {
@ -78,21 +78,15 @@ const example = extrude(10, exampleSketch)
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -110,7 +104,7 @@ const example = extrude(10, exampleSketch)
id: uuid, id: uuid,
// The sketch group. // The sketch group.
sketchGroup: { sketchGroup: {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: SketchSurface, on: SketchSurface,
@ -261,38 +255,6 @@ const example = extrude(10, exampleSketch)
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
}, },
// The id of the face. // The id of the face.
@ -448,7 +410,7 @@ const example = extrude(10, exampleSketch)
`SketchGroup` - A sketch group is a collection of paths. `SketchGroup` - A sketch group is a collection of paths.
```js ```js
{ {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: { on: {
@ -490,21 +452,15 @@ const example = extrude(10, exampleSketch)
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -522,7 +478,7 @@ const example = extrude(10, exampleSketch)
id: uuid, id: uuid,
// The sketch group. // The sketch group.
sketchGroup: { sketchGroup: {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: SketchSurface, on: SketchSurface,
@ -673,38 +629,6 @@ const example = extrude(10, exampleSketch)
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
}, },
// The id of the face. // The id of the face.

View File

@ -34,7 +34,7 @@ const example = extrude(10, exampleSketch)
* `sketch_group`: `SketchGroup` - A sketch group is a collection of paths. (REQUIRED) * `sketch_group`: `SketchGroup` - A sketch group is a collection of paths. (REQUIRED)
```js ```js
{ {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: { on: {
@ -76,21 +76,15 @@ const example = extrude(10, exampleSketch)
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -108,7 +102,7 @@ const example = extrude(10, exampleSketch)
id: uuid, id: uuid,
// The sketch group. // The sketch group.
sketchGroup: { sketchGroup: {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: SketchSurface, on: SketchSurface,
@ -259,38 +253,6 @@ const example = extrude(10, exampleSketch)
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
}, },
// The id of the face. // The id of the face.
@ -446,7 +408,7 @@ const example = extrude(10, exampleSketch)
`SketchGroup` - A sketch group is a collection of paths. `SketchGroup` - A sketch group is a collection of paths.
```js ```js
{ {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: { on: {
@ -488,21 +450,15 @@ const example = extrude(10, exampleSketch)
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -520,7 +476,7 @@ const example = extrude(10, exampleSketch)
id: uuid, id: uuid,
// The sketch group. // The sketch group.
sketchGroup: { sketchGroup: {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: SketchSurface, on: SketchSurface,
@ -671,38 +627,6 @@ const example = extrude(10, exampleSketch)
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
}, },
// The id of the face. // The id of the face.

View File

@ -32,7 +32,7 @@ const example = extrude(5, exampleSketch)
* `sketch_group`: `SketchGroup` - A sketch group is a collection of paths. (REQUIRED) * `sketch_group`: `SketchGroup` - A sketch group is a collection of paths. (REQUIRED)
```js ```js
{ {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: { on: {
@ -74,21 +74,15 @@ const example = extrude(5, exampleSketch)
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -106,7 +100,7 @@ const example = extrude(5, exampleSketch)
id: uuid, id: uuid,
// The sketch group. // The sketch group.
sketchGroup: { sketchGroup: {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: SketchSurface, on: SketchSurface,
@ -257,38 +251,6 @@ const example = extrude(5, exampleSketch)
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
}, },
// The id of the face. // The id of the face.
@ -444,7 +406,7 @@ const example = extrude(5, exampleSketch)
`SketchGroup` - A sketch group is a collection of paths. `SketchGroup` - A sketch group is a collection of paths.
```js ```js
{ {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: { on: {
@ -486,21 +448,15 @@ const example = extrude(5, exampleSketch)
// Chamfers or fillets on this extrude group. // Chamfers or fillets on this extrude group.
filletOrChamfers: [{ filletOrChamfers: [{
// The engine id of the edge to fillet. // The engine id of the edge to fillet.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this fillet. // The id of the engine command that called this fillet.
id: uuid, id: uuid,
radius: number, radius: number,
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet", type: "fillet",
} | } |
{ {
// The engine id of the edge to chamfer. // The engine id of the edge to chamfer.
edgeId: uuid, edge_id: uuid,
// The id of the engine command that called this chamfer. // The id of the engine command that called this chamfer.
id: uuid, id: uuid,
length: number, length: number,
@ -518,7 +474,7 @@ const example = extrude(5, exampleSketch)
id: uuid, id: uuid,
// The sketch group. // The sketch group.
sketchGroup: { sketchGroup: {
// The id of the sketch group (this will change when the engine's reference to it changes. // The id of the sketch group.
id: uuid, id: uuid,
// What the sketch is on (can be a plane or a face). // What the sketch is on (can be a plane or a face).
on: SketchSurface, on: SketchSurface,
@ -669,38 +625,6 @@ const example = extrude(5, exampleSketch)
value: string, value: string,
}, },
type: "extrudeArc", type: "extrudeArc",
} |
{
// The id for the chamfer surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "chamfer",
} |
{
// The id for the fillet surface.
faceId: uuid,
// The id of the geometry.
id: uuid,
// The source range.
sourceRange: [number, number],
// The tag.
tag: {
digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
end: number,
start: number,
value: string,
},
type: "fillet",
}], }],
}, },
// The id of the face. // The id of the face.

File diff suppressed because it is too large Load Diff

View File

@ -64,27 +64,27 @@ const part001 = startSketchOn('-XZ')
|> angledLineToY({ |> angledLineToY({
angle: topAng, angle: topAng,
to: totalHeightHalf, to: totalHeightHalf,
}, %, $seg04) }, %, 'seg04')
|> xLineTo(totalLen, %, $seg03) |> xLineTo(totalLen, %, 'seg03')
|> yLine(-armThick, %, $seg01) |> yLine(-armThick, %, 'seg01')
|> angledLineThatIntersects({ |> angledLineThatIntersects({
angle: HALF_TURN, angle: HALF_TURN,
offset: -armThick, offset: -armThick,
intersectTag: seg04 intersectTag: 'seg04'
}, %) }, %)
|> angledLineToY([segAng(seg04, %) + 180, ZERO], %) |> angledLineToY([segAng('seg04', %) + 180, ZERO], %)
|> angledLineToY({ |> angledLineToY({
angle: -bottomAng, angle: -bottomAng,
to: -totalHeightHalf - armThick, to: -totalHeightHalf - armThick,
}, %, $seg02) }, %, 'seg02')
|> xLineTo(segEndX(seg03, %) + 0, %) |> xLineTo(segEndX('seg03', %) + 0, %)
|> yLine(-segLen(seg01, %), %) |> yLine(-segLen('seg01', %), %)
|> angledLineThatIntersects({ |> angledLineThatIntersects({
angle: HALF_TURN, angle: HALF_TURN,
offset: -armThick, offset: -armThick,
intersectTag: seg02 intersectTag: 'seg02'
}, %) }, %)
|> angledLineToY([segAng(seg02, %) + 180, -baseHeight], %) |> angledLineToY([segAng('seg02', %) + 180, -baseHeight], %)
|> xLineTo(ZERO, %) |> xLineTo(ZERO, %)
|> close(%) |> close(%)
|> extrude(4, %)` |> extrude(4, %)`
@ -431,9 +431,7 @@ test('Draft segments should look right', async ({ page, context }) => {
|> line([7.25, 0], %)` |> line([7.25, 0], %)`
await expect(page.locator('.cm-content')).toHaveText(code) await expect(page.locator('.cm-content')).toHaveText(code)
await page await page.getByRole('button', { name: 'Tangential Arc' }).click()
.getByRole('button', { name: 'Tangential Arc', exact: true })
.click()
await page.mouse.move(startXPx + PUR * 30, 500 - PUR * 20, { steps: 10 }) await page.mouse.move(startXPx + PUR * 30, 500 - PUR * 20, { steps: 10 })
@ -477,10 +475,8 @@ test('Draft rectangles should look right', async ({ page, context }) => {
const startXPx = 600 const startXPx = 600
// Equip the rectangle tool // Equip the rectangle tool
await page.getByRole('button', { name: 'Line', exact: true }).click() await page.getByRole('button', { name: 'Line' }).click()
await page await page.getByRole('button', { name: 'Rectangle' }).click()
.getByRole('button', { name: 'Corner rectangle', exact: true })
.click()
// Draw the rectangle // Draw the rectangle
await page.mouse.click(startXPx + PUR * 20, 500 - PUR * 30) await page.mouse.click(startXPx + PUR * 20, 500 - PUR * 30)
@ -539,9 +535,7 @@ test.describe('Client side scene scale should match engine scale', () => {
|> line([7.25, 0], %)` |> line([7.25, 0], %)`
await expect(u.codeLocator).toHaveText(code) await expect(u.codeLocator).toHaveText(code)
await page await page.getByRole('button', { name: 'Tangential Arc' }).click()
.getByRole('button', { name: 'Tangential Arc', exact: true })
.click()
await page.waitForTimeout(100) await page.waitForTimeout(100)
await page.mouse.click(startXPx + PUR * 30, 500 - PUR * 20) await page.mouse.click(startXPx + PUR * 30, 500 - PUR * 20)
@ -551,9 +545,7 @@ test.describe('Client side scene scale should match engine scale', () => {
await expect(u.codeLocator).toHaveText(code) await expect(u.codeLocator).toHaveText(code)
// click tangential arc tool again to unequip it // click tangential arc tool again to unequip it
await page await page.getByRole('button', { name: 'Tangential Arc' }).click()
.getByRole('button', { name: 'Tangential Arc', exact: true })
.click()
await page.waitForTimeout(100) await page.waitForTimeout(100)
// screen shot should show the sketch // screen shot should show the sketch
@ -642,9 +634,7 @@ test.describe('Client side scene scale should match engine scale', () => {
|> line([184.3, 0], %)` |> line([184.3, 0], %)`
await expect(u.codeLocator).toHaveText(code) await expect(u.codeLocator).toHaveText(code)
await page await page.getByRole('button', { name: 'Tangential Arc' }).click()
.getByRole('button', { name: 'Tangential Arc', exact: true })
.click()
await page.waitForTimeout(100) await page.waitForTimeout(100)
await page.mouse.click(startXPx + PUR * 30, 500 - PUR * 20) await page.mouse.click(startXPx + PUR * 30, 500 - PUR * 20)
@ -653,9 +643,7 @@ test.describe('Client side scene scale should match engine scale', () => {
|> tangentialArcTo([551.2, -62.01], %)` |> tangentialArcTo([551.2, -62.01], %)`
await expect(u.codeLocator).toHaveText(code) await expect(u.codeLocator).toHaveText(code)
await page await page.getByRole('button', { name: 'Tangential Arc' }).click()
.getByRole('button', { name: 'Tangential Arc', exact: true })
.click()
await page.waitForTimeout(100) await page.waitForTimeout(100)
// screen shot should show the sketch // screen shot should show the sketch
@ -689,14 +677,14 @@ test('Sketch on face with none z-up', async ({ page, context }) => {
'persistCode', 'persistCode',
`const part001 = startSketchOn('-XZ') `const part001 = startSketchOn('-XZ')
|> startProfileAt([1.4, 2.47], %) |> startProfileAt([1.4, 2.47], %)
|> line([9.31, 10.55], %, $seg01) |> line([9.31, 10.55], %, 'seg01')
|> line([11.91, -10.42], %) |> line([11.91, -10.42], %)
|> close(%) |> close(%)
|> extrude(${KCL_DEFAULT_LENGTH}, %) |> extrude(${KCL_DEFAULT_LENGTH}, %)
const part002 = startSketchOn(part001, seg01) const part002 = startSketchOn(part001, 'seg01')
|> startProfileAt([8, 8], %) |> startProfileAt([8, 8], %)
|> line([4.68, 3.05], %) |> line([4.68, 3.05], %)
|> line([0, -7.79], %) |> line([0, -7.79], %, 'seg02')
|> close(%) |> close(%)
|> extrude(${KCL_DEFAULT_LENGTH}, %) |> extrude(${KCL_DEFAULT_LENGTH}, %)
` `
@ -711,7 +699,7 @@ const part002 = startSketchOn(part001, seg01)
// wait for execution done // wait for execution done
await expect( await expect(
page.locator('[data-message-type="execution-done"]') page.locator('[data-message-type="execution-done"]')
).toHaveCount(1, { timeout: 10_000 }) ).toHaveCount(2)
await u.closeDebugPanel() await u.closeDebugPanel()
// Wait for the second extrusion to appear // Wait for the second extrusion to appear
@ -761,7 +749,7 @@ test('Zoom to fit on load - solid 2d', async ({ page, context }) => {
// wait for execution done // wait for execution done
await expect( await expect(
page.locator('[data-message-type="execution-done"]') page.locator('[data-message-type="execution-done"]')
).toHaveCount(1) ).toHaveCount(2)
await u.closeDebugPanel() await u.closeDebugPanel()
// Wait for the second extrusion to appear // Wait for the second extrusion to appear
@ -798,7 +786,7 @@ test('Zoom to fit on load - solid 3d', async ({ page, context }) => {
// wait for execution done // wait for execution done
await expect( await expect(
page.locator('[data-message-type="execution-done"]') page.locator('[data-message-type="execution-done"]')
).toHaveCount(1) ).toHaveCount(2)
await u.closeDebugPanel() await u.closeDebugPanel()
// Wait for the second extrusion to appear // Wait for the second extrusion to appear
@ -829,7 +817,7 @@ test.describe('Grid visibility', () => {
// wait for execution done // wait for execution done
await expect( await expect(
page.locator('[data-message-type="execution-done"]') page.locator('[data-message-type="execution-done"]')
).toHaveCount(1) ).toHaveCount(2)
await u.closeDebugPanel() await u.closeDebugPanel()
await u.closeKclCodePanel() await u.closeKclCodePanel()
// TODO: Find a way to truly know that the objects have finished // TODO: Find a way to truly know that the objects have finished
@ -877,7 +865,7 @@ test.describe('Grid visibility', () => {
// wait for execution done // wait for execution done
await expect( await expect(
page.locator('[data-message-type="execution-done"]') page.locator('[data-message-type="execution-done"]')
).toHaveCount(1) ).toHaveCount(2)
await u.closeDebugPanel() await u.closeDebugPanel()
await u.closeKclCodePanel() await u.closeKclCodePanel()
// TODO: Find a way to truly know that the objects have finished // TODO: Find a way to truly know that the objects have finished

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 70 KiB

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 30 KiB

View File

@ -71,7 +71,7 @@ export const TEST_CODE_GIZMO = `const part001 = startSketchOn('XZ')
|> angledLine({ angle: 3 + 0, length: 3.14 + 0 }, %) |> angledLine({ angle: 3 + 0, length: 3.14 + 0 }, %)
|> lineTo([20.14 + 0, -0.14 + 0], %) |> lineTo([20.14 + 0, -0.14 + 0], %)
|> xLineTo(29 + 0, %) |> xLineTo(29 + 0, %)
|> yLine(-3.14 + 0, %, $a) |> yLine(-3.14 + 0, %, 'a')
|> xLine(1.63, %) |> xLine(1.63, %)
|> angledLineOfXLength({ angle: 3 + 0, length: 3.14 }, %) |> angledLineOfXLength({ angle: 3 + 0, length: 3.14 }, %)
|> angledLineOfYLength({ angle: 30, length: 3 + 0 }, %) |> angledLineOfYLength({ angle: 30, length: 3 + 0 }, %)
@ -79,275 +79,10 @@ export const TEST_CODE_GIZMO = `const part001 = startSketchOn('XZ')
|> angledLineToY({ angle: 30, to: 11.14 }, %) |> angledLineToY({ angle: 30, to: 11.14 }, %)
|> angledLineThatIntersects({ |> angledLineThatIntersects({
angle: 3.14, angle: 3.14,
intersectTag: a, intersectTag: 'a',
offset: 0 offset: 0
}, %) }, %)
|> tangentialArcTo([13.14 + 0, 13.14], %) |> tangentialArcTo([13.14 + 0, 13.14], %)
|> close(%) |> close(%)
|> extrude(5 + 7, %) |> extrude(5 + 7, %)
` `
export const TEST_CODE_LONG_WITH_ERROR_OUT_OF_VIEW = `const width = 50.8
const height = 30
const thickness = 2
const keychainHoleSize = 3
const keychain = startSketchOn("XY")
|> startProfileAt([0, 0], %)
|> lineTo([width, 0], %)
|> lineTo([width, height], %)
|> lineTo([0, height], %)
|> close(%)
|> extrude(thickness, %)
// generated from /home/paultag/Downloads/zma-logomark.svg
fn svg = (surface, origin, depth) => {
let a0 = surface |> startProfileAt([origin[0] + 45.430427, origin[1] + -14.627736], %)
|> bezierCurve({
control1: [ 0, 0.764157 ],
control2: [ 0, 1.528314 ],
to: [ 0, 2.292469 ]
}, %)
|> bezierCurve({
control1: [ -3.03202, 0 ],
control2: [ -6.064039, 0 ],
to: [ -9.09606, 0 ]
}, %)
|> bezierCurve({
control1: [ 0, -1.077657 ],
control2: [ 0, -2.155312 ],
to: [ 0, -3.232969 ]
}, %)
|> bezierCurve({
control1: [ 2.741805, 0 ],
control2: [ 5.483613, 0 ],
to: [ 8.225417, 0 ]
}, %)
|> bezierCurve({
control1: [ -2.740682, -2.961815 ],
control2: [ -5.490342, -5.925794 ],
to: [ -8.225417, -8.886255 ]
}, %)
|> bezierCurve({
control1: [ 0, -0.723995 ],
control2: [ 0, -1.447988 ],
to: [ 0, -2.171981 ]
}, %)
|> bezierCurve({
control1: [ 0.712124, 0.05061 ],
control2: [ 1.511636, -0.09877 ],
to: [ 2.172096, 0.07005 ]
}, %)
|> bezierCurve({
control1: [ 0.68573, 0.740811 ],
control2: [ 1.371459, 1.481622 ],
to: [ 2.057187, 2.222436 ]
}, %)
|> bezierCurve({
control1: [ 0, -0.76416 ],
control2: [ 0, -1.52832 ],
to: [ 0, -2.29248 ]
}, %)
|> bezierCurve({
control1: [ 3.032013, 0 ],
control2: [ 6.064026, 0 ],
to: [ 9.096038, 0 ]
}, %)
|> bezierCurve({
control1: [ 0, 1.077657 ],
control2: [ 0, 2.155314 ],
to: [ 0, 3.232973 ]
}, %)
|> bezierCurve({
control1: [ -2.741312, 0 ],
control2: [ -5.482623, 0 ],
to: [ -8.223936, 0 ]
}, %)
|> bezierCurve({
control1: [ 2.741313, 2.961108 ],
control2: [ 5.482624, 5.922216 ],
to: [ 8.223936, 8.883325 ]
}, %)
|> bezierCurve({
control1: [ 0, 0.724968 ],
control2: [ 0, 1.449938 ],
to: [ 0, 2.174907 ]
}, %)
|> bezierCurve({
control1: [ -0.712656, -0.05145 ],
control2: [ -1.512554, 0.09643 ],
to: [ -2.173592, -0.07298 ]
}, %)
|> bezierCurve({
control1: [ -0.685222, -0.739834 ],
control2: [ -1.370445, -1.479669 ],
to: [ -2.055669, -2.219505 ]
}, %)
|> close(%)
|> extrude(depth, %)
let a1 = surface |> startProfileAt([origin[0] + 57.920488, origin[1] + -15.244943], %)
|> bezierCurve({
control1: [ -2.78904, 0.106635 ],
control2: [ -5.052548, -2.969529 ],
to: [ -4.055141, -5.598369 ]
}, %)
|> bezierCurve({
control1: [ 0.841523, -0.918736 ],
control2: [ 0.439412, -1.541892 ],
to: [ -0.368488, -2.214378 ]
}, %)
|> bezierCurve({
control1: [ -0.418245, -0.448461 ],
control2: [ -0.836489, -0.896922 ],
to: [ -1.254732, -1.345384 ]
}, %)
|> bezierCurve({
control1: [ -2.76806, 2.995359 ],
control2: [ -2.32667, 8.18409 ],
to: [ 0.897655, 10.678932 ]
}, %)
|> bezierCurve({
control1: [ 2.562822, 2.186098 ],
control2: [ 6.605111, 2.28043 ],
to: [ 9.271202, 0.226476 ]
}, %)
|> bezierCurve({
control1: [ -0.743744, -0.797465 ],
control2: [ -1.487487, -1.594932 ],
to: [ -2.231232, -2.392397 ]
}, %)
|> bezierCurve({
control1: [ -0.672938, 0.421422 ],
control2: [ -1.465362, 0.646946 ],
to: [ -2.259264, 0.64512 ]
}, %)
|> close(%)
|> extrude(depth, %)
let a2 = surface |> startProfileAt([origin[0] + 62.19406300000001, origin[1] + -19.500698999999997], %)
|> bezierCurve({
control1: [ 0.302938, 1.281141 ],
control2: [ -1.53575, 2.434288 ],
to: [ -0.10908, 3.279477 ]
}, %)
|> bezierCurve({
control1: [ 0.504637, 0.54145 ],
control2: [ 1.009273, 1.082899 ],
to: [ 1.513909, 1.624348 ]
}, %)
|> bezierCurve({
control1: [ 2.767778, -2.995425 ],
control2: [ 2.327135, -8.184384 ],
to: [ -0.897661, -10.679047 ]
}, %)
|> bezierCurve({
control1: [ -2.562947, -2.186022 ],
control2: [ -6.604089, -2.279606 ],
to: [ -9.271196, -0.227813 ]
}, %)
|> bezierCurve({
control1: [ 0.744231, 0.797952 ],
control2: [ 1.488461, 1.595904 ],
to: [ 2.232692, 2.393856 ]
}, %)
|> bezierCurve({
control1: [ 2.302377, -1.564629 ],
control2: [ 5.793126, -0.15358 ],
to: [ 6.396577, 2.547372 ]
}, %)
|> bezierCurve({
control1: [ 0.08981, 0.346302 ],
control2: [ 0.134865, 0.704078 ],
to: [ 0.13476, 1.061807 ]
}, %)
|> close(%)
|> extrude(depth, %)
let a3 = surface |> startProfileAt([origin[0] + 74.124866, origin[1] + -15.244943], %)
|> bezierCurve({
control1: [ -2.78904, 0.106635 ],
control2: [ -5.052549, -2.969529 ],
to: [ -4.055142, -5.598369 ]
}, %)
|> bezierCurve({
control1: [ 0.841527, -0.918738 ],
control2: [ 0.43941, -1.541892 ],
to: [ -0.368497, -2.214367 ]
}, %)
|> bezierCurve({
control1: [ -0.418254, -0.448466 ],
control2: [ -0.836507, -0.896931 ],
to: [ -1.254761, -1.345395 ]
}, %)
|> bezierCurve({
control1: [ -2.768019, 2.995371 ],
control2: [ -2.326624, 8.184088 ],
to: [ 0.897678, 10.678932 ]
}, %)
|> bezierCurve({
control1: [ 2.56289, 2.186191 ],
control2: [ 6.60516, 2.280307 ],
to: [ 9.271371, 0.226476 ]
}, %)
|> bezierCurve({
control1: [ -0.743808, -0.797465 ],
control2: [ -1.487616, -1.594932 ],
to: [ -2.231424, -2.392397 ]
}, %)
|> bezierCurve({
control1: [ -0.672916, 0.421433 ],
control2: [ -1.465344, 0.646926 ],
to: [ -2.259225, 0.64512 ]
}, %)
|> close(%)
|> extrude(depth, %)
let a4 = surface |> startProfileAt([origin[0] + 77.57333899999998, origin[1] + -16.989262999999998], %)
|> bezierCurve({
control1: [ 0.743298, 0.797463 ],
control2: [ 1.486592, 1.594926 ],
to: [ 2.229888, 2.392389 ]
}, %)
|> bezierCurve({
control1: [ 2.767827, -2.995393 ],
control2: [ 2.327103, -8.184396 ],
to: [ -0.897672, -10.679047 ]
}, %)
|> bezierCurve({
control1: [ -2.562939, -2.186037 ],
control2: [ -6.604077, -2.279589 ],
to: [ -9.271185, -0.227813 ]
}, %)
|> bezierCurve({
control1: [ 0.744243, 0.797952 ],
control2: [ 1.488486, 1.595904 ],
to: [ 2.232729, 2.393856 ]
}, %)
|> bezierCurve({
control1: [ 2.302394, -1.564623 ],
control2: [ 5.793201, -0.153598 ],
to: [ 6.396692, 2.547372 ]
}, %)
|> bezierCurve({
control1: [ 0.32074, 1.215468 ],
control2: [ 0.06159, 2.564765 ],
to: [ -0.690452, 3.573243 ]
}, %)
|> close(%)
|> extrude(depth, %)
"thing";kajsnd;akjsnd
return 0
}
svg(startSketchOn(keychain, 'end'), [-33, 32], -thickness)
startSketchOn(keychain, 'end')
|> circle([
width / 2,
height - (keychainHoleSize + 1.5)
], keychainHoleSize, %)
|> extrude(-thickness, %)`

View File

@ -1,5 +1,5 @@
import { expect, Page, Download } from '@playwright/test' import { test, expect, Page, Download } from '@playwright/test'
import { EngineCommand } from 'lang/std/artifactGraph' import { EngineCommand } from '../../src/lang/std/engineConnection'
import os from 'os' import os from 'os'
import fsp from 'fs/promises' import fsp from 'fs/promises'
import pixelMatch from 'pixelmatch' import pixelMatch from 'pixelmatch'
@ -21,7 +21,7 @@ async function waitForPageLoad(page: Page) {
timeout: 20_000, timeout: 20_000,
}) })
await expect(page.getByRole('button', { name: 'Start Sketch' })).toBeEnabled({ await expect(page.getByTestId('start-sketch')).toBeEnabled({
timeout: 20_000, timeout: 20_000,
}) })
} }
@ -58,45 +58,44 @@ async function waitForDefaultPlanesToBeVisible(page: Page) {
} }
async function openKclCodePanel(page: Page) { async function openKclCodePanel(page: Page) {
const paneLocator = page.getByTestId('code-pane-button') const paneLocator = page.getByRole('tab', { name: 'KCL Code', exact: false })
const ariaSelected = await paneLocator?.getAttribute('aria-pressed') const isOpen = (await paneLocator?.getAttribute('aria-selected')) === 'true'
const isOpen = ariaSelected === 'true'
if (!isOpen) { if (!isOpen) {
await paneLocator.click() await paneLocator.click()
await expect(paneLocator).toHaveAttribute('aria-pressed', 'true') await paneLocator.and(page.locator('[aria-selected="true"]')).waitFor()
} }
} }
async function closeKclCodePanel(page: Page) { async function closeKclCodePanel(page: Page) {
const paneLocator = page.getByTestId('code-pane-button') const paneLocator = page.getByRole('tab', { name: 'KCL Code', exact: false })
const ariaSelected = await paneLocator?.getAttribute('aria-pressed') const isOpen = (await paneLocator?.getAttribute('aria-selected')) === 'true'
const isOpen = ariaSelected === 'true'
if (isOpen) { if (isOpen) {
await paneLocator.click() await paneLocator.click()
await expect(paneLocator).not.toHaveAttribute('aria-pressed', 'true') await paneLocator
.and(page.locator(':not([aria-selected="true"])'))
.waitFor()
} }
} }
async function openDebugPanel(page: Page) { async function openDebugPanel(page: Page) {
const debugLocator = page.getByTestId('debug-pane-button') const debugLocator = page.getByRole('tab', { name: 'Debug', exact: false })
await expect(debugLocator).toBeVisible() const isOpen = (await debugLocator?.getAttribute('aria-selected')) === 'true'
const isOpen = (await debugLocator?.getAttribute('aria-pressed')) === 'true'
if (!isOpen) { if (!isOpen) {
await debugLocator.click() await debugLocator.click()
await expect(debugLocator).toHaveAttribute('aria-pressed', 'true') await debugLocator.and(page.locator('[aria-selected="true"]')).waitFor()
} }
} }
async function closeDebugPanel(page: Page) { async function closeDebugPanel(page: Page) {
const debugLocator = page.getByTestId('debug-pane-button') const debugLocator = page.getByRole('tab', { name: 'Debug', exact: false })
await expect(debugLocator).toBeVisible() const isOpen = (await debugLocator?.getAttribute('aria-selected')) === 'true'
const isOpen = (await debugLocator?.getAttribute('aria-pressed')) === 'true'
if (isOpen) { if (isOpen) {
await debugLocator.click() await debugLocator.click()
await expect(debugLocator).not.toHaveAttribute('aria-pressed', 'true') await debugLocator
.and(page.locator(':not([aria-selected="true"])'))
.waitFor()
} }
} }
@ -266,7 +265,7 @@ export async function getUtils(page: Page) {
getSegmentBodyCoords: async (locator: string, px = 30) => { getSegmentBodyCoords: async (locator: string, px = 30) => {
const overlay = page.locator(locator) const overlay = page.locator(locator)
const bbox = await overlay const bbox = await overlay
.boundingBox({ timeout: 5000 }) .boundingBox()
.then((box) => ({ ...box, x: box?.x || 0, y: box?.y || 0 })) .then((box) => ({ ...box, x: box?.x || 0, y: box?.y || 0 }))
const angle = Number(await overlay.getAttribute('data-overlay-angle')) const angle = Number(await overlay.getAttribute('data-overlay-angle'))
const angleXOffset = Math.cos(((angle - 180) * Math.PI) / 180) * px const angleXOffset = Math.cos(((angle - 180) * Math.PI) / 180) * px
@ -472,11 +471,10 @@ export const doExport = async (
page: Page page: Page
): Promise<Paths> => { ): Promise<Paths> => {
await page.getByRole('button', { name: APP_NAME }).click() await page.getByRole('button', { name: APP_NAME }).click()
const exportMenuButton = page.getByRole('button', { await expect(
name: 'Export current part', page.getByRole('button', { name: 'Export', exact: false })
}) ).toBeVisible()
await expect(exportMenuButton).toBeVisible() await page.getByRole('button', { name: 'Export', exact: false }).click()
await exportMenuButton.click()
await expect(page.getByTestId('command-bar')).toBeVisible() await expect(page.getByTestId('command-bar')).toBeVisible()
// Go through export via command bar // Go through export via command bar

12
flake.lock generated
View File

@ -2,11 +2,11 @@
"nodes": { "nodes": {
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1721933792, "lastModified": 1718470082,
"narHash": "sha256-zYVwABlQnxpbaHMfX6Wt9jhyQstFYwN2XjleOJV3VVg=", "narHash": "sha256-u2F0MMYE+Efc+ocruTbtU/wWHuYHWcJafp5zJ++n/YE=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "2122a9b35b35719ad9a395fe783eabb092df01b1", "rev": "3027ba73dfef68eb555fc2fa97aed4e999e74f97",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -43,11 +43,11 @@
"nixpkgs": "nixpkgs_2" "nixpkgs": "nixpkgs_2"
}, },
"locked": { "locked": {
"lastModified": 1721960387, "lastModified": 1718681902,
"narHash": "sha256-o21ax+745ETGXrcgc/yUuLw1SI77ymp3xEpJt+w/kks=", "narHash": "sha256-E/T7Ge6ayEQe7FVKMJqDBoHyLhRhjc6u9CmU8MyYfy0=",
"owner": "oxalica", "owner": "oxalica",
"repo": "rust-overlay", "repo": "rust-overlay",
"rev": "9cbf831c5b20a53354fc12758abd05966f9f1699", "rev": "16c8ad83297c278eebe740dea5491c1708960dd1",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@ -57,7 +57,6 @@
pkg-config pkg-config
nodejs_22 nodejs_22
yarn
]) ++ pkgs.lib.optionals pkgs.stdenv.isDarwin (with pkgs; [ ]) ++ pkgs.lib.optionals pkgs.stdenv.isDarwin (with pkgs; [
libiconv libiconv
darwin.apple_sdk.frameworks.Security darwin.apple_sdk.frameworks.Security

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
{ {
"name": "untitled-app", "name": "untitled-app",
"version": "0.24.8", "version": "0.24.3",
"private": true, "private": true,
"dependencies": { "dependencies": {
"@codemirror/autocomplete": "^6.17.0", "@codemirror/autocomplete": "^6.17.0",
@ -87,8 +87,7 @@
"bump-jsons": "echo \"$(jq --arg v \"$VERSION\" '.version=$v' package.json --indent 2)\" > package.json && echo \"$(jq --arg v \"$VERSION\" '.version=$v' src-tauri/tauri.conf.json --indent 2)\" > src-tauri/tauri.conf.json", "bump-jsons": "echo \"$(jq --arg v \"$VERSION\" '.version=$v' package.json --indent 2)\" > package.json && echo \"$(jq --arg v \"$VERSION\" '.version=$v' src-tauri/tauri.conf.json --indent 2)\" > src-tauri/tauri.conf.json",
"postinstall": "yarn xstate:typegen", "postinstall": "yarn xstate:typegen",
"xstate:typegen": "yarn xstate typegen \"src/**/*.ts?(x)\"", "xstate:typegen": "yarn xstate typegen \"src/**/*.ts?(x)\"",
"make:dev": "make dev", "make:dev": "make dev"
"generate:machine-api": "npx openapi-typescript ./openapi/machine-api.json -o src/lib/machine-api.d.ts"
}, },
"prettier": { "prettier": {
"trailingComma": "es5", "trailingComma": "es5",
@ -110,14 +109,13 @@
}, },
"devDependencies": { "devDependencies": {
"@babel/plugin-proposal-private-property-in-object": "^7.21.11", "@babel/plugin-proposal-private-property-in-object": "^7.21.11",
"@babel/preset-env": "^7.25.0", "@babel/preset-env": "^7.24.3",
"@iarna/toml": "^2.2.5", "@iarna/toml": "^2.2.5",
"@lezer/generator": "^1.7.1", "@lezer/generator": "^1.7.1",
"@playwright/test": "^1.45.1", "@playwright/test": "^1.45.1",
"@tauri-apps/cli": "==2.0.0-beta.13", "@tauri-apps/cli": "==2.0.0-beta.13",
"@testing-library/jest-dom": "^5.14.1", "@testing-library/jest-dom": "^5.14.1",
"@testing-library/react": "^15.0.2", "@testing-library/react": "^15.0.2",
"@types/d3-force": "^3.0.10",
"@types/mocha": "^10.0.6", "@types/mocha": "^10.0.6",
"@types/node": "^18.19.31", "@types/node": "^18.19.31",
"@types/pixelmatch": "^5.2.6", "@types/pixelmatch": "^5.2.6",
@ -140,7 +138,6 @@
"@wdio/spec-reporter": "^8.36.0", "@wdio/spec-reporter": "^8.36.0",
"@xstate/cli": "^0.5.17", "@xstate/cli": "^0.5.17",
"autoprefixer": "^10.4.19", "autoprefixer": "^10.4.19",
"d3-force": "^3.0.0",
"eslint": "^8.57.0", "eslint": "^8.57.0",
"eslint-config-react-app": "^7.0.1", "eslint-config-react-app": "^7.0.1",
"eslint-plugin-css-modules": "^2.12.0", "eslint-plugin-css-modules": "^2.12.0",

View File

@ -42,8 +42,8 @@ function registerServerCapability(
serverCapabilities: ServerCapabilities, serverCapabilities: ServerCapabilities,
registration: Registration registration: Registration
): ServerCapabilities | Error { ): ServerCapabilities | Error {
const serverCapabilitiesCopy = structuredClone( const serverCapabilitiesCopy = JSON.parse(
serverCapabilities JSON.stringify(serverCapabilities)
) as IFlexibleServerCapabilities ) as IFlexibleServerCapabilities
const { method, registerOptions } = registration const { method, registerOptions } = registration
const providerName = ServerCapabilitiesProviders[method] const providerName = ServerCapabilitiesProviders[method]
@ -54,7 +54,7 @@ function registerServerCapability(
} else { } else {
serverCapabilitiesCopy[providerName] = Object.assign( serverCapabilitiesCopy[providerName] = Object.assign(
{}, {},
structuredClone(registerOptions) JSON.parse(JSON.stringify(registerOptions))
) )
} }
} else { } else {
@ -68,8 +68,8 @@ function unregisterServerCapability(
serverCapabilities: ServerCapabilities, serverCapabilities: ServerCapabilities,
unregistration: Unregistration unregistration: Unregistration
): ServerCapabilities { ): ServerCapabilities {
const serverCapabilitiesCopy = structuredClone( const serverCapabilitiesCopy = JSON.parse(
serverCapabilities JSON.stringify(serverCapabilities)
) as IFlexibleServerCapabilities ) as IFlexibleServerCapabilities
const { method } = unregistration const { method } = unregistration
const providerName = ServerCapabilitiesProviders[method] const providerName = ServerCapabilitiesProviders[method]

View File

@ -1,10 +1,5 @@
import { Extension } from '@codemirror/state' import { Extension } from '@codemirror/state'
import { import { hoverTooltip, tooltips, ViewPlugin } from '@codemirror/view'
hoverTooltip,
tooltips,
ViewPlugin,
EditorView,
} from '@codemirror/view'
import { LanguageServerPlugin } from './lsp' import { LanguageServerPlugin } from './lsp'
import { offsetToPos } from './util' import { offsetToPos } from './util'
@ -22,13 +17,6 @@ export default function lspHoverExt(
}), }),
tooltips({ tooltips({
position: 'absolute', position: 'absolute',
parent: document.body,
}),
EditorView.baseTheme({
'.cm-tooltip': {
fontSize: '12px',
maxWidth: '400px',
},
}), }),
] ]
} }

View File

@ -0,0 +1,12 @@
import { Extension } from '@codemirror/state'
import { linter, forEachDiagnostic, Diagnostic } from '@codemirror/lint'
export default function lspLintExt(): Extension {
return linter((view) => {
let diagnostics: Diagnostic[] = []
forEachDiagnostic(view.state, (d: Diagnostic, from: number, to: number) => {
diagnostics.push(d)
})
return diagnostics
})
}

View File

@ -18,7 +18,6 @@ import type {
ViewPlugin, ViewPlugin,
} from '@codemirror/view' } from '@codemirror/view'
import { EditorView, Tooltip } from '@codemirror/view' import { EditorView, Tooltip } from '@codemirror/view'
import { linter } from '@codemirror/lint'
import type { PublishDiagnosticsParams } from 'vscode-languageserver-protocol' import type { PublishDiagnosticsParams } from 'vscode-languageserver-protocol'
import type * as LSP from 'vscode-languageserver-protocol' import type * as LSP from 'vscode-languageserver-protocol'
@ -36,6 +35,7 @@ import lspAutocompleteExt from './autocomplete'
import lspHoverExt from './hover' import lspHoverExt from './hover'
import lspFormatExt from './format' import lspFormatExt from './format'
import lspIndentExt from './indent' import lspIndentExt from './indent'
import lspLintExt from './lint'
import lspSemanticTokensExt from './semantic-tokens' import lspSemanticTokensExt from './semantic-tokens'
const useLast = (values: readonly any[]) => values.reduce((_, v) => v, '') const useLast = (values: readonly any[]) => values.reduce((_, v) => v, '')
@ -214,7 +214,6 @@ export class LanguageServerPlugin implements PluginValue {
} }
if (!this.client.ready) return if (!this.client.ready) return
try { try {
// Update the state (not the editor) with the new code. // Update the state (not the editor) with the new code.
this.client.textDocumentDidChange({ this.client.textDocumentDidChange({
@ -572,8 +571,8 @@ export class LanguageServerPluginSpec
lspFormatExt(plugin), lspFormatExt(plugin),
lspHoverExt(plugin), lspHoverExt(plugin),
lspIndentExt(), lspIndentExt(),
lspLintExt(),
lspSemanticTokensExt(), lspSemanticTokensExt(),
linter(null),
] ]
} }
} }

View File

@ -23,7 +23,6 @@ export default defineConfig({
reporter: [ reporter: [
[process.env.CI ? 'dot' : 'list'], [process.env.CI ? 'dot' : 'list'],
['json', { outputFile: './test-results/report.json' }], ['json', { outputFile: './test-results/report.json' }],
['html'],
], ],
/* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */ /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */
use: { use: {

289
src-tauri/Cargo.lock generated
View File

@ -172,9 +172,7 @@ dependencies = [
"kcl-lib", "kcl-lib",
"kittycad", "kittycad",
"log", "log",
"mdns-sd",
"oauth2", "oauth2",
"reqwest 0.12.4",
"serde_json", "serde_json",
"tauri", "tauri",
"tauri-build", "tauri-build",
@ -190,7 +188,7 @@ dependencies = [
"tauri-plugin-shell", "tauri-plugin-shell",
"tauri-plugin-updater", "tauri-plugin-updater",
"tokio", "tokio",
"toml 0.8.19", "toml 0.8.14",
"url", "url",
] ]
@ -288,7 +286,7 @@ dependencies = [
"futures-io", "futures-io",
"futures-lite", "futures-lite",
"parking", "parking",
"polling 3.7.0", "polling",
"rustix", "rustix",
"slab", "slab",
"tracing", "tracing",
@ -334,7 +332,7 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.72", "syn 2.0.71",
] ]
[[package]] [[package]]
@ -369,7 +367,7 @@ checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.72", "syn 2.0.71",
] ]
[[package]] [[package]]
@ -409,7 +407,7 @@ checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.72", "syn 2.0.71",
] ]
[[package]] [[package]]
@ -552,7 +550,7 @@ dependencies = [
"proc-macro-crate 3.1.0", "proc-macro-crate 3.1.0",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.72", "syn 2.0.71",
"syn_derive", "syn_derive",
] ]
@ -650,12 +648,6 @@ version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
[[package]]
name = "byteorder-lite"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495"
[[package]] [[package]]
name = "bytes" name = "bytes"
version = "1.6.0" version = "1.6.0"
@ -729,7 +721,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8a969e13a7589e9e3e4207e153bae624ade2b5622fb4684a4923b23ec3d57719" checksum = "8a969e13a7589e9e3e4207e153bae624ade2b5622fb4684a4923b23ec3d57719"
dependencies = [ dependencies = [
"serde", "serde",
"toml 0.8.19", "toml 0.8.14",
] ]
[[package]] [[package]]
@ -800,9 +792,9 @@ dependencies = [
[[package]] [[package]]
name = "clap" name = "clap"
version = "4.5.13" version = "4.5.9"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0fbb260a053428790f3de475e304ff84cdbc4face759ea7a3e64c1edd938a7fc" checksum = "64acc1846d54c1fe936a78dc189c34e28d3f5afc348403f28ecf53660b9b8462"
dependencies = [ dependencies = [
"clap_builder", "clap_builder",
"clap_derive", "clap_derive",
@ -810,9 +802,9 @@ dependencies = [
[[package]] [[package]]
name = "clap_builder" name = "clap_builder"
version = "4.5.13" version = "4.5.9"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "64b17d7ea74e9f833c7dbf2cbe4fb12ff26783eda4782a8975b72f895c9b4d99" checksum = "6fb8393d67ba2e7bfaf28a23458e4e2b543cc73a99595511eb207fdb8aede942"
dependencies = [ dependencies = [
"anstream", "anstream",
"anstyle", "anstyle",
@ -824,14 +816,14 @@ dependencies = [
[[package]] [[package]]
name = "clap_derive" name = "clap_derive"
version = "4.5.13" version = "4.5.8"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "501d359d5f3dcaf6ecdeee48833ae73ec6e42723a1e52419c79abf9507eec0a0" checksum = "2bac35c6dafb060fd4d275d9a4ffae97917c13a6327903a8be2153cd964f7085"
dependencies = [ dependencies = [
"heck 0.5.0", "heck 0.5.0",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.72", "syn 2.0.71",
] ]
[[package]] [[package]]
@ -1081,7 +1073,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331"
dependencies = [ dependencies = [
"quote", "quote",
"syn 2.0.72", "syn 2.0.71",
] ]
[[package]] [[package]]
@ -1091,7 +1083,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "edb49164822f3ee45b17acd4a208cfc1251410cf0cad9a833234c9890774dd9f" checksum = "edb49164822f3ee45b17acd4a208cfc1251410cf0cad9a833234c9890774dd9f"
dependencies = [ dependencies = [
"quote", "quote",
"syn 2.0.72", "syn 2.0.71",
] ]
[[package]] [[package]]
@ -1115,7 +1107,7 @@ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"strsim 0.10.0", "strsim 0.10.0",
"syn 2.0.72", "syn 2.0.71",
] ]
[[package]] [[package]]
@ -1126,7 +1118,7 @@ checksum = "a668eda54683121533a393014d8692171709ff57a7d61f187b6e782719f8933f"
dependencies = [ dependencies = [
"darling_core", "darling_core",
"quote", "quote",
"syn 2.0.72", "syn 2.0.71",
] ]
[[package]] [[package]]
@ -1187,7 +1179,7 @@ checksum = "4078275de501a61ceb9e759d37bdd3d7210e654dbc167ac1a3678ef4435ed57b"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.72", "syn 2.0.71",
"synstructure", "synstructure",
] ]
@ -1214,7 +1206,7 @@ dependencies = [
[[package]] [[package]]
name = "derive-docs" name = "derive-docs"
version = "0.1.21" version = "0.1.20"
dependencies = [ dependencies = [
"Inflector", "Inflector",
"convert_case 0.6.0", "convert_case 0.6.0",
@ -1224,7 +1216,7 @@ dependencies = [
"regex", "regex",
"serde", "serde",
"serde_tokenstream", "serde_tokenstream",
"syn 2.0.72", "syn 2.0.71",
] ]
[[package]] [[package]]
@ -1235,7 +1227,7 @@ checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.72", "syn 2.0.71",
] ]
[[package]] [[package]]
@ -1296,7 +1288,7 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.72", "syn 2.0.71",
] ]
[[package]] [[package]]
@ -1328,7 +1320,7 @@ checksum = "f2b99bf03862d7f545ebc28ddd33a665b50865f4dfd84031a393823879bd4c54"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.72", "syn 2.0.71",
] ]
[[package]] [[package]]
@ -1391,7 +1383,7 @@ dependencies = [
"cc", "cc",
"memchr", "memchr",
"rustc_version", "rustc_version",
"toml 0.8.19", "toml 0.8.14",
"vswhom", "vswhom",
"winreg 0.52.0", "winreg 0.52.0",
] ]
@ -1435,7 +1427,7 @@ checksum = "5c785274071b1b420972453b306eeca06acf4633829db4223b58a2a8c5953bc4"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.72", "syn 2.0.71",
] ]
[[package]] [[package]]
@ -1572,17 +1564,6 @@ dependencies = [
"miniz_oxide", "miniz_oxide",
] ]
[[package]]
name = "flume"
version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "55ac459de2512911e4b674ce33cf20befaba382d05b62b008afc1c8b57cbf181"
dependencies = [
"futures-core",
"futures-sink",
"spin",
]
[[package]] [[package]]
name = "fnv" name = "fnv"
version = "1.0.7" version = "1.0.7"
@ -1607,7 +1588,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.72", "syn 2.0.71",
] ]
[[package]] [[package]]
@ -1723,7 +1704,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.72", "syn 2.0.71",
] ]
[[package]] [[package]]
@ -1999,7 +1980,7 @@ dependencies = [
"proc-macro-error", "proc-macro-error",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.72", "syn 2.0.71",
] ]
[[package]] [[package]]
@ -2027,7 +2008,7 @@ dependencies = [
"inflections", "inflections",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.72", "syn 2.0.71",
] ]
[[package]] [[package]]
@ -2102,7 +2083,7 @@ dependencies = [
"proc-macro-error", "proc-macro-error",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.72", "syn 2.0.71",
] ]
[[package]] [[package]]
@ -2418,28 +2399,6 @@ dependencies = [
"unicode-normalization", "unicode-normalization",
] ]
[[package]]
name = "if-addrs"
version = "0.10.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cabb0019d51a643781ff15c9c8a3e5dedc365c47211270f4e8f82812fedd8f0a"
dependencies = [
"libc",
"windows-sys 0.48.0",
]
[[package]]
name = "image"
version = "0.25.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "99314c8a2152b8ddb211f924cdae532d8c5e4c8bb54728e12fff1b0cd5963a10"
dependencies = [
"bytemuck",
"byteorder-lite",
"num-traits",
"png",
]
[[package]] [[package]]
name = "indexmap" name = "indexmap"
version = "1.9.3" version = "1.9.3"
@ -2612,7 +2571,7 @@ dependencies = [
[[package]] [[package]]
name = "kcl-lib" name = "kcl-lib"
version = "0.2.3" version = "0.1.72"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"approx", "approx",
@ -2622,7 +2581,6 @@ dependencies = [
"bson", "bson",
"chrono", "chrono",
"clap", "clap",
"convert_case 0.6.0",
"dashmap 6.0.1", "dashmap 6.0.1",
"databake", "databake",
"derive-docs", "derive-docs",
@ -2630,7 +2588,6 @@ dependencies = [
"futures", "futures",
"git_rev", "git_rev",
"gltf-json", "gltf-json",
"image",
"js-sys", "js-sys",
"kittycad", "kittycad",
"lazy_static", "lazy_static",
@ -2645,11 +2602,10 @@ dependencies = [
"thiserror", "thiserror",
"tokio", "tokio",
"tokio-tungstenite", "tokio-tungstenite",
"toml 0.8.19", "toml 0.8.14",
"tower-lsp", "tower-lsp",
"ts-rs", "ts-rs",
"url", "url",
"urlencoding",
"uuid", "uuid",
"validator", "validator",
"wasm-bindgen", "wasm-bindgen",
@ -2672,9 +2628,9 @@ dependencies = [
[[package]] [[package]]
name = "kittycad" name = "kittycad"
version = "0.3.9" version = "0.3.7"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "36b87a9cca545825ba18005c1944b8525fac28867d99984178bf22c79fb5ec25" checksum = "e1777b503442fa4666564cc3ab237d456df853a09648a4b2bb09622d25d021a5"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"async-trait", "async-trait",
@ -2919,19 +2875,6 @@ version = "0.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94"
[[package]]
name = "mdns-sd"
version = "0.11.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "807457e493076539ff8f202806f9dc2eaa9f13f69701da7ed38eec7a9afd1616"
dependencies = [
"flume",
"if-addrs",
"log",
"polling 2.8.0",
"socket2",
]
[[package]] [[package]]
name = "memchr" name = "memchr"
version = "2.7.2" version = "2.7.2"
@ -2987,14 +2930,13 @@ dependencies = [
[[package]] [[package]]
name = "mio" name = "mio"
version = "1.0.1" version = "0.8.11"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4569e456d394deccd22ce1c1913e6ea0e54519f577285001215d33557431afe4" checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
dependencies = [ dependencies = [
"hermit-abi",
"libc", "libc",
"wasi 0.11.0+wasi-snapshot-preview1", "wasi 0.11.0+wasi-snapshot-preview1",
"windows-sys 0.52.0", "windows-sys 0.48.0",
] ]
[[package]] [[package]]
@ -3125,6 +3067,16 @@ dependencies = [
"autocfg", "autocfg",
] ]
[[package]]
name = "num_cpus"
version = "1.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
dependencies = [
"hermit-abi",
"libc",
]
[[package]] [[package]]
name = "num_enum" name = "num_enum"
version = "0.5.11" version = "0.5.11"
@ -3425,7 +3377,7 @@ dependencies = [
"regex", "regex",
"regex-syntax 0.8.3", "regex-syntax 0.8.3",
"structmeta", "structmeta",
"syn 2.0.72", "syn 2.0.71",
] ]
[[package]] [[package]]
@ -3544,7 +3496,7 @@ dependencies = [
"phf_shared 0.11.2", "phf_shared 0.11.2",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.72", "syn 2.0.71",
] ]
[[package]] [[package]]
@ -3576,9 +3528,9 @@ dependencies = [
[[package]] [[package]]
name = "phonenumber" name = "phonenumber"
version = "0.3.6+8.13.36" version = "0.3.5+8.13.36"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "11756237b57b8cc5e97dc8b1e70ea436324d30e7075de63b14fd15073a8f692a" checksum = "f174c8db59b620032bd52b655fc97000458850fec0db35fcd4e802b668517ec0"
dependencies = [ dependencies = [
"bincode", "bincode",
"either", "either",
@ -3612,7 +3564,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.72", "syn 2.0.71",
] ]
[[package]] [[package]]
@ -3671,22 +3623,6 @@ dependencies = [
"miniz_oxide", "miniz_oxide",
] ]
[[package]]
name = "polling"
version = "2.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce"
dependencies = [
"autocfg",
"bitflags 1.3.2",
"cfg-if",
"concurrent-queue",
"libc",
"log",
"pin-project-lite",
"windows-sys 0.48.0",
]
[[package]] [[package]]
name = "polling" name = "polling"
version = "3.7.0" version = "3.7.0"
@ -4502,7 +4438,7 @@ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"serde_derive_internals", "serde_derive_internals",
"syn 2.0.72", "syn 2.0.71",
] ]
[[package]] [[package]]
@ -4622,7 +4558,7 @@ checksum = "e0cd7e117be63d3c3678776753929474f3b04a43a080c744d6b0ae2a8c28e222"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.72", "syn 2.0.71",
] ]
[[package]] [[package]]
@ -4633,18 +4569,17 @@ checksum = "330f01ce65a3a5fe59a60c82f3c9a024b573b8a6e875bd233fe5f934e71d54e3"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.72", "syn 2.0.71",
] ]
[[package]] [[package]]
name = "serde_json" name = "serde_json"
version = "1.0.122" version = "1.0.120"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "784b6203951c57ff748476b126ccb5e8e2959a5c19e5c617ab1956be3dbc68da" checksum = "4e0d21c9a8cae1235ad58a00c11cb40d4b1e5c784f1ef2c537876ed6ffd8b7c5"
dependencies = [ dependencies = [
"indexmap 2.2.6", "indexmap 2.2.6",
"itoa 1.0.11", "itoa 1.0.11",
"memchr",
"ryu", "ryu",
"serde", "serde",
] ]
@ -4667,14 +4602,14 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.72", "syn 2.0.71",
] ]
[[package]] [[package]]
name = "serde_spanned" name = "serde_spanned"
version = "0.6.7" version = "0.6.6"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eb5b1b31579f3811bf615c144393417496f152e12ac8b7663bf664f4a815306d" checksum = "79e674e01f999af37c49f70a6ede167a8a60b2503e56c5599532a65baa5969a0"
dependencies = [ dependencies = [
"serde", "serde",
] ]
@ -4688,7 +4623,7 @@ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"serde", "serde",
"syn 2.0.72", "syn 2.0.71",
] ]
[[package]] [[package]]
@ -4730,7 +4665,7 @@ dependencies = [
"darling", "darling",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.72", "syn 2.0.71",
] ]
[[package]] [[package]]
@ -4923,9 +4858,6 @@ name = "spin"
version = "0.9.8" version = "0.9.8"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
dependencies = [
"lock_api",
]
[[package]] [[package]]
name = "stable_deref_trait" name = "stable_deref_trait"
@ -5001,7 +4933,7 @@ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"structmeta-derive", "structmeta-derive",
"syn 2.0.72", "syn 2.0.71",
] ]
[[package]] [[package]]
@ -5012,7 +4944,7 @@ checksum = "152a0b65a590ff6c3da95cabe2353ee04e6167c896b28e3b14478c2636c922fc"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.72", "syn 2.0.71",
] ]
[[package]] [[package]]
@ -5034,7 +4966,7 @@ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"rustversion", "rustversion",
"syn 2.0.72", "syn 2.0.71",
] ]
[[package]] [[package]]
@ -5067,9 +4999,9 @@ dependencies = [
[[package]] [[package]]
name = "syn" name = "syn"
version = "2.0.72" version = "2.0.71"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dc4b9b9bf2add8093d3f2c0204471e951b2285580335de42f9d2534f3ae7a8af" checksum = "b146dcf730474b4bcd16c311627b31ede9ab149045db4d6088b3becaea046462"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
@ -5085,7 +5017,7 @@ dependencies = [
"proc-macro-error", "proc-macro-error",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.72", "syn 2.0.71",
] ]
[[package]] [[package]]
@ -5102,7 +5034,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.72", "syn 2.0.71",
] ]
[[package]] [[package]]
@ -5144,7 +5076,7 @@ dependencies = [
"cfg-expr", "cfg-expr",
"heck 0.5.0", "heck 0.5.0",
"pkg-config", "pkg-config",
"toml 0.8.19", "toml 0.8.14",
"version-compare", "version-compare",
] ]
@ -5297,7 +5229,7 @@ dependencies = [
"serde_json", "serde_json",
"tauri-utils", "tauri-utils",
"tauri-winres", "tauri-winres",
"toml 0.8.19", "toml 0.8.14",
"walkdir", "walkdir",
] ]
@ -5319,7 +5251,7 @@ dependencies = [
"serde", "serde",
"serde_json", "serde_json",
"sha2", "sha2",
"syn 2.0.72", "syn 2.0.71",
"tauri-utils", "tauri-utils",
"thiserror", "thiserror",
"time", "time",
@ -5337,7 +5269,7 @@ dependencies = [
"heck 0.5.0", "heck 0.5.0",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.72", "syn 2.0.71",
"tauri-codegen", "tauri-codegen",
"tauri-utils", "tauri-utils",
] ]
@ -5355,7 +5287,7 @@ dependencies = [
"serde", "serde",
"serde_json", "serde_json",
"tauri-utils", "tauri-utils",
"toml 0.8.19", "toml 0.8.14",
"walkdir", "walkdir",
] ]
@ -5639,7 +5571,7 @@ dependencies = [
"serde_with", "serde_with",
"swift-rs", "swift-rs",
"thiserror", "thiserror",
"toml 0.8.19", "toml 0.8.14",
"url", "url",
"urlpattern", "urlpattern",
"walkdir", "walkdir",
@ -5695,22 +5627,22 @@ checksum = "8eaa81235c7058867fa8c0e7314f33dcce9c215f535d1913822a2b3f5e289f3c"
[[package]] [[package]]
name = "thiserror" name = "thiserror"
version = "1.0.63" version = "1.0.62"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724" checksum = "f2675633b1499176c2dff06b0856a27976a8f9d436737b4cf4f312d4d91d8bbb"
dependencies = [ dependencies = [
"thiserror-impl", "thiserror-impl",
] ]
[[package]] [[package]]
name = "thiserror-impl" name = "thiserror-impl"
version = "1.0.63" version = "1.0.62"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" checksum = "d20468752b09f49e909e55a5d338caa8bedf615594e9d80bc4c565d30faf798c"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.72", "syn 2.0.71",
] ]
[[package]] [[package]]
@ -5782,32 +5714,33 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
[[package]] [[package]]
name = "tokio" name = "tokio"
version = "1.39.2" version = "1.38.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "daa4fb1bc778bd6f04cbfc4bb2d06a7396a8f299dc33ea1900cedaa316f467b1" checksum = "ba4f4a02a7a80d6f274636f0aa95c7e383b912d41fe721a31f29e29698585a4a"
dependencies = [ dependencies = [
"backtrace", "backtrace",
"bytes", "bytes",
"libc", "libc",
"mio", "mio",
"num_cpus",
"parking_lot 0.12.1", "parking_lot 0.12.1",
"pin-project-lite", "pin-project-lite",
"signal-hook-registry", "signal-hook-registry",
"socket2", "socket2",
"tokio-macros", "tokio-macros",
"tracing", "tracing",
"windows-sys 0.52.0", "windows-sys 0.48.0",
] ]
[[package]] [[package]]
name = "tokio-macros" name = "tokio-macros"
version = "2.4.0" version = "2.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" checksum = "5f5ae998a069d4b5aba8ee9dad856af7d520c3699e6159b185c2acd48155d39a"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.72", "syn 2.0.71",
] ]
[[package]] [[package]]
@ -5886,21 +5819,21 @@ dependencies = [
[[package]] [[package]]
name = "toml" name = "toml"
version = "0.8.19" version = "0.8.14"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" checksum = "6f49eb2ab21d2f26bd6db7bf383edc527a7ebaee412d17af4d40fdccd442f335"
dependencies = [ dependencies = [
"serde", "serde",
"serde_spanned", "serde_spanned",
"toml_datetime", "toml_datetime",
"toml_edit 0.22.20", "toml_edit 0.22.14",
] ]
[[package]] [[package]]
name = "toml_datetime" name = "toml_datetime"
version = "0.6.8" version = "0.6.6"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" checksum = "4badfd56924ae69bcc9039335b2e017639ce3f9b001c393c1b2d1ef846ce2cbf"
dependencies = [ dependencies = [
"serde", "serde",
] ]
@ -5942,15 +5875,15 @@ dependencies = [
[[package]] [[package]]
name = "toml_edit" name = "toml_edit"
version = "0.22.20" version = "0.22.14"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "583c44c02ad26b0c3f3066fe629275e50627026c51ac2e595cca4c230ce1ce1d" checksum = "f21c7aaf97f1bd9ca9d4f9e73b0a6c74bd5afef56f2bc931943a6e1c37e04e38"
dependencies = [ dependencies = [
"indexmap 2.2.6", "indexmap 2.2.6",
"serde", "serde",
"serde_spanned", "serde_spanned",
"toml_datetime", "toml_datetime",
"winnow 0.6.18", "winnow 0.6.6",
] ]
[[package]] [[package]]
@ -6007,7 +5940,7 @@ checksum = "84fd902d4e0b9a4b27f2f440108dc034e1758628a9b702f8ec61ad66355422fa"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.72", "syn 2.0.71",
] ]
[[package]] [[package]]
@ -6036,7 +5969,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.72", "syn 2.0.71",
] ]
[[package]] [[package]]
@ -6166,7 +6099,7 @@ checksum = "c88cc88fd23b5a04528f3a8436024f20010a16ec18eb23c164b1242f65860130"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.72", "syn 2.0.71",
"termcolor", "termcolor",
] ]
@ -6314,12 +6247,6 @@ dependencies = [
"serde", "serde",
] ]
[[package]]
name = "urlencoding"
version = "2.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da"
[[package]] [[package]]
name = "urlpattern" name = "urlpattern"
version = "0.2.0" version = "0.2.0"
@ -6389,7 +6316,7 @@ dependencies = [
"proc-macro-error", "proc-macro-error",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.72", "syn 2.0.71",
] ]
[[package]] [[package]]
@ -6488,7 +6415,7 @@ dependencies = [
"once_cell", "once_cell",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.72", "syn 2.0.71",
"wasm-bindgen-shared", "wasm-bindgen-shared",
] ]
@ -6522,7 +6449,7 @@ checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.72", "syn 2.0.71",
"wasm-bindgen-backend", "wasm-bindgen-backend",
"wasm-bindgen-shared", "wasm-bindgen-shared",
] ]
@ -6663,7 +6590,7 @@ checksum = "ac1345798ecd8122468840bcdf1b95e5dc6d2206c5e4b0eafa078d061f59c9bc"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.72", "syn 2.0.71",
] ]
[[package]] [[package]]
@ -6769,7 +6696,7 @@ checksum = "9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.72", "syn 2.0.71",
] ]
[[package]] [[package]]
@ -6780,7 +6707,7 @@ checksum = "29bee4b38ea3cde66011baa44dba677c432a78593e202392d1e9070cf2a7fca7"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.72", "syn 2.0.71",
] ]
[[package]] [[package]]
@ -7027,9 +6954,9 @@ dependencies = [
[[package]] [[package]]
name = "winnow" name = "winnow"
version = "0.6.18" version = "0.6.6"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "68a9bda4691f099d435ad181000724da8e5899daa10713c2d432552b9ccd3a6f" checksum = "f0c976aaaa0e1f90dbb21e9587cdaf1d9679a1cde8875c0d6bd83ab96a208352"
dependencies = [ dependencies = [
"memchr", "memchr",
] ]
@ -7232,7 +7159,7 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.72", "syn 2.0.71",
] ]
[[package]] [[package]]

View File

@ -15,12 +15,10 @@ tauri-build = { version = "2.0.0-beta.18", features = [] }
[dependencies] [dependencies]
anyhow = "1" anyhow = "1"
kcl-lib = { version = "0.2", path = "../src/wasm-lib/kcl" } kcl-lib = { version = "0.1.53", path = "../src/wasm-lib/kcl" }
kittycad = "0.3.7" kittycad = "0.3.7"
log = "0.4.21" log = "0.4.21"
mdns-sd = "0.11.1"
oauth2 = "4.4.2" oauth2 = "4.4.2"
reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls"] }
serde_json = "1.0" serde_json = "1.0"
tauri = { version = "2.0.0-beta.23", features = [ "devtools", "unstable"] } tauri = { version = "2.0.0-beta.23", features = [ "devtools", "unstable"] }
tauri-plugin-cli = { version = "2.0.0-beta.7" } tauri-plugin-cli = { version = "2.0.0-beta.7" }

View File

@ -218,7 +218,7 @@ async fn parse_project_route(configuration: Configuration, route: &str) -> Resul
#[tauri::command] #[tauri::command]
async fn read_dir_recursive(path: &str) -> Result<FileEntry, InvokeError> { async fn read_dir_recursive(path: &str) -> Result<FileEntry, InvokeError> {
kcl_lib::settings::utils::walk_dir(Path::new(path).to_path_buf()) kcl_lib::settings::utils::walk_dir(&Path::new(path).to_path_buf())
.await .await
.map_err(InvokeError::from_anyhow) .map_err(InvokeError::from_anyhow)
} }
@ -370,70 +370,6 @@ fn show_in_folder(app: tauri::AppHandle, path: &str) -> Result<(), InvokeError>
Ok(()) Ok(())
} }
const SERVICE_NAME: &str = "_machine-api._tcp.local.";
async fn find_machine_api() -> Result<Option<String>> {
println!("Looking for machine API...");
// Timeout if no response is received after 5 seconds.
let timeout_duration = std::time::Duration::from_secs(5);
let mdns = mdns_sd::ServiceDaemon::new()?;
// Browse for a service type.
let receiver = mdns.browse(SERVICE_NAME)?;
let resp = tokio::time::timeout(
timeout_duration,
tokio::spawn(async move {
while let Ok(event) = receiver.recv() {
if let mdns_sd::ServiceEvent::ServiceResolved(info) = event {
if let Some(addr) = info.get_addresses().iter().next() {
return Some(format!("{}:{}", addr, info.get_port()));
}
}
}
None
}),
)
.await;
// Shut down.
mdns.shutdown()?;
let Ok(Ok(Some(addr))) = resp else {
return Ok(None);
};
Ok(Some(addr))
}
#[tauri::command]
async fn get_machine_api_ip() -> Result<Option<String>, InvokeError> {
let machine_api = find_machine_api().await.map_err(InvokeError::from_anyhow)?;
Ok(machine_api)
}
#[tauri::command]
async fn list_machines() -> Result<String, InvokeError> {
let machine_api = find_machine_api().await.map_err(InvokeError::from_anyhow)?;
let Some(machine_api) = machine_api else {
// Empty array.
return Ok("[]".to_string());
};
let client = reqwest::Client::new();
let response = client
.get(format!("http://{}/machines", machine_api))
.send()
.await
.map_err(|e| InvokeError::from_anyhow(e.into()))?;
let text = response.text().await.map_err(|e| InvokeError::from_anyhow(e.into()))?;
Ok(text)
}
#[allow(dead_code)] #[allow(dead_code)]
fn open_url_sync(app: &tauri::AppHandle, url: &url::Url) { fn open_url_sync(app: &tauri::AppHandle, url: &url::Url) {
log::debug!("Opening URL: {:?}", url); log::debug!("Opening URL: {:?}", url);
@ -481,8 +417,6 @@ fn main() -> Result<()> {
read_project_settings_file, read_project_settings_file,
write_project_settings_file, write_project_settings_file,
rename_project_directory, rename_project_directory,
get_machine_api_ip,
list_machines
]) ])
.plugin(tauri_plugin_cli::init()) .plugin(tauri_plugin_cli::init())
.plugin(tauri_plugin_deep_link::init()) .plugin(tauri_plugin_deep_link::init())

View File

@ -80,5 +80,5 @@
} }
}, },
"productName": "Zoo Modeling App", "productName": "Zoo Modeling App",
"version": "0.24.8" "version": "0.24.3"
} }

View File

@ -2,7 +2,7 @@ import { MouseEventHandler, useEffect, useMemo, useRef } from 'react'
import { uuidv4 } from 'lib/utils' import { uuidv4 } from 'lib/utils'
import { useHotKeyListener } from './hooks/useHotKeyListener' import { useHotKeyListener } from './hooks/useHotKeyListener'
import { Stream } from './components/Stream' import { Stream } from './components/Stream'
import { EngineCommand } from 'lang/std/artifactGraph' import { EngineCommand } from './lang/std/engineConnection'
import { throttle } from './lib/utils' import { throttle } from './lib/utils'
import { AppHeader } from './components/AppHeader' import { AppHeader } from './components/AppHeader'
import { useHotkeys } from 'react-hotkeys-hook' import { useHotkeys } from 'react-hotkeys-hook'
@ -95,16 +95,16 @@ export function App() {
}) })
const newCmdId = uuidv4() const newCmdId = uuidv4()
if (state.matches('idle.showPlanes')) return if (context.store?.buttonDownInStream === undefined) {
if (context.store?.buttonDownInStream !== undefined) return debounceSocketSend({
debounceSocketSend({ type: 'modeling_cmd_req',
type: 'modeling_cmd_req', cmd: {
cmd: { type: 'highlight_set_entity',
type: 'highlight_set_entity', selected_at_window: { x, y },
selected_at_window: { x, y }, },
}, cmd_id: newCmdId,
cmd_id: newCmdId, })
}) }
} }
return ( return (

View File

@ -1,4 +1,4 @@
import { useRef, useMemo, memo } from 'react' import { WheelEvent, useRef, useMemo } from 'react'
import { isCursorInSketchCommandRange } from 'lang/util' import { isCursorInSketchCommandRange } from 'lang/util'
import { engineCommandManager, kclManager } from 'lib/singletons' import { engineCommandManager, kclManager } from 'lib/singletons'
import { useModelingContext } from 'hooks/useModelingContext' import { useModelingContext } from 'hooks/useModelingContext'
@ -12,14 +12,11 @@ import { ActionButtonDropdown } from 'components/ActionButtonDropdown'
import { useHotkeys } from 'react-hotkeys-hook' import { useHotkeys } from 'react-hotkeys-hook'
import Tooltip from 'components/Tooltip' import Tooltip from 'components/Tooltip'
import { useAppState } from 'AppState' import { useAppState } from 'AppState'
import { CustomIcon } from 'components/CustomIcon'
import { import {
toolbarConfig, canRectangleTool,
ToolbarItem, isEditingExistingSketch,
ToolbarItemCallbackProps, } from 'machines/modelingMachine'
ToolbarItemResolved, import { DEV } from 'env'
ToolbarModeName,
} from 'lib/toolbar'
export function Toolbar({ export function Toolbar({
className = '', className = '',
@ -28,22 +25,20 @@ export function Toolbar({
const { state, send, context } = useModelingContext() const { state, send, context } = useModelingContext()
const { commandBarSend } = useCommandsContext() const { commandBarSend } = useCommandsContext()
const iconClassName = const iconClassName =
'group-disabled:text-chalkboard-50 !text-inherit dark:group-enabled:group-hover:!text-inherit' 'group-disabled:text-chalkboard-50 group-enabled:group-hover:!text-primary dark:group-enabled:group-hover:!text-inherit group-pressed:!text-chalkboard-10 group-ui-open:!text-chalkboard-10 dark:group-ui-open:!text-chalkboard-10'
const bgClassName = '!bg-transparent' const bgClassName =
const buttonBgClassName = 'group-disabled:!bg-transparent group-enabled:group-hover:bg-primary/10 dark:group-enabled:group-hover:bg-primary group-pressed:bg-primary group-ui-open:bg-primary'
'bg-chalkboard-transparent dark:bg-transparent disabled:bg-transparent dark:disabled:bg-transparent enabled:hover:bg-chalkboard-10 dark:enabled:hover:bg-chalkboard-100 pressed:!bg-primary pressed:enabled:hover:!text-chalkboard-10' const buttonClassName =
const buttonBorderClassName = 'bg-chalkboard-10 dark:bg-chalkboard-100 enabled:hover:bg-chalkboard-10 dark:enabled:hover:bg-chalkboard-100 pressed:!border-primary ui-open:!border-primary'
'!border-transparent hover:!border-chalkboard-20 dark:enabled:hover:!border-primary pressed:!border-primary ui-open:!border-primary' const pathId = useMemo(() => {
const sketchPathId = useMemo(() => {
if (!isSingleCursorInPipe(context.selectionRanges, kclManager.ast)) { if (!isSingleCursorInPipe(context.selectionRanges, kclManager.ast)) {
return false return false
} }
return isCursorInSketchCommandRange( return isCursorInSketchCommandRange(
engineCommandManager.artifactGraph, engineCommandManager.artifactMap,
context.selectionRanges context.selectionRanges
) )
}, [engineCommandManager.artifactGraph, context.selectionRanges]) }, [engineCommandManager.artifactMap, context.selectionRanges])
const toolbarButtonsRef = useRef<HTMLUListElement>(null) const toolbarButtonsRef = useRef<HTMLUListElement>(null)
const { overallState } = useNetworkContext() const { overallState } = useNetworkContext()
@ -56,295 +51,401 @@ export function Toolbar({
isExecuting || isExecuting ||
!isStreamReady !isStreamReady
const currentMode = const disableLineButton =
(Object.entries(toolbarConfig).find(([_, mode]) => state.matches('Sketch.Rectangle tool.Awaiting second corner') ||
mode.check(state) disableAllButtons
)?.[0] as ToolbarModeName) || 'modeling' useHotkeys(
'l',
/** These are the props that will be passed to the callbacks in the toolbar config () =>
* They are memoized to prevent unnecessary re-renders, state.matches('Sketch.Line tool')
* but they still get a lot of churn from the state machine ? send('CancelSketch')
* so I think there's a lot of room for improvement here : send({
*/ type: 'change tool',
const configCallbackProps: ToolbarItemCallbackProps = useMemo( data: { tool: 'line' },
() => ({ }),
modelingStateMatches: state.matches, { enabled: !disableLineButton, scopes: ['sketch'] }
modelingSend: send, )
commandBarSend, const disableTangentialArc =
sketchPathId, (!isEditingExistingSketch(context) &&
}), !state.matches('Sketch.Tangential arc to')) ||
[state.matches, send, commandBarSend, sketchPathId] disableAllButtons
useHotkeys(
'a',
() =>
state.matches('Sketch.Tangential arc to')
? send('CancelSketch')
: send({
type: 'change tool',
data: { tool: 'tangentialArc' },
}),
{ enabled: !disableTangentialArc, scopes: ['sketch'] }
)
const disableRectangle =
(!canRectangleTool(context) && !state.matches('Sketch.Rectangle tool')) ||
disableAllButtons
useHotkeys(
'r',
() =>
state.matches('Sketch.Rectangle tool')
? send('CancelSketch')
: send({
type: 'change tool',
data: { tool: 'rectangle' },
}),
{ enabled: !disableRectangle, scopes: ['sketch'] }
)
useHotkeys(
's',
() =>
state.nextEvents.includes('Enter sketch') && pathId
? send({ type: 'Enter sketch' })
: send({ type: 'Enter sketch', data: { forceNewSketch: true } }),
{ enabled: !disableAllButtons, scopes: ['modeling'] }
)
useHotkeys(
'esc',
() =>
['Sketch no face', 'Sketch.SketchIdle'].some(state.matches)
? send('Cancel')
: send('CancelSketch'),
{ enabled: !disableAllButtons, scopes: ['sketch'] }
)
useHotkeys(
'e',
() =>
commandBarSend({
type: 'Find and select command',
data: { name: 'Extrude', groupId: 'modeling' },
}),
{ enabled: !disableAllButtons, scopes: ['modeling'] }
)
const disableFillet = !state.can('Fillet') || disableAllButtons
useHotkeys(
'f',
() =>
commandBarSend({
type: 'Find and select command',
data: { name: 'Fillet', groupId: 'modeling' },
}),
{ enabled: !disableFillet, scopes: ['modeling'] }
) )
/** function handleToolbarButtonsWheelEvent(ev: WheelEvent<HTMLSpanElement>) {
* Resolve all the callbacks and values for the current mode, const span = toolbarButtonsRef.current
* so we don't need to worry about the other modes if (!span) {
*/ return
const currentModeItems: (
| ToolbarItemResolved
| ToolbarItemResolved[]
| 'break'
)[] = useMemo(() => {
return toolbarConfig[currentMode].items.map((maybeIconConfig) => {
if (maybeIconConfig === 'break') {
return 'break'
} else if (Array.isArray(maybeIconConfig)) {
return maybeIconConfig.map(resolveItemConfig)
} else {
return resolveItemConfig(maybeIconConfig)
}
})
function resolveItemConfig(
maybeIconConfig: ToolbarItem
): ToolbarItemResolved {
return {
...maybeIconConfig,
title:
typeof maybeIconConfig.title === 'string'
? maybeIconConfig.title
: maybeIconConfig.title(configCallbackProps),
description: maybeIconConfig.description,
links: maybeIconConfig.links || [],
isActive: maybeIconConfig.isActive?.(state),
hotkey:
typeof maybeIconConfig.hotkey === 'string'
? maybeIconConfig.hotkey
: maybeIconConfig.hotkey?.(state),
disabled:
disableAllButtons ||
maybeIconConfig.status !== 'available' ||
maybeIconConfig.disabled?.(state) === true,
disableHotkey: maybeIconConfig.disableHotkey?.(state),
status: maybeIconConfig.status,
}
} }
}, [currentMode, disableAllButtons, configCallbackProps])
span.scrollLeft = span.scrollLeft += ev.deltaY
}
const nextEvents = useMemo(() => state.nextEvents, [state.nextEvents])
const splitMenuItems = useMemo(
() =>
nextEvents
.filter(
(eventName) =>
eventName.includes('Make segment') ||
eventName.includes('Constrain')
)
.sort((a, b) => {
const aisEnabled = nextEvents
.filter((event) => state.can(event as any))
.includes(a)
const bIsEnabled = nextEvents
.filter((event) => state.can(event as any))
.includes(b)
if (aisEnabled && !bIsEnabled) {
return -1
}
if (!aisEnabled && bIsEnabled) {
return 1
}
return 0
})
.map((eventName) => ({
label: eventName
.replace('Make segment ', '')
.replace('Constrain ', ''),
onClick: () => send(eventName),
disabled:
!nextEvents
.filter((event) => state.can(event as any))
.includes(eventName) || disableAllButtons,
})),
[JSON.stringify(nextEvents), state]
)
return ( return (
<menu className="max-w-full whitespace-nowrap rounded-b px-2 py-1 bg-chalkboard-10 dark:bg-chalkboard-90 relative border border-chalkboard-20 dark:border-chalkboard-80 border-t-0 shadow-sm"> <menu className="max-w-full whitespace-nowrap rounded px-1.5 py-0.5 backdrop-blur-sm bg-chalkboard-10/80 dark:bg-chalkboard-110/70 relative">
<ul <ul
{...props} {...props}
ref={toolbarButtonsRef} ref={toolbarButtonsRef}
className={ onWheel={handleToolbarButtonsWheelEvent}
'has-[[aria-expanded=true]]:!pointer-events-none m-0 py-1 rounded-l-sm flex gap-1.5 items-center ' + className={'m-0 py-1 rounded-l-sm flex gap-2 items-center ' + className}
className style={{ scrollbarWidth: 'thin' }}
}
> >
{/* A menu item will either be a vertical line break, a button with a dropdown, or a single button */} {nextEvents.includes('Enter sketch') && (
{currentModeItems.map((maybeIconConfig, i) => { <li className="contents">
if (maybeIconConfig === 'break') { <ActionButton
return ( className={buttonClassName}
<div Element="button"
key={'break-' + i} onClick={() =>
className="h-5 w-[1px] block bg-chalkboard-30 dark:bg-chalkboard-80" send({ type: 'Enter sketch', data: { forceNewSketch: true } })
/> }
) iconStart={{
} else if (Array.isArray(maybeIconConfig)) { icon: 'sketch',
return ( iconClassName,
<ActionButtonDropdown bgClassName,
Element="button" }}
key={maybeIconConfig[0].id} disabled={disableAllButtons}
data-testid={maybeIconConfig[0].id + '-dropdown'} >
id={maybeIconConfig[0].id + '-dropdown'} <span data-testid="start-sketch">Start Sketch</span>
name={maybeIconConfig[0].title} <Tooltip
className={ delay={1250}
'group/wrapper ' + position="bottom"
buttonBorderClassName + className="!px-2 !text-xs"
' !bg-transparent relative group !gap-0'
}
splitMenuItems={maybeIconConfig.map((itemConfig) => ({
id: itemConfig.id,
label: itemConfig.title,
hotkey: itemConfig.hotkey,
onClick: () => itemConfig.onClick(configCallbackProps),
disabled:
disableAllButtons ||
itemConfig.status !== 'available' ||
itemConfig.disabled === true,
status: itemConfig.status,
}))}
> >
<ActionButton Shortcut: S
Element="button" </Tooltip>
id={maybeIconConfig[0].id} </ActionButton>
data-testid={maybeIconConfig[0].id} </li>
iconStart={{ )}
icon: maybeIconConfig[0].icon, {nextEvents.includes('Enter sketch') && pathId && (
className: iconClassName, <li className="contents">
bgClassName: bgClassName, <ActionButton
}} className={buttonClassName}
className={ Element="button"
'!border-transparent !px-0 pressed:!text-chalkboard-10 pressed:enabled:hovered:!text-chalkboard-10 ' + onClick={() => send({ type: 'Enter sketch' })}
buttonBgClassName iconStart={{
} icon: 'sketch',
aria-pressed={maybeIconConfig[0].isActive} iconClassName,
disabled={ bgClassName,
disableAllButtons || }}
maybeIconConfig[0].status !== 'available' || disabled={disableAllButtons}
maybeIconConfig[0].disabled >
} Edit Sketch
name={maybeIconConfig[0].title} <Tooltip
aria-description={maybeIconConfig[0].description} delay={1250}
onClick={() => position="bottom"
maybeIconConfig[0].onClick(configCallbackProps) className="!px-2 !text-xs"
} >
> Shortcut: S
<span </Tooltip>
className={!maybeIconConfig[0].showTitle ? 'sr-only' : ''} </ActionButton>
> </li>
{maybeIconConfig[0].title} )}
</span> {nextEvents.includes('Cancel') && !state.matches('idle') && (
</ActionButton> <li className="contents">
<ToolbarItemTooltip <ActionButton
itemConfig={maybeIconConfig[0]} className={buttonClassName}
configCallbackProps={configCallbackProps} Element="button"
/> onClick={() => send({ type: 'Cancel' })}
</ActionButtonDropdown> iconStart={{
) icon: 'arrowLeft',
} iconClassName,
const itemConfig = maybeIconConfig bgClassName,
}}
return ( disabled={disableAllButtons}
<div className="relative" key={itemConfig.id}> >
Exit Sketch
<Tooltip
delay={1250}
position="bottom"
className="!px-2 !text-xs"
>
Shortcut: Esc
</Tooltip>
</ActionButton>
</li>
)}
{state.matches('Sketch no face') && (
<li className="contents">
<div className="mx-2 text-sm">click plane or face to sketch on</div>
</li>
)}
{state.matches('Sketch') && !state.matches('idle') && (
<>
<li className="contents" key="line-button">
<ActionButton <ActionButton
className={buttonClassName}
Element="button" Element="button"
key={itemConfig.id} onClick={() =>
id={itemConfig.id} state?.matches('Sketch.Line tool')
data-testid={itemConfig.id} ? send('CancelSketch')
: send({
type: 'change tool',
data: { tool: 'line' },
})
}
aria-pressed={state?.matches('Sketch.Line tool')}
iconStart={{ iconStart={{
icon: itemConfig.icon, icon: 'line',
className: iconClassName, iconClassName,
bgClassName: bgClassName, bgClassName,
}} }}
className={ disabled={disableLineButton}
'pressed:!text-chalkboard-10 pressed:enabled:hovered:!text-chalkboard-10 ' +
buttonBorderClassName +
' ' +
buttonBgClassName +
(!itemConfig.showTitle ? ' !px-0' : '')
}
name={itemConfig.title}
aria-description={itemConfig.description}
aria-pressed={itemConfig.isActive}
disabled={
disableAllButtons ||
itemConfig.status !== 'available' ||
itemConfig.disabled
}
onClick={() => itemConfig.onClick(configCallbackProps)}
> >
<span className={!itemConfig.showTitle ? 'sr-only' : ''}> Line
{itemConfig.title} <Tooltip
</span> delay={1250}
position="bottom"
className="!px-2 !text-xs"
>
Shortcut: L
</Tooltip>
</ActionButton> </ActionButton>
<ToolbarItemTooltip </li>
itemConfig={itemConfig} <li className="contents" key="tangential-arc-button">
configCallbackProps={configCallbackProps} <ActionButton
/> className={buttonClassName}
</div> Element="button"
) onClick={() =>
})} state.matches('Sketch.Tangential arc to')
? send('CancelSketch')
: send({
type: 'change tool',
data: { tool: 'tangentialArc' },
})
}
aria-pressed={state.matches('Sketch.Tangential arc to')}
iconStart={{
icon: 'arc',
iconClassName,
bgClassName,
}}
disabled={disableTangentialArc}
>
Tangential Arc
<Tooltip
delay={1250}
position="bottom"
className="!px-2 !text-xs"
>
Shortcut: A
</Tooltip>
</ActionButton>
</li>
<li className="contents" key="rectangle-button">
<ActionButton
className={buttonClassName}
Element="button"
onClick={() =>
state.matches('Sketch.Rectangle tool')
? send('CancelSketch')
: send({
type: 'change tool',
data: { tool: 'rectangle' },
})
}
aria-pressed={state.matches('Sketch.Rectangle tool')}
iconStart={{
icon: 'rectangle',
iconClassName,
bgClassName,
}}
disabled={disableRectangle}
title={
canRectangleTool(context)
? 'Rectangle'
: 'Can only be used when a sketch is empty currently'
}
>
Rectangle
<Tooltip
delay={1250}
position="bottom"
className="!px-2 !text-xs"
>
Shortcut: R
</Tooltip>
</ActionButton>
</li>
</>
)}
{state.matches('Sketch.SketchIdle') &&
nextEvents.filter(
(eventName) =>
eventName.includes('Make segment') ||
eventName.includes('Constrain')
).length > 0 && (
<ActionButtonDropdown
splitMenuItems={splitMenuItems}
className={buttonClassName}
Element="button"
iconStart={{
icon: 'dimension',
iconClassName,
bgClassName,
}}
>
Constraints
</ActionButtonDropdown>
)}
{state.matches('idle') && (
<li className="contents">
<ActionButton
className={buttonClassName}
Element="button"
onClick={() =>
commandBarSend({
type: 'Find and select command',
data: { name: 'Extrude', groupId: 'modeling' },
})
}
disabled={!state.can('Extrude') || disableAllButtons}
title={
state.can('Extrude')
? 'extrude'
: 'sketches need to be closed, or not already extruded'
}
iconStart={{
icon: 'extrude',
iconClassName,
bgClassName,
}}
>
Extrude
<Tooltip
delay={1250}
position="bottom"
className="!px-2 !text-xs"
>
Shortcut: E
</Tooltip>
</ActionButton>
</li>
)}
{state.matches('idle') && (DEV || (window as any)._enableFillet) && (
<li className="contents">
<ActionButton
className={buttonClassName}
Element="button"
onClick={() =>
commandBarSend({
type: 'Find and select command',
data: { name: 'Fillet', groupId: 'modeling' },
})
}
disabled={disableFillet}
title={disableFillet ? 'fillet' : "edge can't be filleted"}
iconStart={{
icon: 'fillet', // todo: add fillet icon
iconClassName,
bgClassName,
}}
>
Fillet
<Tooltip
delay={1250}
position="bottom"
className="!px-2 !text-xs"
>
Shortcut: F
</Tooltip>
</ActionButton>
</li>
)}
</ul> </ul>
{state.matches('Sketch no face') && (
<div className="absolute top-full left-1/2 -translate-x-1/2 mt-2 py-1 px-2 bg-chalkboard-10 dark:bg-chalkboard-90 border border-chalkboard-20 dark:border-chalkboard-80 rounded shadow-lg">
<p className="text-xs">Select a plane or face to start sketching</p>
</div>
)}
</menu> </menu>
) )
} }
/**
* The single button and dropdown button share content, so we extract it here
* It contains a tooltip with the title, description, and links
* and a hotkey listener
*/
const ToolbarItemTooltip = memo(function ToolbarItemContents({
itemConfig,
configCallbackProps,
}: {
itemConfig: ToolbarItemResolved
configCallbackProps: ToolbarItemCallbackProps
}) {
useHotkeys(
itemConfig.hotkey || '',
() => {
itemConfig.onClick(configCallbackProps)
},
{
enabled:
itemConfig.status === 'available' &&
!!itemConfig.hotkey &&
!itemConfig.disabled &&
!itemConfig.disableHotkey,
}
)
return (
<Tooltip
inert={false}
position="bottom"
wrapperClassName="!p-4 !pointer-events-auto"
contentClassName="!text-left text-wrap !text-xs !p-0 !pb-2 flex gap-2 !max-w-none !w-72 flex-col items-stretch"
>
<div className="rounded-top flex items-center gap-2 pt-3 pb-2 px-2 bg-chalkboard-20/50 dark:bg-chalkboard-80/50">
<span
className={`text-sm flex-1 ${
itemConfig.status !== 'available'
? 'text-chalkboard-70 dark:text-chalkboard-40'
: ''
}`}
>
{itemConfig.title}
</span>
{itemConfig.status === 'available' && itemConfig.hotkey ? (
<kbd className="flex-none hotkey">{itemConfig.hotkey}</kbd>
) : itemConfig.status === 'kcl-only' ? (
<>
<span className="text-wrap font-sans flex-0 text-chalkboard-70 dark:text-chalkboard-40">
KCL code only
</span>
<CustomIcon
name="code"
className="w-5 h-5 text-chalkboard-70 dark:text-chalkboard-40"
/>
</>
) : (
itemConfig.status === 'unavailable' && (
<>
<span className="text-wrap font-sans flex-0 text-chalkboard-70 dark:text-chalkboard-40">
In development
</span>
<CustomIcon
name="lockClosed"
className="w-5 h-5 text-chalkboard-70 dark:text-chalkboard-40"
/>
</>
)
)}
</div>
<p className="px-2 text-ch font-sans">{itemConfig.description}</p>
{itemConfig.links.length > 0 && (
<>
<hr className="border-chalkboard-20 dark:border-chalkboard-80" />
<ul className="p-0 px-1 m-0 flex flex-col">
{itemConfig.links.map((link) => (
<li key={link.label} className="contents">
<a
href={link.url}
target="_blank"
rel="noreferrer"
className="flex items-center rounded-sm p-1 no-underline text-inherit hover:bg-primary/10 hover:text-primary dark:hover:bg-chalkboard-70 dark:hover:text-inherit"
>
<span className="flex-1">Open {link.label}</span>
<CustomIcon name="link" className="w-4 h-4" />
</a>
</li>
))}
</ul>
</>
)}
</Tooltip>
)
})

View File

@ -17,11 +17,11 @@ import {
ZOOM_MAGIC_NUMBER, ZOOM_MAGIC_NUMBER,
} from './sceneInfra' } from './sceneInfra'
import { import {
EngineCommand,
Subscription, Subscription,
EngineCommandManager, EngineCommandManager,
UnreliableSubscription, UnreliableSubscription,
} from 'lang/std/engineConnection' } from 'lang/std/engineConnection'
import { EngineCommand } from 'lang/std/artifactGraph'
import { uuidv4 } from 'lib/utils' import { uuidv4 } from 'lib/utils'
import { deg2Rad } from 'lib/utils2d' import { deg2Rad } from 'lib/utils2d'
import { isReducedMotion, roundOff, throttle } from 'lib/utils' import { isReducedMotion, roundOff, throttle } from 'lib/utils'
@ -585,6 +585,10 @@ export class CameraControls {
.add(direction.multiplyScalar(-distanceAfter)) .add(direction.multiplyScalar(-distanceAfter))
this.camera.position.copy(newPosition) this.camera.position.copy(newPosition)
const { z_near, z_far } = calculateNearFarFromFOV(this.lastPerspectiveFov)
this.camera.near = z_near
this.camera.far = z_far
if (splitEngineCalls) { if (splitEngineCalls) {
await this.engineCommandManager.sendSceneCommand({ await this.engineCommandManager.sendSceneCommand({
type: 'modeling_cmd_req', type: 'modeling_cmd_req',
@ -1140,6 +1144,9 @@ function convertThreeCamValuesToEngineCam({
up: Vector3 up: Vector3
vantage: Vector3 vantage: Vector3
} { } {
// Something to consider is that the orbit controls have a target,
// we're kind of deriving the target/lookAtVector here when it might not be needed
// leaving for now since it's working but maybe revisit later
const euler = new Euler().setFromQuaternion(quaternion, 'XYZ') const euler = new Euler().setFromQuaternion(quaternion, 'XYZ')
const upVector = new Vector3(0, 1, 0).applyEuler(euler).normalize() const upVector = new Vector3(0, 1, 0).applyEuler(euler).normalize()
@ -1150,50 +1157,18 @@ function convertThreeCamValuesToEngineCam({
vantage: position, vantage: position,
} }
} }
const lookAtVector = new Vector3(0, 0, -1)
// re-implementing stuff here, though this is a bunch of Mike's code .applyEuler(euler)
// if we need to pull him in again, at least it will be familiar to him .normalize()
// and it's all simple functions. .add(position)
interface Coord3d { const fudgeFactor2 = zoom * 0.9979224466814468 - 0.03473692325839295
x: number const zoomFactor = (-ZOOM_MAGIC_NUMBER + fudgeFactor2) / zoom
y: number const direction = lookAtVector.clone().sub(position).normalize()
z: number const newVantage = position.clone().add(direction.multiplyScalar(zoomFactor))
}
function buildLookAt(distance: number, center: Coord3d, eye: Coord3d) {
const eyeVector = normalized(sub(eye, center))
return { center: center, eye: add(center, mult(eyeVector, distance)) }
}
function mult(vecA: Coord3d, sc: number): Coord3d {
return { x: vecA.x * sc, y: vecA.y * sc, z: vecA.z * sc }
}
function add(vecA: Coord3d, vecB: Coord3d): Coord3d {
return { x: vecA.x + vecB.x, y: vecA.y + vecB.y, z: vecA.z + vecB.z }
}
function sub(vecA: Coord3d, vecB: Coord3d): Coord3d {
return { x: vecA.x - vecB.x, y: vecA.y - vecB.y, z: vecA.z - vecB.z }
}
function dot(vecA: Coord3d, vecB: Coord3d) {
return vecA.x * vecB.x + vecA.y * vecB.y + vecA.z * vecB.z
}
function length(vecA: Coord3d) {
return Math.sqrt(dot(vecA, vecA))
}
function normalized(vecA: Coord3d) {
return mult(vecA, 1.0 / length(vecA))
}
const lookAt = buildLookAt(64 / zoom, target, position)
return { return {
center: new Vector3(lookAt.center.x, lookAt.center.y, lookAt.center.z), center: lookAtVector,
up: new Vector3(0, 0, 1), up: upVector,
vantage: new Vector3(lookAt.eye.x, lookAt.eye.y, lookAt.eye.z), vantage: newVantage,
} }
} }
@ -1249,7 +1224,7 @@ export async function letEngineAnimateAndSyncCamAfter(
type: 'enable_sketch_mode', type: 'enable_sketch_mode',
adjust_camera: true, adjust_camera: true,
animated: !isReducedMotion(), animated: !isReducedMotion(),
ortho: true, ortho: false,
entity_id: entityId, entity_id: entityId,
}, },
}) })
@ -1266,4 +1241,25 @@ export async function letEngineAnimateAndSyncCamAfter(
type: 'default_camera_get_settings', type: 'default_camera_get_settings',
}, },
}) })
await engineCommandManager.sendSceneCommand({
type: 'modeling_cmd_req',
cmd_id: uuidv4(),
cmd: {
type: 'enable_sketch_mode',
adjust_camera: true,
animated: false,
ortho: true,
entity_id: entityId,
},
})
await new Promise((resolve) => setTimeout(resolve, 50))
await engineCommandManager.sendSceneCommand({
// CameraControls subscribes to default_camera_get_settings response events
// firing this at connection ensure the camera's are synced initially
type: 'modeling_cmd_req',
cmd_id: uuidv4(),
cmd: {
type: 'default_camera_get_settings',
},
})
} }

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