Compare commits

...

183 Commits

Author SHA1 Message Date
84cbcddff1 Bump kcl, use newer execution-plan crates (#1957)
* Bump KCL lib

* Use all execution-plan crates from crates.io
2024-03-28 22:29:42 +00:00
e758c6cab0 Bump chrono from 0.4.35 to 0.4.37 in /src/wasm-lib (#1948)
Bumps [chrono](https://github.com/chronotope/chrono) from 0.4.35 to 0.4.37.
- [Release notes](https://github.com/chronotope/chrono/releases)
- [Changelog](https://github.com/chronotope/chrono/blob/main/CHANGELOG.md)
- [Commits](https://github.com/chronotope/chrono/compare/v0.4.35...v0.4.37)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-28 18:30:45 +00:00
c63ea8e445 Bump @types/react from 18.2.67 to 18.2.73 (#1944)
Bumps [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) from 18.2.67 to 18.2.73.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

---
updated-dependencies:
- dependency-name: "@types/react"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-28 18:21:31 +00:00
7e0e0e1ee1 Bump insta from 1.36.1 to 1.37.0 in /src/wasm-lib (#1947)
Bumps [insta](https://github.com/mitsuhiko/insta) from 1.36.1 to 1.37.0.
- [Changelog](https://github.com/mitsuhiko/insta/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mitsuhiko/insta/compare/1.36.1...1.37.0)

---
updated-dependencies:
- dependency-name: insta
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-28 18:21:03 +00:00
db3e2879bd KCL: Compute pipe expressions with loops, not recursion (#1941)
On `main`, the new test program in `tests/executor` causes a stack overflow. Running a flamegraph via `sudo cargo flamegraph --test executor -- serial_test_mike_stress_lines` shows that the problem: `fn execute_pipe_body` is very recursive. 

When there's a long pipe, `execute_pipe_body` executes the next child expression, which is always a CallExpression. So `execute_pipe_body` calls `CallExpression::execute`. Which then calls `execute_pipe_body` again. 

Fix is simple: `execute_pipe_body` now iterates over pipe subexpressions instead of recursing. This fixes the stack overflow, and is much faster too.

Closes https://github.com/KittyCAD/modeling-app/issues/1891.
2024-03-28 18:11:09 +00:00
7804079d8c Bump serde_json from 1.0.114 to 1.0.115 in /src/wasm-lib (#1945)
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.114 to 1.0.115.
- [Release notes](https://github.com/serde-rs/json/releases)
- [Commits](https://github.com/serde-rs/json/compare/v1.0.114...v1.0.115)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-28 11:08:27 -07:00
571406fca3 Bump tauri-plugin-fs-extra from d3c7ee5 to c6a5b7a in /src-tauri (#1950)
Bumps [tauri-plugin-fs-extra](https://github.com/tauri-apps/plugins-workspace) from `d3c7ee5` to `c6a5b7a`.
- [Release notes](https://github.com/tauri-apps/plugins-workspace/releases)
- [Commits](d3c7ee5a61...c6a5b7ae47)

---
updated-dependencies:
- dependency-name: tauri-plugin-fs-extra
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-28 11:05:50 -07:00
a9e41a616d Bump async-trait from 0.1.78 to 0.1.79 in /src/wasm-lib (#1949)
Bumps [async-trait](https://github.com/dtolnay/async-trait) from 0.1.78 to 0.1.79.
- [Release notes](https://github.com/dtolnay/async-trait/releases)
- [Commits](https://github.com/dtolnay/async-trait/compare/0.1.78...0.1.79)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-28 11:03:45 -07:00
9a0b086e07 set selection filters (#1951) 2024-03-28 06:22:11 +00:00
358184c634 nuke all follow up (#1952) 2024-03-28 05:52:36 +00:00
85ac8bf7a3 add sketch on edge of revolve test and sample (#1942)
* add sketch on edge of revolve test and sample

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

* fixes

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

---------

Signed-off-by: Jess Frazelle <github@jessfraz.com>
2024-03-27 17:34:07 -07:00
544a327ee9 Stress test the parser with Mike's program (#1939)
Part of https://github.com/KittyCAD/modeling-app/issues/1891
2024-03-27 19:43:55 +00:00
868a560e1a Parser ensures that pipe expressions have a % arg (#1933)
Closes https://github.com/KittyCAD/modeling-app/issues/1411
2024-03-27 13:29:57 -05:00
32a2835d0e swap prev and next logic (#1936)
Signed-off-by: Jess Frazelle <github@jessfraz.com>
2024-03-27 18:26:06 +00:00
4c93346f48 Bump kittycad from 0.2.61 to 0.2.63 in /src-tauri (#1905)
Bumps [kittycad](https://github.com/KittyCAD/kittycad.rs) from 0.2.61 to 0.2.63.
- [Release notes](https://github.com/KittyCAD/kittycad.rs/releases)
- [Commits](https://github.com/KittyCAD/kittycad.rs/compare/v0.2.61...v0.2.63)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Paul Tagliamonte <paul@zoo.dev>
Co-authored-by: Jess Frazelle <jessfraz@users.noreply.github.com>
2024-03-27 10:50:36 -07:00
bfa8b8aca4 Bump serde_json from 1.0.114 to 1.0.115 in /src-tauri (#1915)
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.114 to 1.0.115.
- [Release notes](https://github.com/serde-rs/json/releases)
- [Commits](https://github.com/serde-rs/json/compare/v1.0.114...v1.0.115)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-27 17:37:34 +00:00
b1fe2dddb6 Bump tauri-plugin-fs-extra-api from 1344db4 to b0a4a47 (#1888)
Bumps [tauri-plugin-fs-extra-api](https://github.com/tauri-apps/tauri-plugin-fs-extra) from `1344db4` to `b0a4a47`.
- [Commits](1344db48a3...b0a4a479ca)

---
updated-dependencies:
- dependency-name: tauri-plugin-fs-extra-api
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-27 17:32:46 +00:00
6d3f6c784e typo in docs (#1934)
typo indocs

Signed-off-by: Jess Frazelle <github@jessfraz.com>
2024-03-27 10:21:46 -07:00
4904785bbd Bump syn from 2.0.53 to 2.0.55 in /src/wasm-lib (#1882)
Bumps [syn](https://github.com/dtolnay/syn) from 2.0.53 to 2.0.55.
- [Release notes](https://github.com/dtolnay/syn/releases)
- [Commits](https://github.com/dtolnay/syn/compare/2.0.53...2.0.55)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-27 10:16:56 -07:00
ca30fd44bd Bump tauri-plugin-fs-extra from 8cd4a39 to d3c7ee5 in /src-tauri (#1906)
Bumps [tauri-plugin-fs-extra](https://github.com/tauri-apps/plugins-workspace) from `8cd4a39` to `d3c7ee5`.
- [Release notes](https://github.com/tauri-apps/plugins-workspace/releases)
- [Commits](8cd4a39864...d3c7ee5a61)

---
updated-dependencies:
- dependency-name: tauri-plugin-fs-extra
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Paul Tagliamonte <paul@zoo.dev>
2024-03-27 10:16:00 -07:00
5d69a62324 fix variable in pipe start (#1932)
Signed-off-by: Jess Frazelle <github@jessfraz.com>
2024-03-27 09:46:13 -07:00
0e04e20b97 Add suggested changelog to make-release.sh (#1841) 2024-03-27 05:16:20 -04:00
1dac62067a Generate images for examples in derive docs (#1916)
* start

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

* update derive docs

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

* updates

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

* add new docs

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

* updates

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

* updates

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

* updates

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

* u[dates

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

* updates

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

---------

Signed-off-by: Jess Frazelle <github@jessfraz.com>
2024-03-27 04:28:50 +00:00
86de039dc4 Is mock mode to fix errors when cap end or ids dont exist. (#1913)
* add is_mock

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

* js side

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

* is mock mode

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

* fix cargo tests

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

---------

Signed-off-by: Jess Frazelle <github@jessfraz.com>
2024-03-27 02:32:31 +00:00
dce5833d79 start of revolve (#1897)
* start of revolve

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

* revolve

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

* more tests

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

* updates

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

* updates

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

* tagged edge

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

* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)

* bump lib

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

* custom axis

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

* updates

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

* updates

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

* updates

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

* updates

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

* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)

* updates

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

* updates

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

* updates

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

* fixes

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

* add getEdge

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

* bigger

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

* updates

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

* updatres

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

* updates

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

* updates

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

---------

Signed-off-by: Jess Frazelle <github@jessfraz.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-03-27 02:07:16 +00:00
f714c19890 update snapshots (#1912)
update snapshots
2024-03-26 23:21:15 +00:00
f52128c41a nuke all (#1908) 2024-03-26 10:49:05 +00:00
39566174e7 bump kittycad lib (#1907) 2024-03-26 10:27:50 +00:00
3688c8a05e force snapshots (#1895) 2024-03-26 01:20:48 +00:00
0025349e9a add helix (#1892)
* add helix

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

* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)

* updates

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

* u[pdates

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

* fixes for camera and batch

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

* fix;

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

---------

Signed-off-by: Jess Frazelle <github@jessfraz.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-03-26 00:07:53 +00:00
d8cc57b843 Cut release v0.17.0 (#1866) 2024-03-25 09:51:17 -04:00
e76db4a621 remove function that's only used once (#1889) 2024-03-25 04:48:51 +00:00
027e947bd5 make setupSketch more composable instead of a monster function (#1879)
* make setupSketch more composable instead of monster function

* clean up
2024-03-25 15:20:43 +11:00
0983dcca22 Add batch support to current KCL implementation (#1871)
* wip

* wip

* updates

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

* more batch shit

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

* fixes

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

* push up mods

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

* go back to batch id

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

* add unlocks back

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

* remove logging

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

* port to wasm

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

* use a trait

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

* updates

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

* snapshojts

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

* artifact map fix

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

* cleanup

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

* remove the blur

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

* hacks on hacks

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

* artifact map clean up

* tweak

* fix so extrudes work

* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)

* start of id to source range infra

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

* basic map to ids and source ranges

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

* make typescript happy

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

* flush at end of exxecute

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

* small thing for flush

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

* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)

* trigger ci

---------

Signed-off-by: Jess Frazelle <github@jessfraz.com>
Co-authored-by: 49lf <ircsurfer33@gmail.com>
Co-authored-by: Kurt Hutten Irev-Dev <k.hutten@protonmail.ch>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-03-23 22:45:55 +00:00
846fc99bbc change KCL Samples link (#1869) 2024-03-22 13:25:59 -07:00
c258ede25c Bump @testing-library/user-event from 14.5.1 to 14.5.2 (#1859)
Bumps [@testing-library/user-event](https://github.com/testing-library/user-event) from 14.5.1 to 14.5.2.
- [Release notes](https://github.com/testing-library/user-event/releases)
- [Changelog](https://github.com/testing-library/user-event/blob/main/CHANGELOG.md)
- [Commits](https://github.com/testing-library/user-event/compare/v14.5.1...v14.5.2)

---
updated-dependencies:
- dependency-name: "@testing-library/user-event"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-22 20:22:26 +00:00
4cc1b3d5ed Bump happy-dom from 14.2.0 to 14.3.1 (#1861)
Bumps [happy-dom](https://github.com/capricorn86/happy-dom) from 14.2.0 to 14.3.1.
- [Release notes](https://github.com/capricorn86/happy-dom/releases)
- [Commits](https://github.com/capricorn86/happy-dom/compare/v14.2.0...v14.3.1)

---
updated-dependencies:
- dependency-name: happy-dom
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-22 13:00:04 -07:00
be0dd1512d Bump @codemirror/autocomplete from 6.10.2 to 6.15.0 (#1862)
Bumps [@codemirror/autocomplete](https://github.com/codemirror/autocomplete) from 6.10.2 to 6.15.0.
- [Changelog](https://github.com/codemirror/autocomplete/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codemirror/autocomplete/compare/6.10.2...6.15.0)

---
updated-dependencies:
- dependency-name: "@codemirror/autocomplete"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-22 12:59:55 -07:00
a5156c3f5d Add *.zoo.dev origins to Tauri HTTP scopes (#1868) 2024-03-22 19:26:52 +00:00
8038b5d7a3 Make engine background color driven by theme setting (#1842)
* Bump ts lib

* Make engine background color driven by theme setting

* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)

* Force snapshots to dark mode, fix theme init

* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)

* Don't assume we have engineCommandManager in CameraControls,
because for some reason it's being loaded before engineConnection in test environments?

* Merge branch 'main' into change-bg-color

* Replace optional chaining with this.engineCommandManager

* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)

* Okay now all snapshot tests are actually in dark mode

* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)

* trigger ci

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Kurt Hutten Irev-Dev <k.hutten@protonmail.ch>
2024-03-22 09:35:07 -04:00
54b234360e robustening for autocomplete test (#1864) 2024-03-22 07:10:49 +00:00
465d933d53 circular dependencies refactor (#1863)
* circular dependencies refactor

* clean up
2024-03-22 05:55:30 +00:00
ccd0c619a6 Grackle: integrate source ranges (#1852)
Insert KCL source ranges into the KCVM instructions.
2024-03-22 05:16:27 +00:00
7b570bf525 add parsing of types to functions (#1844)
* add parsing of types to functions

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

* add array

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

* fix clippy

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

* add objects

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

* updates

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

* fixes

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

* updates

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

* updates

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

* updates

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

* add return types

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

* fix

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

---------

Signed-off-by: Jess Frazelle <github@jessfraz.com>
2024-03-22 00:14:30 +00:00
44d1c29801 set token when fetching user (#1851)
* set token when fetching user

* clean up
2024-03-21 16:32:41 -07:00
0e916cfd5b SketchOnFace UI (#1664)
* always enter edit mode

* initial blocking of extra code-mirror updates

* dry out code

* rejig selections

* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)

* clean up

* stream clean up

* update export

* sketch mode can be entered and exited for extrude faces

But has bugs

* startSketchOn working in some cases, editsketch animation working but not orientation of instersection plane etc

* Revert "A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)"

This reverts commit 406fca4c55.

* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)

* remove comment

* add sketch on face e2e test

* tweenCamToNegYAxis should respect reduced motion

* initial sketch on face working with test

* remove temporary toolbar button and xState flow

* un-used vars

* snapshot test tweak

* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)

* type tidy up

* Revert "A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)"

This reverts commit c39b8ebf95.

* Revert "A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)"

This reverts commit fecf6f490a.

* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)

* rename

* sketch on sketch on sketch

* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)

* typo

* startSketchOn Endcaps

end works, start is weird still

* clear selections for entity_ids that are not recognised

* fix sketch on end cap of second order extrustion

* tiny clean up

* fix sketch on close segment/face

* clean up 'lastCodeMirrorSelectionUpdatedFromScene'

* add code mode test for sketchOnExtrudedFace

* make end cap selection more robust

* update js artifacts for extrudes

* update kcl docs

* clean up

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-03-22 10:23:04 +11:00
e773e932b0 better error lsp server (#1850)
Signed-off-by: Jess Frazelle <github@jessfraz.com>
2024-03-21 22:14:55 +00:00
2d39fd32ce Revert "Bump @lezer/javascript from 1.4.9 to 1.4.13 (#1812)" (#1849)
This reverts commit 3e4ce44dc9.
2024-03-21 22:07:27 +00:00
5a585a6c2d Grackle: Fix a clippy lint (#1848) 2024-03-21 16:49:10 -05:00
c09d6ee6bd Bump KCVM, integrating InstructionKind (#1847) 2024-03-21 21:17:48 +00:00
09b55259ab Up cam throttle (#1843)
up cam throttle
2024-03-21 20:53:58 +00:00
68b61c9832 Fix new lints from rust 1.77 (#1845) 2024-03-21 15:41:26 -05:00
469ca94437 Bump react-router-dom from 6.14.2 to 6.22.3 (#1837)
Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 6.14.2 to 6.22.3.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@6.22.3/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-21 12:10:00 -07:00
1d3850b46a Bump tailwindcss from 3.3.6 to 3.4.1 (#1835) 2024-03-21 18:46:47 +00:00
0358343285 Bump vite-tsconfig-paths from 4.3.1 to 4.3.2 (#1838) 2024-03-21 07:06:44 +00:00
38b0603fa2 Bump @types/node from 16.18.39 to 18.19.26 (#1834) 2024-03-20 23:45:27 -07:00
e48a8b6c5d Bump @wdio/local-runner from 8.24.3 to 8.35.1 (#1833) 2024-03-20 23:45:17 -07:00
73e573b251 Bump @tauri-apps/api from 1.5.1 to 1.5.3 (#1830) 2024-03-20 23:45:08 -07:00
793409d53d Bump @types/uuid from 9.0.4 to 9.0.8 (#1832) 2024-03-20 23:44:57 -07:00
3e9ab16c4b Bump ts-node from 10.9.1 to 10.9.2 (#1831) 2024-03-20 23:44:48 -07:00
ab226bc86f Bump eslint from 8.53.0 to 8.57.0 (#1826) 2024-03-20 22:55:58 -07:00
97677e4474 Bump typescript from 5.3.2 to 5.4.3 (#1829) 2024-03-20 22:55:42 -07:00
37fbc8c9ab Bump zustand from 4.4.5 to 4.5.2 (#1827) 2024-03-20 22:55:32 -07:00
29d61da552 Bump @types/debounce-promise from 3.1.8 to 3.1.9 (#1823) 2024-03-21 05:34:27 +00:00
ad2f669ec6 Bump autoprefixer from 10.4.14 to 10.4.19 (#1821) 2024-03-21 05:29:39 +00:00
d66aad8b5d Bump @headlessui/react from 1.7.17 to 1.7.18 (#1822) 2024-03-21 05:27:10 +00:00
d8b8710a0d Bump react-hotkeys-hook from 4.4.1 to 4.5.0 (#1824) 2024-03-20 22:24:35 -07:00
8f8ba2dca5 Bump happy-dom from 10.8.0 to 14.2.0 (#1820) 2024-03-20 22:23:32 -07:00
970b0abb54 Bump @tauri-apps/cli from 1.5.6 to 1.5.11 (#1817) 2024-03-21 05:00:39 +00:00
06b464816f Bump husky from 8.0.3 to 9.0.11 (#1819) 2024-03-21 04:40:51 +00:00
08f7bb2811 Bump vite from 5.1.3 to 5.2.2 (#1816) 2024-03-21 04:40:08 +00:00
197df9f25d Bump @uiw/react-codemirror from 4.21.20 to 4.21.24 (#1818) 2024-03-21 04:39:55 +00:00
4d387dfaf7 Bump @types/crypto-js from 4.1.1 to 4.2.2 (#1813) 2024-03-20 21:21:11 -07:00
912b97bea5 Bump @types/react-dom from 18.2.7 to 18.2.22 (#1814) 2024-03-21 04:17:33 +00:00
3e4ce44dc9 Bump @lezer/javascript from 1.4.9 to 1.4.13 (#1812) 2024-03-21 04:14:51 +00:00
c2058a05fa Bump vitest from 1.3.1 to 1.4.0 (#1811) 2024-03-21 04:13:57 +00:00
7a57965690 Bump clap from 4.5.2 to 4.5.3 in /src/wasm-lib (#1805)
Bumps [clap](https://github.com/clap-rs/clap) from 4.5.2 to 4.5.3.
- [Release notes](https://github.com/clap-rs/clap/releases)
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md)
- [Commits](https://github.com/clap-rs/clap/compare/v4.5.2...v4.5.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-21 03:57:58 +00:00
c5b115ba97 Bump tauri-plugin-fs-extra from 160498d to 8cd4a39 in /src-tauri (#1809) 2024-03-21 03:53:13 +00:00
90057c2dda add regression test for angletomatch (#1806) 2024-03-21 03:44:52 +00:00
f3e59690d6 Bump async-trait from 0.1.77 to 0.1.78 in /src/wasm-lib (#1807)
Bumps [async-trait](https://github.com/dtolnay/async-trait) from 0.1.77 to 0.1.78.
- [Release notes](https://github.com/dtolnay/async-trait/releases)
- [Commits](https://github.com/dtolnay/async-trait/compare/0.1.77...0.1.78)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-21 03:39:46 +00:00
9642a44a02 Bump actions/checkout from 3 to 4 (#1803)
Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-21 03:33:24 +00:00
252c7651ac Bump actions/github-script from 6 to 7 (#1804)
Bumps [actions/github-script](https://github.com/actions/github-script) from 6 to 7.
- [Release notes](https://github.com/actions/github-script/releases)
- [Commits](https://github.com/actions/github-script/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/github-script
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-21 03:33:09 +00:00
79edcf3826 Bump @wdio/mocha-framework from 8.24.3 to 8.35.0 (#1798)
Bumps [@wdio/mocha-framework](https://github.com/webdriverio/webdriverio/tree/HEAD/packages/wdio-mocha-framework) from 8.24.3 to 8.35.0.
- [Release notes](https://github.com/webdriverio/webdriverio/releases)
- [Changelog](https://github.com/webdriverio/webdriverio/blob/v8.35.0/CHANGELOG.md)
- [Commits](https://github.com/webdriverio/webdriverio/commits/v8.35.0/packages/wdio-mocha-framework)

---
updated-dependencies:
- dependency-name: "@wdio/mocha-framework"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-21 03:19:52 +00:00
b05ac3a05f fix angleToMatchLengthXY (#1765)
Co-authored-by: Jess Frazelle <jessfraz@users.noreply.github.com>
2024-03-21 03:14:32 +00:00
1d01ba454b Bump openapitor from 72dcf45 to 8512cea in /src/wasm-lib (#1796)
Bumps [openapitor](https://github.com/KittyCAD/kittycad.rs) from `72dcf45` to `8512cea`.
- [Release notes](https://github.com/KittyCAD/kittycad.rs/releases)
- [Commits](72dcf4573b...8512ceae8e)

---
updated-dependencies:
- dependency-name: openapitor
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-21 03:05:03 +00:00
bf1d6963fe Bump @types/wicg-file-system-access from 2020.9.6 to 2023.10.5 (#1795)
Bumps [@types/wicg-file-system-access](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/wicg-file-system-access) from 2020.9.6 to 2023.10.5.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/wicg-file-system-access)

---
updated-dependencies:
- dependency-name: "@types/wicg-file-system-access"
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-20 19:59:48 -07:00
176ee63cb9 Bump web-vitals from 3.5.0 to 3.5.2 (#1797)
Bumps [web-vitals](https://github.com/GoogleChrome/web-vitals) from 3.5.0 to 3.5.2.
- [Changelog](https://github.com/GoogleChrome/web-vitals/blob/main/CHANGELOG.md)
- [Commits](https://github.com/GoogleChrome/web-vitals/compare/v3.5.0...v3.5.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-20 19:57:00 -07:00
1ae8059c2b Bump @wdio/spec-reporter from 8.24.2 to 8.32.4 (#1799)
Bumps [@wdio/spec-reporter](https://github.com/webdriverio/webdriverio/tree/HEAD/packages/wdio-spec-reporter) from 8.24.2 to 8.32.4.
- [Release notes](https://github.com/webdriverio/webdriverio/releases)
- [Changelog](https://github.com/webdriverio/webdriverio/blob/v8.32.4/CHANGELOG.md)
- [Commits](https://github.com/webdriverio/webdriverio/commits/v8.32.4/packages/wdio-spec-reporter)

---
updated-dependencies:
- dependency-name: "@wdio/spec-reporter"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-20 19:52:47 -07:00
93f406d005 Bump @types/react from 18.2.41 to 18.2.67 (#1800)
Bumps [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) from 18.2.41 to 18.2.67.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

---
updated-dependencies:
- dependency-name: "@types/react"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-20 19:44:47 -07:00
e97833f0ed Bump kittycad-execution-plan from 494225a to 80998de in /src/wasm-lib (#1801)
Bump kittycad-execution-plan in /src/wasm-lib

Bumps [kittycad-execution-plan](https://github.com/KittyCAD/modeling-api) from `494225a` to `80998de`.
- [Commits](494225aaac...80998dea69)

---
updated-dependencies:
- dependency-name: kittycad-execution-plan
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-20 19:44:25 -07:00
35417dd8a6 Bump syn from 2.0.52 to 2.0.53 in /src/wasm-lib (#1793)
Bumps [syn](https://github.com/dtolnay/syn) from 2.0.52 to 2.0.53.
- [Release notes](https://github.com/dtolnay/syn/releases)
- [Commits](https://github.com/dtolnay/syn/compare/2.0.52...2.0.53)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-20 19:35:28 -07:00
cf0560dcfb fix dependabot perms (#1792)
add dependabot to playwright

Signed-off-by: Jess Frazelle <github@jessfraz.com>
2024-03-21 00:48:08 +00:00
3659946653 ignore test_copilot_lsp_completions til new model deployed (#1791)
Signed-off-by: Jess Frazelle <github@jessfraz.com>
2024-03-20 17:40:46 -07:00
156c51484a Bump async-recursion from 1.0.5 to 1.1.0 in /src/wasm-lib (#1775)
Bumps [async-recursion](https://github.com/dcchut/async-recursion) from 1.0.5 to 1.1.0.
- [Release notes](https://github.com/dcchut/async-recursion/releases)
- [Commits](https://github.com/dcchut/async-recursion/compare/v1.0.5...v1.1.0)

---
updated-dependencies:
- dependency-name: async-recursion
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-20 17:07:49 -07:00
dc8dd4bc72 Bump uuid from 1.7.0 to 1.8.0 in /src/wasm-lib (#1776)
Bumps [uuid](https://github.com/uuid-rs/uuid) from 1.7.0 to 1.8.0.
- [Release notes](https://github.com/uuid-rs/uuid/releases)
- [Commits](https://github.com/uuid-rs/uuid/compare/1.7.0...1.8.0)

---
updated-dependencies:
- dependency-name: uuid
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-20 17:07:15 -07:00
335add67bd Bump thiserror from 1.0.57 to 1.0.58 in /src/wasm-lib (#1778)
Bumps [thiserror](https://github.com/dtolnay/thiserror) from 1.0.57 to 1.0.58.
- [Release notes](https://github.com/dtolnay/thiserror/releases)
- [Commits](https://github.com/dtolnay/thiserror/compare/1.0.57...1.0.58)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-20 17:06:42 -07:00
231794a69d Bump tauri-plugin-fs-extra from 6db4320 to 160498d in /src-tauri (#1779)
Bumps [tauri-plugin-fs-extra](https://github.com/tauri-apps/plugins-workspace) from `6db4320` to `160498d`.
- [Release notes](https://github.com/tauri-apps/plugins-workspace/releases)
- [Commits](6db4320e98...160498dae5)

---
updated-dependencies:
- dependency-name: tauri-plugin-fs-extra
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-20 17:05:43 -07:00
8e5a6bc6fc bump kittycad.rs (#1784)
Signed-off-by: Jess Frazelle <github@jessfraz.com>
2024-03-20 15:39:33 -07:00
4f82121105 Add tangentialArcTo to grackle stdlib (#1731)
* Add tangentialArcTo to grackle stdlib

* Clean up test
2024-03-20 14:54:28 -04:00
46358b41a2 Bind all unary, binary and constants to KCL (#1781) 2024-03-20 13:12:43 -04:00
59274b76bf Add onboarding check workflow (#1764)
* add workflow

* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)

* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-03-20 08:28:55 -07:00
d11d363f19 Cut release v0.16.0 (#1763) 2024-03-20 08:44:09 -04:00
f22ad7c4e7 Fix file route resolution to restor file switching (#1768)
Co-authored-by: Kurt Hutten <k.hutten@protonmail.ch>
2024-03-20 11:39:57 +11:00
1913519f68 Revert "Add ping pong health, remove a timeout interval, fix up netwo… (#1771)
Revert "Add ping pong health, remove a timeout interval, fix up network events (#1555)"

This reverts commit 61d7950ca3.

Co-authored-by: Kurt Hutten <k.hutten@protonmail.ch>
2024-03-20 11:39:49 +11:00
4b9d4fd45b Bump mio in fuzz tests (#1773) 2024-03-19 19:30:47 -05:00
78e6816b06 Always run cargo clippy in CI (#1772)
It's now a required job before merge is allowed. Unfortunately GitHub now blocks any non-Rust PR, because they require cargo clippy but don't trigger it to run.

Solution is simple, just always run cargo clippy, so it can pass, so that merge is allowed.
2024-03-20 11:02:49 +11:00
6607ea1663 Bump tauri-plugin-fs-extra from d95a1b3 to 6db4320 in /src-tauri (#1756)
Bumps [tauri-plugin-fs-extra](https://github.com/tauri-apps/plugins-workspace) from `d95a1b3` to `6db4320`.
- [Release notes](https://github.com/tauri-apps/plugins-workspace/releases)
- [Commits](d95a1b382f...6db4320e98)

---
updated-dependencies:
- dependency-name: tauri-plugin-fs-extra
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-19 15:53:07 -07:00
644a8ef3ca Remove cargo build CI job (#1767)
We shouldn't actually need `cargo build` CI checks. Because we're not building any binaries. Just `cargo check` should be enough. WASM builds are tested elsewhere.
2024-03-19 21:38:21 +00:00
e3e132c0d5 Fix cargo warnings (#1766)
CI is currently broken [logs here](https://github.com/KittyCAD/modeling-app/actions/runs/8349085118/job/22852456873?pr=1765#step:9:1046). Trying to fix.

OK I've fixed it. Process to fix was:

1. Revert be3fed8427 ("Add support for line, xLine, yLine, xLineTo, yLineTo (#1754)")
2. Restore that commit without any of its changes to Cargo.lock (it had, IMO, a lot of unnecessary changes)
3. `cargo update -p kittycad-execution-plan` (redoing only the necessary changes)
2024-03-19 21:19:57 +00:00
be3fed8427 Add support for line, xLine, yLine, xLineTo, yLineTo (#1754)
* Add support for line, xLine, yLine, xLineTo, yLineTo

* Fix minor memory misalignment

* Address PR comments
2024-03-19 12:11:45 -04:00
cefa6f85fe tag changes followup (#1747)
* tag changes followup

* fmt
2024-03-17 18:24:03 +11:00
47ff4623bd updating example kcl back to bracket with updated changes (#1743)
* updating example kcl

* parantheses error

* fix recast bug (#1746)

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

* minor fix

* adding comment to kcl

---------

Signed-off-by: Jess Frazelle <github@jessfraz.com>
Co-authored-by: Jess Frazelle <jessfraz@users.noreply.github.com>
2024-03-15 23:10:34 -07:00
69ff651201 fix recast bug (#1746)
Signed-off-by: Jess Frazelle <github@jessfraz.com>
2024-03-15 20:18:34 -07:00
788ae5dbab update starting example (#1742)
update starting example
2024-03-15 16:05:26 -07:00
816870253e Make tag last optional param everywhere (#1739)
* Make tag last optional param

* Update all test assertions with correct tag format

* Format ts

* Some progress on tests and code mods

* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)

* More sketch fixes

* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)

* Only 1 test left

* Clean up console.log

* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)

* Fix last ts test

* Clean up fmt

* Fix clippy too

* Update docs and fix small oversight on angled lines

* Fix more rust tests

* Make typescript happy

* Fmt

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Jess Frazelle <jessfraz@users.noreply.github.com>
2024-03-15 17:03:42 -04:00
4987965731 better copilot test (#1741)
Signed-off-by: Jess Frazelle <github@jessfraz.com>
2024-03-15 13:07:02 -07:00
042ceb42fd Update cargo-test.yml (#1740) 2024-03-15 19:44:41 +00:00
f40cdabfdf File based settings (#1679)
* Rename GlobalStateContext to SettingsAuthContext

* Naive initial impl of settings persistence to file system

* Update app identifier in tauri config

* Add "show in folder" tauri command

* Load from and save to file system in Tauri app

* Add documents drive to tauri permission scope

* Add recursive prop to default dir selection dialog

* Add success toast to web restore defaults action

* Add a way to validate read-in settings

* Update imports to use separate settings lib file

* Validate localStorage-loaded settings, combine error message

* Add a e2e test for validation

* Clean up state state bugs

* Reverse validation looping so new users don't error

* update settingsMachine typegen to remove conflicts

* Fmt

* Fix TS errors

* Fix import paths, etc post-merge

* Make default length units `mm` and 'metric'

* Rename to SettingsAuth*

* cargo fmt

* Revert Tauri config identifier change

* Update clientSideInfra's baseUnits from settings

* Break apart CommandBar and CommandBarProvider

* Bugfix: don't validate defaultValue when it's not configured

* Allow some TauriFS functions to no-op from browser

* Sidestep circular deps by loading context and kclManager only from React-land

* Update broken import paths

* Separate loaders from Router, load settings on every route

* Break apart settings types, utils, and constants

* Fix Jest tests by decoupling reliance on useLoaderData from SettingsAuthProvider

* Fix up Router loader data with "layout routes"
https://reactrouter.com/en/main/route/route#layout-routes

* Move settings validation and toast to custom hook so the toast renders

* fmt

* Use forks for Vitest
https://vitest.dev/guide/common-errors.html#failed-to-terminate-worker

* $APPCONFIG !== $APPDATA only on Linux
+ change the identifier back since it really doesn't seem to affect app signing

* Debugging on Linux

* Better directory validation, fix reset settings button

* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)

* defaultDirectory can be empty in browser

* fmt

* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)

* re-trigger CI

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-03-14 15:56:45 -04:00
13cd3e179b Only run cargo-test GH Action when wasm-lib is updated (#1718)
* Only run cargo-test GH Action when wasm-lib is updated
Because we don't care about src-tauri's Rust code in this action

* $APPDATA !== $APPCONFIG on Linux
+ change the bundle identifier back

* Undo that commit, wrong branch

* Change approach to ignore the Tauri Rust files instead

* Switch back to only check wasm-lib
2024-03-14 14:06:04 -04:00
a2176d9a1b Bump anyhow from 1.0.80 to 1.0.81 in /src/wasm-lib (#1719)
Bumps [anyhow](https://github.com/dtolnay/anyhow) from 1.0.80 to 1.0.81.
- [Release notes](https://github.com/dtolnay/anyhow/releases)
- [Commits](https://github.com/dtolnay/anyhow/compare/1.0.80...1.0.81)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Jess Frazelle <jessfraz@users.noreply.github.com>
2024-03-14 16:49:30 +00:00
fab5c47978 Bump codecov/codecov-action from 3 to 4 (#1724)
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 3 to 4.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v3...v4)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Jess Frazelle <jessfraz@users.noreply.github.com>
2024-03-14 16:48:42 +00:00
61d7950ca3 Add ping pong health, remove a timeout interval, fix up network events (#1555)
* Add ping pong health, fix up network events

* Change the default connection state for test

---------

Co-authored-by: Jess Frazelle <jessfraz@users.noreply.github.com>
2024-03-14 12:18:06 -04:00
0579ccd53b Handle many files as a zip archive (#1688)
* Handle many files as a zip archive

* Hopefully fix the test

* Try again

* Use latest kittycad/cli version

* update gitignore and push gltf-standard into snapshot array

* Extract zipped gltf; use 8 cores for CI

* Ignore unzipped files

* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)

---------

Co-authored-by: Kurt Hutten Irev-Dev <k.hutten@protonmail.ch>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-03-14 11:50:46 -04:00
cede44aacf Grackle: Extrude/ClosePath stdlib functions (#1717)
* Grackle: Extrude stdlib function

* Grackle: ClosePath function
2024-03-13 22:15:26 -05:00
e8149fca97 Bump modeling-api crates (#1716) 2024-03-13 20:15:40 -05:00
c571b15318 Fix circle (#1715)
* start of circle

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

* fixews

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

* fix all samples

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

* docs

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

* updates

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

* fix tests

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

* bump version;

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

* fixes

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

* fixes

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

---------

Signed-off-by: Jess Frazelle <github@jessfraz.com>
2024-03-14 00:16:57 +00:00
d3d2612a3b fix links for kcl docs (#1714)
* updates

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

* more link

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

* better highlighting

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

* better highlighting

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

---------

Signed-off-by: Jess Frazelle <github@jessfraz.com>
2024-03-13 22:43:42 +00:00
17b7c687d4 Update SketchGroup when calling lineTo (#1713)
* Update SketchGroup when calling lineTo

* Verify the next free address after the partial cube unit test
2024-03-13 22:42:13 +00:00
5d7d15a385 Fixes for docs (#1712) 2024-03-13 22:01:35 +00:00
4be9f70965 change up docs format (#1711)
* change up docs format

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

* change up docs format

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

* change up docs format

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

* fix

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

* workflow to push docs

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

* fix[

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

* initial commit

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

* fix

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

* initial commit

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

* initial commit

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

* fixes

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

* updates

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

---------

Signed-off-by: Jess Frazelle <github@jessfraz.com>
2024-03-13 14:22:22 -07:00
a60bdd4cc3 generate kcl examples in docs from macro (#1710)
* rearrange

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

* examples

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

* fix tests

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

* recast

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

* updates

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

* add more tests

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

* fixups

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

* add more samples

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

* more docs

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

* more

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

* more samples

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

* more

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

* fixups

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

* fixups

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

* fixes

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

* make serial

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

* fix hang

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

* fix import

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

* updates

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

* fixes

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

* atan

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

* atan

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

* updates

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

* fixes

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

* fixes

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

* make all tests pass

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

* fix docs

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

* fixes

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

* must have code balock

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

* updates

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

* new docs

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

* fix

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

* fix docs

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

* new docs

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

---------

Signed-off-by: Jess Frazelle <github@jessfraz.com>
2024-03-13 12:56:46 -07:00
6bab45a56a add to_degrees/to_radians fns (#1709)
updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>
2024-03-13 00:33:50 -07:00
2d979b56f5 Send telemetry (#1702)
* restart on auth

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

* fix deps

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

* updates

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

* fix

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

* hash the iuser

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

* updates

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

* add comment;

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

* updates

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

* zip up the contents

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

* fix logic

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

* updates

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

* add tests

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

* more code coverage

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

* u[dates

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

* u[dates

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

* updates

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

* updates

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

* fixes

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

* updates

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

* up[dates

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

* more tests

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

* more coverage

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

* more coverage

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

* add tests

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

* updates

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

* updates

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

* updates

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

* updates

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

* updates

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

* updates

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

* updates

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

* updates

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

* updates

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

* more tests

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

* cleanup dead code

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

* start of accept / reject

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

* accept/reject

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

* cleanup

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

---------

Signed-off-by: Jess Frazelle <github@jessfraz.com>
2024-03-13 06:57:43 +00:00
dfc51e6c30 Bump tauri-plugin-fs-extra from adbc333 to d95a1b3 in /src-tauri (#1707)
Bumps [tauri-plugin-fs-extra](https://github.com/tauri-apps/plugins-workspace) from `adbc333` to `d95a1b3`.
- [Release notes](https://github.com/tauri-apps/plugins-workspace/releases)
- [Commits](adbc333a0f...d95a1b382f)

---
updated-dependencies:
- dependency-name: tauri-plugin-fs-extra
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-12 23:43:23 -07:00
7e40464d10 Bump proc-macro2 from 1.0.78 to 1.0.79 in /src/wasm-lib (#1706)
Bumps [proc-macro2](https://github.com/dtolnay/proc-macro2) from 1.0.78 to 1.0.79.
- [Release notes](https://github.com/dtolnay/proc-macro2/releases)
- [Commits](https://github.com/dtolnay/proc-macro2/compare/1.0.78...1.0.79)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-12 23:43:16 -07:00
83fcdd52a2 Bump reqwest from 0.11.25 to 0.11.26 in /src/wasm-lib (#1705)
Bumps [reqwest](https://github.com/seanmonstar/reqwest) from 0.11.25 to 0.11.26.
- [Release notes](https://github.com/seanmonstar/reqwest/releases)
- [Changelog](https://github.com/seanmonstar/reqwest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/seanmonstar/reqwest/compare/v0.11.25...v0.11.26)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-12 23:43:06 -07:00
8a30d5ec8f Bump softprops/action-gh-release from 1 to 2 (#1683)
Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 1 to 2.
- [Release notes](https://github.com/softprops/action-gh-release/releases)
- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md)
- [Commits](https://github.com/softprops/action-gh-release/compare/v1...v2)

---
updated-dependencies:
- dependency-name: softprops/action-gh-release
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-12 16:57:52 -07:00
637c4a7d97 Bump openapitor from 6f38abe to 72dcf45 in /src/wasm-lib (#1685)
Bumps [openapitor](https://github.com/KittyCAD/kittycad.rs) from `6f38abe` to `72dcf45`.
- [Release notes](https://github.com/KittyCAD/kittycad.rs/releases)
- [Commits](6f38abe149...72dcf4573b)

---
updated-dependencies:
- dependency-name: openapitor
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-12 16:57:01 -07:00
604446dba3 Bump kittycad from 0.2.59 to 0.2.60 in /src-tauri (#1681)
Bumps [kittycad](https://github.com/KittyCAD/kittycad.rs) from 0.2.59 to 0.2.60.
- [Release notes](https://github.com/KittyCAD/kittycad.rs/releases)
- [Commits](https://github.com/KittyCAD/kittycad.rs/compare/v0.2.59...v0.2.60)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-12 16:56:42 -07:00
ed3952900b Bump tauri-plugin-fs-extra from 30295ec to adbc333 in /src-tauri (#1695)
Bumps [tauri-plugin-fs-extra](https://github.com/tauri-apps/plugins-workspace) from `30295ec` to `adbc333`.
- [Release notes](https://github.com/tauri-apps/plugins-workspace/releases)
- [Commits](30295ecc8e...adbc333a0f)

---
updated-dependencies:
- dependency-name: tauri-plugin-fs-extra
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-12 16:56:21 -07:00
f934a17417 Bump reqwest from 0.11.24 to 0.11.25 in /src/wasm-lib (#1687)
Bumps [reqwest](https://github.com/seanmonstar/reqwest) from 0.11.24 to 0.11.25.
- [Release notes](https://github.com/seanmonstar/reqwest/releases)
- [Changelog](https://github.com/seanmonstar/reqwest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/seanmonstar/reqwest/compare/v0.11.24...v0.11.25)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-12 16:56:00 -07:00
59fa7b13a5 Bump anyhow from 1.0.80 to 1.0.81 in /src-tauri (#1696)
Bumps [anyhow](https://github.com/dtolnay/anyhow) from 1.0.80 to 1.0.81.
- [Release notes](https://github.com/dtolnay/anyhow/releases)
- [Commits](https://github.com/dtolnay/anyhow/compare/1.0.80...1.0.81)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-12 16:55:48 -07:00
8b2bf00641 More lsp stuff / telemetry-prep (#1694)
* more text document stuff

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

* backend for rename and create etc

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

* updates for functions

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

* cleanup

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

* updates

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

* js future

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

* utils

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

* cleanup send and sync shit

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

* updates

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

* save the client

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

* store the users privacy settings

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

* updates

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

* updates

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

* bump version

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

---------

Signed-off-by: Jess Frazelle <github@jessfraz.com>
2024-03-12 13:37:47 -07:00
73b7d3cc9d Patterns 2d 3d (#1701)
* refactor

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

* pattern2d and 3d

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

* fix derive docs more

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

* fixes

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

* fix

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

---------

Signed-off-by: Jess Frazelle <github@jessfraz.com>
2024-03-12 12:54:45 -07:00
82fb227868 Move settings types and initial values to lib/settings (#1698) 2024-03-12 10:37:35 -04:00
db5657a298 lsp workspace stuff (#1677)
* some lsp shit

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

* more stuffs

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

* on open send close and open events

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

* updates

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

* update the path

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

* updates

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

* updates

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

* send on close

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

* on close project

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

* update on close

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

* updates

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

* initpromise

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

* add to wasm.ts

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

* Update src/lang/wasm.ts

Co-authored-by: Kurt Hutten <k.hutten@protonmail.ch>

* restart lsps on failure

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

* updates

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

* add panic hook

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

* updartes

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

* updates

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

* updates

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

---------

Signed-off-by: Jess Frazelle <github@jessfraz.com>
Co-authored-by: Kurt Hutten <k.hutten@protonmail.ch>
2024-03-12 00:50:31 +00:00
cd158f8db0 Rename *GlobalState* to *SettingsAuth* (#1689) 2024-03-11 20:26:13 -04:00
0342d1a5b4 fix error range kcl embedded function and add test (#1691)
* updates

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

* new images

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

* new images

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

---------

Signed-off-by: Jess Frazelle <github@jessfraz.com>
2024-03-11 13:37:22 -07:00
cad64fb780 Update onboarding based on team feedback (#1665)
* Make onboarding links underlined and a different color

* Override underlined links that shouldn't be

* Update "KittyCAD" to "Zoo" camera controls, copy edits

* Copy edits through CodeEditor step, add counter to onboarding

* Notes through ParametricModeling step

* Notes through UserMenu step

* Add three-dots icon, separate Zoo logo link from project button

* Feedback through end of onboarding

* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)

* Fix ESLint warnings

* Revert cameraControls to 'KittyCAD', ensure we get type errors if that isn't correct in the future

* fmt

* Missed a reverted "Zoo" cameraControls item

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-03-08 17:59:14 -05:00
fbc458b6e6 Update KNOWN-ISSUES.md (#1676) 2024-03-08 19:04:12 +00:00
dd852c2652 Bump wasm-bindgen-futures from 0.4.41 to 0.4.42 in /src/wasm-lib (#1670)
Bumps [wasm-bindgen-futures](https://github.com/rustwasm/wasm-bindgen) from 0.4.41 to 0.4.42.
- [Release notes](https://github.com/rustwasm/wasm-bindgen/releases)
- [Changelog](https://github.com/rustwasm/wasm-bindgen/blob/main/CHANGELOG.md)
- [Commits](https://github.com/rustwasm/wasm-bindgen/commits)

---
updated-dependencies:
- dependency-name: wasm-bindgen-futures
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-08 09:36:56 -08:00
3395f34552 Bump anyhow from 1.0.79 to 1.0.80 in /src/wasm-lib (#1671)
Bumps [anyhow](https://github.com/dtolnay/anyhow) from 1.0.79 to 1.0.80.
- [Release notes](https://github.com/dtolnay/anyhow/releases)
- [Commits](https://github.com/dtolnay/anyhow/compare/1.0.79...1.0.80)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-08 09:36:47 -08:00
4ac40d5a78 Bump serde from 1.0.196 to 1.0.197 in /src/wasm-lib (#1672)
Bumps [serde](https://github.com/serde-rs/serde) from 1.0.196 to 1.0.197.
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.196...v1.0.197)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-08 09:36:35 -08:00
8ccbb3a419 Bump clap from 4.5.1 to 4.5.2 in /src/wasm-lib (#1673)
Bumps [clap](https://github.com/clap-rs/clap) from 4.5.1 to 4.5.2.
- [Release notes](https://github.com/clap-rs/clap/releases)
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md)
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.1...v4.5.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-08 09:36:23 -08:00
77e9a35c4d cam update should move target too (#1674) 2024-03-08 18:52:31 +11:00
0d1852bbc3 add optional tag to circle (#1669) 2024-03-07 15:35:26 -08:00
ff9229f55a fix circle sketch on face (#1668)
* fix circle sketch on face

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

* cargo.lock

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

* fix tests

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

* updates

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

---------

Signed-off-by: Jess Frazelle <github@jessfraz.com>
2024-03-07 14:53:37 -08:00
5a7f12a06d start of close tag (#1639)
* start of close tag

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

* docs

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

* close

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

* updates

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

* use local

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

---------

Signed-off-by: Jess Frazelle <github@jessfraz.com>
2024-03-07 12:35:56 -08:00
06f1257071 Bump kittycad-modeling-session from 03eb9c3 to c554cbe in /src/wasm-lib (#1655)
Bump kittycad-modeling-session in /src/wasm-lib

Bumps [kittycad-modeling-session](https://github.com/KittyCAD/modeling-api) from `03eb9c3` to `c554cbe`.
- [Commits](03eb9c3763...c554cbeda3)

---
updated-dependencies:
- dependency-name: kittycad-modeling-session
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-07 20:11:51 +00:00
328e7faea9 Bump web-sys from 0.3.68 to 0.3.69 in /src/wasm-lib (#1652)
Bumps [web-sys](https://github.com/rustwasm/wasm-bindgen) from 0.3.68 to 0.3.69.
- [Release notes](https://github.com/rustwasm/wasm-bindgen/releases)
- [Changelog](https://github.com/rustwasm/wasm-bindgen/blob/main/CHANGELOG.md)
- [Commits](https://github.com/rustwasm/wasm-bindgen/commits)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Jess Frazelle <jessfraz@users.noreply.github.com>
2024-03-07 20:11:07 +00:00
5792d3eb2b Bump tauri from 1.6.0 to 1.6.1 in /src-tauri (#1658)
Bumps [tauri](https://github.com/tauri-apps/tauri) from 1.6.0 to 1.6.1.
- [Release notes](https://github.com/tauri-apps/tauri/releases)
- [Commits](https://github.com/tauri-apps/tauri/compare/tauri-v1.6.0...tauri-v1.6.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-07 12:03:01 -08:00
15effddf6c Bump serde_json from 1.0.112 to 1.0.114 in /src-tauri (#1657)
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.112 to 1.0.114.
- [Release notes](https://github.com/serde-rs/json/releases)
- [Commits](https://github.com/serde-rs/json/compare/v1.0.112...v1.0.114)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-07 12:02:46 -08:00
5354ce140a Bump kittycad-execution-plan-macros from 03eb9c3 to c554cbe in /src/wasm-lib (#1653)
Bump kittycad-execution-plan-macros in /src/wasm-lib

Bumps [kittycad-execution-plan-macros](https://github.com/KittyCAD/modeling-api) from `03eb9c3` to `c554cbe`.
- [Commits](03eb9c3763...c554cbeda3)

---
updated-dependencies:
- dependency-name: kittycad-execution-plan-macros
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-07 12:02:33 -08:00
a994338541 Bump tauri-plugin-fs-extra from 19aa220 to 30295ec in /src-tauri (#1656)
Bumps [tauri-plugin-fs-extra](https://github.com/tauri-apps/plugins-workspace) from `19aa220` to `30295ec`.
- [Release notes](https://github.com/tauri-apps/plugins-workspace/releases)
- [Commits](19aa220411...30295ecc8e)

---
updated-dependencies:
- dependency-name: tauri-plugin-fs-extra
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-07 12:02:24 -08:00
6c22154df1 Bump insta from 1.34.0 to 1.36.1 in /src/wasm-lib (#1654)
Bumps [insta](https://github.com/mitsuhiko/insta) from 1.34.0 to 1.36.1.
- [Changelog](https://github.com/mitsuhiko/insta/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mitsuhiko/insta/compare/1.34.0...1.36.1)

---
updated-dependencies:
- dependency-name: insta
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-07 12:01:42 -08:00
4c18255b70 Cut release v0.15.6 (#1666) 2024-03-07 14:22:40 -05:00
42b247bc99 bump kittycad (#1647) 2024-03-06 02:09:59 +00:00
7d7b176bb7 Cut release v0.15.5 (#1632) 2024-03-06 12:41:09 +11:00
9aada41a0d Show all CAD files in FileTree (#1642) 2024-03-05 20:37:48 -05:00
23971465ce More fixes to export e2e test (#1646)
* change to download listener

* ultra snapshot test

* clean up

* Revert "ultra snapshot test"

This reverts commit 2d2a585a17.
2024-03-06 01:08:15 +00:00
23e294930b Clean up possibly dead code (#1032)
Co-authored-by: Jess Frazelle <jessfraz@users.noreply.github.com>
2024-03-05 12:53:29 -08:00
22cc4c9a98 fix error sourcce range for kcl stdlib (#1641)
fix error

Signed-off-by: Jess Frazelle <github@jessfraz.com>
2024-03-05 12:46:05 -08:00
fe6478f568 Bump serde_json from 1.0.113 to 1.0.114 in /src/wasm-lib (#1622)
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.113 to 1.0.114.
- [Release notes](https://github.com/serde-rs/json/releases)
- [Commits](https://github.com/serde-rs/json/compare/v1.0.113...v1.0.114)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Jess Frazelle <jessfraz@users.noreply.github.com>
2024-03-05 20:38:28 +00:00
1989734c3b Bump openapitor from 8db292e to 6f38abe in /src/wasm-lib (#1636)
Bumps [openapitor](https://github.com/KittyCAD/kittycad.rs) from `8db292e` to `6f38abe`.
- [Release notes](https://github.com/KittyCAD/kittycad.rs/releases)
- [Commits](8db292eaa7...6f38abe149)

---
updated-dependencies:
- dependency-name: openapitor
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-05 20:38:10 +00:00
f36984f52a Bump mio from 0.8.9 to 0.8.11 in /src-tauri (#1630)
Bumps [mio](https://github.com/tokio-rs/mio) from 0.8.9 to 0.8.11.
- [Release notes](https://github.com/tokio-rs/mio/releases)
- [Changelog](https://github.com/tokio-rs/mio/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tokio-rs/mio/compare/v0.8.9...v0.8.11)

---
updated-dependencies:
- dependency-name: mio
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Jess Frazelle <jessfraz@users.noreply.github.com>
2024-03-05 20:23:42 +00:00
5437538892 Bump mio from 0.8.9 to 0.8.11 in /src/wasm-lib (#1629)
Bumps [mio](https://github.com/tokio-rs/mio) from 0.8.9 to 0.8.11.
- [Release notes](https://github.com/tokio-rs/mio/releases)
- [Changelog](https://github.com/tokio-rs/mio/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tokio-rs/mio/compare/v0.8.9...v0.8.11)

---
updated-dependencies:
- dependency-name: mio
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Jess Frazelle <jessfraz@users.noreply.github.com>
2024-03-05 20:23:16 +00:00
97bd60ae87 Bump js-sys from 0.3.68 to 0.3.69 in /src/wasm-lib (#1635)
Bumps [js-sys](https://github.com/rustwasm/wasm-bindgen) from 0.3.68 to 0.3.69.
- [Release notes](https://github.com/rustwasm/wasm-bindgen/releases)
- [Changelog](https://github.com/rustwasm/wasm-bindgen/blob/main/CHANGELOG.md)
- [Commits](https://github.com/rustwasm/wasm-bindgen/commits)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-05 20:22:54 +00:00
9116d79c50 Bump tauri-plugin-fs-extra from ed682dd to 19aa220 in /src-tauri (#1634)
Bumps [tauri-plugin-fs-extra](https://github.com/tauri-apps/plugins-workspace) from `ed682dd` to `19aa220`.
- [Release notes](https://github.com/tauri-apps/plugins-workspace/releases)
- [Commits](ed682dd96e...19aa220411)

---
updated-dependencies:
- dependency-name: tauri-plugin-fs-extra
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Jess Frazelle <jessfraz@users.noreply.github.com>
2024-03-05 20:22:42 +00:00
b3b5dff60f Bump kittycad from 0.2.58 to 0.2.59 in /src-tauri (#1633)
Bumps [kittycad](https://github.com/KittyCAD/kittycad.rs) from 0.2.58 to 0.2.59.
- [Release notes](https://github.com/KittyCAD/kittycad.rs/releases)
- [Commits](https://github.com/KittyCAD/kittycad.rs/compare/v0.2.58...v0.2.59)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Jess Frazelle <jessfraz@users.noreply.github.com>
2024-03-05 20:22:25 +00:00
55f842d3bd Bump tauri from 1.5.4 to 1.6.0 in /src-tauri (#1446)
Bumps [tauri](https://github.com/tauri-apps/tauri) from 1.5.4 to 1.6.0.
- [Release notes](https://github.com/tauri-apps/tauri/releases)
- [Commits](https://github.com/tauri-apps/tauri/compare/tauri-v1.5.4...tauri-v1.6.0)

---
updated-dependencies:
- dependency-name: tauri
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-05 12:14:30 -08:00
778478757e Fillets (#1401)
* add fillet

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

* updates

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

* update tests

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

* fixes

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

* get end cap info

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

* tryu

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

* next-adjacent

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

* fix js tests

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

* works

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

* updates

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

* u[pdates

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

* updates

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

* updates

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

* move back to functions

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

* fix

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

---------

Signed-off-by: Jess Frazelle <github@jessfraz.com>
2024-03-05 11:52:45 -08:00
bc303fbaab try and make test more robust (#1638)
* try and make test more robust

* unused import

* add logging

* fix bug in export test

* Revert "unused import"

This reverts commit 0fb7090eca.

* revert more

* more fixes

* fix

* ultra snapshot test

* Revert "ultra snapshot test"

This reverts commit 17a883727e.
2024-03-05 15:42:27 +00:00
d422f09045 Minor readme typo 2024-03-05 04:56:29 -05:00
453 changed files with 66876 additions and 40195 deletions

View File

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

View File

@ -1,50 +0,0 @@
on:
push:
branches:
- main
paths:
- '**.rs'
- '**/Cargo.toml'
- '**/Cargo.lock'
- '**/rust-toolchain.toml'
- .github/workflows/cargo-build.yml
pull_request:
paths:
- '**.rs'
- '**/Cargo.toml'
- '**/Cargo.lock'
- '**/rust-toolchain.toml'
- .github/workflows/cargo-build.yml
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
name: cargo build
jobs:
cargobuild:
name: cargo build
runs-on: ubuntu-latest
strategy:
matrix:
dir: ['src/wasm-lib']
steps:
- uses: actions/checkout@v4
- name: Install latest rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
- name: install dependencies
if: matrix.dir == 'src-tauri'
run: |
sudo apt-get update
sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev libappindicator3-dev librsvg2-dev patchelf
- name: Rust Cache
uses: Swatinem/rust-cache@v2.6.1
- name: Run cargo build
run: |
cd "${{ matrix.dir }}"
cargo build --all
shell: bash

View File

@ -9,12 +9,6 @@ on:
- '**.rs'
- .github/workflows/cargo-clippy.yml
pull_request:
paths:
- '**/Cargo.toml'
- '**/Cargo.lock'
- '**/rust-toolchain.toml'
- '**.rs'
- .github/workflows/cargo-build.yml
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true

View File

@ -3,14 +3,15 @@ on:
branches:
- main
paths:
- '**.rs'
- 'src/wasm-lib/**.rs'
- '**/Cargo.toml'
- '**/Cargo.lock'
- '**/rust-toolchain.toml'
- .github/workflows/cargo-test.yml
pull_request:
paths:
- '**.rs'
- 'src/wasm-lib/**.rs'
- '**/Cargo.toml'
- '**/Cargo.lock'
- '**/rust-toolchain.toml'
@ -20,7 +21,7 @@ permissions: read-all
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
name: cargo test
name: cargo test of wasm-lib
jobs:
cargotest:
name: cargo test
@ -62,8 +63,16 @@ jobs:
shell: bash
run: |-
cd "${{ matrix.dir }}"
cargo nextest run --workspace --no-fail-fast -P ci 2>&1 | tee /tmp/github-actions.log
cargo llvm-cov nextest --all --lcov --output-path lcov.info --test-threads=1 --no-fail-fast -P ci 2>&1 | tee /tmp/github-actions.log
env:
KITTYCAD_API_TOKEN: ${{secrets.KITTYCAD_API_TOKEN}}
RUST_MIN_STACK: 10485760000
- name: Upload to codecov.io
uses: codecov/codecov-action@v4
with:
token: ${{secrets.CODECOV_TOKEN}}
fail_ci_if_error: true
flags: wasm-lib
verbose: true
files: lcov.info

36
.github/workflows/check-exampleKcl.yml vendored Normal file
View File

@ -0,0 +1,36 @@
name: Check Onboarding KCL
on:
pull_request:
types: [opened, synchronize]
paths:
- 'src/lib/exampleKcl.ts'
permissions:
contents: read
issues: write
pull-requests: write
jobs:
comment:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Comment on PR
uses: actions/github-script@v7
with:
script: |
const message = '`src/lib/exampleKcl.ts` has been updated in this PR, please review and update the `src/routes/onboarding`, if needed.';
const issue_number = context.payload.pull_request.number;
const owner = context.repo.owner;
const repo = context.repo.repo;
// Post a comment on the PR
await github.rest.issues.createComment({
owner,
repo,
issue_number,
body: message,
});

View File

@ -367,7 +367,7 @@ jobs:
- name: Upload release files to Github
if: ${{ github.event_name == 'release' }}
uses: softprops/action-gh-release@v1
uses: softprops/action-gh-release@v2
with:
files: 'artifact/*/Zoo*'
@ -394,4 +394,4 @@ jobs:
DISCORD_WEBHOOK_URL: ${{ secrets.DISCORD_WEBHOOK_URL }}
RELEASE_VERSION: ${{ github.event.release.tag_name }}
RELEASE_BODY: ${{ github.event.release.body}}
run: python public/announce_release.py
run: python public/announce_release.py

View File

@ -0,0 +1,62 @@
on:
push:
branches:
- main
paths:
- .github/workflows/generate-website-docs.yml
- 'docs/**'
pull_request:
paths:
- .github/workflows/generate-website-docs.yml
workflow_dispatch:
name: generate-website-docs
concurrency:
group: docs-${{ github.ref }}
cancel-in-progress: true
jobs:
generate-website-docs:
name: generate-website-docs
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/create-github-app-token@v1
id: app-token
with:
# required
app-id: ${{ secrets.GH_ORG_APP_ID }}
private-key: ${{ secrets.GH_ORG_APP_PRIVATE_KEY }}
owner: ${{ github.repository_owner }}
# Checkout the docs repo since we will want to update the files there.
- uses: actions/checkout@v4
with:
repository: 'kittycad/documentation'
path: 'documentation'
token: ${{ steps.app-token.outputs.token }}
- name: move docs to docs
shell: bash
run: |
mkdir -p documentation/content/pages/docs/kcl/
# cleanup old
rm -rf documentation/content/pages/docs/kcl/*.md
# move new
mv -f docs/kcl/*.md documentation/content/pages/docs/kcl/
- name: commit the changes in the docs repo
shell: bash
run: |
cd documentation
git config --local user.email "github-actions[bot]@users.noreply.github.com"
git config --local user.name "github-actions[bot]"
git add .
git commit -am "YOYO NEW KCL DOCS!!" || exit 0
git fetch origin
git rebase origin/main || exit 0
export NEW_BRANCH="update-kcl-docs"
git checkout -b "$NEW_BRANCH"
git push -f origin "$NEW_BRANCH"
gh pr create --title "Update KCL docs" \
--body "Updating the generated kcl docs cc @jessfraz @franknoirot merge this" \
--head "$NEW_BRANCH" \
--base main || true
env:
GITHUB_TOKEN: ${{ steps.app-token.outputs.token }}

View File

@ -9,17 +9,21 @@ concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
permissions:
contents: write
pull-requests: write
jobs:
playwright-ubuntu:
timeout-minutes: 60
runs-on: ubuntu-latest
runs-on: ubuntu-latest-8-cores
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
cache: 'yarn'
- uses: KittyCAD/action-install-cli@v0.2.21
- uses: KittyCAD/action-install-cli@main
- name: Install dependencies
run: yarn
- name: Install Playwright Browsers

10
.gitignore vendored
View File

@ -38,13 +38,9 @@ src/wasm-lib/grackle/test_json_output
e2e/playwright/playwright-secrets.env
e2e/playwright/temp1.png
e2e/playwright/temp2.png
# exports from snapshot-tests.spec.ts
e2e/playwright/export-snapshots/*.ply
e2e/playwright/export-snapshots/*.obj
e2e/playwright/export-snapshots/*.step
e2e/playwright/export-snapshots/*.stl
e2e/playwright/export-snapshots/*binary.gltf
e2e/playwright/export-snapshots/*embedded.gltf
# exports from snapshot-tests.spec.ts "exports of each format should work"
e2e/playwright/export-snapshots/*
!e2e/playwright/export-snapshots/*.png
/test-results/

View File

@ -141,7 +141,7 @@ run `./make-release.sh` for a patch update
run `./make-release.sh "minor"` for minor
run `./make-release.sh "major"` for major
The PR may serve as a place to discuss the human-readable changelog and extra QA. A quick way of getting PR's merged since the last bump is to [use this PR filter](https://github.com/KittyCAD/modeling-app/pulls?q=is%3Apr+sort%3Aupdated-desc+is%3Amerged+), open up the browser console and past in the following
The PR may serve as a place to discuss the human-readable changelog and extra QA. A quick way of getting PR's merged since the last bump is to [use this PR filter](https://github.com/KittyCAD/modeling-app/pulls?q=is%3Apr+sort%3Aupdated-desc+is%3Amerged+), open up the browser console and paste in the following
```typescript
console.log(

View File

@ -1,4 +1,8 @@
# Known Issues
---
title: "KCL Known Issues"
excerpt: "Known issues with the KCL standard library for the Zoo Modeling App."
layout: manual
---
The following are bugs that are not in modeling-app or kcl itself. These bugs
once fixed in engine will just start working here with no language changes.
@ -12,3 +16,5 @@ once fixed in engine will just start working here with no language changes.
you cannot edit it, after v1, the engine will account for this. You also cannot
currently move or transform the imported objects at all, once we have assemblies
this will work.
- **Fillets**: Fillets cannot intersect, you will get an error. Only simple fillet cases work currently.

34
docs/kcl/abs.md Normal file
View File

@ -0,0 +1,34 @@
---
title: "abs"
excerpt: "Computes the absolute value of a number."
layout: manual
---
Computes the absolute value of a number.
```js
abs(num: number) -> number
```
### Tags
* `math`
### Examples
```js
const myVar = abs(-4)
```
### Arguments
* `num`: `number` (REQUIRED)
### Returns
`number`

34
docs/kcl/acos.md Normal file
View File

@ -0,0 +1,34 @@
---
title: "acos"
excerpt: "Computes the arccosine of a number (in radians)."
layout: manual
---
Computes the arccosine of a number (in radians).
```js
acos(num: number) -> number
```
### Tags
* `math`
### Examples
```js
const myVar = acos(0.5)
```
### Arguments
* `num`: `number` (REQUIRED)
### Returns
`number`

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

379
docs/kcl/angledLine.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

379
docs/kcl/angledLineToX.md Normal file

File diff suppressed because one or more lines are too long

378
docs/kcl/angledLineToY.md Normal file

File diff suppressed because one or more lines are too long

389
docs/kcl/arc.md Normal file

File diff suppressed because one or more lines are too long

34
docs/kcl/asin.md Normal file
View File

@ -0,0 +1,34 @@
---
title: "asin"
excerpt: "Computes the arcsine of a number (in radians)."
layout: manual
---
Computes the arcsine of a number (in radians).
```js
asin(num: number) -> number
```
### Tags
* `math`
### Examples
```js
const myVar = asin(0.5)
```
### Arguments
* `num`: `number` (REQUIRED)
### Returns
`number`

34
docs/kcl/atan.md Normal file
View File

@ -0,0 +1,34 @@
---
title: "atan"
excerpt: "Computes the arctangent of a number (in radians)."
layout: manual
---
Computes the arctangent of a number (in radians).
```js
atan(num: number) -> number
```
### Tags
* `math`
### Examples
```js
const myVar = atan(1.0)
```
### Arguments
* `num`: `number` (REQUIRED)
### Returns
`number`

382
docs/kcl/bezierCurve.md Normal file

File diff suppressed because one or more lines are too long

34
docs/kcl/ceil.md Normal file
View File

@ -0,0 +1,34 @@
---
title: "ceil"
excerpt: "Computes the smallest integer greater than or equal to a number."
layout: manual
---
Computes the smallest integer greater than or equal to a number.
```js
ceil(num: number) -> number
```
### Tags
* `math`
### Examples
```js
const myVar = ceil(4.5)
```
### Arguments
* `num`: `number` (REQUIRED)
### Returns
`number`

439
docs/kcl/circle.md Normal file

File diff suppressed because one or more lines are too long

377
docs/kcl/close.md Normal file

File diff suppressed because one or more lines are too long

34
docs/kcl/cos.md Normal file
View File

@ -0,0 +1,34 @@
---
title: "cos"
excerpt: "Computes the cosine of a number (in radians)."
layout: manual
---
Computes the cosine of a number (in radians).
```js
cos(num: number) -> number
```
### Tags
* `math`
### Examples
```js
const anotherVar = cos(2 * pi())
```
### Arguments
* `num`: `number` (REQUIRED)
### Returns
`number`

33
docs/kcl/e.md Normal file
View File

@ -0,0 +1,33 @@
---
title: "e"
excerpt: "Return the value of Eulers number `e`."
layout: manual
---
Return the value of Eulers number `e`.
```js
e() -> number
```
### Tags
* `math`
### Examples
```js
const myVar = e()
```
### Arguments
### Returns
`number`

334
docs/kcl/extrude.md Normal file

File diff suppressed because one or more lines are too long

309
docs/kcl/fillet.md Normal file

File diff suppressed because one or more lines are too long

34
docs/kcl/floor.md Normal file
View File

@ -0,0 +1,34 @@
---
title: "floor"
excerpt: "Computes the largest integer less than or equal to a number."
layout: manual
---
Computes the largest integer less than or equal to a number.
```js
floor(num: number) -> number
```
### Tags
* `math`
### Examples
```js
const myVar = floor(4.5)
```
### Arguments
* `num`: `number` (REQUIRED)
### Returns
`number`

180
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

173
docs/kcl/getOppositeEdge.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

308
docs/kcl/helix.md Normal file

File diff suppressed because one or more lines are too long

540
docs/kcl/hole.md Normal file

File diff suppressed because one or more lines are too long

136
docs/kcl/import.md Normal file
View File

@ -0,0 +1,136 @@
---
title: "import"
excerpt: "Import a CAD file."
layout: manual
---
Import a CAD file.
For formats lacking unit data (STL, OBJ, PLY), the default import unit is millimeters. Otherwise you can specify the unit by passing in the options parameter. If you import a gltf file, we will try to find the bin file and import it as well.
Import paths are relative to the current project directory. This only works in the desktop app not in browser.
```js
import(file_path: String, options?: ImportFormat) -> ImportedGeometry
```
### Examples
```js
const model = import("thing.obj")
```
```js
const model = import("cube.obj", { type: "obj", units: "m" })
```
```js
const model = import("my_model.gltf")
```
```js
const model = import("my_model.sldprt")
```
```js
const model = import("my_model.step")
```
### Arguments
* `file_path`: `String` (REQUIRED)
* `options`: `ImportFormat` - Import format specifier (OPTIONAL)
```js
{
type: "fbx",
} |
{
type: "gltf",
} |
{
// Co-ordinate system of input data. Defaults to the [KittyCAD co-ordinate system.
coords: {
// Axis the front face of a model looks along.
forward: {
// Axis specifier.
axis: "y" | "z",
// Specifies which direction the axis is pointing.
direction: "positive" | "negative",
},
// Axis pointing up and away from a model.
up: {
// Axis specifier.
axis: "y" | "z",
// Specifies which direction the axis is pointing.
direction: "positive" | "negative",
},
},
type: "obj",
// The units of the input data. This is very important for correct scaling and when calculating physics properties like mass, etc. Defaults to millimeters.
units: "cm" | "ft" | "in" | "m" | "mm" | "yd",
} |
{
// Co-ordinate system of input data. Defaults to the [KittyCAD co-ordinate system.
coords: {
// Axis the front face of a model looks along.
forward: {
// Axis specifier.
axis: "y" | "z",
// Specifies which direction the axis is pointing.
direction: "positive" | "negative",
},
// Axis pointing up and away from a model.
up: {
// Axis specifier.
axis: "y" | "z",
// Specifies which direction the axis is pointing.
direction: "positive" | "negative",
},
},
type: "ply",
// The units of the input data. This is very important for correct scaling and when calculating physics properties like mass, etc. Defaults to millimeters.
units: "cm" | "ft" | "in" | "m" | "mm" | "yd",
} |
{
type: "sldprt",
} |
{
type: "step",
} |
{
// Co-ordinate system of input data. Defaults to the [KittyCAD co-ordinate system.
coords: {
// Axis the front face of a model looks along.
forward: {
// Axis specifier.
axis: "y" | "z",
// Specifies which direction the axis is pointing.
direction: "positive" | "negative",
},
// Axis pointing up and away from a model.
up: {
// Axis specifier.
axis: "y" | "z",
// Specifies which direction the axis is pointing.
direction: "positive" | "negative",
},
},
type: "stl",
// The units of the input data. This is very important for correct scaling and when calculating physics properties like mass, etc. Defaults to millimeters.
units: "cm" | "ft" | "in" | "m" | "mm" | "yd",
}
```
### Returns
`ImportedGeometry` - Data for an imported geometry.
```js
{
// The ID of the imported geometry.
id: uuid,
// The original file paths.
value: [string],
}
```

79
docs/kcl/index.md Normal file
View File

@ -0,0 +1,79 @@
---
title: "KCL Standard Library"
excerpt: "Documentation for the KCL standard library for the Zoo Modeling App."
layout: manual
---
## Table of Contents
* [Types](kcl/types)
* [Known Issues](kcl/KNOWN-ISSUES)
* [`abs`](kcl/abs)
* [`acos`](kcl/acos)
* [`angleToMatchLengthX`](kcl/angleToMatchLengthX)
* [`angleToMatchLengthY`](kcl/angleToMatchLengthY)
* [`angledLine`](kcl/angledLine)
* [`angledLineOfXLength`](kcl/angledLineOfXLength)
* [`angledLineOfYLength`](kcl/angledLineOfYLength)
* [`angledLineThatIntersects`](kcl/angledLineThatIntersects)
* [`angledLineToX`](kcl/angledLineToX)
* [`angledLineToY`](kcl/angledLineToY)
* [`arc`](kcl/arc)
* [`asin`](kcl/asin)
* [`atan`](kcl/atan)
* [`bezierCurve`](kcl/bezierCurve)
* [`ceil`](kcl/ceil)
* [`circle`](kcl/circle)
* [`close`](kcl/close)
* [`cos`](kcl/cos)
* [`e`](kcl/e)
* [`extrude`](kcl/extrude)
* [`fillet`](kcl/fillet)
* [`floor`](kcl/floor)
* [`getEdge`](kcl/getEdge)
* [`getExtrudeWallTransform`](kcl/getExtrudeWallTransform)
* [`getNextAdjacentEdge`](kcl/getNextAdjacentEdge)
* [`getOppositeEdge`](kcl/getOppositeEdge)
* [`getPreviousAdjacentEdge`](kcl/getPreviousAdjacentEdge)
* [`helix`](kcl/helix)
* [`hole`](kcl/hole)
* [`import`](kcl/import)
* [`lastSegX`](kcl/lastSegX)
* [`lastSegY`](kcl/lastSegY)
* [`legAngX`](kcl/legAngX)
* [`legAngY`](kcl/legAngY)
* [`legLen`](kcl/legLen)
* [`line`](kcl/line)
* [`lineTo`](kcl/lineTo)
* [`ln`](kcl/ln)
* [`log`](kcl/log)
* [`log10`](kcl/log10)
* [`log2`](kcl/log2)
* [`max`](kcl/max)
* [`min`](kcl/min)
* [`patternCircular2d`](kcl/patternCircular2d)
* [`patternCircular3d`](kcl/patternCircular3d)
* [`patternLinear2d`](kcl/patternLinear2d)
* [`patternLinear3d`](kcl/patternLinear3d)
* [`pi`](kcl/pi)
* [`pow`](kcl/pow)
* [`revolve`](kcl/revolve)
* [`segAng`](kcl/segAng)
* [`segEndX`](kcl/segEndX)
* [`segEndY`](kcl/segEndY)
* [`segLen`](kcl/segLen)
* [`sin`](kcl/sin)
* [`sqrt`](kcl/sqrt)
* [`startProfileAt`](kcl/startProfileAt)
* [`startSketchAt`](kcl/startSketchAt)
* [`startSketchOn`](kcl/startSketchOn)
* [`tan`](kcl/tan)
* [`tangentialArc`](kcl/tangentialArc)
* [`tangentialArcTo`](kcl/tangentialArcTo)
* [`tau`](kcl/tau)
* [`toDegrees`](kcl/toDegrees)
* [`toRadians`](kcl/toRadians)
* [`xLine`](kcl/xLine)
* [`xLineTo`](kcl/xLineTo)
* [`yLine`](kcl/yLine)
* [`yLineTo`](kcl/yLineTo)

203
docs/kcl/lastSegX.md Normal file

File diff suppressed because one or more lines are too long

203
docs/kcl/lastSegY.md Normal file

File diff suppressed because one or more lines are too long

35
docs/kcl/legAngX.md Normal file
View File

@ -0,0 +1,35 @@
---
title: "legAngX"
excerpt: "Returns the angle of the given leg for x."
layout: manual
---
Returns the angle of the given leg for x.
```js
legAngX(hypotenuse: number, leg: number) -> number
```
### Tags
* `utilities`
### Examples
```js
legAngX(5, 3)
```
### Arguments
* `hypotenuse`: `number` (REQUIRED)
* `leg`: `number` (REQUIRED)
### Returns
`number`

35
docs/kcl/legAngY.md Normal file
View File

@ -0,0 +1,35 @@
---
title: "legAngY"
excerpt: "Returns the angle of the given leg for y."
layout: manual
---
Returns the angle of the given leg for y.
```js
legAngY(hypotenuse: number, leg: number) -> number
```
### Tags
* `utilities`
### Examples
```js
legAngY(5, 3)
```
### Arguments
* `hypotenuse`: `number` (REQUIRED)
* `leg`: `number` (REQUIRED)
### Returns
`number`

35
docs/kcl/legLen.md Normal file
View File

@ -0,0 +1,35 @@
---
title: "legLen"
excerpt: "Returns the length of the given leg."
layout: manual
---
Returns the length of the given leg.
```js
legLen(hypotenuse: number, leg: number) -> number
```
### Tags
* `utilities`
### Examples
```js
legLen(5, 3)
```
### Arguments
* `hypotenuse`: `number` (REQUIRED)
* `leg`: `number` (REQUIRED)
### Returns
`number`

369
docs/kcl/line.md Normal file

File diff suppressed because one or more lines are too long

375
docs/kcl/lineTo.md Normal file

File diff suppressed because one or more lines are too long

34
docs/kcl/ln.md Normal file
View File

@ -0,0 +1,34 @@
---
title: "ln"
excerpt: "Computes the natural logarithm of the number."
layout: manual
---
Computes the natural logarithm of the number.
```js
ln(num: number) -> number
```
### Tags
* `math`
### Examples
```js
const myVar = ln(4)
```
### Arguments
* `num`: `number` (REQUIRED)
### Returns
`number`

35
docs/kcl/log.md Normal file
View File

@ -0,0 +1,35 @@
---
title: "log"
excerpt: "Computes the logarithm of the number with respect to an arbitrary base."
layout: manual
---
Computes the logarithm of the number with respect to an arbitrary base.
The result might not be correctly rounded owing to implementation details; `log2()` can produce more accurate results for base 2, and `log10()` can produce more accurate results for base 10.
```js
log(num: number, base: number) -> number
```
### Tags
* `math`
### Examples
```js
const myVar = log(4, 2)
```
### Arguments
* `num`: `number` (REQUIRED)
* `base`: `number` (REQUIRED)
### Returns
`number`

34
docs/kcl/log10.md Normal file
View File

@ -0,0 +1,34 @@
---
title: "log10"
excerpt: "Computes the base 10 logarithm of the number."
layout: manual
---
Computes the base 10 logarithm of the number.
```js
log10(num: number) -> number
```
### Tags
* `math`
### Examples
```js
const myVar = log10(4)
```
### Arguments
* `num`: `number` (REQUIRED)
### Returns
`number`

34
docs/kcl/log2.md Normal file
View File

@ -0,0 +1,34 @@
---
title: "log2"
excerpt: "Computes the base 2 logarithm of the number."
layout: manual
---
Computes the base 2 logarithm of the number.
```js
log2(num: number) -> number
```
### Tags
* `math`
### Examples
```js
const myVar = log2(4)
```
### Arguments
* `num`: `number` (REQUIRED)
### Returns
`number`

34
docs/kcl/max.md Normal file
View File

@ -0,0 +1,34 @@
---
title: "max"
excerpt: "Computes the maximum of the given arguments."
layout: manual
---
Computes the maximum of the given arguments.
```js
max(args: [number]) -> number
```
### Tags
* `math`
### Examples
```js
const myVar = max(4, 5, 6)
```
### Arguments
* `args`: `[number]` (REQUIRED)
### Returns
`number`

34
docs/kcl/min.md Normal file
View File

@ -0,0 +1,34 @@
---
title: "min"
excerpt: "Computes the minimum of the given arguments."
layout: manual
---
Computes the minimum of the given arguments.
```js
min(args: [number]) -> number
```
### Tags
* `math`
### Examples
```js
const myVar = min(4, 5, 6)
```
### Arguments
* `args`: `[number]` (REQUIRED)
### Returns
`number`

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

214
docs/kcl/patternLinear2d.md Normal file

File diff suppressed because one or more lines are too long

184
docs/kcl/patternLinear3d.md Normal file

File diff suppressed because one or more lines are too long

33
docs/kcl/pi.md Normal file
View File

@ -0,0 +1,33 @@
---
title: "pi"
excerpt: "Return the value of `pi`. Archimedes constant (π)."
layout: manual
---
Return the value of `pi`. Archimedes constant (π).
```js
pi() -> number
```
### Tags
* `math`
### Examples
```js
const myVar = pi() * 3.0
```
### Arguments
### Returns
`number`

35
docs/kcl/pow.md Normal file
View File

@ -0,0 +1,35 @@
---
title: "pow"
excerpt: "Computes the number to a power."
layout: manual
---
Computes the number to a power.
```js
pow(num: number, pow: number) -> number
```
### Tags
* `math`
### Examples
```js
const myVar = pow(4, 2)
```
### Arguments
* `num`: `number` (REQUIRED)
* `pow`: `number` (REQUIRED)
### Returns
`number`

444
docs/kcl/revolve.md Normal file

File diff suppressed because one or more lines are too long

206
docs/kcl/segAng.md Normal file

File diff suppressed because one or more lines are too long

204
docs/kcl/segEndX.md Normal file

File diff suppressed because one or more lines are too long

204
docs/kcl/segEndY.md Normal file

File diff suppressed because one or more lines are too long

204
docs/kcl/segLen.md Normal file

File diff suppressed because one or more lines are too long

34
docs/kcl/sin.md Normal file
View File

@ -0,0 +1,34 @@
---
title: "sin"
excerpt: "Computes the sine of a number (in radians)."
layout: manual
---
Computes the sine of a number (in radians).
```js
sin(num: number) -> number
```
### Tags
* `math`
### Examples
```js
const myVar = sin(2 * pi())
```
### Arguments
* `num`: `number` (REQUIRED)
### Returns
`number`

34
docs/kcl/sqrt.md Normal file
View File

@ -0,0 +1,34 @@
---
title: "sqrt"
excerpt: "Computes the square root of a number."
layout: manual
---
Computes the square root of a number.
```js
sqrt(num: number) -> number
```
### Tags
* `math`
### Examples
```js
const myVar = sqrt(4)
```
### Arguments
* `num`: `number` (REQUIRED)
### Returns
`number`

263
docs/kcl/startProfileAt.md Normal file

File diff suppressed because one or more lines are too long

198
docs/kcl/startSketchAt.md Normal file

File diff suppressed because one or more lines are too long

292
docs/kcl/startSketchOn.md Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

34
docs/kcl/tan.md Normal file
View File

@ -0,0 +1,34 @@
---
title: "tan"
excerpt: "Computes the tangent of a number (in radians)."
layout: manual
---
Computes the tangent of a number (in radians).
```js
tan(num: number) -> number
```
### Tags
* `math`
### Examples
```js
const myVar = tan(2 * pi())
```
### Arguments
* `num`: `number` (REQUIRED)
### Returns
`number`

378
docs/kcl/tangentialArc.md Normal file

File diff suppressed because one or more lines are too long

368
docs/kcl/tangentialArcTo.md Normal file

File diff suppressed because one or more lines are too long

33
docs/kcl/tau.md Normal file
View File

@ -0,0 +1,33 @@
---
title: "tau"
excerpt: "Return the value of `tau`. The full circle constant (τ). Equal to 2π."
layout: manual
---
Return the value of `tau`. The full circle constant (τ). Equal to 2π.
```js
tau() -> number
```
### Tags
* `math`
### Examples
```js
const myVar = tau()
```
### Arguments
### Returns
`number`

34
docs/kcl/toDegrees.md Normal file
View File

@ -0,0 +1,34 @@
---
title: "toDegrees"
excerpt: "Converts a number from radians to degrees."
layout: manual
---
Converts a number from radians to degrees.
```js
toDegrees(num: number) -> number
```
### Tags
* `math`
### Examples
```js
const myVar = toDegrees(2 * pi())
```
### Arguments
* `num`: `number` (REQUIRED)
### Returns
`number`

34
docs/kcl/toRadians.md Normal file
View File

@ -0,0 +1,34 @@
---
title: "toRadians"
excerpt: "Converts a number from degrees to radians."
layout: manual
---
Converts a number from degrees to radians.
```js
toRadians(num: number) -> number
```
### Tags
* `math`
### Examples
```js
const myVar = toRadians(180)
```
### Arguments
* `num`: `number` (REQUIRED)
### Returns
`number`

View File

@ -1,4 +1,8 @@
# Types
---
title: "KCL Types"
excerpt: "Documentation of types for the KCL standard library for the Zoo Modeling App."
layout: manual
---
`KCL` defines the following types and keywords the language.

369
docs/kcl/xLine.md Normal file

File diff suppressed because one or more lines are too long

369
docs/kcl/xLineTo.md Normal file

File diff suppressed because one or more lines are too long

369
docs/kcl/yLine.md Normal file

File diff suppressed because one or more lines are too long

370
docs/kcl/yLineTo.md Normal file

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 193 KiB

After

Width:  |  Height:  |  Size: 221 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 193 KiB

After

Width:  |  Height:  |  Size: 221 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 221 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 259 KiB

After

Width:  |  Height:  |  Size: 163 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 220 KiB

After

Width:  |  Height:  |  Size: 163 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 220 KiB

After

Width:  |  Height:  |  Size: 163 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 220 KiB

After

Width:  |  Height:  |  Size: 163 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 193 KiB

After

Width:  |  Height:  |  Size: 221 KiB

View File

@ -1,494 +0,0 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION((('zoo.dev export')), '2;1');
FILE_NAME('dump.step', '1970-01-01T00:00:00.0+00:00', ('Author unknown'), ('Organization unknown'), 'zoo.dev beta', 'zoo.dev', 'Authorization unknown');
FILE_SCHEMA(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF'));
ENDSEC;
DATA;
#1 = (
LENGTH_UNIT()
NAMED_UNIT(*)
SI_UNIT($, .METRE.)
);
#2 = UNCERTAINTY_MEASURE_WITH_UNIT(0.00001, #1, 'DISTANCE_ACCURACY_VALUE', $);
#3 = (
GEOMETRIC_REPRESENTATION_CONTEXT(3)
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#2))
GLOBAL_UNIT_ASSIGNED_CONTEXT((#1))
REPRESENTATION_CONTEXT('', '3D')
);
#4 = CARTESIAN_POINT('NONE', (0, 0, -0));
#5 = VERTEX_POINT('NONE', #4);
#6 = CARTESIAN_POINT('NONE', (0, -0.64516, -0));
#7 = VERTEX_POINT('NONE', #6);
#8 = CARTESIAN_POINT('NONE', (0, -0.64516, 2.58064));
#9 = VERTEX_POINT('NONE', #8);
#10 = CARTESIAN_POINT('NONE', (0, 0, 2.58064));
#11 = VERTEX_POINT('NONE', #10);
#12 = CARTESIAN_POINT('NONE', (1.996782122555674, -0.64516, -0));
#13 = VERTEX_POINT('NONE', #12);
#14 = CARTESIAN_POINT('NONE', (1.996782122555674, -0.64516, 2.58064));
#15 = VERTEX_POINT('NONE', #14);
#16 = CARTESIAN_POINT('NONE', (3.839550058615159, -1.9354799999999992, -0));
#17 = VERTEX_POINT('NONE', #16);
#18 = CARTESIAN_POINT('NONE', (3.839550058615159, -1.9354799999999992, 2.58064));
#19 = VERTEX_POINT('NONE', #18);
#20 = CARTESIAN_POINT('NONE', (6.12902, -1.93548, -0));
#21 = VERTEX_POINT('NONE', #20);
#22 = CARTESIAN_POINT('NONE', (6.12902, -1.93548, 2.58064));
#23 = VERTEX_POINT('NONE', #22);
#24 = CARTESIAN_POINT('NONE', (6.12902, -1.6129, -0));
#25 = VERTEX_POINT('NONE', #24);
#26 = CARTESIAN_POINT('NONE', (6.12902, -1.6129, 2.58064));
#27 = VERTEX_POINT('NONE', #26);
#28 = CARTESIAN_POINT('NONE', (3.9412591419317424, -1.6129, -0));
#29 = VERTEX_POINT('NONE', #28);
#30 = CARTESIAN_POINT('NONE', (3.9412591419317424, -1.6129, 2.58064));
#31 = VERTEX_POINT('NONE', #30);
#32 = CARTESIAN_POINT('NONE', (1.6377992218573856, 0, -0));
#33 = VERTEX_POINT('NONE', #32);
#34 = CARTESIAN_POINT('NONE', (1.6377992218573856, 0, 2.58064));
#35 = VERTEX_POINT('NONE', #34);
#36 = CARTESIAN_POINT('NONE', (3.7131243491113075, 0.9677400000000002, -0));
#37 = VERTEX_POINT('NONE', #36);
#38 = CARTESIAN_POINT('NONE', (3.7131243491113075, 0.9677400000000002, 2.58064));
#39 = VERTEX_POINT('NONE', #38);
#40 = CARTESIAN_POINT('NONE', (6.12902, 0.9677399999999998, -0));
#41 = VERTEX_POINT('NONE', #40);
#42 = CARTESIAN_POINT('NONE', (6.12902, 0.9677399999999998, 2.58064));
#43 = VERTEX_POINT('NONE', #42);
#44 = CARTESIAN_POINT('NONE', (6.12902, 1.29032, -0));
#45 = VERTEX_POINT('NONE', #44);
#46 = CARTESIAN_POINT('NONE', (6.12902, 1.29032, 2.58064));
#47 = VERTEX_POINT('NONE', #46);
#48 = CARTESIAN_POINT('NONE', (3.6416100848359463, 1.29032, -0));
#49 = VERTEX_POINT('NONE', #48);
#50 = CARTESIAN_POINT('NONE', (3.6416100848359463, 1.29032, 2.58064));
#51 = VERTEX_POINT('NONE', #50);
#52 = CARTESIAN_POINT('NONE', (2.2580599999999995, 0.64516, -0));
#53 = VERTEX_POINT('NONE', #52);
#54 = CARTESIAN_POINT('NONE', (2.2580599999999995, 0.64516, 2.58064));
#55 = VERTEX_POINT('NONE', #54);
#56 = CARTESIAN_POINT('NONE', (0, 0.64516, -0));
#57 = VERTEX_POINT('NONE', #56);
#58 = CARTESIAN_POINT('NONE', (0, 0.64516, 2.58064));
#59 = VERTEX_POINT('NONE', #58);
#60 = DIRECTION('NONE', (0, -1, 0));
#61 = VECTOR('NONE', #60, 1);
#62 = CARTESIAN_POINT('NONE', (0, 0, -0));
#63 = LINE('NONE', #62, #61);
#64 = DIRECTION('NONE', (0, 0, 1));
#65 = VECTOR('NONE', #64, 1);
#66 = CARTESIAN_POINT('NONE', (0, -0.64516, -0));
#67 = LINE('NONE', #66, #65);
#68 = DIRECTION('NONE', (0, -1, 0));
#69 = VECTOR('NONE', #68, 1);
#70 = CARTESIAN_POINT('NONE', (0, 0, 2.58064));
#71 = LINE('NONE', #70, #69);
#72 = DIRECTION('NONE', (0, 0, 1));
#73 = VECTOR('NONE', #72, 1);
#74 = CARTESIAN_POINT('NONE', (0, 0, -0));
#75 = LINE('NONE', #74, #73);
#76 = DIRECTION('NONE', (1, 0, 0));
#77 = VECTOR('NONE', #76, 1);
#78 = CARTESIAN_POINT('NONE', (0, -0.64516, -0));
#79 = LINE('NONE', #78, #77);
#80 = DIRECTION('NONE', (0, 0, 1));
#81 = VECTOR('NONE', #80, 1);
#82 = CARTESIAN_POINT('NONE', (1.996782122555674, -0.64516, -0));
#83 = LINE('NONE', #82, #81);
#84 = DIRECTION('NONE', (1, 0, 0));
#85 = VECTOR('NONE', #84, 1);
#86 = CARTESIAN_POINT('NONE', (0, -0.64516, 2.58064));
#87 = LINE('NONE', #86, #85);
#88 = DIRECTION('NONE', (0.819152044288992, -0.5735764363510459, 0));
#89 = VECTOR('NONE', #88, 1);
#90 = CARTESIAN_POINT('NONE', (1.996782122555674, -0.64516, -0));
#91 = LINE('NONE', #90, #89);
#92 = DIRECTION('NONE', (0, 0, 1));
#93 = VECTOR('NONE', #92, 1);
#94 = CARTESIAN_POINT('NONE', (3.839550058615159, -1.9354799999999992, -0));
#95 = LINE('NONE', #94, #93);
#96 = DIRECTION('NONE', (0.819152044288992, -0.5735764363510459, 0));
#97 = VECTOR('NONE', #96, 1);
#98 = CARTESIAN_POINT('NONE', (1.996782122555674, -0.64516, 2.58064));
#99 = LINE('NONE', #98, #97);
#100 = DIRECTION('NONE', (1, -0.00000000000000038794063361359933, 0));
#101 = VECTOR('NONE', #100, 1);
#102 = CARTESIAN_POINT('NONE', (3.839550058615159, -1.9354799999999992, -0));
#103 = LINE('NONE', #102, #101);
#104 = DIRECTION('NONE', (0, 0, 1));
#105 = VECTOR('NONE', #104, 1);
#106 = CARTESIAN_POINT('NONE', (6.12902, -1.93548, -0));
#107 = LINE('NONE', #106, #105);
#108 = DIRECTION('NONE', (1, -0.00000000000000038794063361359933, 0));
#109 = VECTOR('NONE', #108, 1);
#110 = CARTESIAN_POINT('NONE', (3.839550058615159, -1.9354799999999992, 2.58064));
#111 = LINE('NONE', #110, #109);
#112 = DIRECTION('NONE', (0, 1, 0));
#113 = VECTOR('NONE', #112, 1);
#114 = CARTESIAN_POINT('NONE', (6.12902, -1.93548, -0));
#115 = LINE('NONE', #114, #113);
#116 = DIRECTION('NONE', (0, 0, 1));
#117 = VECTOR('NONE', #116, 1);
#118 = CARTESIAN_POINT('NONE', (6.12902, -1.6129, -0));
#119 = LINE('NONE', #118, #117);
#120 = DIRECTION('NONE', (0, 1, 0));
#121 = VECTOR('NONE', #120, 1);
#122 = CARTESIAN_POINT('NONE', (6.12902, -1.93548, 2.58064));
#123 = LINE('NONE', #122, #121);
#124 = DIRECTION('NONE', (-1, 0, 0));
#125 = VECTOR('NONE', #124, 1);
#126 = CARTESIAN_POINT('NONE', (6.12902, -1.6129, -0));
#127 = LINE('NONE', #126, #125);
#128 = DIRECTION('NONE', (0, 0, 1));
#129 = VECTOR('NONE', #128, 1);
#130 = CARTESIAN_POINT('NONE', (3.9412591419317424, -1.6129, -0));
#131 = LINE('NONE', #130, #129);
#132 = DIRECTION('NONE', (-1, 0, 0));
#133 = VECTOR('NONE', #132, 1);
#134 = CARTESIAN_POINT('NONE', (6.12902, -1.6129, 2.58064));
#135 = LINE('NONE', #134, #133);
#136 = DIRECTION('NONE', (-0.8191520442889919, 0.573576436351046, 0));
#137 = VECTOR('NONE', #136, 1);
#138 = CARTESIAN_POINT('NONE', (3.9412591419317424, -1.6129, -0));
#139 = LINE('NONE', #138, #137);
#140 = DIRECTION('NONE', (0, 0, 1));
#141 = VECTOR('NONE', #140, 1);
#142 = CARTESIAN_POINT('NONE', (1.6377992218573856, 0, -0));
#143 = LINE('NONE', #142, #141);
#144 = DIRECTION('NONE', (-0.8191520442889919, 0.573576436351046, 0));
#145 = VECTOR('NONE', #144, 1);
#146 = CARTESIAN_POINT('NONE', (3.9412591419317424, -1.6129, 2.58064));
#147 = LINE('NONE', #146, #145);
#148 = DIRECTION('NONE', (0.90630778703665, 0.4226182617406992, 0));
#149 = VECTOR('NONE', #148, 1);
#150 = CARTESIAN_POINT('NONE', (1.6377992218573856, 0, -0));
#151 = LINE('NONE', #150, #149);
#152 = DIRECTION('NONE', (0, 0, 1));
#153 = VECTOR('NONE', #152, 1);
#154 = CARTESIAN_POINT('NONE', (3.7131243491113075, 0.9677400000000002, -0));
#155 = LINE('NONE', #154, #153);
#156 = DIRECTION('NONE', (0.90630778703665, 0.4226182617406992, 0));
#157 = VECTOR('NONE', #156, 1);
#158 = CARTESIAN_POINT('NONE', (1.6377992218573856, 0, 2.58064));
#159 = LINE('NONE', #158, #157);
#160 = DIRECTION('NONE', (1, -0.0000000000000001378647737807002, 0));
#161 = VECTOR('NONE', #160, 1);
#162 = CARTESIAN_POINT('NONE', (3.7131243491113075, 0.9677400000000002, -0));
#163 = LINE('NONE', #162, #161);
#164 = DIRECTION('NONE', (0, 0, 1));
#165 = VECTOR('NONE', #164, 1);
#166 = CARTESIAN_POINT('NONE', (6.12902, 0.9677399999999998, -0));
#167 = LINE('NONE', #166, #165);
#168 = DIRECTION('NONE', (1, -0.0000000000000001378647737807002, 0));
#169 = VECTOR('NONE', #168, 1);
#170 = CARTESIAN_POINT('NONE', (3.7131243491113075, 0.9677400000000002, 2.58064));
#171 = LINE('NONE', #170, #169);
#172 = DIRECTION('NONE', (0, 1, 0));
#173 = VECTOR('NONE', #172, 1);
#174 = CARTESIAN_POINT('NONE', (6.12902, 0.9677399999999998, -0));
#175 = LINE('NONE', #174, #173);
#176 = DIRECTION('NONE', (0, 0, 1));
#177 = VECTOR('NONE', #176, 1);
#178 = CARTESIAN_POINT('NONE', (6.12902, 1.29032, -0));
#179 = LINE('NONE', #178, #177);
#180 = DIRECTION('NONE', (0, 1, 0));
#181 = VECTOR('NONE', #180, 1);
#182 = CARTESIAN_POINT('NONE', (6.12902, 0.9677399999999998, 2.58064));
#183 = LINE('NONE', #182, #181);
#184 = DIRECTION('NONE', (-1, 0, 0));
#185 = VECTOR('NONE', #184, 1);
#186 = CARTESIAN_POINT('NONE', (6.12902, 1.29032, -0));
#187 = LINE('NONE', #186, #185);
#188 = DIRECTION('NONE', (0, 0, 1));
#189 = VECTOR('NONE', #188, 1);
#190 = CARTESIAN_POINT('NONE', (3.6416100848359463, 1.29032, -0));
#191 = LINE('NONE', #190, #189);
#192 = DIRECTION('NONE', (-1, 0, 0));
#193 = VECTOR('NONE', #192, 1);
#194 = CARTESIAN_POINT('NONE', (6.12902, 1.29032, 2.58064));
#195 = LINE('NONE', #194, #193);
#196 = DIRECTION('NONE', (-0.90630778703665, -0.4226182617406995, 0));
#197 = VECTOR('NONE', #196, 1);
#198 = CARTESIAN_POINT('NONE', (3.6416100848359463, 1.29032, -0));
#199 = LINE('NONE', #198, #197);
#200 = DIRECTION('NONE', (0, 0, 1));
#201 = VECTOR('NONE', #200, 1);
#202 = CARTESIAN_POINT('NONE', (2.2580599999999995, 0.64516, -0));
#203 = LINE('NONE', #202, #201);
#204 = DIRECTION('NONE', (-0.90630778703665, -0.4226182617406995, 0));
#205 = VECTOR('NONE', #204, 1);
#206 = CARTESIAN_POINT('NONE', (3.6416100848359463, 1.29032, 2.58064));
#207 = LINE('NONE', #206, #205);
#208 = DIRECTION('NONE', (-1, 0, 0));
#209 = VECTOR('NONE', #208, 1);
#210 = CARTESIAN_POINT('NONE', (2.2580599999999995, 0.64516, -0));
#211 = LINE('NONE', #210, #209);
#212 = DIRECTION('NONE', (0, 0, 1));
#213 = VECTOR('NONE', #212, 1);
#214 = CARTESIAN_POINT('NONE', (0, 0.64516, -0));
#215 = LINE('NONE', #214, #213);
#216 = DIRECTION('NONE', (-1, 0, 0));
#217 = VECTOR('NONE', #216, 1);
#218 = CARTESIAN_POINT('NONE', (2.2580599999999995, 0.64516, 2.58064));
#219 = LINE('NONE', #218, #217);
#220 = DIRECTION('NONE', (0, -1, 0));
#221 = VECTOR('NONE', #220, 1);
#222 = CARTESIAN_POINT('NONE', (0, 0.64516, -0));
#223 = LINE('NONE', #222, #221);
#224 = DIRECTION('NONE', (0, -1, 0));
#225 = VECTOR('NONE', #224, 1);
#226 = CARTESIAN_POINT('NONE', (0, 0.64516, 2.58064));
#227 = LINE('NONE', #226, #225);
#228 = EDGE_CURVE('NONE', #5, #7, #63, .T.);
#229 = EDGE_CURVE('NONE', #7, #9, #67, .T.);
#230 = EDGE_CURVE('NONE', #11, #9, #71, .T.);
#231 = EDGE_CURVE('NONE', #5, #11, #75, .T.);
#232 = EDGE_CURVE('NONE', #7, #13, #79, .T.);
#233 = EDGE_CURVE('NONE', #13, #15, #83, .T.);
#234 = EDGE_CURVE('NONE', #9, #15, #87, .T.);
#235 = EDGE_CURVE('NONE', #13, #17, #91, .T.);
#236 = EDGE_CURVE('NONE', #17, #19, #95, .T.);
#237 = EDGE_CURVE('NONE', #15, #19, #99, .T.);
#238 = EDGE_CURVE('NONE', #17, #21, #103, .T.);
#239 = EDGE_CURVE('NONE', #21, #23, #107, .T.);
#240 = EDGE_CURVE('NONE', #19, #23, #111, .T.);
#241 = EDGE_CURVE('NONE', #21, #25, #115, .T.);
#242 = EDGE_CURVE('NONE', #25, #27, #119, .T.);
#243 = EDGE_CURVE('NONE', #23, #27, #123, .T.);
#244 = EDGE_CURVE('NONE', #25, #29, #127, .T.);
#245 = EDGE_CURVE('NONE', #29, #31, #131, .T.);
#246 = EDGE_CURVE('NONE', #27, #31, #135, .T.);
#247 = EDGE_CURVE('NONE', #29, #33, #139, .T.);
#248 = EDGE_CURVE('NONE', #33, #35, #143, .T.);
#249 = EDGE_CURVE('NONE', #31, #35, #147, .T.);
#250 = EDGE_CURVE('NONE', #33, #37, #151, .T.);
#251 = EDGE_CURVE('NONE', #37, #39, #155, .T.);
#252 = EDGE_CURVE('NONE', #35, #39, #159, .T.);
#253 = EDGE_CURVE('NONE', #37, #41, #163, .T.);
#254 = EDGE_CURVE('NONE', #41, #43, #167, .T.);
#255 = EDGE_CURVE('NONE', #39, #43, #171, .T.);
#256 = EDGE_CURVE('NONE', #41, #45, #175, .T.);
#257 = EDGE_CURVE('NONE', #45, #47, #179, .T.);
#258 = EDGE_CURVE('NONE', #43, #47, #183, .T.);
#259 = EDGE_CURVE('NONE', #45, #49, #187, .T.);
#260 = EDGE_CURVE('NONE', #49, #51, #191, .T.);
#261 = EDGE_CURVE('NONE', #47, #51, #195, .T.);
#262 = EDGE_CURVE('NONE', #49, #53, #199, .T.);
#263 = EDGE_CURVE('NONE', #53, #55, #203, .T.);
#264 = EDGE_CURVE('NONE', #51, #55, #207, .T.);
#265 = EDGE_CURVE('NONE', #53, #57, #211, .T.);
#266 = EDGE_CURVE('NONE', #57, #59, #215, .T.);
#267 = EDGE_CURVE('NONE', #55, #59, #219, .T.);
#268 = EDGE_CURVE('NONE', #57, #5, #223, .T.);
#269 = EDGE_CURVE('NONE', #59, #11, #227, .T.);
#270 = ORIENTED_EDGE('NONE', *, *, #228, .T.);
#271 = ORIENTED_EDGE('NONE', *, *, #229, .T.);
#272 = ORIENTED_EDGE('NONE', *, *, #230, .F.);
#273 = ORIENTED_EDGE('NONE', *, *, #231, .F.);
#274 = EDGE_LOOP('NONE', (#270, #271, #272, #273));
#275 = ORIENTED_EDGE('NONE', *, *, #232, .T.);
#276 = ORIENTED_EDGE('NONE', *, *, #233, .T.);
#277 = ORIENTED_EDGE('NONE', *, *, #234, .F.);
#278 = ORIENTED_EDGE('NONE', *, *, #229, .F.);
#279 = EDGE_LOOP('NONE', (#275, #276, #277, #278));
#280 = ORIENTED_EDGE('NONE', *, *, #235, .T.);
#281 = ORIENTED_EDGE('NONE', *, *, #236, .T.);
#282 = ORIENTED_EDGE('NONE', *, *, #237, .F.);
#283 = ORIENTED_EDGE('NONE', *, *, #233, .F.);
#284 = EDGE_LOOP('NONE', (#280, #281, #282, #283));
#285 = ORIENTED_EDGE('NONE', *, *, #238, .T.);
#286 = ORIENTED_EDGE('NONE', *, *, #239, .T.);
#287 = ORIENTED_EDGE('NONE', *, *, #240, .F.);
#288 = ORIENTED_EDGE('NONE', *, *, #236, .F.);
#289 = EDGE_LOOP('NONE', (#285, #286, #287, #288));
#290 = ORIENTED_EDGE('NONE', *, *, #241, .T.);
#291 = ORIENTED_EDGE('NONE', *, *, #242, .T.);
#292 = ORIENTED_EDGE('NONE', *, *, #243, .F.);
#293 = ORIENTED_EDGE('NONE', *, *, #239, .F.);
#294 = EDGE_LOOP('NONE', (#290, #291, #292, #293));
#295 = ORIENTED_EDGE('NONE', *, *, #244, .T.);
#296 = ORIENTED_EDGE('NONE', *, *, #245, .T.);
#297 = ORIENTED_EDGE('NONE', *, *, #246, .F.);
#298 = ORIENTED_EDGE('NONE', *, *, #242, .F.);
#299 = EDGE_LOOP('NONE', (#295, #296, #297, #298));
#300 = ORIENTED_EDGE('NONE', *, *, #247, .T.);
#301 = ORIENTED_EDGE('NONE', *, *, #248, .T.);
#302 = ORIENTED_EDGE('NONE', *, *, #249, .F.);
#303 = ORIENTED_EDGE('NONE', *, *, #245, .F.);
#304 = EDGE_LOOP('NONE', (#300, #301, #302, #303));
#305 = ORIENTED_EDGE('NONE', *, *, #250, .T.);
#306 = ORIENTED_EDGE('NONE', *, *, #251, .T.);
#307 = ORIENTED_EDGE('NONE', *, *, #252, .F.);
#308 = ORIENTED_EDGE('NONE', *, *, #248, .F.);
#309 = EDGE_LOOP('NONE', (#305, #306, #307, #308));
#310 = ORIENTED_EDGE('NONE', *, *, #253, .T.);
#311 = ORIENTED_EDGE('NONE', *, *, #254, .T.);
#312 = ORIENTED_EDGE('NONE', *, *, #255, .F.);
#313 = ORIENTED_EDGE('NONE', *, *, #251, .F.);
#314 = EDGE_LOOP('NONE', (#310, #311, #312, #313));
#315 = ORIENTED_EDGE('NONE', *, *, #256, .T.);
#316 = ORIENTED_EDGE('NONE', *, *, #257, .T.);
#317 = ORIENTED_EDGE('NONE', *, *, #258, .F.);
#318 = ORIENTED_EDGE('NONE', *, *, #254, .F.);
#319 = EDGE_LOOP('NONE', (#315, #316, #317, #318));
#320 = ORIENTED_EDGE('NONE', *, *, #259, .T.);
#321 = ORIENTED_EDGE('NONE', *, *, #260, .T.);
#322 = ORIENTED_EDGE('NONE', *, *, #261, .F.);
#323 = ORIENTED_EDGE('NONE', *, *, #257, .F.);
#324 = EDGE_LOOP('NONE', (#320, #321, #322, #323));
#325 = ORIENTED_EDGE('NONE', *, *, #262, .T.);
#326 = ORIENTED_EDGE('NONE', *, *, #263, .T.);
#327 = ORIENTED_EDGE('NONE', *, *, #264, .F.);
#328 = ORIENTED_EDGE('NONE', *, *, #260, .F.);
#329 = EDGE_LOOP('NONE', (#325, #326, #327, #328));
#330 = ORIENTED_EDGE('NONE', *, *, #265, .T.);
#331 = ORIENTED_EDGE('NONE', *, *, #266, .T.);
#332 = ORIENTED_EDGE('NONE', *, *, #267, .F.);
#333 = ORIENTED_EDGE('NONE', *, *, #263, .F.);
#334 = EDGE_LOOP('NONE', (#330, #331, #332, #333));
#335 = ORIENTED_EDGE('NONE', *, *, #268, .T.);
#336 = ORIENTED_EDGE('NONE', *, *, #231, .T.);
#337 = ORIENTED_EDGE('NONE', *, *, #269, .F.);
#338 = ORIENTED_EDGE('NONE', *, *, #266, .F.);
#339 = EDGE_LOOP('NONE', (#335, #336, #337, #338));
#340 = ORIENTED_EDGE('NONE', *, *, #228, .T.);
#341 = ORIENTED_EDGE('NONE', *, *, #232, .T.);
#342 = ORIENTED_EDGE('NONE', *, *, #235, .T.);
#343 = ORIENTED_EDGE('NONE', *, *, #238, .T.);
#344 = ORIENTED_EDGE('NONE', *, *, #241, .T.);
#345 = ORIENTED_EDGE('NONE', *, *, #244, .T.);
#346 = ORIENTED_EDGE('NONE', *, *, #247, .T.);
#347 = ORIENTED_EDGE('NONE', *, *, #250, .T.);
#348 = ORIENTED_EDGE('NONE', *, *, #253, .T.);
#349 = ORIENTED_EDGE('NONE', *, *, #256, .T.);
#350 = ORIENTED_EDGE('NONE', *, *, #259, .T.);
#351 = ORIENTED_EDGE('NONE', *, *, #262, .T.);
#352 = ORIENTED_EDGE('NONE', *, *, #265, .T.);
#353 = ORIENTED_EDGE('NONE', *, *, #268, .T.);
#354 = EDGE_LOOP('NONE', (#340, #341, #342, #343, #344, #345, #346, #347, #348, #349, #350, #351, #352, #353));
#355 = ORIENTED_EDGE('NONE', *, *, #230, .T.);
#356 = ORIENTED_EDGE('NONE', *, *, #234, .T.);
#357 = ORIENTED_EDGE('NONE', *, *, #237, .T.);
#358 = ORIENTED_EDGE('NONE', *, *, #240, .T.);
#359 = ORIENTED_EDGE('NONE', *, *, #243, .T.);
#360 = ORIENTED_EDGE('NONE', *, *, #246, .T.);
#361 = ORIENTED_EDGE('NONE', *, *, #249, .T.);
#362 = ORIENTED_EDGE('NONE', *, *, #252, .T.);
#363 = ORIENTED_EDGE('NONE', *, *, #255, .T.);
#364 = ORIENTED_EDGE('NONE', *, *, #258, .T.);
#365 = ORIENTED_EDGE('NONE', *, *, #261, .T.);
#366 = ORIENTED_EDGE('NONE', *, *, #264, .T.);
#367 = ORIENTED_EDGE('NONE', *, *, #267, .T.);
#368 = ORIENTED_EDGE('NONE', *, *, #269, .T.);
#369 = EDGE_LOOP('NONE', (#355, #356, #357, #358, #359, #360, #361, #362, #363, #364, #365, #366, #367, #368));
#370 = CARTESIAN_POINT('NONE', (0, -0.3225799999999985, 1.2903199999999995));
#371 = DIRECTION('NONE', (-1, -0, 0));
#372 = AXIS2_PLACEMENT_3D('NONE', #370, #371, $);
#373 = PLANE('NONE', #372);
#374 = CARTESIAN_POINT('NONE', (0.9983910612778368, -0.6451599999999998, 1.2903199999999997));
#375 = DIRECTION('NONE', (0, -1, 0));
#376 = AXIS2_PLACEMENT_3D('NONE', #374, #375, $);
#377 = PLANE('NONE', #376);
#378 = CARTESIAN_POINT('NONE', (2.918166090585415, -1.2903199999999988, 1.2903199999999997));
#379 = DIRECTION('NONE', (-0.5735764363510459, -0.8191520442889919, 0));
#380 = AXIS2_PLACEMENT_3D('NONE', #378, #379, $);
#381 = PLANE('NONE', #380);
#382 = CARTESIAN_POINT('NONE', (4.984285029307579, -1.9354799999999992, 1.2903199999999997));
#383 = DIRECTION('NONE', (0, -1, 0));
#384 = AXIS2_PLACEMENT_3D('NONE', #382, #383, $);
#385 = PLANE('NONE', #384);
#386 = CARTESIAN_POINT('NONE', (6.129019999999999, -1.7741899999999997, 1.2903199999999997));
#387 = DIRECTION('NONE', (1, -0, 0));
#388 = AXIS2_PLACEMENT_3D('NONE', #386, #387, $);
#389 = PLANE('NONE', #388);
#390 = CARTESIAN_POINT('NONE', (5.035139570965871, -1.6128999999999998, 1.2903199999999997));
#391 = DIRECTION('NONE', (0, 1, -0));
#392 = AXIS2_PLACEMENT_3D('NONE', #390, #391, $);
#393 = PLANE('NONE', #392);
#394 = CARTESIAN_POINT('NONE', (2.7895291818945633, -0.8064499999999998, 1.2903199999999995));
#395 = DIRECTION('NONE', (0.5735764363510459, 0.8191520442889918, -0));
#396 = AXIS2_PLACEMENT_3D('NONE', #394, #395, $);
#397 = PLANE('NONE', #396);
#398 = CARTESIAN_POINT('NONE', (2.6754617854843468, 0.4838700000000003, 1.2903199999999997));
#399 = DIRECTION('NONE', (0.4226182617406992, -0.90630778703665, 0));
#400 = AXIS2_PLACEMENT_3D('NONE', #398, #399, $);
#401 = PLANE('NONE', #400);
#402 = CARTESIAN_POINT('NONE', (4.921072174555653, 0.9677399999999998, 1.2903199999999995));
#403 = DIRECTION('NONE', (0, -1, 0));
#404 = AXIS2_PLACEMENT_3D('NONE', #402, #403, $);
#405 = PLANE('NONE', #404);
#406 = CARTESIAN_POINT('NONE', (6.129019999999998, 1.1290299999999989, 1.2903199999999995));
#407 = DIRECTION('NONE', (1, -0, 0));
#408 = AXIS2_PLACEMENT_3D('NONE', #406, #407, $);
#409 = PLANE('NONE', #408);
#410 = CARTESIAN_POINT('NONE', (4.8853150424179725, 1.2903199999999997, 1.2903199999999997));
#411 = DIRECTION('NONE', (0, 1, -0));
#412 = AXIS2_PLACEMENT_3D('NONE', #410, #411, $);
#413 = PLANE('NONE', #412);
#414 = CARTESIAN_POINT('NONE', (2.9498350424179733, 0.9677399999999998, 1.2903199999999997));
#415 = DIRECTION('NONE', (-0.42261826174069933, 0.9063077870366499, -0));
#416 = AXIS2_PLACEMENT_3D('NONE', #414, #415, $);
#417 = PLANE('NONE', #416);
#418 = CARTESIAN_POINT('NONE', (1.1290299999999998, 0.6451599999999998, 1.29032));
#419 = DIRECTION('NONE', (0, 1, -0));
#420 = AXIS2_PLACEMENT_3D('NONE', #418, #419, $);
#421 = PLANE('NONE', #420);
#422 = CARTESIAN_POINT('NONE', (0, 0.32257999999999987, 1.2903199999999995));
#423 = DIRECTION('NONE', (-1, -0, 0));
#424 = AXIS2_PLACEMENT_3D('NONE', #422, #423, $);
#425 = PLANE('NONE', #424);
#426 = CARTESIAN_POINT('NONE', (0, 0, -0));
#427 = DIRECTION('NONE', (0, 0, 1));
#428 = AXIS2_PLACEMENT_3D('NONE', #426, #427, $);
#429 = PLANE('NONE', #428);
#430 = CARTESIAN_POINT('NONE', (0, 0, 2.58064));
#431 = DIRECTION('NONE', (0, 0, 1));
#432 = AXIS2_PLACEMENT_3D('NONE', #430, #431, $);
#433 = PLANE('NONE', #432);
#434 = FACE_OUTER_BOUND('NONE', #274, .T.);
#435 = ADVANCED_FACE('NONE', (#434), #373, .T.);
#436 = FACE_OUTER_BOUND('NONE', #279, .T.);
#437 = ADVANCED_FACE('NONE', (#436), #377, .T.);
#438 = FACE_OUTER_BOUND('NONE', #284, .T.);
#439 = ADVANCED_FACE('NONE', (#438), #381, .T.);
#440 = FACE_OUTER_BOUND('NONE', #289, .T.);
#441 = ADVANCED_FACE('NONE', (#440), #385, .T.);
#442 = FACE_OUTER_BOUND('NONE', #294, .T.);
#443 = ADVANCED_FACE('NONE', (#442), #389, .T.);
#444 = FACE_OUTER_BOUND('NONE', #299, .T.);
#445 = ADVANCED_FACE('NONE', (#444), #393, .T.);
#446 = FACE_OUTER_BOUND('NONE', #304, .T.);
#447 = ADVANCED_FACE('NONE', (#446), #397, .T.);
#448 = FACE_OUTER_BOUND('NONE', #309, .T.);
#449 = ADVANCED_FACE('NONE', (#448), #401, .T.);
#450 = FACE_OUTER_BOUND('NONE', #314, .T.);
#451 = ADVANCED_FACE('NONE', (#450), #405, .T.);
#452 = FACE_OUTER_BOUND('NONE', #319, .T.);
#453 = ADVANCED_FACE('NONE', (#452), #409, .T.);
#454 = FACE_OUTER_BOUND('NONE', #324, .T.);
#455 = ADVANCED_FACE('NONE', (#454), #413, .T.);
#456 = FACE_OUTER_BOUND('NONE', #329, .T.);
#457 = ADVANCED_FACE('NONE', (#456), #417, .T.);
#458 = FACE_OUTER_BOUND('NONE', #334, .T.);
#459 = ADVANCED_FACE('NONE', (#458), #421, .T.);
#460 = FACE_OUTER_BOUND('NONE', #339, .T.);
#461 = ADVANCED_FACE('NONE', (#460), #425, .T.);
#462 = FACE_OUTER_BOUND('NONE', #354, .F.);
#463 = ADVANCED_FACE('NONE', (#462), #429, .F.);
#464 = FACE_OUTER_BOUND('NONE', #369, .T.);
#465 = ADVANCED_FACE('NONE', (#464), #433, .T.);
#466 = CLOSED_SHELL('NONE', (#435, #437, #439, #441, #443, #445, #447, #449, #451, #453, #455, #457, #459, #461, #463, #465));
#467 = ORIENTED_CLOSED_SHELL('NONE', *, #466, .T.);
#468 = MANIFOLD_SOLID_BREP('NONE', #467);
#469 = APPLICATION_CONTEXT('configuration controlled 3D design of mechanical parts and assemblies');
#470 = PRODUCT_DEFINITION_CONTEXT('part definition', #469, 'design');
#471 = PRODUCT('UNIDENTIFIED_PRODUCT', 'NONE', $, ());
#472 = PRODUCT_DEFINITION_FORMATION('', $, #471);
#473 = PRODUCT_DEFINITION('design', $, #472, #470);
#474 = PRODUCT_DEFINITION_SHAPE('NONE', $, #473);
#475 = ADVANCED_BREP_SHAPE_REPRESENTATION('NONE', (#468), #3);
#476 = SHAPE_DEFINITION_REPRESENTATION(#474, #475);
ENDSEC;
END-ISO-10303-21;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 221 KiB

After

Width:  |  Height:  |  Size: 163 KiB

View File

@ -1,478 +0,0 @@
solid unnamed
facet normal -1 0 0
outer loop
vertex 0 -101.600006 0
vertex 0 -0 0
vertex 0 -101.600006 -25.400002
endloop
endfacet
facet normal -1 0 0
outer loop
vertex 0 -101.600006 -25.400002
vertex 0 -0 0
vertex 0 -0 -25.400002
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex 0 -101.600006 -25.400002
vertex 0 -0 -25.400002
vertex 78.613464 -101.600006 -25.400002
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex 78.613464 -101.600006 -25.400002
vertex 0 -0 -25.400002
vertex 78.613464 -0 -25.400002
endloop
endfacet
facet normal -0.5735764 0 -0.8191522
outer loop
vertex 78.613464 -101.600006 -25.400002
vertex 78.613464 -0 -25.400002
vertex 151.16339 -101.600006 -76.2
endloop
endfacet
facet normal -0.5735764 0 -0.8191522
outer loop
vertex 151.16339 -101.600006 -76.2
vertex 78.613464 -0 -25.400002
vertex 151.16339 -0 -76.2
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex 151.16339 -101.600006 -76.2
vertex 151.16339 -0 -76.2
vertex 241.3 -101.600006 -76.2
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex 241.3 -101.600006 -76.2
vertex 151.16339 -0 -76.2
vertex 241.3 -0 -76.2
endloop
endfacet
facet normal 1 0 0
outer loop
vertex 241.3 -101.600006 -76.2
vertex 241.3 -0 -76.2
vertex 241.3 -101.600006 -63.5
endloop
endfacet
facet normal 1 -0 0
outer loop
vertex 241.3 -101.600006 -63.5
vertex 241.3 -0 -76.2
vertex 241.3 -0 -63.5
endloop
endfacet
facet normal 0 -0 1
outer loop
vertex 241.3 -101.600006 -63.5
vertex 241.3 -0 -63.5
vertex 155.16768 -101.600006 -63.5
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 155.16768 -101.600006 -63.5
vertex 241.3 -0 -63.5
vertex 155.16768 -0 -63.5
endloop
endfacet
facet normal 0.5735765 0 0.81915194
outer loop
vertex 87.15214 -101.600006 -15.875
vertex 109.82398 -101.600006 -31.75
vertex 109.82398 -0 -31.75
endloop
endfacet
facet normal 0.57357645 0 0.819152
outer loop
vertex 109.82398 -101.600006 -31.75
vertex 155.16768 -101.600006 -63.5
vertex 155.16768 -0 -63.5
endloop
endfacet
facet normal 0.57357645 0 0.81915206
outer loop
vertex 87.15214 -0 -15.875
vertex 64.480286 -101.600006 0
vertex 87.15214 -101.600006 -15.875
endloop
endfacet
facet normal 0.5735765 0 0.81915194
outer loop
vertex 109.82398 -0 -31.75
vertex 87.15214 -0 -15.875
vertex 87.15214 -101.600006 -15.875
endloop
endfacet
facet normal 0.57357645 -0 0.819152
outer loop
vertex 109.82398 -101.600006 -31.75
vertex 155.16768 -0 -63.5
vertex 109.82398 -0 -31.75
endloop
endfacet
facet normal 0.57357645 -0 0.81915206
outer loop
vertex 64.480286 -101.600006 0
vertex 87.15214 -0 -15.875
vertex 64.480286 -0 0
endloop
endfacet
facet normal 0.4226182 0 -0.9063078
outer loop
vertex 84.906715 -101.600006 9.525
vertex 64.480286 -101.600006 0
vertex 64.480286 -0 0
endloop
endfacet
facet normal 0.42261833 0 -0.90630776
outer loop
vertex 105.33314 -101.600006 19.05
vertex 84.906715 -101.600006 9.525
vertex 84.906715 -0 9.525
endloop
endfacet
facet normal 0.4226182 0 -0.9063078
outer loop
vertex 84.906715 -0 9.525
vertex 84.906715 -101.600006 9.525
vertex 64.480286 -0 0
endloop
endfacet
facet normal 0.4226183 0 -0.9063078
outer loop
vertex 105.33314 -0 19.05
vertex 146.18599 -101.600006 38.1
vertex 105.33314 -101.600006 19.05
endloop
endfacet
facet normal 0.42261833 0 -0.90630776
outer loop
vertex 105.33314 -101.600006 19.05
vertex 84.906715 -0 9.525
vertex 105.33314 -0 19.05
endloop
endfacet
facet normal 0.4226183 0 -0.9063078
outer loop
vertex 146.18599 -101.600006 38.1
vertex 105.33314 -0 19.05
vertex 146.18599 -0 38.1
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex 146.18599 -101.600006 38.1
vertex 146.18599 -0 38.1
vertex 241.3 -101.600006 38.1
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex 241.3 -101.600006 38.1
vertex 146.18599 -0 38.1
vertex 241.3 -0 38.1
endloop
endfacet
facet normal 1 0 0
outer loop
vertex 241.3 -101.600006 38.1
vertex 241.3 -0 38.1
vertex 241.3 -101.600006 50.800003
endloop
endfacet
facet normal 1 -0 0
outer loop
vertex 241.3 -101.600006 50.800003
vertex 241.3 -0 38.1
vertex 241.3 -0 50.800003
endloop
endfacet
facet normal 0 -0 0.99999994
outer loop
vertex 241.3 -101.600006 50.800003
vertex 241.3 -0 50.800003
vertex 143.37048 -101.600006 50.800003
endloop
endfacet
facet normal 0 0 0.99999994
outer loop
vertex 143.37048 -101.600006 50.800003
vertex 241.3 -0 50.800003
vertex 143.37048 -0 50.800003
endloop
endfacet
facet normal -0.42261827 0 0.9063078
outer loop
vertex 143.37048 -101.600006 50.800003
vertex 143.37048 -0 50.800003
vertex 88.9 -101.600006 25.400002
endloop
endfacet
facet normal -0.42261827 0 0.9063078
outer loop
vertex 88.9 -101.600006 25.400002
vertex 143.37048 -0 50.800003
vertex 88.9 -0 25.400002
endloop
endfacet
facet normal 0 -0 1
outer loop
vertex 88.9 -101.600006 25.400002
vertex 88.9 -0 25.400002
vertex 0 -101.600006 25.400002
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 0 -101.600006 25.400002
vertex 88.9 -0 25.400002
vertex 0 -0 25.400002
endloop
endfacet
facet normal -1 0 0
outer loop
vertex 0 -101.600006 25.400002
vertex 0 -0 25.400002
vertex 0 -101.600006 0
endloop
endfacet
facet normal -1 0 0
outer loop
vertex 0 -101.600006 0
vertex 0 -0 25.400002
vertex 0 -0 0
endloop
endfacet
facet normal 0 1 -0
outer loop
vertex 84.906715 -0 9.525
vertex 64.480286 -0 0
vertex 88.9 -0 25.400002
endloop
endfacet
facet normal 0 1 0
outer loop
vertex 105.33314 -0 19.05
vertex 84.906715 -0 9.525
vertex 88.9 -0 25.400002
endloop
endfacet
facet normal 0 1 0
outer loop
vertex 87.15214 -0 -15.875
vertex 109.82398 -0 -31.75
vertex 78.613464 -0 -25.400002
endloop
endfacet
facet normal 0 1 0
outer loop
vertex 105.33314 -0 19.05
vertex 143.37048 -0 50.800003
vertex 146.18599 -0 38.1
endloop
endfacet
facet normal -0 1 0
outer loop
vertex 0 -0 25.400002
vertex 88.9 -0 25.400002
vertex 64.480286 -0 0
endloop
endfacet
facet normal 0 1 0
outer loop
vertex 0 -0 25.400002
vertex 64.480286 -0 0
vertex 0 -0 0
endloop
endfacet
facet normal -0 1 0
outer loop
vertex 143.37048 -0 50.800003
vertex 241.3 -0 50.800003
vertex 146.18599 -0 38.1
endloop
endfacet
facet normal 0 1 0
outer loop
vertex 241.3 -0 50.800003
vertex 241.3 -0 38.1
vertex 146.18599 -0 38.1
endloop
endfacet
facet normal 0 1 -0
outer loop
vertex 105.33314 -0 19.05
vertex 88.9 -0 25.400002
vertex 143.37048 -0 50.800003
endloop
endfacet
facet normal 0 0.99999994 0
outer loop
vertex 64.480286 -0 0
vertex 87.15214 -0 -15.875
vertex 78.613464 -0 -25.400002
endloop
endfacet
facet normal 0 1 0
outer loop
vertex 109.82398 -0 -31.75
vertex 151.16339 -0 -76.2
vertex 78.613464 -0 -25.400002
endloop
endfacet
facet normal 0 1 0
outer loop
vertex 155.16768 -0 -63.5
vertex 151.16339 -0 -76.2
vertex 109.82398 -0 -31.75
endloop
endfacet
facet normal 0 1 0
outer loop
vertex 241.3 -0 -63.5
vertex 241.3 -0 -76.2
vertex 155.16768 -0 -63.5
endloop
endfacet
facet normal 0 1 0
outer loop
vertex 155.16768 -0 -63.5
vertex 241.3 -0 -76.2
vertex 151.16339 -0 -76.2
endloop
endfacet
facet normal 0 1 0
outer loop
vertex 64.480286 -0 0
vertex 78.613464 -0 -25.400002
vertex 0 -0 -25.400002
endloop
endfacet
facet normal 0 1 0
outer loop
vertex 0 -0 -25.400002
vertex 0 -0 0
vertex 64.480286 -0 0
endloop
endfacet
facet normal -0 -1 0
outer loop
vertex 84.906715 -101.600006 9.525
vertex 88.9 -101.600006 25.400002
vertex 64.480286 -101.600006 0
endloop
endfacet
facet normal -0 -1 0
outer loop
vertex 105.33314 -101.600006 19.05
vertex 88.9 -101.600006 25.400002
vertex 84.906715 -101.600006 9.525
endloop
endfacet
facet normal 0 -1 -0
outer loop
vertex 87.15214 -101.600006 -15.875
vertex 78.613464 -101.600006 -25.400002
vertex 109.82398 -101.600006 -31.75
endloop
endfacet
facet normal 0 -1 0
outer loop
vertex 105.33314 -101.600006 19.05
vertex 146.18599 -101.600006 38.1
vertex 143.37048 -101.600006 50.800003
endloop
endfacet
facet normal 0 -1 0
outer loop
vertex 0 -101.600006 25.400002
vertex 64.480286 -101.600006 0
vertex 88.9 -101.600006 25.400002
endloop
endfacet
facet normal 0 -1 0
outer loop
vertex 0 -101.600006 25.400002
vertex 0 -101.600006 0
vertex 64.480286 -101.600006 0
endloop
endfacet
facet normal 0 -1 0
outer loop
vertex 143.37048 -101.600006 50.800003
vertex 146.18599 -101.600006 38.1
vertex 241.3 -101.600006 50.800003
endloop
endfacet
facet normal 0 -1 -0
outer loop
vertex 241.3 -101.600006 50.800003
vertex 146.18599 -101.600006 38.1
vertex 241.3 -101.600006 38.1
endloop
endfacet
facet normal 0 -1 0
outer loop
vertex 105.33314 -101.600006 19.05
vertex 143.37048 -101.600006 50.800003
vertex 88.9 -101.600006 25.400002
endloop
endfacet
facet normal 0 -0.99999994 0
outer loop
vertex 64.480286 -101.600006 0
vertex 78.613464 -101.600006 -25.400002
vertex 87.15214 -101.600006 -15.875
endloop
endfacet
facet normal -0 -1 -0
outer loop
vertex 109.82398 -101.600006 -31.75
vertex 78.613464 -101.600006 -25.400002
vertex 151.16339 -101.600006 -76.2
endloop
endfacet
facet normal -0 -1 0
outer loop
vertex 155.16768 -101.600006 -63.5
vertex 109.82398 -101.600006 -31.75
vertex 151.16339 -101.600006 -76.2
endloop
endfacet
facet normal -0 -1 -0
outer loop
vertex 241.3 -101.600006 -63.5
vertex 155.16768 -101.600006 -63.5
vertex 241.3 -101.600006 -76.2
endloop
endfacet
facet normal 0 -1 -0
outer loop
vertex 155.16768 -101.600006 -63.5
vertex 151.16339 -101.600006 -76.2
vertex 241.3 -101.600006 -76.2
endloop
endfacet
facet normal 0 -1 -0
outer loop
vertex 64.480286 -101.600006 0
vertex 0 -101.600006 -25.400002
vertex 78.613464 -101.600006 -25.400002
endloop
endfacet
facet normal 0 -1 0
outer loop
vertex 0 -101.600006 -25.400002
vertex 64.480286 -101.600006 0
vertex 0 -101.600006 0
endloop
endfacet
endsolid unnamed

Binary file not shown.

Before

Width:  |  Height:  |  Size: 221 KiB

After

Width:  |  Height:  |  Size: 163 KiB

View File

@ -3,8 +3,8 @@ import { secrets } from './secrets'
import { getUtils } from './test-utils'
import waitOn from 'wait-on'
import { Themes } from '../../src/lib/theme'
import { initialSettings } from '../../src/lib/settings/initialSettings'
import { roundOff } from 'lib/utils'
import { platform } from 'node:os'
/*
debug helper: unfortunately we do rely on exact coord mouse clicks in a few places
@ -20,6 +20,8 @@ const commonPoints = {
startAt: '[9.06, -12.22]',
num1: 9.14,
num2: 18.2,
// num1: 9.64,
// num2: 19.19,
}
test.beforeEach(async ({ context, page }) => {
@ -76,6 +78,7 @@ test('Basic sketch', async ({ page }) => {
await expect(page.locator('.cm-content')).toHaveText(
`const part001 = startSketchOn('-XZ')`
)
await u.closeDebugPanel()
await page.waitForTimeout(300) // TODO detect animation ending, or disable animation
@ -86,7 +89,6 @@ test('Basic sketch', async ({ page }) => {
|> startProfileAt(${commonPoints.startAt}, %)`)
await page.waitForTimeout(100)
await u.closeDebugPanel()
await page.mouse.click(startXPx + PUR * 20, 500 - PUR * 10)
await page.waitForTimeout(100)
@ -130,7 +132,7 @@ test('Basic sketch', async ({ page }) => {
await expect(page.locator('.cm-content'))
.toHaveText(`const part001 = startSketchOn('-XZ')
|> startProfileAt(${commonPoints.startAt}, %)
|> line({ to: [${commonPoints.num1}, 0], tag: 'seg01' }, %)
|> line([${commonPoints.num1}, 0], %, 'seg01')
|> line([0, ${commonPoints.num1}], %)
|> angledLine([180, segLen('seg01', %)], %)`)
})
@ -472,8 +474,18 @@ test('Auto complete works', async ({ page }) => {
const u = getUtils(page)
// const PUR = 400 / 37.5 //pixeltoUnitRatio
await page.setViewportSize({ width: 1200, height: 500 })
const lspStartPromise = page.waitForEvent('console', async (message) => {
// it would be better to wait for a message that the kcl lsp has started by looking for the message message.text().includes('[lsp] [window/logMessage]')
// but that doesn't seem to make it to the console for macos/safari :(
if (message.text().includes('start kcl lsp')) {
await new Promise((resolve) => setTimeout(resolve, 200))
return true
}
return false
})
await page.goto('/')
await u.waitForAuthSkipAppStart()
await lspStartPromise
// this test might be brittle as we add and remove functions
// but should also be easy to update.
@ -516,6 +528,55 @@ test('Auto complete works', async ({ page }) => {
|> xLine(5, %) // lin`)
})
// Stored settings validation test
test('Stored settings are validated and fall back to defaults', async ({
page,
context,
}) => {
// Override beforeEach test setup
// with corrupted settings
await context.addInitScript(async () => {
const storedSettings = JSON.parse(
localStorage.getItem('SETTINGS_PERSIST_KEY') || '{}'
)
// Corrupt the settings
storedSettings.baseUnit = 'invalid'
storedSettings.cameraControls = `() => alert('hack the planet')`
storedSettings.defaultDirectory = 123
storedSettings.defaultProjectName = false
localStorage.setItem('SETTINGS_PERSIST_KEY', JSON.stringify(storedSettings))
})
await page.setViewportSize({ width: 1200, height: 500 })
await page.goto('/', { waitUntil: 'domcontentloaded' })
// Check the toast appeared
await expect(
page.getByText(`Error validating persisted settings:`, {
exact: false,
})
).toBeVisible()
// Check the settings were reset
const storedSettings = JSON.parse(
await page.evaluate(
() => localStorage.getItem('SETTINGS_PERSIST_KEY') || '{}'
)
)
await expect(storedSettings.baseUnit).toBe(initialSettings.baseUnit)
await expect(storedSettings.cameraControls).toBe(
initialSettings.cameraControls
)
await expect(storedSettings.defaultDirectory).toBe(
initialSettings.defaultDirectory
)
await expect(storedSettings.defaultProjectName).toBe(
initialSettings.defaultProjectName
)
})
// Onboarding tests
test('Onboarding redirects and code updating', async ({ page, context }) => {
const u = getUtils(page)
@ -576,7 +637,7 @@ test('Selections work on fresh and edited sketch', async ({ page }) => {
const emptySpaceClick = () =>
page.mouse.click(728, 343).then(() => page.waitForTimeout(100))
const topHorzSegmentClick = () =>
page.mouse.click(709, 289).then(() => page.waitForTimeout(100))
page.mouse.click(709, 290).then(() => page.waitForTimeout(100))
const bottomHorzSegmentClick = () =>
page.mouse.click(767, 396).then(() => page.waitForTimeout(100))
@ -591,13 +652,12 @@ test('Selections work on fresh and edited sketch', async ({ page }) => {
await page.waitForTimeout(700) // wait for animation
const startXPx = 600
await u.closeDebugPanel()
await page.mouse.click(startXPx + PUR * 10, 500 - PUR * 10)
await expect(page.locator('.cm-content'))
.toHaveText(`const part001 = startSketchOn('-XZ')
|> startProfileAt(${commonPoints.startAt}, %)`)
await u.closeDebugPanel()
await page.mouse.click(startXPx + PUR * 20, 500 - PUR * 10)
await expect(page.locator('.cm-content'))
@ -678,13 +738,18 @@ test('Selections work on fresh and edited sketch', async ({ page }) => {
await emptySpaceClick()
// select segment in editor than another segment in scene and check there are two cursors
await page.getByText(` |> line([-${commonPoints.num2}, 0], %)`).click()
await page.waitForTimeout(300)
await page.keyboard.down('Shift')
await expect(page.locator('.cm-cursor')).toHaveCount(1)
// TODO change this back to shift click in the scene, not cmd click in the editor
await bottomHorzSegmentClick()
await page.keyboard.up('Shift')
await expect(page.locator('.cm-cursor')).toHaveCount(1)
await page.keyboard.down(process.platform === 'linux' ? 'Control' : 'Meta')
await page.waitForTimeout(100)
await page.getByText(` |> line([-${commonPoints.num2}, 0], %)`).click()
await expect(page.locator('.cm-cursor')).toHaveCount(2)
await page.waitForTimeout(500)
await page.keyboard.up(process.platform === 'linux' ? 'Control' : 'Meta')
// clear selection by clicking on nothing
await emptySpaceClick()
@ -869,13 +934,13 @@ test('Can add multiple sketches', async ({ page }) => {
await page.waitForTimeout(500) // TODO detect animation ending, or disable animation
const startXPx = 600
await u.closeDebugPanel()
await page.mouse.click(startXPx + PUR * 10, 500 - PUR * 10)
await expect(page.locator('.cm-content'))
.toHaveText(`const part001 = startSketchOn('-XZ')
|> startProfileAt(${commonPoints.startAt}, %)`)
await page.waitForTimeout(100)
await u.closeDebugPanel()
await page.mouse.click(startXPx + PUR * 20, 500 - PUR * 10)
await page.waitForTimeout(100)
@ -1323,10 +1388,129 @@ test('Snap to close works (at any scale)', async ({ page }) => {
) => `const part001 = startSketchOn('XZ')
|> startProfileAt([${roundOff(scale * 87.68)}, ${roundOff(scale * 43.84)}], %)
|> line([${roundOff(scale * 175.36)}, 0], %)
|> line([0, -${roundOff(scale * 175.37) + fudge}], %)
|> line([0, -${roundOff(scale * 175.36) + fudge}], %)
|> close(%)`
await doSnapAtDifferentScales([0, 100, 100], codeTemplate(0.01, 0.01))
await doSnapAtDifferentScales([0, 10000, 10000], codeTemplate())
})
test('Sketch on face', async ({ page, context }) => {
const u = getUtils(page)
await context.addInitScript(async () => {
localStorage.setItem(
'persistCode',
`const part001 = startSketchOn('-XZ')
|> startProfileAt([3.29, 7.86], %)
|> line([2.48, 2.44], %)
|> line([2.66, 1.17], %)
|> line([3.75, 0.46], %)
|> line([4.99, -0.46], %)
|> line([3.3, -2.12], %)
|> line([2.16, -3.33], %)
|> line([0.85, -3.08], %)
|> line([-0.18, -3.36], %)
|> line([-3.86, -2.73], %)
|> line([-17.67, 0.85], %)
|> close(%)
|> extrude(5 + 7, %)`
)
})
await page.setViewportSize({ width: 1200, height: 500 })
await page.goto('/')
await u.waitForAuthSkipAppStart()
await expect(
page.getByRole('button', { name: 'Start Sketch' })
).not.toBeDisabled()
await page.getByRole('button', { name: 'Start Sketch' }).click()
let previousCodeContent = await page.locator('.cm-content').innerText()
await page.mouse.click(793, 133)
const firstClickPosition = [612, 238]
const secondClickPosition = [661, 242]
const thirdClickPosition = [609, 267]
await page.waitForTimeout(300)
await page.mouse.click(firstClickPosition[0], firstClickPosition[1])
await expect(page.locator('.cm-content')).not.toHaveText(previousCodeContent)
previousCodeContent = await page.locator('.cm-content').innerText()
await page.mouse.click(secondClickPosition[0], secondClickPosition[1])
await expect(page.locator('.cm-content')).not.toHaveText(previousCodeContent)
previousCodeContent = await page.locator('.cm-content').innerText()
await page.mouse.click(thirdClickPosition[0], thirdClickPosition[1])
await expect(page.locator('.cm-content')).not.toHaveText(previousCodeContent)
previousCodeContent = await page.locator('.cm-content').innerText()
await page.mouse.click(firstClickPosition[0], firstClickPosition[1])
await expect(page.locator('.cm-content')).not.toHaveText(previousCodeContent)
previousCodeContent = await page.locator('.cm-content').innerText()
await expect(page.locator('.cm-content'))
.toContainText(`const part002 = startSketchOn(part001, 'seg01')
|> startProfileAt([1.03, 1.03], %)
|> line([4.18, -0.35], %)
|> line([-4.44, -2.13], %)
|> close(%)`)
await u.openAndClearDebugPanel()
await page.getByRole('button', { name: 'Exit Sketch' }).click()
await u.expectCmdLog('[data-message-type="execution-done"]')
await u.updateCamPosition([1049, 239, 686])
await u.closeDebugPanel()
await page.getByText('startProfileAt([1.03, 1.03], %)').click()
await expect(page.getByRole('button', { name: 'Edit Sketch' })).toBeVisible()
await page.getByRole('button', { name: 'Edit Sketch' }).click()
await page.waitForTimeout(200)
const pointToDragFirst = [691, 237]
await page.mouse.move(pointToDragFirst[0], pointToDragFirst[1])
await page.mouse.down()
await page.mouse.move(pointToDragFirst[0] - 20, pointToDragFirst[1], {
steps: 5,
})
await page.mouse.up()
await page.waitForTimeout(100)
await expect(page.locator('.cm-content')).not.toHaveText(previousCodeContent)
previousCodeContent = await page.locator('.cm-content').innerText()
await expect(page.locator('.cm-content'))
.toContainText(`const part002 = startSketchOn(part001, 'seg01')
|> startProfileAt([1.03, 1.03], %)
|> line([2.81, -0.33], %)
|> line([-4.44, -2.13], %)
|> close(%)`)
// exit sketch
await u.openAndClearDebugPanel()
await page.getByRole('button', { name: 'Exit Sketch' }).click()
await u.expectCmdLog('[data-message-type="execution-done"]')
await page.getByText('startProfileAt([1.03, 1.03], %)').click()
await expect(page.getByRole('button', { name: 'Extrude' })).not.toBeDisabled()
await page.getByRole('button', { name: 'Extrude' }).click()
await expect(page.getByTestId('command-bar')).toBeVisible()
await page.keyboard.press('Enter')
await expect(page.getByText('Confirm Extrude')).toBeVisible()
await page.keyboard.press('Enter')
await expect(page.locator('.cm-content'))
.toContainText(`const part002 = startSketchOn(part001, 'seg01')
|> startProfileAt([1.03, 1.03], %)
|> line([2.81, -0.33], %)
|> line([-4.44, -2.13], %)
|> close(%)
|> extrude(5 + 7, %)`)
})

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