85ccc6900c
Do multiple chamfer/fillet in one API call ( #6750 )
...
KCL's `fillet` function takes an array of edges to fillet. Previously this would do `n` fillet API commands, one per edge. This PR combines them all into one call, which should improve performance. You can see the effect in the artifact_commands snapshots, e.g. `rust/kcl-lib/tests/kcl_samples/axial-fan/artifact_commands.snap`
Besides performance, this should fix a bug where some KCL fillets would fail, when they should have succeeded. Example from @max-mrgrsk:
```kcl
sketch001 = startSketchOn(XY)
|> startProfile(at = [-12, -6])
|> line(end = [0, 12], tag = $seg04)
|> line(end = [24, 0], tag = $seg03)
|> line(end = [0, -12], tag = $seg02)
|> line(endAbsolute = [profileStartX(%), profileStartY(%)], tag = $seg01)
|> close()
extrude001 = extrude(
sketch001,
length = 12,
tagEnd = $capEnd001,
tagStart = $capStart001,
)
|> fillet(
radius = 5,
tags = [
getCommonEdge(faces = [seg02, capEnd001]),
getCommonEdge(faces = [seg01, capEnd001]),
getCommonEdge(faces = [seg03, capEnd001]),
getCommonEdge(faces = [seg04, capEnd001])
],
)
```
This program fails on main, but succeeds on this branch.
2025-05-22 21:25:55 +00:00
f6e26e0bab
test: Add face_code_ref to the mermaid output ( #6985 )
...
* Add face_code_ref to the mermaid output
* Update output
2025-05-15 20:14:31 -04:00
74939e5cd6
Fix execution caching to cache artifact graph NodePath ( #6978 )
...
* Fix to add NodePaths to SketchOnFace and SketchOnPlane artifacts
* Fix to only compute the new part of the artifact graph
* Change to early-return sooner when in mock mode
* Add another test
* Fix to propagate NodePath for sketch on face
* Update output
2025-05-15 19:18:03 -04:00
2516df3a39
fix my insta test fubar ( #6981 )
...
* fix my insta test fubar
Signed-off-by: Jess Frazelle <github@jessfraz.com >
* more python tests
Signed-off-by: Jess Frazelle <github@jessfraz.com >
* more python tests
Signed-off-by: Jess Frazelle <github@jessfraz.com >
---------
Signed-off-by: Jess Frazelle <github@jessfraz.com >
2025-05-15 13:37:12 -07:00
78b6854c6b
bump modeling-cmds, nuke slow world ( #6753 )
...
* bump modeling-cmds, nuke slow world
Signed-off-by: Jess Frazelle <github@jessfraz.com >
* more stuffs
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 >
* i mechanical engineered today
Signed-off-by: Jess Frazelle <github@jessfraz.com >
* reverse uno your revolves
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 >
* retry logic
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 >
---------
Signed-off-by: Jess Frazelle <github@jessfraz.com >
2025-05-14 04:07:24 +00:00
cf2e9d4b91
Add kclVersion as a field of the setting attribute ( #6689 )
...
Signed-off-by: Nick Cameron <nrc@ncameron.org >
2025-05-06 08:44:03 +12:00
89bae66257
KCL: User-defined KCL functions in examples etc now use keywords ( #6603 )
...
Preparing for the removal of positional functions from the language. The first big step is to change all our KCL code examples, test code, public samples etc to all use keyword functions.
Apologies for how large this PR is. Most of it is:
- Changing example KCL that defined its own functions, so the functions now use keyword arguments rather than positional arguments. E.g. change `cube([20, 20])` to be `cube(center = [20, 20])`.
- Some parts of the code assumed positional code and didn't handle keyword calls, e.g. the linter would only check for positional calls to startSketchOn. Now they should work with either positional or keyword.
- Update all the artifacts
This does _not_ remove support for positional calls. That will be in a follow-up PR.
2025-05-01 12:36:51 -04:00
ccd5b0272d
Add math functions back to the prelude ( #6595 )
...
* Add math functions back to the prelude
* Update output
* Update docs
2025-04-30 11:07:05 -04:00
14ce66bcc1
Fix to have stable sorting for end cap artifacts ( #6589 )
...
* Fix to have stable sorting for end cap artifacts
* Update output
2025-04-30 04:34:35 +00:00
9c29756a38
lint default planes and add a suggestion ( #6587 )
...
lint default planes and other plane cleanup
Signed-off-by: Jess Frazelle <github@jessfraz.com >
2025-04-30 02:11:02 +00:00
844f229b5a
Remove trig functions from prelude and change their unit handling (BREAKING) ( #6565 )
...
Remove trig functions from prelude and change their unit handling
Signed-off-by: Nick Cameron <nrc@ncameron.org >
2025-04-30 12:40:11 +12:00
e0cd3efc64
fix edge cuts & clone ( #6572 )
...
* fix edge cuts & clone
Signed-off-by: Jess Frazelle <github@jessfraz.com >
* updates
Signed-off-by: Jess Frazelle <github@jessfraz.com >
* fix edge_id
Signed-off-by: Jess Frazelle <github@jessfraz.com >
* code comemnt
Signed-off-by: Jess Frazelle <github@jessfraz.com >
---------
Signed-off-by: Jess Frazelle <github@jessfraz.com >
2025-04-29 16:51:52 +00:00
77e3efde9a
Deterministic parallelized snaps ( #6527 )
...
* initial pass
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 >
changes
Signed-off-by: Jess Frazelle <github@jessfraz.com >
more updates
Signed-off-by: Jess Frazelle <github@jessfraz.com >
more updates
Signed-off-by: Jess Frazelle <github@jessfraz.com >
serde variant name
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 >
some sort
Signed-off-by: Jess Frazelle <github@jessfraz.com >
some sort
Signed-off-by: Jess Frazelle <github@jessfraz.com >
some sort
Signed-off-by: Jess Frazelle <github@jessfraz.com >
some sort
Signed-off-by: Jess Frazelle <github@jessfraz.com >
some sort
Signed-off-by: Jess Frazelle <github@jessfraz.com >
some sort
Signed-off-by: Jess Frazelle <github@jessfraz.com >
some sort
Signed-off-by: Jess Frazelle <github@jessfraz.com >
some sort
Signed-off-by: Jess Frazelle <github@jessfraz.com >
some sort
Signed-off-by: Jess Frazelle <github@jessfraz.com >
some sort
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 >
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 >
sort the edges
Signed-off-by: Jess Frazelle <github@jessfraz.com >
fixes
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 >
updates
Signed-off-by: Jess Frazelle <github@jessfraz.com >
cleanups
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 >
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 bs-to-kcl
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 >
* fixes
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 >
2025-04-29 13:38:52 +00:00
3a23ec1bee
Create std::units module ( #6528 )
...
Signed-off-by: Nick Cameron <nrc@ncameron.org >
2025-04-29 08:41:31 +12:00
24465cf463
Parallelize the artifact graph only time suck ( #6482 )
...
* parallelize the artifact only time suck
Signed-off-by: Jess Frazelle <github@jessfraz.com >
updates
Signed-off-by: Jess Frazelle <github@jessfraz.com >
make wasm safe
Signed-off-by: Jess Frazelle <github@jessfraz.com >
updates
Signed-off-by: Jess Frazelle <github@jessfraz.com >
* artifact graph things
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 >
2025-04-27 04:21:26 +00:00
8de648f0db
getCommonEdge as default way of filleting ( #6043 )
...
* Common edge faces into artifact graph
* clean up
* kingdom of tags
* add tests
* hook up tags with edge treatments
* update unit tests
* update e2e
* clean up
* more fix up after main merge
* fmt
* revolve fix
* fix new circular dependency
* fix revolve
* remove numbers from circ deps, makes diffs bad
* sim test updates
* try and get tests working
* update
* Fix tsc error
---------
Co-authored-by: max-mrgrsk <156543465+max-mrgrsk@users.noreply.github.com >
Co-authored-by: max <margorskyi@gmail.com >
Co-authored-by: Jonathan Tran <jonnytran@gmail.com >
2025-04-26 04:00:28 +00:00
ffbe20b586
Kwargs: startProfileAt ( #6424 )
...
Previous:
```
startProfileAt([x, y], %)
startProfileAt([x, y], sketch001)
```
New:
```
startProfile(%, at = [x, y])
startProfile(sketch001, at = [x, y])
```
2025-04-25 21:01:35 +00:00
90acc00369
Kwargs migration: arc/arcTo ( #6334 )
2025-04-18 17:40:44 -05:00
7fce38b212
KCL: angledLineThatIntersects migrate to kwargs ( #6296 )
...
* KCL: Convert angledLineThatIntersects to use kwargs
* Update KCL tests and samples
* WIP
* Fix tsc and lint errors
* Fix missing cases
* Fix modifyAst unit tests
* Fix sketch unit tests
* Fix std unit tests
* Fix to not have extra docs
* Fix more unit tests
* Fix bench test
* Fix e2e tests to use new kw args
* tiny lint
* Fix adding constraint from UI to work
* Fix to use labeledArg constraints and use the correct order of args
* Fix selections e2e test
* Fix e2e test expectation
App was working as expected, but the e2e test was
expecting the old code, not the new code.
* Fix order of constraints in unit test
* Update docs
* Fix KCL formatting
* Update output
---------
Co-authored-by: Jonathan Tran <jonnytran@gmail.com >
2025-04-15 02:06:55 +00:00
160f55ede5
BREAKING: More units of measure work and keyword args ( #6291 )
...
* More units of measure work
Signed-off-by: Nick Cameron <nrc@ncameron.org >
* Update CSG output since engine change
---------
Signed-off-by: Nick Cameron <nrc@ncameron.org >
Co-authored-by: Nick Cameron <nrc@ncameron.org >
2025-04-14 09:58:19 +00:00
319c60d4fa
BREAKING: Change tangential arc to keyword args ( #6266 )
...
* Change tangentialArc, tangentialArcTo, and tangentialArcToRelative to keyword args
* Change tangentialArc offset to angle and convert to kw arg calls
* Fix lints
* Fix sketch errors and all unit tests passing
* Fix tangentialArcTo calls in KCL samples
* Update tangentialArc in samples
* Update sim test output
* Fix formatting
* Fix mistake in merge
* Fix gear rack sample
* Update output after more samples fixes
* Update gear rack output
* Add end label to docs snippet
* Fix to not add endAbsolute for an arc with radius or angle arguments
* Update docs outputs
* Fix formatting
* Fix executor tests
* Fix formatting
* Fix bench input files
* Fix spelling
* Improve error messages
---------
Co-authored-by: Adam Chalmers <adam.chalmers@zoo.dev >
2025-04-11 14:17:20 -04:00
d275995dfe
KCL: Angled line should use keyword args ( #5803 )
...
We continue migrating KCL stdlib functions to use keyword arguments. Next up is the `angledLine` family of functions (except `angledLineThatIntersects, which will be a quick follow-up).
Before vs. after:
`angledLine({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, length = 3, tag = $edge)`
`angledLineOfXLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthX = 3, tag = $edge)`
`angledLineOfYLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthY = 3, tag = $edge)`
`angledLineToX({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteX = 3, tag = $edge)`
`angledLineToY({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteY = 3, tag = $edge)`
2025-04-09 14:55:15 -05:00
656eb0abec
Update all KCL-Samples to be more ME friendly ( #6132 )
...
* update all kcl-samples
* 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 >
* Update kcl-samples simulation test output
---------
Signed-off-by: Jess Frazelle <github@jessfraz.com >
Co-authored-by: Jess Frazelle <jessfraz@users.noreply.github.com >
Co-authored-by: Jess Frazelle <github@jessfraz.com >
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-04-04 11:03:13 -07:00
fa16fcedff
update all kcl-samples w/ format ( #5999 )
2025-03-26 11:53:34 -04:00
ce98218bf0
Create main.kcl ( #5898 )
...
* Create main.kcl
* Update kcl-samples simulation test output
* Update kcl-samples simulation test output
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Josh Gomez <114548659+jgomez720@users.noreply.github.com >
2025-03-19 23:28:07 -07:00