Adam Chalmers
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
..
2025-05-06 03:40:18 +00:00
2025-05-19 16:50:15 +12:00
2025-05-12 03:57:31 +00:00
2025-05-20 20:50:24 -04:00
2025-05-12 03:57:31 +00:00
2025-05-19 16:50:15 +12:00
2025-05-20 20:50:24 -04:00
2025-05-12 03:57:31 +00:00
2025-04-25 19:09:03 -05:00
2025-04-22 22:58:35 +00:00
2025-05-12 03:57:31 +00:00
2025-05-12 01:30:33 -04:00
2025-05-12 01:30:33 -04:00
2025-05-12 01:30:33 -04:00
2025-05-12 01:30:33 -04:00
2025-05-19 16:50:15 +12:00
2025-05-19 16:50:15 +12:00
2025-05-19 16:50:15 +12:00
2025-05-19 16:50:15 +12:00
2025-05-18 06:21:10 -04:00
2025-05-18 06:21:10 -04:00
2025-05-02 16:08:12 -05:00
2025-05-22 21:25:55 +00:00
2025-05-22 21:25:55 +00:00
2025-05-19 16:50:15 +12:00
2025-05-19 16:50:15 +12:00
2025-05-22 21:25:55 +00:00
2025-05-19 16:50:15 +12:00
2025-04-22 22:58:35 +00:00
2025-04-22 22:58:35 +00:00
2025-04-22 22:58:35 +00:00
2025-05-19 16:50:15 +12:00
2025-05-19 16:50:15 +12:00
2025-05-19 16:50:15 +12:00
2025-05-19 16:50:15 +12:00
2025-04-22 22:58:35 +00:00
2025-05-14 10:04:51 -04:00
2025-05-12 03:57:31 +00:00
2025-05-19 14:51:44 -07:00
2025-05-19 16:50:15 +12:00
2025-05-19 16:50:15 +12:00
2025-05-12 01:30:33 -04:00
2025-05-19 16:50:15 +12:00
2025-05-19 14:51:44 -07:00
2025-05-20 20:50:24 -04:00
2025-05-19 16:50:15 +12:00
2025-05-20 12:43:11 -04:00
2025-05-19 16:50:15 +12:00
2025-05-22 21:25:55 +00:00
2025-05-19 16:50:15 +12:00
2025-05-19 16:50:15 +12:00
2025-05-19 16:50:15 +12:00
2025-05-19 16:50:15 +12:00
2025-05-19 16:50:15 +12:00
2025-05-19 16:50:15 +12:00
2025-04-22 22:58:35 +00:00
2025-05-19 16:50:15 +12:00
2025-04-30 16:26:46 +00:00
2025-05-02 16:08:12 -05:00
2025-04-30 16:26:46 +00:00
2025-04-29 13:38:52 +00:00
2025-04-29 13:38:52 +00:00
2025-05-02 17:41:14 +00:00
2025-05-19 14:51:44 -07:00
2025-05-06 03:40:18 +00:00
2025-05-19 16:50:15 +12:00
2025-05-20 11:43:48 -04:00
2025-05-18 06:21:10 -04:00
2025-05-07 08:25:12 +10:00
2025-05-18 06:21:10 -04:00
2025-05-18 06:21:10 -04:00
2025-05-12 03:57:31 +00:00
2025-03-01 21:59:01 +00:00
2025-05-19 16:50:15 +12:00
2025-04-22 22:58:35 +00:00
2025-04-22 22:58:35 +00:00
2025-04-28 12:08:47 -04:00
2025-05-14 10:04:51 -04:00
2025-04-28 12:08:47 -04:00
2025-04-28 12:08:47 -04:00
2025-05-19 16:50:15 +12:00
2025-05-22 21:25:55 +00:00
2025-05-19 16:50:15 +12:00
2025-05-06 03:40:18 +00:00
2025-05-19 16:50:15 +12:00
2025-05-19 16:50:15 +12:00
2025-05-06 03:40:18 +00:00
2025-05-19 16:50:15 +12:00
2025-05-19 16:50:15 +12:00
2025-05-19 16:50:15 +12:00
2025-05-01 23:55:12 -04:00
2025-05-18 06:21:10 -04:00
2025-05-19 16:50:15 +12:00
2025-05-20 08:25:29 +12:00
2025-05-09 22:27:27 +00:00
2025-05-19 16:50:15 +12:00
2025-05-21 00:47:32 +00:00
2025-05-19 22:42:25 -04:00
2025-05-20 18:13:17 +12:00
2025-04-22 22:58:35 +00:00
2025-04-28 12:08:47 -04:00
2025-05-19 16:50:15 +12:00
2025-05-22 13:06:06 -04:00
2025-05-19 16:50:15 +12:00
2025-05-19 16:50:15 +12:00
2025-05-19 16:50:15 +12:00
2025-05-19 16:50:15 +12:00
2025-05-19 16:50:15 +12:00
2025-05-19 16:50:15 +12:00
2025-05-22 21:25:55 +00:00
2025-05-06 03:40:18 +00:00
2025-05-02 16:08:12 -05:00
2025-05-19 14:51:44 -07:00
2025-05-19 14:51:44 -07:00
2025-05-19 14:51:44 -07:00
2025-05-19 16:50:15 +12:00
2025-05-22 21:25:55 +00:00
2025-05-22 21:25:55 +00:00
2025-05-19 16:50:15 +12:00
2025-05-19 16:50:15 +12:00
2025-05-19 16:50:15 +12:00
2025-05-19 16:50:15 +12:00
2025-05-19 16:50:15 +12:00
2025-05-19 16:50:15 +12:00
2025-05-19 16:50:15 +12:00
2025-05-19 16:50:15 +12:00
2025-05-19 16:50:15 +12:00
2025-05-19 16:50:15 +12:00
2025-05-19 16:50:15 +12:00
2025-05-19 16:50:15 +12:00
2025-05-19 16:50:15 +12:00
2025-05-19 16:50:15 +12:00
2025-05-19 16:50:15 +12:00
2025-05-19 16:50:15 +12:00
2025-05-19 16:50:15 +12:00
2025-05-19 16:50:15 +12:00
2025-05-19 16:50:15 +12:00
2025-05-19 16:50:15 +12:00
2025-05-19 14:51:44 -07:00
2025-05-19 22:42:25 -04:00
2025-05-19 16:50:15 +12:00
2025-05-22 21:25:55 +00:00
2025-05-20 16:02:44 -07:00
2025-05-20 16:02:44 -07:00
2025-05-19 16:50:15 +12:00
2025-05-19 16:50:15 +12:00
2025-03-07 22:07:16 -06:00
2025-03-07 22:07:16 -06:00
2025-05-19 16:50:15 +12:00
2025-05-19 16:50:15 +12:00
2025-05-19 16:50:15 +12:00
2025-05-22 21:25:55 +00:00
2025-05-19 16:50:15 +12:00
2025-05-19 16:50:15 +12:00
2025-03-18 01:53:32 +00:00