From 859243ba326df104dbaabcb425574c7ba89fd6de Mon Sep 17 00:00:00 2001 From: Adam Chalmers Date: Wed, 7 May 2025 13:08:43 -0500 Subject: [PATCH] Update snapshots --- .../screenshots/multi-axis-robot.png | Bin 74023 -> 73699 bytes .../artifact_commands.snap | 9 +- .../artifact_graph_flowchart.snap.md | 2 +- .../artifact_commands.snap | 24 +- .../artifact_graph_flowchart.snap.md | 3 +- .../artifact_commands.snap | 24 +- .../artifact_graph_flowchart.snap.md | 3 +- .../artifact_commands.snap | 9 +- .../artifact_commands.snap | 9 +- .../artifact_commands.snap | 24 +- .../artifact_graph_flowchart.snap.md | 5 +- .../clone_w_fillets/artifact_commands.snap | 52 +-- .../artifact_graph_flowchart.snap.md | 9 +- .../fillet-and-shell/artifact_commands.snap | 52 +-- .../artifact_graph_flowchart.snap.md | 9 +- .../80-20-rail/artifact_commands.snap | 440 +++--------------- .../artifact_graph_flowchart.snap.md | 94 ++-- .../axial-fan/artifact_commands.snap | 132 ++---- .../artifact_graph_flowchart.snap.md | 28 +- .../bracket/artifact_commands.snap | 70 ++- .../bracket/artifact_graph_flowchart.snap.md | 11 +- .../artifact_graph_flowchart.snap.md | 4 +- .../enclosure/artifact_commands.snap | 156 ++----- .../artifact_graph_flowchart.snap.md | 35 +- .../exhaust-manifold/artifact_commands.snap | 48 +- .../artifact_graph_flowchart.snap.md | 10 +- .../artifact_commands.snap | 100 ++-- .../artifact_graph_flowchart.snap.md | 23 +- .../artifact_commands.snap | 48 +- .../artifact_graph_flowchart.snap.md | 10 +- .../artifact_commands.snap | 104 ++--- .../artifact_graph_flowchart.snap.md | 22 +- .../artifact_commands.snap | 104 ++--- .../artifact_graph_flowchart.snap.md | 22 +- .../gridfinity-bins/artifact_commands.snap | 104 ++--- .../artifact_graph_flowchart.snap.md | 22 +- .../keyboard/artifact_commands.snap | 52 +-- .../keyboard/artifact_graph_flowchart.snap.md | 9 +- .../mounting-plate/artifact_commands.snap | 52 +-- .../artifact_graph_flowchart.snap.md | 9 +- .../multi-axis-robot/artifact_commands.snap | 115 ++--- .../artifact_graph_flowchart.snap.md | 39 +- .../multi-axis-robot/rendered_model.png | Bin 74023 -> 73699 bytes .../artifact_commands.snap | 24 +- .../artifact_graph_flowchart.snap.md | 3 +- .../artifact_commands.snap | 52 +-- .../artifact_graph_flowchart.snap.md | 11 +- .../artifact_commands.snap | 33 +- .../artifact_graph_flowchart.snap.md | 7 +- .../walkie-talkie/artifact_commands.snap | 200 +++----- .../artifact_graph_flowchart.snap.md | 53 +-- .../walkie-talkie/rendered_model.png | Bin 59737 -> 59228 bytes .../pattern_into_union/artifact_commands.snap | 18 +- .../artifact_commands.snap | 48 +- .../artifact_graph_flowchart.snap.md | 12 +- .../artifact_commands.snap | 33 +- .../artifact_graph_flowchart.snap.md | 7 +- .../scale_after_fillet/artifact_commands.snap | 33 +- .../artifact_graph_flowchart.snap.md | 7 +- .../artifact_commands.snap | 27 +- .../artifact_graph_flowchart.snap.md | 3 +- .../artifact_commands.snap | 27 +- .../artifact_graph_flowchart.snap.md | 3 +- .../artifact_commands.snap | 18 +- .../artifact_commands.snap | 33 +- .../artifact_graph_flowchart.snap.md | 7 +- 66 files changed, 938 insertions(+), 1818 deletions(-) diff --git a/public/kcl-samples/screenshots/multi-axis-robot.png b/public/kcl-samples/screenshots/multi-axis-robot.png index b58825d665d298d8f93a59a6c4ba7f1ea348f754..3299f653bda3a0d2d09880493d2d8f0a8ebe822e 100644 GIT binary patch delta 11882 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 delta 12384 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 26 6 --- 30 6 --- 37 - 6 --- 42 + 6 <--x 42 7 --- 21 7 x--> 26 7 --- 31 diff --git a/rust/kcl-lib/tests/basic_fillet_cube_close_opposite/artifact_commands.snap b/rust/kcl-lib/tests/basic_fillet_cube_close_opposite/artifact_commands.snap index 738dc4695..3c98d9efd 100644 --- a/rust/kcl-lib/tests/basic_fillet_cube_close_opposite/artifact_commands.snap +++ b/rust/kcl-lib/tests/basic_fillet_cube_close_opposite/artifact_commands.snap @@ -401,22 +401,18 @@ description: Artifact commands basic_fillet_cube_close_opposite.kcl "command": { "type": "solid3d_fillet_edge", "object_id": "[uuid]", - "edge_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]", + "[uuid]" + ], "radius": 2.0, "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 2.0, - "tolerance": 0.0000001, - "cut_type": "fillet" + "cut_type": "fillet", + "strategy": "automatic", + "extra_face_ids": [ + "[uuid]" + ] } }, { diff --git a/rust/kcl-lib/tests/basic_fillet_cube_close_opposite/artifact_graph_flowchart.snap.md b/rust/kcl-lib/tests/basic_fillet_cube_close_opposite/artifact_graph_flowchart.snap.md index 351fc41e3..88d4fab6f 100644 --- a/rust/kcl-lib/tests/basic_fillet_cube_close_opposite/artifact_graph_flowchart.snap.md +++ b/rust/kcl-lib/tests/basic_fillet_cube_close_opposite/artifact_graph_flowchart.snap.md @@ -25,7 +25,6 @@ flowchart LR 21["SweepEdge Adjacent"] 22["SweepEdge Adjacent"] 23["EdgeCut Fillet
[221, 281, 0]"] - 24["EdgeCut Fillet
[221, 281, 0]"] 1 --- 2 2 --- 3 2 --- 4 @@ -49,7 +48,7 @@ flowchart LR 6 x--> 13 6 --- 18 6 --- 19 - 6 --- 24 + 6 <--x 23 8 --- 9 8 --- 10 8 --- 11 diff --git a/rust/kcl-lib/tests/basic_fillet_cube_end/artifact_commands.snap b/rust/kcl-lib/tests/basic_fillet_cube_end/artifact_commands.snap index 7ae5264a9..d928a7f12 100644 --- a/rust/kcl-lib/tests/basic_fillet_cube_end/artifact_commands.snap +++ b/rust/kcl-lib/tests/basic_fillet_cube_end/artifact_commands.snap @@ -401,22 +401,18 @@ description: Artifact commands basic_fillet_cube_end.kcl "command": { "type": "solid3d_fillet_edge", "object_id": "[uuid]", - "edge_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]", + "[uuid]" + ], "radius": 2.0, "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 2.0, - "tolerance": 0.0000001, - "cut_type": "fillet" + "cut_type": "fillet", + "strategy": "automatic", + "extra_face_ids": [ + "[uuid]" + ] } }, { diff --git a/rust/kcl-lib/tests/basic_fillet_cube_end/artifact_graph_flowchart.snap.md b/rust/kcl-lib/tests/basic_fillet_cube_end/artifact_graph_flowchart.snap.md index cc1b24fd9..4ad67c9a2 100644 --- a/rust/kcl-lib/tests/basic_fillet_cube_end/artifact_graph_flowchart.snap.md +++ b/rust/kcl-lib/tests/basic_fillet_cube_end/artifact_graph_flowchart.snap.md @@ -25,7 +25,6 @@ flowchart LR 21["SweepEdge Adjacent"] 22["SweepEdge Adjacent"] 23["EdgeCut Fillet
[209, 267, 0]"] - 24["EdgeCut Fillet
[209, 267, 0]"] 1 --- 2 2 --- 3 2 --- 4 @@ -37,7 +36,7 @@ flowchart LR 3 x--> 13 3 --- 18 3 --- 20 - 3 --- 24 + 3 <--x 23 4 --- 10 4 x--> 13 4 --- 17 diff --git a/rust/kcl-lib/tests/basic_fillet_cube_next_adjacent/artifact_commands.snap b/rust/kcl-lib/tests/basic_fillet_cube_next_adjacent/artifact_commands.snap index 062a2bcfa..2c4332a5f 100644 --- a/rust/kcl-lib/tests/basic_fillet_cube_next_adjacent/artifact_commands.snap +++ b/rust/kcl-lib/tests/basic_fillet_cube_next_adjacent/artifact_commands.snap @@ -401,10 +401,15 @@ description: Artifact commands basic_fillet_cube_next_adjacent.kcl "command": { "type": "solid3d_fillet_edge", "object_id": "[uuid]", - "edge_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]" + ], "radius": 2.0, "tolerance": 0.0000001, - "cut_type": "fillet" + "cut_type": "fillet", + "strategy": "automatic", + "extra_face_ids": [] } }, { diff --git a/rust/kcl-lib/tests/basic_fillet_cube_previous_adjacent/artifact_commands.snap b/rust/kcl-lib/tests/basic_fillet_cube_previous_adjacent/artifact_commands.snap index b085c5531..b0a78d7e3 100644 --- a/rust/kcl-lib/tests/basic_fillet_cube_previous_adjacent/artifact_commands.snap +++ b/rust/kcl-lib/tests/basic_fillet_cube_previous_adjacent/artifact_commands.snap @@ -401,10 +401,15 @@ description: Artifact commands basic_fillet_cube_previous_adjacent.kcl "command": { "type": "solid3d_fillet_edge", "object_id": "[uuid]", - "edge_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]" + ], "radius": 2.0, "tolerance": 0.0000001, - "cut_type": "fillet" + "cut_type": "fillet", + "strategy": "automatic", + "extra_face_ids": [] } }, { diff --git a/rust/kcl-lib/tests/basic_fillet_cube_start/artifact_commands.snap b/rust/kcl-lib/tests/basic_fillet_cube_start/artifact_commands.snap index 8e7548cf3..e58500b2b 100644 --- a/rust/kcl-lib/tests/basic_fillet_cube_start/artifact_commands.snap +++ b/rust/kcl-lib/tests/basic_fillet_cube_start/artifact_commands.snap @@ -401,22 +401,18 @@ description: Artifact commands basic_fillet_cube_start.kcl "command": { "type": "solid3d_fillet_edge", "object_id": "[uuid]", - "edge_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]", + "[uuid]" + ], "radius": 2.0, "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 2.0, - "tolerance": 0.0000001, - "cut_type": "fillet" + "cut_type": "fillet", + "strategy": "automatic", + "extra_face_ids": [ + "[uuid]" + ] } } ] diff --git a/rust/kcl-lib/tests/basic_fillet_cube_start/artifact_graph_flowchart.snap.md b/rust/kcl-lib/tests/basic_fillet_cube_start/artifact_graph_flowchart.snap.md index 24a3e5fbc..9cdf7d91b 100644 --- a/rust/kcl-lib/tests/basic_fillet_cube_start/artifact_graph_flowchart.snap.md +++ b/rust/kcl-lib/tests/basic_fillet_cube_start/artifact_graph_flowchart.snap.md @@ -25,7 +25,6 @@ flowchart LR 21["SweepEdge Adjacent"] 22["SweepEdge Adjacent"] 23["EdgeCut Fillet
[209, 251, 0]"] - 24["EdgeCut Fillet
[209, 251, 0]"] 1 --- 2 2 --- 3 2 --- 4 @@ -37,7 +36,7 @@ flowchart LR 3 x--> 13 3 --- 17 3 --- 20 - 3 --- 24 + 3 <--x 23 4 --- 10 4 x--> 13 4 --- 18 @@ -46,7 +45,7 @@ flowchart LR 5 x--> 13 5 --- 15 5 --- 22 - 5 --- 23 + 5 <--x 23 6 --- 11 6 x--> 13 6 --- 16 diff --git a/rust/kcl-lib/tests/clone_w_fillets/artifact_commands.snap b/rust/kcl-lib/tests/clone_w_fillets/artifact_commands.snap index de1ae689c..e75d9d165 100644 --- a/rust/kcl-lib/tests/clone_w_fillets/artifact_commands.snap +++ b/rust/kcl-lib/tests/clone_w_fillets/artifact_commands.snap @@ -401,46 +401,22 @@ description: Artifact commands clone_w_fillets.kcl "command": { "type": "solid3d_fillet_edge", "object_id": "[uuid]", - "edge_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]" + ], "radius": 2.0, "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 2.0, - "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 2.0, - "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 2.0, - "tolerance": 0.0000001, - "cut_type": "fillet" + "cut_type": "fillet", + "strategy": "automatic", + "extra_face_ids": [ + "[uuid]", + "[uuid]", + "[uuid]" + ] } }, { diff --git a/rust/kcl-lib/tests/clone_w_fillets/artifact_graph_flowchart.snap.md b/rust/kcl-lib/tests/clone_w_fillets/artifact_graph_flowchart.snap.md index c8897523b..f23ab4409 100644 --- a/rust/kcl-lib/tests/clone_w_fillets/artifact_graph_flowchart.snap.md +++ b/rust/kcl-lib/tests/clone_w_fillets/artifact_graph_flowchart.snap.md @@ -25,9 +25,6 @@ flowchart LR 21["SweepEdge Adjacent"] 22["SweepEdge Adjacent"] 23["EdgeCut Fillet
[416, 609, 0]"] - 24["EdgeCut Fillet
[416, 609, 0]"] - 25["EdgeCut Fillet
[416, 609, 0]"] - 26["EdgeCut Fillet
[416, 609, 0]"] 1 --- 2 2 --- 3 2 --- 4 @@ -73,8 +70,8 @@ flowchart LR 16 <--x 14 17 <--x 14 18 <--x 14 - 19 <--x 26 - 20 <--x 25 - 21 <--x 24 + 19 <--x 23 + 20 <--x 23 + 21 <--x 23 22 <--x 23 ``` diff --git a/rust/kcl-lib/tests/fillet-and-shell/artifact_commands.snap b/rust/kcl-lib/tests/fillet-and-shell/artifact_commands.snap index 7a24b4b06..384cca4a6 100644 --- a/rust/kcl-lib/tests/fillet-and-shell/artifact_commands.snap +++ b/rust/kcl-lib/tests/fillet-and-shell/artifact_commands.snap @@ -528,46 +528,22 @@ description: Artifact commands fillet-and-shell.kcl "command": { "type": "solid3d_fillet_edge", "object_id": "[uuid]", - "edge_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]" + ], "radius": 1.0, "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 1.0, - "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 1.0, - "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 1.0, - "tolerance": 0.0000001, - "cut_type": "fillet" + "cut_type": "fillet", + "strategy": "automatic", + "extra_face_ids": [ + "[uuid]", + "[uuid]", + "[uuid]" + ] } }, { diff --git a/rust/kcl-lib/tests/fillet-and-shell/artifact_graph_flowchart.snap.md b/rust/kcl-lib/tests/fillet-and-shell/artifact_graph_flowchart.snap.md index 1d55c9e96..7cf6c1654 100644 --- a/rust/kcl-lib/tests/fillet-and-shell/artifact_graph_flowchart.snap.md +++ b/rust/kcl-lib/tests/fillet-and-shell/artifact_graph_flowchart.snap.md @@ -114,9 +114,6 @@ flowchart LR 84["SweepEdge Adjacent"] 85["SweepEdge Adjacent"] 86["EdgeCut Fillet
[1068, 1274, 0]"] - 87["EdgeCut Fillet
[1068, 1274, 0]"] - 88["EdgeCut Fillet
[1068, 1274, 0]"] - 89["EdgeCut Fillet
[1068, 1274, 0]"] 1 --- 7 2 --- 8 3 --- 9 @@ -248,8 +245,8 @@ flowchart LR 74 <--x 69 75 <--x 69 76 <--x 69 - 81 <--x 89 - 82 <--x 88 - 83 <--x 87 + 81 <--x 86 + 82 <--x 86 + 83 <--x 86 84 <--x 86 ``` diff --git a/rust/kcl-lib/tests/kcl_samples/80-20-rail/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/80-20-rail/artifact_commands.snap index 2bbfd48a3..86e1b1639 100644 --- a/rust/kcl-lib/tests/kcl_samples/80-20-rail/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/80-20-rail/artifact_commands.snap @@ -4559,190 +4559,46 @@ description: Artifact commands 80-20-rail.kcl "command": { "type": "solid3d_fillet_edge", "object_id": "[uuid]", - "edge_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]" + ], "radius": 1.5239999999999998, "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 1.5239999999999998, - "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 1.5239999999999998, - "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 1.5239999999999998, - "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 1.5239999999999998, - "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 1.5239999999999998, - "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 1.5239999999999998, - "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 1.5239999999999998, - "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 1.5239999999999998, - "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 1.5239999999999998, - "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 1.5239999999999998, - "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 1.5239999999999998, - "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 1.5239999999999998, - "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 1.5239999999999998, - "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 1.5239999999999998, - "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 1.5239999999999998, - "tolerance": 0.0000001, - "cut_type": "fillet" + "cut_type": "fillet", + "strategy": "automatic", + "extra_face_ids": [ + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]" + ] } }, { @@ -4911,190 +4767,46 @@ description: Artifact commands 80-20-rail.kcl "command": { "type": "solid3d_fillet_edge", "object_id": "[uuid]", - "edge_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]" + ], "radius": 0.7619999999999999, "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 0.7619999999999999, - "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 0.7619999999999999, - "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 0.7619999999999999, - "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 0.7619999999999999, - "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 0.7619999999999999, - "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 0.7619999999999999, - "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 0.7619999999999999, - "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 0.7619999999999999, - "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 0.7619999999999999, - "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 0.7619999999999999, - "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 0.7619999999999999, - "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 0.7619999999999999, - "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 0.7619999999999999, - "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 0.7619999999999999, - "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 0.7619999999999999, - "tolerance": 0.0000001, - "cut_type": "fillet" + "cut_type": "fillet", + "strategy": "automatic", + "extra_face_ids": [ + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]" + ] } }, { diff --git a/rust/kcl-lib/tests/kcl_samples/80-20-rail/artifact_graph_flowchart.snap.md b/rust/kcl-lib/tests/kcl_samples/80-20-rail/artifact_graph_flowchart.snap.md index 0292c28cd..4f2dae451 100644 --- a/rust/kcl-lib/tests/kcl_samples/80-20-rail/artifact_graph_flowchart.snap.md +++ b/rust/kcl-lib/tests/kcl_samples/80-20-rail/artifact_graph_flowchart.snap.md @@ -271,37 +271,7 @@ flowchart LR 265["SweepEdge Adjacent"] 266["SweepEdge Adjacent"] 267["EdgeCut Fillet
[5122, 5827, 0]"] - 268["EdgeCut Fillet
[5122, 5827, 0]"] - 269["EdgeCut Fillet
[5122, 5827, 0]"] - 270["EdgeCut Fillet
[5122, 5827, 0]"] - 271["EdgeCut Fillet
[5122, 5827, 0]"] - 272["EdgeCut Fillet
[5122, 5827, 0]"] - 273["EdgeCut Fillet
[5122, 5827, 0]"] - 274["EdgeCut Fillet
[5122, 5827, 0]"] - 275["EdgeCut Fillet
[5122, 5827, 0]"] - 276["EdgeCut Fillet
[5122, 5827, 0]"] - 277["EdgeCut Fillet
[5122, 5827, 0]"] - 278["EdgeCut Fillet
[5122, 5827, 0]"] - 279["EdgeCut Fillet
[5122, 5827, 0]"] - 280["EdgeCut Fillet
[5122, 5827, 0]"] - 281["EdgeCut Fillet
[5122, 5827, 0]"] - 282["EdgeCut Fillet
[5122, 5827, 0]"] - 283["EdgeCut Fillet
[5835, 6539, 0]"] - 284["EdgeCut Fillet
[5835, 6539, 0]"] - 285["EdgeCut Fillet
[5835, 6539, 0]"] - 286["EdgeCut Fillet
[5835, 6539, 0]"] - 287["EdgeCut Fillet
[5835, 6539, 0]"] - 288["EdgeCut Fillet
[5835, 6539, 0]"] - 289["EdgeCut Fillet
[5835, 6539, 0]"] - 290["EdgeCut Fillet
[5835, 6539, 0]"] - 291["EdgeCut Fillet
[5835, 6539, 0]"] - 292["EdgeCut Fillet
[5835, 6539, 0]"] - 293["EdgeCut Fillet
[5835, 6539, 0]"] - 294["EdgeCut Fillet
[5835, 6539, 0]"] - 295["EdgeCut Fillet
[5835, 6539, 0]"] - 296["EdgeCut Fillet
[5835, 6539, 0]"] - 297["EdgeCut Fillet
[5835, 6539, 0]"] - 298["EdgeCut Fillet
[5835, 6539, 0]"] + 268["EdgeCut Fillet
[5835, 6539, 0]"] 1 --- 2 1 --- 3 2 --- 4 @@ -1015,36 +985,36 @@ flowchart LR 200 <--x 138 201 <--x 138 202 <--x 138 - 206 <--x 288 - 208 <--x 294 - 212 <--x 270 - 213 <--x 277 - 215 <--x 268 - 216 <--x 281 - 217 <--x 289 - 220 <--x 296 - 222 <--x 269 - 225 <--x 287 - 226 <--x 298 - 227 <--x 273 - 228 <--x 276 - 229 <--x 274 - 231 <--x 283 - 232 <--x 297 - 235 <--x 292 - 237 <--x 279 - 238 <--x 271 - 240 <--x 284 - 242 <--x 293 - 243 <--x 272 - 246 <--x 286 - 252 <--x 280 - 253 <--x 275 - 254 <--x 295 + 206 <--x 268 + 208 <--x 268 + 212 <--x 267 + 213 <--x 267 + 215 <--x 267 + 216 <--x 267 + 217 <--x 268 + 220 <--x 268 + 222 <--x 267 + 225 <--x 268 + 226 <--x 268 + 227 <--x 267 + 228 <--x 267 + 229 <--x 267 + 231 <--x 268 + 232 <--x 268 + 235 <--x 268 + 237 <--x 267 + 238 <--x 267 + 240 <--x 268 + 242 <--x 268 + 243 <--x 267 + 246 <--x 268 + 252 <--x 267 + 253 <--x 267 + 254 <--x 268 255 <--x 267 - 256 <--x 291 - 257 <--x 285 - 262 <--x 278 - 264 <--x 282 - 265 <--x 290 + 256 <--x 268 + 257 <--x 268 + 262 <--x 267 + 264 <--x 267 + 265 <--x 268 ``` diff --git a/rust/kcl-lib/tests/kcl_samples/axial-fan/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/axial-fan/artifact_commands.snap index cc927e657..b979d9672 100644 --- a/rust/kcl-lib/tests/kcl_samples/axial-fan/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/axial-fan/artifact_commands.snap @@ -5160,94 +5160,30 @@ description: Artifact commands axial-fan.kcl "command": { "type": "solid3d_fillet_edge", "object_id": "[uuid]", - "edge_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]" + ], "radius": 7.5, "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 7.5, - "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 7.5, - "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 7.5, - "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 7.5, - "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 7.5, - "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 7.5, - "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 7.5, - "tolerance": 0.0000001, - "cut_type": "fillet" + "cut_type": "fillet", + "strategy": "automatic", + "extra_face_ids": [ + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]" + ] } }, { @@ -5575,22 +5511,18 @@ description: Artifact commands axial-fan.kcl "command": { "type": "solid3d_fillet_edge", "object_id": "[uuid]", - "edge_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]", + "[uuid]" + ], "radius": 2.0, "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 2.0, - "tolerance": 0.0000001, - "cut_type": "fillet" + "cut_type": "fillet", + "strategy": "automatic", + "extra_face_ids": [ + "[uuid]" + ] } }, { diff --git a/rust/kcl-lib/tests/kcl_samples/axial-fan/artifact_graph_flowchart.snap.md b/rust/kcl-lib/tests/kcl_samples/axial-fan/artifact_graph_flowchart.snap.md index 42cedb342..cd36c0b3e 100644 --- a/rust/kcl-lib/tests/kcl_samples/axial-fan/artifact_graph_flowchart.snap.md +++ b/rust/kcl-lib/tests/kcl_samples/axial-fan/artifact_graph_flowchart.snap.md @@ -314,15 +314,7 @@ flowchart LR 266["SweepEdge Adjacent"] 267["SweepEdge Adjacent"] 268["EdgeCut Fillet
[5131, 5642, 1]"] - 269["EdgeCut Fillet
[5131, 5642, 1]"] - 270["EdgeCut Fillet
[5131, 5642, 1]"] - 271["EdgeCut Fillet
[5131, 5642, 1]"] - 272["EdgeCut Fillet
[5131, 5642, 1]"] - 273["EdgeCut Fillet
[5131, 5642, 1]"] - 274["EdgeCut Fillet
[5131, 5642, 1]"] - 275["EdgeCut Fillet
[5131, 5642, 1]"] - 276["EdgeCut Fillet
[412, 470, 3]"] - 277["EdgeCut Fillet
[412, 470, 3]"] + 269["EdgeCut Fillet
[412, 470, 3]"] 1 --- 8 1 --- 9 1 --- 10 @@ -563,7 +555,7 @@ flowchart LR 71 x--> 178 71 --- 217 71 --- 262 - 71 --- 277 + 71 <--x 269 72 --- 158 72 x--> 181 72 --- 203 @@ -888,13 +880,13 @@ flowchart LR 221 <--x 188 222 <--x 188 203 <--x 189 - 217 <--x 276 + 217 <--x 269 223 <--x 268 - 224 <--x 274 - 225 <--x 270 - 226 <--x 273 - 264 <--x 271 - 265 <--x 269 - 266 <--x 275 - 267 <--x 272 + 224 <--x 268 + 225 <--x 268 + 226 <--x 268 + 264 <--x 268 + 265 <--x 268 + 266 <--x 268 + 267 <--x 268 ``` diff --git a/rust/kcl-lib/tests/kcl_samples/bracket/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/bracket/artifact_commands.snap index d11878bd1..c79f7711b 100644 --- a/rust/kcl-lib/tests/kcl_samples/bracket/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/bracket/artifact_commands.snap @@ -1414,10 +1414,15 @@ description: Artifact commands bracket.kcl "command": { "type": "solid3d_fillet_edge", "object_id": "[uuid]", - "edge_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]" + ], "radius": 16.125347184188833, "tolerance": 0.0000001, - "cut_type": "fillet" + "cut_type": "fillet", + "strategy": "automatic", + "extra_face_ids": [] } }, { @@ -1436,10 +1441,15 @@ description: Artifact commands bracket.kcl "command": { "type": "solid3d_fillet_edge", "object_id": "[uuid]", - "edge_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]" + ], "radius": 6.35, "tolerance": 0.0000001, - "cut_type": "fillet" + "cut_type": "fillet", + "strategy": "automatic", + "extra_face_ids": [] } }, { @@ -1458,46 +1468,22 @@ description: Artifact commands bracket.kcl "command": { "type": "solid3d_fillet_edge", "object_id": "[uuid]", - "edge_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]" + ], "radius": 12.7, "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 12.7, - "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 12.7, - "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 12.7, - "tolerance": 0.0000001, - "cut_type": "fillet" + "cut_type": "fillet", + "strategy": "automatic", + "extra_face_ids": [ + "[uuid]", + "[uuid]", + "[uuid]" + ] } }, { diff --git a/rust/kcl-lib/tests/kcl_samples/bracket/artifact_graph_flowchart.snap.md b/rust/kcl-lib/tests/kcl_samples/bracket/artifact_graph_flowchart.snap.md index 74137c769..36aa9b84a 100644 --- a/rust/kcl-lib/tests/kcl_samples/bracket/artifact_graph_flowchart.snap.md +++ b/rust/kcl-lib/tests/kcl_samples/bracket/artifact_graph_flowchart.snap.md @@ -60,9 +60,6 @@ flowchart LR 52["EdgeCut Fillet
[3596, 3676, 0]"] 53["EdgeCut Fillet
[3677, 3754, 0]"] 54["EdgeCut Fillet
[3780, 3922, 0]"] - 55["EdgeCut Fillet
[3780, 3922, 0]"] - 56["EdgeCut Fillet
[3780, 3922, 0]"] - 57["EdgeCut Fillet
[3780, 3922, 0]"] 1 --- 4 33 x--> 2 32 x--> 3 @@ -91,7 +88,7 @@ flowchart LR 8 x--> 34 8 --- 40 8 --- 47 - 8 --- 54 + 8 <--x 54 9 --- 32 9 x--> 34 9 --- 41 @@ -104,7 +101,7 @@ flowchart LR 11 x--> 34 11 --- 38 11 --- 48 - 11 --- 56 + 11 <--x 54 12 --- 28 12 x--> 34 12 --- 39 @@ -165,8 +162,8 @@ flowchart LR 41 <--x 35 42 <--x 35 43 <--x 35 - 38 <--x 55 - 40 <--x 57 + 38 <--x 54 + 40 <--x 54 49 <--x 53 51 <--x 52 ``` diff --git a/rust/kcl-lib/tests/kcl_samples/dual-basin-utility-sink/artifact_graph_flowchart.snap.md b/rust/kcl-lib/tests/kcl_samples/dual-basin-utility-sink/artifact_graph_flowchart.snap.md index f2c5ff52b..a13d6eb9a 100644 --- a/rust/kcl-lib/tests/kcl_samples/dual-basin-utility-sink/artifact_graph_flowchart.snap.md +++ b/rust/kcl-lib/tests/kcl_samples/dual-basin-utility-sink/artifact_graph_flowchart.snap.md @@ -608,7 +608,7 @@ flowchart LR 83 --- 246 83 --- 289 90 --- 159 - 90 x--> 192 + 90 x--> 193 90 --- 226 90 --- 271 104 --- 151 @@ -910,7 +910,7 @@ flowchart LR 211 <--x 191 212 <--x 191 213 <--x 191 - 226 <--x 193 + 226 <--x 192 239 <--x 195 240 <--x 195 241 <--x 195 diff --git a/rust/kcl-lib/tests/kcl_samples/enclosure/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/enclosure/artifact_commands.snap index 98d273a1e..a470f26d0 100644 --- a/rust/kcl-lib/tests/kcl_samples/enclosure/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/enclosure/artifact_commands.snap @@ -418,46 +418,22 @@ description: Artifact commands enclosure.kcl "command": { "type": "solid3d_fillet_edge", "object_id": "[uuid]", - "edge_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]" + ], "radius": 12.0, "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 12.0, - "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 12.0, - "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 12.0, - "tolerance": 0.0000001, - "cut_type": "fillet" + "cut_type": "fillet", + "strategy": "automatic", + "extra_face_ids": [ + "[uuid]", + "[uuid]", + "[uuid]" + ] } }, { @@ -2898,46 +2874,22 @@ description: Artifact commands enclosure.kcl "command": { "type": "solid3d_fillet_edge", "object_id": "[uuid]", - "edge_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]" + ], "radius": 12.0, "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 12.0, - "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 12.0, - "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 12.0, - "tolerance": 0.0000001, - "cut_type": "fillet" + "cut_type": "fillet", + "strategy": "automatic", + "extra_face_ids": [ + "[uuid]", + "[uuid]", + "[uuid]" + ] } }, { @@ -3884,46 +3836,22 @@ description: Artifact commands enclosure.kcl "command": { "type": "solid3d_fillet_edge", "object_id": "[uuid]", - "edge_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]" + ], "radius": 9.0, "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 9.0, - "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 9.0, - "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 9.0, - "tolerance": 0.0000001, - "cut_type": "fillet" + "cut_type": "fillet", + "strategy": "automatic", + "extra_face_ids": [ + "[uuid]", + "[uuid]", + "[uuid]" + ] } }, { diff --git a/rust/kcl-lib/tests/kcl_samples/enclosure/artifact_graph_flowchart.snap.md b/rust/kcl-lib/tests/kcl_samples/enclosure/artifact_graph_flowchart.snap.md index 645147497..f471a6366 100644 --- a/rust/kcl-lib/tests/kcl_samples/enclosure/artifact_graph_flowchart.snap.md +++ b/rust/kcl-lib/tests/kcl_samples/enclosure/artifact_graph_flowchart.snap.md @@ -184,17 +184,8 @@ flowchart LR 144["SweepEdge Adjacent"] 145["SweepEdge Adjacent"] 146["EdgeCut Fillet
[789, 1071, 0]"] - 147["EdgeCut Fillet
[789, 1071, 0]"] - 148["EdgeCut Fillet
[789, 1071, 0]"] - 149["EdgeCut Fillet
[789, 1071, 0]"] - 150["EdgeCut Fillet
[3611, 3893, 0]"] - 151["EdgeCut Fillet
[3611, 3893, 0]"] - 152["EdgeCut Fillet
[3611, 3893, 0]"] - 153["EdgeCut Fillet
[3611, 3893, 0]"] - 154["EdgeCut Fillet
[5399, 5681, 0]"] - 155["EdgeCut Fillet
[5399, 5681, 0]"] - 156["EdgeCut Fillet
[5399, 5681, 0]"] - 157["EdgeCut Fillet
[5399, 5681, 0]"] + 147["EdgeCut Fillet
[3611, 3893, 0]"] + 148["EdgeCut Fillet
[5399, 5681, 0]"] 1 --- 8 2 --- 9 2 --- 14 @@ -435,15 +426,15 @@ flowchart LR 121 <--x 113 122 <--x 113 131 <--x 146 - 132 <--x 149 - 133 <--x 148 - 134 <--x 147 - 135 <--x 150 - 136 <--x 152 - 137 <--x 153 - 138 <--x 151 - 139 <--x 155 - 140 <--x 154 - 141 <--x 156 - 142 <--x 157 + 132 <--x 146 + 133 <--x 146 + 134 <--x 146 + 135 <--x 147 + 136 <--x 147 + 137 <--x 147 + 138 <--x 147 + 139 <--x 148 + 140 <--x 148 + 141 <--x 148 + 142 <--x 148 ``` diff --git a/rust/kcl-lib/tests/kcl_samples/exhaust-manifold/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/exhaust-manifold/artifact_commands.snap index 3b4a2f731..71982a200 100644 --- a/rust/kcl-lib/tests/kcl_samples/exhaust-manifold/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/exhaust-manifold/artifact_commands.snap @@ -4062,22 +4062,18 @@ description: Artifact commands exhaust-manifold.kcl "command": { "type": "solid3d_fillet_edge", "object_id": "[uuid]", - "edge_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]", + "[uuid]" + ], "radius": 38.099999999999994, "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 38.099999999999994, - "tolerance": 0.0000001, - "cut_type": "fillet" + "cut_type": "fillet", + "strategy": "automatic", + "extra_face_ids": [ + "[uuid]" + ] } }, { @@ -4106,22 +4102,18 @@ description: Artifact commands exhaust-manifold.kcl "command": { "type": "solid3d_fillet_edge", "object_id": "[uuid]", - "edge_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]", + "[uuid]" + ], "radius": 6.35, "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 6.35, - "tolerance": 0.0000001, - "cut_type": "fillet" + "cut_type": "fillet", + "strategy": "automatic", + "extra_face_ids": [ + "[uuid]" + ] } }, { diff --git a/rust/kcl-lib/tests/kcl_samples/exhaust-manifold/artifact_graph_flowchart.snap.md b/rust/kcl-lib/tests/kcl_samples/exhaust-manifold/artifact_graph_flowchart.snap.md index 6a2196bd7..dbff0d18c 100644 --- a/rust/kcl-lib/tests/kcl_samples/exhaust-manifold/artifact_graph_flowchart.snap.md +++ b/rust/kcl-lib/tests/kcl_samples/exhaust-manifold/artifact_graph_flowchart.snap.md @@ -218,9 +218,7 @@ flowchart LR 174["SweepEdge Adjacent"] 175["SweepEdge Adjacent"] 176["EdgeCut Fillet
[3990, 4124, 0]"] - 177["EdgeCut Fillet
[3990, 4124, 0]"] - 178["EdgeCut Fillet
[4130, 4264, 0]"] - 179["EdgeCut Fillet
[4130, 4264, 0]"] + 177["EdgeCut Fillet
[4130, 4264, 0]"] 1 --- 11 2 --- 10 3 --- 13 @@ -535,8 +533,8 @@ flowchart LR 152 <--x 135 153 <--x 135 154 <--x 135 - 165 <--x 179 - 167 <--x 178 - 168 <--x 177 + 165 <--x 177 + 167 <--x 177 + 168 <--x 176 174 <--x 176 ``` diff --git a/rust/kcl-lib/tests/kcl_samples/focusrite-scarlett-mounting-bracket/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/focusrite-scarlett-mounting-bracket/artifact_commands.snap index 538108b56..8d242f29e 100644 --- a/rust/kcl-lib/tests/kcl_samples/focusrite-scarlett-mounting-bracket/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/focusrite-scarlett-mounting-bracket/artifact_commands.snap @@ -666,46 +666,22 @@ description: Artifact commands focusrite-scarlett-mounting-bracket.kcl "command": { "type": "solid3d_fillet_edge", "object_id": "[uuid]", - "edge_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]" + ], "radius": 6.0, "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 6.0, - "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 6.0, - "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 6.0, - "tolerance": 0.0000001, - "cut_type": "fillet" + "cut_type": "fillet", + "strategy": "automatic", + "extra_face_ids": [ + "[uuid]", + "[uuid]", + "[uuid]" + ] } }, { @@ -1279,22 +1255,18 @@ description: Artifact commands focusrite-scarlett-mounting-bracket.kcl "command": { "type": "solid3d_fillet_edge", "object_id": "[uuid]", - "edge_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]", + "[uuid]" + ], "radius": 2.5, "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 2.5, - "tolerance": 0.0000001, - "cut_type": "fillet" + "cut_type": "fillet", + "strategy": "automatic", + "extra_face_ids": [ + "[uuid]" + ] } }, { @@ -1888,22 +1860,18 @@ description: Artifact commands focusrite-scarlett-mounting-bracket.kcl "command": { "type": "solid3d_fillet_edge", "object_id": "[uuid]", - "edge_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]", + "[uuid]" + ], "radius": 2.5, "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 2.5, - "tolerance": 0.0000001, - "cut_type": "fillet" + "cut_type": "fillet", + "strategy": "automatic", + "extra_face_ids": [ + "[uuid]" + ] } }, { diff --git a/rust/kcl-lib/tests/kcl_samples/focusrite-scarlett-mounting-bracket/artifact_graph_flowchart.snap.md b/rust/kcl-lib/tests/kcl_samples/focusrite-scarlett-mounting-bracket/artifact_graph_flowchart.snap.md index d3bf5ddfd..40eedbde5 100644 --- a/rust/kcl-lib/tests/kcl_samples/focusrite-scarlett-mounting-bracket/artifact_graph_flowchart.snap.md +++ b/rust/kcl-lib/tests/kcl_samples/focusrite-scarlett-mounting-bracket/artifact_graph_flowchart.snap.md @@ -143,13 +143,8 @@ flowchart LR 127["SweepEdge Adjacent"] 128["SweepEdge Adjacent"] 129["EdgeCut Fillet
[1449, 1708, 0]"] - 130["EdgeCut Fillet
[1449, 1708, 0]"] - 131["EdgeCut Fillet
[1449, 1708, 0]"] - 132["EdgeCut Fillet
[1449, 1708, 0]"] - 133["EdgeCut Fillet
[2472, 2617, 0]"] - 134["EdgeCut Fillet
[2472, 2617, 0]"] - 135["EdgeCut Fillet
[3300, 3445, 0]"] - 136["EdgeCut Fillet
[3300, 3445, 0]"] + 130["EdgeCut Fillet
[2472, 2617, 0]"] + 131["EdgeCut Fillet
[3300, 3445, 0]"] 1 --- 6 2 --- 7 2 --- 8 @@ -449,12 +444,12 @@ flowchart LR 103 <--x 82 104 <--x 82 105 <--x 82 - 107 <--x 132 - 108 <--x 130 + 107 <--x 129 + 108 <--x 129 111 <--x 129 - 112 <--x 131 - 115 <--x 133 - 116 <--x 134 - 119 <--x 136 - 121 <--x 135 + 112 <--x 129 + 115 <--x 130 + 116 <--x 130 + 119 <--x 131 + 121 <--x 131 ``` diff --git a/rust/kcl-lib/tests/kcl_samples/food-service-spatula/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/food-service-spatula/artifact_commands.snap index 5e0a11659..d0de13524 100644 --- a/rust/kcl-lib/tests/kcl_samples/food-service-spatula/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/food-service-spatula/artifact_commands.snap @@ -1559,22 +1559,18 @@ description: Artifact commands food-service-spatula.kcl "command": { "type": "solid3d_fillet_edge", "object_id": "[uuid]", - "edge_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]", + "[uuid]" + ], "radius": 5.0, "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 5.0, - "tolerance": 0.0000001, - "cut_type": "fillet" + "cut_type": "fillet", + "strategy": "automatic", + "extra_face_ids": [ + "[uuid]" + ] } }, { @@ -2184,22 +2180,18 @@ description: Artifact commands food-service-spatula.kcl "command": { "type": "solid3d_fillet_edge", "object_id": "[uuid]", - "edge_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]", + "[uuid]" + ], "radius": 4.0, "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 4.0, - "tolerance": 0.0000001, - "cut_type": "fillet" + "cut_type": "fillet", + "strategy": "automatic", + "extra_face_ids": [ + "[uuid]" + ] } }, { diff --git a/rust/kcl-lib/tests/kcl_samples/food-service-spatula/artifact_graph_flowchart.snap.md b/rust/kcl-lib/tests/kcl_samples/food-service-spatula/artifact_graph_flowchart.snap.md index 3a65aa538..4dea638ad 100644 --- a/rust/kcl-lib/tests/kcl_samples/food-service-spatula/artifact_graph_flowchart.snap.md +++ b/rust/kcl-lib/tests/kcl_samples/food-service-spatula/artifact_graph_flowchart.snap.md @@ -157,9 +157,7 @@ flowchart LR 141["SweepEdge Adjacent"] 142["SweepEdge Adjacent"] 143["EdgeCut Fillet
[2546, 2687, 0]"] - 144["EdgeCut Fillet
[2546, 2687, 0]"] - 145["EdgeCut Fillet
[3357, 3488, 0]"] - 146["EdgeCut Fillet
[3357, 3488, 0]"] + 144["EdgeCut Fillet
[3357, 3488, 0]"] 1 --- 6 1 --- 8 1 --- 9 @@ -485,8 +483,8 @@ flowchart LR 112 <--x 94 113 <--x 94 114 <--x 94 - 120 <--x 145 - 124 <--x 146 + 120 <--x 144 + 124 <--x 144 135 <--x 143 - 137 <--x 144 + 137 <--x 143 ``` diff --git a/rust/kcl-lib/tests/kcl_samples/gridfinity-baseplate-magnets/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/gridfinity-baseplate-magnets/artifact_commands.snap index 33c9f26e6..bda8ddc3c 100644 --- a/rust/kcl-lib/tests/kcl_samples/gridfinity-baseplate-magnets/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/gridfinity-baseplate-magnets/artifact_commands.snap @@ -4789,46 +4789,22 @@ description: Artifact commands gridfinity-baseplate-magnets.kcl "command": { "type": "solid3d_fillet_edge", "object_id": "[uuid]", - "edge_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]" + ], "radius": 4.0, "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 4.0, - "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 4.0, - "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 4.0, - "tolerance": 0.0000001, - "cut_type": "fillet" + "cut_type": "fillet", + "strategy": "automatic", + "extra_face_ids": [ + "[uuid]", + "[uuid]", + "[uuid]" + ] } }, { @@ -5907,46 +5883,22 @@ description: Artifact commands gridfinity-baseplate-magnets.kcl "command": { "type": "solid3d_fillet_edge", "object_id": "[uuid]", - "edge_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]" + ], "radius": 4.0, "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 4.0, - "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 4.0, - "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 4.0, - "tolerance": 0.0000001, - "cut_type": "fillet" + "cut_type": "fillet", + "strategy": "automatic", + "extra_face_ids": [ + "[uuid]", + "[uuid]", + "[uuid]" + ] } }, { diff --git a/rust/kcl-lib/tests/kcl_samples/gridfinity-baseplate-magnets/artifact_graph_flowchart.snap.md b/rust/kcl-lib/tests/kcl_samples/gridfinity-baseplate-magnets/artifact_graph_flowchart.snap.md index 6302a2459..4908baf7f 100644 --- a/rust/kcl-lib/tests/kcl_samples/gridfinity-baseplate-magnets/artifact_graph_flowchart.snap.md +++ b/rust/kcl-lib/tests/kcl_samples/gridfinity-baseplate-magnets/artifact_graph_flowchart.snap.md @@ -158,13 +158,7 @@ flowchart LR 142["SweepEdge Adjacent"] 143["SweepEdge Adjacent"] 144["EdgeCut Fillet
[5152, 5491, 0]"] - 145["EdgeCut Fillet
[5152, 5491, 0]"] - 146["EdgeCut Fillet
[5152, 5491, 0]"] - 147["EdgeCut Fillet
[5152, 5491, 0]"] - 148["EdgeCut Fillet
[5816, 6160, 0]"] - 149["EdgeCut Fillet
[5816, 6160, 0]"] - 150["EdgeCut Fillet
[5816, 6160, 0]"] - 151["EdgeCut Fillet
[5816, 6160, 0]"] + 145["EdgeCut Fillet
[5816, 6160, 0]"] 1 <--x 8 1 --- 12 2 <--x 7 @@ -439,11 +433,11 @@ flowchart LR 124 <--x 107 125 <--x 107 131 <--x 144 - 132 <--x 147 - 133 <--x 145 - 134 <--x 146 - 135 <--x 150 - 136 <--x 148 - 137 <--x 151 - 138 <--x 149 + 132 <--x 144 + 133 <--x 144 + 134 <--x 144 + 135 <--x 145 + 136 <--x 145 + 137 <--x 145 + 138 <--x 145 ``` diff --git a/rust/kcl-lib/tests/kcl_samples/gridfinity-bins-stacking-lip/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/gridfinity-bins-stacking-lip/artifact_commands.snap index b50ea75f7..6c1e7fd0b 100644 --- a/rust/kcl-lib/tests/kcl_samples/gridfinity-bins-stacking-lip/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/gridfinity-bins-stacking-lip/artifact_commands.snap @@ -1374,46 +1374,22 @@ description: Artifact commands gridfinity-bins-stacking-lip.kcl "command": { "type": "solid3d_fillet_edge", "object_id": "[uuid]", - "edge_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]" + ], "radius": 0.8, "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 0.8, - "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 0.8, - "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 0.8, - "tolerance": 0.0000001, - "cut_type": "fillet" + "cut_type": "fillet", + "strategy": "automatic", + "extra_face_ids": [ + "[uuid]", + "[uuid]", + "[uuid]" + ] } }, { @@ -3922,46 +3898,22 @@ description: Artifact commands gridfinity-bins-stacking-lip.kcl "command": { "type": "solid3d_fillet_edge", "object_id": "[uuid]", - "edge_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]" + ], "radius": 3.75, "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 3.75, - "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 3.75, - "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 3.75, - "tolerance": 0.0000001, - "cut_type": "fillet" + "cut_type": "fillet", + "strategy": "automatic", + "extra_face_ids": [ + "[uuid]", + "[uuid]", + "[uuid]" + ] } }, { diff --git a/rust/kcl-lib/tests/kcl_samples/gridfinity-bins-stacking-lip/artifact_graph_flowchart.snap.md b/rust/kcl-lib/tests/kcl_samples/gridfinity-bins-stacking-lip/artifact_graph_flowchart.snap.md index 7f8569aa9..476f39543 100644 --- a/rust/kcl-lib/tests/kcl_samples/gridfinity-bins-stacking-lip/artifact_graph_flowchart.snap.md +++ b/rust/kcl-lib/tests/kcl_samples/gridfinity-bins-stacking-lip/artifact_graph_flowchart.snap.md @@ -284,13 +284,7 @@ flowchart LR 264["SweepEdge Adjacent"] 265["SweepEdge Adjacent"] 266["EdgeCut Fillet
[2865, 3095, 0]"] - 267["EdgeCut Fillet
[2865, 3095, 0]"] - 268["EdgeCut Fillet
[2865, 3095, 0]"] - 269["EdgeCut Fillet
[2865, 3095, 0]"] - 270["EdgeCut Fillet
[4934, 5167, 0]"] - 271["EdgeCut Fillet
[4934, 5167, 0]"] - 272["EdgeCut Fillet
[4934, 5167, 0]"] - 273["EdgeCut Fillet
[4934, 5167, 0]"] + 267["EdgeCut Fillet
[4934, 5167, 0]"] 1 <--x 10 1 --- 14 2 <--x 11 @@ -945,11 +939,11 @@ flowchart LR 182 <--x 163 183 <--x 163 231 <--x 266 - 232 <--x 269 - 233 <--x 267 - 234 <--x 268 - 249 <--x 270 - 250 <--x 273 - 251 <--x 272 - 252 <--x 271 + 232 <--x 266 + 233 <--x 266 + 234 <--x 266 + 249 <--x 267 + 250 <--x 267 + 251 <--x 267 + 252 <--x 267 ``` diff --git a/rust/kcl-lib/tests/kcl_samples/gridfinity-bins/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/gridfinity-bins/artifact_commands.snap index bfc5c591c..83e5fa199 100644 --- a/rust/kcl-lib/tests/kcl_samples/gridfinity-bins/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/gridfinity-bins/artifact_commands.snap @@ -1374,46 +1374,22 @@ description: Artifact commands gridfinity-bins.kcl "command": { "type": "solid3d_fillet_edge", "object_id": "[uuid]", - "edge_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]" + ], "radius": 0.8, "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 0.8, - "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 0.8, - "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 0.8, - "tolerance": 0.0000001, - "cut_type": "fillet" + "cut_type": "fillet", + "strategy": "automatic", + "extra_face_ids": [ + "[uuid]", + "[uuid]", + "[uuid]" + ] } }, { @@ -3922,46 +3898,22 @@ description: Artifact commands gridfinity-bins.kcl "command": { "type": "solid3d_fillet_edge", "object_id": "[uuid]", - "edge_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]" + ], "radius": 3.75, "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 3.75, - "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 3.75, - "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 3.75, - "tolerance": 0.0000001, - "cut_type": "fillet" + "cut_type": "fillet", + "strategy": "automatic", + "extra_face_ids": [ + "[uuid]", + "[uuid]", + "[uuid]" + ] } }, { diff --git a/rust/kcl-lib/tests/kcl_samples/gridfinity-bins/artifact_graph_flowchart.snap.md b/rust/kcl-lib/tests/kcl_samples/gridfinity-bins/artifact_graph_flowchart.snap.md index 9635a6cfd..701b548ef 100644 --- a/rust/kcl-lib/tests/kcl_samples/gridfinity-bins/artifact_graph_flowchart.snap.md +++ b/rust/kcl-lib/tests/kcl_samples/gridfinity-bins/artifact_graph_flowchart.snap.md @@ -124,13 +124,7 @@ flowchart LR 112["SweepEdge Adjacent"] 113["SweepEdge Adjacent"] 114["EdgeCut Fillet
[2606, 2836, 0]"] - 115["EdgeCut Fillet
[2606, 2836, 0]"] - 116["EdgeCut Fillet
[2606, 2836, 0]"] - 117["EdgeCut Fillet
[2606, 2836, 0]"] - 118["EdgeCut Fillet
[4704, 4937, 0]"] - 119["EdgeCut Fillet
[4704, 4937, 0]"] - 120["EdgeCut Fillet
[4704, 4937, 0]"] - 121["EdgeCut Fillet
[4704, 4937, 0]"] + 115["EdgeCut Fillet
[4704, 4937, 0]"] 1 <--x 6 1 --- 10 2 <--x 7 @@ -381,11 +375,11 @@ flowchart LR 78 <--x 75 79 <--x 75 95 <--x 114 - 96 <--x 117 - 97 <--x 115 - 98 <--x 116 - 105 <--x 118 - 106 <--x 121 - 107 <--x 120 - 108 <--x 119 + 96 <--x 114 + 97 <--x 114 + 98 <--x 114 + 105 <--x 115 + 106 <--x 115 + 107 <--x 115 + 108 <--x 115 ``` diff --git a/rust/kcl-lib/tests/kcl_samples/keyboard/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/keyboard/artifact_commands.snap index 293e85179..1207eb330 100644 --- a/rust/kcl-lib/tests/kcl_samples/keyboard/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/keyboard/artifact_commands.snap @@ -435,46 +435,22 @@ description: Artifact commands keyboard.kcl "command": { "type": "solid3d_fillet_edge", "object_id": "[uuid]", - "edge_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]" + ], "radius": 15.239999999999998, "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 15.239999999999998, - "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 15.239999999999998, - "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 15.239999999999998, - "tolerance": 0.0000001, - "cut_type": "fillet" + "cut_type": "fillet", + "strategy": "automatic", + "extra_face_ids": [ + "[uuid]", + "[uuid]", + "[uuid]" + ] } }, { diff --git a/rust/kcl-lib/tests/kcl_samples/keyboard/artifact_graph_flowchart.snap.md b/rust/kcl-lib/tests/kcl_samples/keyboard/artifact_graph_flowchart.snap.md index a0298039b..14b1102ac 100644 --- a/rust/kcl-lib/tests/kcl_samples/keyboard/artifact_graph_flowchart.snap.md +++ b/rust/kcl-lib/tests/kcl_samples/keyboard/artifact_graph_flowchart.snap.md @@ -1096,9 +1096,6 @@ flowchart LR 1032["SweepEdge Adjacent"] 1033["SweepEdge Adjacent"] 1034["EdgeCut Fillet
[932, 1089, 0]"] - 1035["EdgeCut Fillet
[932, 1089, 0]"] - 1036["EdgeCut Fillet
[932, 1089, 0]"] - 1037["EdgeCut Fillet
[932, 1089, 0]"] 1 --- 29 2 --- 36 3 --- 44 @@ -1427,7 +1424,7 @@ flowchart LR 60 x--> 561 60 --- 652 60 --- 859 - 60 --- 1037 + 60 <--x 1034 61 --- 386 61 x--> 561 61 --- 654 @@ -1436,7 +1433,7 @@ flowchart LR 62 x--> 561 62 --- 653 62 --- 860 - 62 --- 1035 + 62 <--x 1034 63 --- 388 63 x--> 561 63 --- 651 @@ -3764,5 +3761,5 @@ flowchart LR 649 <--x 616 700 <--x 617 652 <--x 1034 - 653 <--x 1036 + 653 <--x 1034 ``` diff --git a/rust/kcl-lib/tests/kcl_samples/mounting-plate/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/mounting-plate/artifact_commands.snap index 75dda9129..308db13fa 100644 --- a/rust/kcl-lib/tests/kcl_samples/mounting-plate/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/mounting-plate/artifact_commands.snap @@ -1106,46 +1106,22 @@ description: Artifact commands mounting-plate.kcl "command": { "type": "solid3d_fillet_edge", "object_id": "[uuid]", - "edge_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]" + ], "radius": 12.7, "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 12.7, - "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 12.7, - "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 12.7, - "tolerance": 0.0000001, - "cut_type": "fillet" + "cut_type": "fillet", + "strategy": "automatic", + "extra_face_ids": [ + "[uuid]", + "[uuid]", + "[uuid]" + ] } }, { diff --git a/rust/kcl-lib/tests/kcl_samples/mounting-plate/artifact_graph_flowchart.snap.md b/rust/kcl-lib/tests/kcl_samples/mounting-plate/artifact_graph_flowchart.snap.md index b016f2f99..58801f18b 100644 --- a/rust/kcl-lib/tests/kcl_samples/mounting-plate/artifact_graph_flowchart.snap.md +++ b/rust/kcl-lib/tests/kcl_samples/mounting-plate/artifact_graph_flowchart.snap.md @@ -50,9 +50,6 @@ flowchart LR 36["SweepEdge Adjacent"] 37["SweepEdge Adjacent"] 38["EdgeCut Fillet
[1927, 2192, 0]"] - 39["EdgeCut Fillet
[1927, 2192, 0]"] - 40["EdgeCut Fillet
[1927, 2192, 0]"] - 41["EdgeCut Fillet
[1927, 2192, 0]"] 1 --- 2 1 --- 3 1 --- 4 @@ -121,8 +118,8 @@ flowchart LR 31 <--x 29 32 <--x 29 33 <--x 29 - 34 <--x 39 - 35 <--x 41 - 36 <--x 40 + 34 <--x 38 + 35 <--x 38 + 36 <--x 38 37 <--x 38 ``` diff --git a/rust/kcl-lib/tests/kcl_samples/multi-axis-robot/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/multi-axis-robot/artifact_commands.snap index fc9842d04..285bd5759 100644 --- a/rust/kcl-lib/tests/kcl_samples/multi-axis-robot/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/multi-axis-robot/artifact_commands.snap @@ -418,46 +418,22 @@ description: Artifact commands multi-axis-robot.kcl "command": { "type": "solid3d_fillet_edge", "object_id": "[uuid]", - "edge_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]" + ], "radius": 50.8, "tolerance": 0.0000001, - "cut_type": "chamfer" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 50.8, - "tolerance": 0.0000001, - "cut_type": "chamfer" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 50.8, - "tolerance": 0.0000001, - "cut_type": "chamfer" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 50.8, - "tolerance": 0.0000001, - "cut_type": "chamfer" + "cut_type": "fillet", + "strategy": "automatic", + "extra_face_ids": [ + "[uuid]", + "[uuid]", + "[uuid]" + ] } }, { @@ -672,10 +648,15 @@ description: Artifact commands multi-axis-robot.kcl "command": { "type": "solid3d_fillet_edge", "object_id": "[uuid]", - "edge_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]" + ], "radius": 2.54, "tolerance": 0.0000001, - "cut_type": "fillet" + "cut_type": "fillet", + "strategy": "automatic", + "extra_face_ids": [] } }, { @@ -2074,10 +2055,15 @@ description: Artifact commands multi-axis-robot.kcl "command": { "type": "solid3d_fillet_edge", "object_id": "[uuid]", - "edge_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]" + ], "radius": 2.54, "tolerance": 0.0000001, - "cut_type": "fillet" + "cut_type": "fillet", + "strategy": "automatic", + "extra_face_ids": [] } }, { @@ -2679,10 +2665,15 @@ description: Artifact commands multi-axis-robot.kcl "command": { "type": "solid3d_fillet_edge", "object_id": "[uuid]", - "edge_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]" + ], "radius": 2.54, "tolerance": 0.0000001, - "cut_type": "fillet" + "cut_type": "fillet", + "strategy": "automatic", + "extra_face_ids": [] } }, { @@ -3336,10 +3327,15 @@ description: Artifact commands multi-axis-robot.kcl "command": { "type": "solid3d_fillet_edge", "object_id": "[uuid]", - "edge_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]" + ], "radius": 2.54, "tolerance": 0.0000001, - "cut_type": "fillet" + "cut_type": "fillet", + "strategy": "automatic", + "extra_face_ids": [] } }, { @@ -4157,10 +4153,15 @@ description: Artifact commands multi-axis-robot.kcl "command": { "type": "solid3d_fillet_edge", "object_id": "[uuid]", - "edge_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]" + ], "radius": 2.54, "tolerance": 0.0000001, - "cut_type": "fillet" + "cut_type": "fillet", + "strategy": "automatic", + "extra_face_ids": [] } }, { @@ -4345,10 +4346,15 @@ description: Artifact commands multi-axis-robot.kcl "command": { "type": "solid3d_fillet_edge", "object_id": "[uuid]", - "edge_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]" + ], "radius": 2.54, "tolerance": 0.0000001, - "cut_type": "fillet" + "cut_type": "fillet", + "strategy": "automatic", + "extra_face_ids": [] } }, { @@ -6438,10 +6444,15 @@ description: Artifact commands multi-axis-robot.kcl "command": { "type": "solid3d_fillet_edge", "object_id": "[uuid]", - "edge_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]" + ], "radius": 2.54, "tolerance": 0.0000001, - "cut_type": "fillet" + "cut_type": "fillet", + "strategy": "automatic", + "extra_face_ids": [] } }, { diff --git a/rust/kcl-lib/tests/kcl_samples/multi-axis-robot/artifact_graph_flowchart.snap.md b/rust/kcl-lib/tests/kcl_samples/multi-axis-robot/artifact_graph_flowchart.snap.md index 6d8e408a5..f2fe811ce 100644 --- a/rust/kcl-lib/tests/kcl_samples/multi-axis-robot/artifact_graph_flowchart.snap.md +++ b/rust/kcl-lib/tests/kcl_samples/multi-axis-robot/artifact_graph_flowchart.snap.md @@ -393,17 +393,14 @@ flowchart LR 341["SweepEdge Adjacent"] 342["SweepEdge Adjacent"] 343["SweepEdge Adjacent"] - 344["EdgeCut Chamfer
[795, 1072, 1]"] - 345["EdgeCut Chamfer
[795, 1072, 1]"] - 346["EdgeCut Chamfer
[795, 1072, 1]"] - 347["EdgeCut Chamfer
[795, 1072, 1]"] - 348["EdgeCut Fillet
[1312, 1373, 1]"] - 349["EdgeCut Fillet
[339, 401, 3]"] - 350["EdgeCut Fillet
[1088, 1150, 3]"] - 351["EdgeCut Fillet
[1875, 1937, 3]"] - 352["EdgeCut Fillet
[940, 1002, 4]"] - 353["EdgeCut Fillet
[1297, 1359, 4]"] - 354["EdgeCut Fillet
[1171, 1233, 5]"] + 344["EdgeCut Fillet
[795, 1072, 1]"] + 345["EdgeCut Fillet
[1312, 1373, 1]"] + 346["EdgeCut Fillet
[339, 401, 3]"] + 347["EdgeCut Fillet
[1088, 1150, 3]"] + 348["EdgeCut Fillet
[1875, 1937, 3]"] + 349["EdgeCut Fillet
[940, 1002, 4]"] + 350["EdgeCut Fillet
[1297, 1359, 4]"] + 351["EdgeCut Fillet
[1171, 1233, 5]"] 1 --- 7 2 --- 12 3 --- 13 @@ -1066,15 +1063,15 @@ flowchart LR 265 <--x 238 248 <--x 239 264 <--x 243 - 246 <--x 349 - 247 <--x 351 - 249 <--x 352 - 254 <--x 348 - 270 <--x 350 - 271 <--x 354 - 278 <--x 353 - 335 <--x 345 - 336 <--x 347 + 246 <--x 346 + 247 <--x 348 + 249 <--x 349 + 254 <--x 345 + 270 <--x 347 + 271 <--x 351 + 278 <--x 350 + 335 <--x 344 + 336 <--x 344 337 <--x 344 - 338 <--x 346 + 338 <--x 344 ``` diff --git a/rust/kcl-lib/tests/kcl_samples/multi-axis-robot/rendered_model.png b/rust/kcl-lib/tests/kcl_samples/multi-axis-robot/rendered_model.png index b58825d665d298d8f93a59a6c4ba7f1ea348f754..3299f653bda3a0d2d09880493d2d8f0a8ebe822e 100644 GIT binary patch delta 11882 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 delta 12384 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[576, 642, 5]"] - 239["EdgeCut Fillet
[576, 642, 5]"] 1 --- 23 2 --- 25 3 --- 26 @@ -449,7 +448,7 @@ flowchart LR 60 x--> 172 60 --- 181 60 --- 212 - 60 --- 239 + 60 <--x 238 61 --- 147 61 x--> 161 61 --- 201 diff --git a/rust/kcl-lib/tests/kcl_samples/sheet-metal-bracket/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/sheet-metal-bracket/artifact_commands.snap index f5d522a23..0a316a66b 100644 --- a/rust/kcl-lib/tests/kcl_samples/sheet-metal-bracket/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/sheet-metal-bracket/artifact_commands.snap @@ -1468,46 +1468,22 @@ description: Artifact commands sheet-metal-bracket.kcl "command": { "type": "solid3d_fillet_edge", "object_id": "[uuid]", - "edge_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]" + ], "radius": 12.7, "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 12.7, - "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 12.7, - "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 12.7, - "tolerance": 0.0000001, - "cut_type": "fillet" + "cut_type": "fillet", + "strategy": "automatic", + "extra_face_ids": [ + "[uuid]", + "[uuid]", + "[uuid]" + ] } }, { diff --git a/rust/kcl-lib/tests/kcl_samples/sheet-metal-bracket/artifact_graph_flowchart.snap.md b/rust/kcl-lib/tests/kcl_samples/sheet-metal-bracket/artifact_graph_flowchart.snap.md index fff5f52a1..c8f502744 100644 --- a/rust/kcl-lib/tests/kcl_samples/sheet-metal-bracket/artifact_graph_flowchart.snap.md +++ b/rust/kcl-lib/tests/kcl_samples/sheet-metal-bracket/artifact_graph_flowchart.snap.md @@ -137,9 +137,6 @@ flowchart LR 125["SweepEdge Adjacent"] 126["SweepEdge Adjacent"] 127["EdgeCut Fillet
[2644, 2815, 0]"] - 128["EdgeCut Fillet
[2644, 2815, 0]"] - 129["EdgeCut Fillet
[2644, 2815, 0]"] - 130["EdgeCut Fillet
[2644, 2815, 0]"] 1 --- 6 76 x--> 2 74 x--> 3 @@ -226,7 +223,7 @@ flowchart LR 21 x--> 77 21 --- 98 21 --- 107 - 21 --- 130 + 21 <--x 127 22 --- 74 22 x--> 77 22 --- 88 @@ -267,7 +264,7 @@ flowchart LR 32 x--> 77 32 --- 86 32 --- 110 - 32 --- 127 + 32 <--x 127 34 --- 56 34 x--> 74 34 --- 82 @@ -446,6 +443,6 @@ flowchart LR 100 <--x 78 101 <--x 78 102 <--x 78 - 86 <--x 129 - 98 <--x 128 + 86 <--x 127 + 98 <--x 127 ``` diff --git a/rust/kcl-lib/tests/kcl_samples/socket-head-cap-screw/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/socket-head-cap-screw/artifact_commands.snap index 2aac53689..43054b087 100644 --- a/rust/kcl-lib/tests/kcl_samples/socket-head-cap-screw/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/socket-head-cap-screw/artifact_commands.snap @@ -234,22 +234,18 @@ description: Artifact commands socket-head-cap-screw.kcl "command": { "type": "solid3d_fillet_edge", "object_id": "[uuid]", - "edge_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]", + "[uuid]" + ], "radius": 0.508, "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 0.508, - "tolerance": 0.0000001, - "cut_type": "fillet" + "cut_type": "fillet", + "strategy": "automatic", + "extra_face_ids": [ + "[uuid]" + ] } }, { @@ -895,10 +891,15 @@ description: Artifact commands socket-head-cap-screw.kcl "command": { "type": "solid3d_fillet_edge", "object_id": "[uuid]", - "edge_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]" + ], "radius": 0.508, "tolerance": 0.0000001, - "cut_type": "fillet" + "cut_type": "fillet", + "strategy": "automatic", + "extra_face_ids": [] } }, { diff --git a/rust/kcl-lib/tests/kcl_samples/socket-head-cap-screw/artifact_graph_flowchart.snap.md b/rust/kcl-lib/tests/kcl_samples/socket-head-cap-screw/artifact_graph_flowchart.snap.md index 5f6cec963..2d13e3ea5 100644 --- a/rust/kcl-lib/tests/kcl_samples/socket-head-cap-screw/artifact_graph_flowchart.snap.md +++ b/rust/kcl-lib/tests/kcl_samples/socket-head-cap-screw/artifact_graph_flowchart.snap.md @@ -55,8 +55,7 @@ flowchart LR 47["SweepEdge Adjacent"] 48["SweepEdge Adjacent"] 49["EdgeCut Fillet
[798, 864, 0]"] - 50["EdgeCut Fillet
[798, 864, 0]"] - 51["EdgeCut Fillet
[1571, 1630, 0]"] + 50["EdgeCut Fillet
[1571, 1630, 0]"] 1 --- 4 29 x--> 2 31 x--> 3 @@ -80,7 +79,7 @@ flowchart LR 7 x--> 31 7 --- 40 7 --- 48 - 7 --- 50 + 7 <--x 49 8 --- 26 8 x--> 29 8 --- 36 @@ -163,6 +162,6 @@ flowchart LR 37 <--x 30 38 <--x 30 39 <--x 30 - 33 <--x 51 + 33 <--x 50 40 <--x 49 ``` diff --git a/rust/kcl-lib/tests/kcl_samples/walkie-talkie/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/walkie-talkie/artifact_commands.snap index 0ad5c948d..26567fd26 100644 --- a/rust/kcl-lib/tests/kcl_samples/walkie-talkie/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/walkie-talkie/artifact_commands.snap @@ -641,46 +641,22 @@ description: Artifact commands walkie-talkie.kcl "command": { "type": "solid3d_fillet_edge", "object_id": "[uuid]", - "edge_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]" + ], "radius": 8.254999999999999, "tolerance": 0.0000001, - "cut_type": "chamfer" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 8.254999999999999, - "tolerance": 0.0000001, - "cut_type": "chamfer" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 8.254999999999999, - "tolerance": 0.0000001, - "cut_type": "chamfer" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 8.254999999999999, - "tolerance": 0.0000001, - "cut_type": "chamfer" + "cut_type": "fillet", + "strategy": "automatic", + "extra_face_ids": [ + "[uuid]", + "[uuid]", + "[uuid]" + ] } }, { @@ -40241,46 +40217,22 @@ description: Artifact commands walkie-talkie.kcl "command": { "type": "solid3d_fillet_edge", "object_id": "[uuid]", - "edge_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]", + "[uuid]", + "[uuid]", + "[uuid]" + ], "radius": 1.27, "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 1.27, - "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 1.27, - "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 1.27, - "tolerance": 0.0000001, - "cut_type": "fillet" + "cut_type": "fillet", + "strategy": "automatic", + "extra_face_ids": [ + "[uuid]", + "[uuid]", + "[uuid]" + ] } }, { @@ -42256,10 +42208,18 @@ description: Artifact commands walkie-talkie.kcl "command": { "type": "solid3d_fillet_edge", "object_id": "[uuid]", - "edge_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]", + "[uuid]" + ], "radius": 1.27, "tolerance": 0.0000001, - "cut_type": "chamfer" + "cut_type": "fillet", + "strategy": "automatic", + "extra_face_ids": [ + "[uuid]" + ] } }, { @@ -42268,10 +42228,18 @@ description: Artifact commands walkie-talkie.kcl "command": { "type": "solid3d_fillet_edge", "object_id": "[uuid]", - "edge_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]", + "[uuid]" + ], "radius": 1.27, "tolerance": 0.0000001, - "cut_type": "chamfer" + "cut_type": "fillet", + "strategy": "automatic", + "extra_face_ids": [ + "[uuid]" + ] } }, { @@ -42280,10 +42248,18 @@ description: Artifact commands walkie-talkie.kcl "command": { "type": "solid3d_fillet_edge", "object_id": "[uuid]", - "edge_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]", + "[uuid]" + ], "radius": 1.27, "tolerance": 0.0000001, - "cut_type": "chamfer" + "cut_type": "fillet", + "strategy": "automatic", + "extra_face_ids": [ + "[uuid]" + ] } }, { @@ -42292,58 +42268,18 @@ description: Artifact commands walkie-talkie.kcl "command": { "type": "solid3d_fillet_edge", "object_id": "[uuid]", - "edge_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]", + "[uuid]" + ], "radius": 1.27, "tolerance": 0.0000001, - "cut_type": "chamfer" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 1.27, - "tolerance": 0.0000001, - "cut_type": "chamfer" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 1.27, - "tolerance": 0.0000001, - "cut_type": "chamfer" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 1.27, - "tolerance": 0.0000001, - "cut_type": "chamfer" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 1.27, - "tolerance": 0.0000001, - "cut_type": "chamfer" + "cut_type": "fillet", + "strategy": "automatic", + "extra_face_ids": [ + "[uuid]" + ] } }, { diff --git a/rust/kcl-lib/tests/kcl_samples/walkie-talkie/artifact_graph_flowchart.snap.md b/rust/kcl-lib/tests/kcl_samples/walkie-talkie/artifact_graph_flowchart.snap.md index 8b8a2e6b9..10cb6735e 100644 --- a/rust/kcl-lib/tests/kcl_samples/walkie-talkie/artifact_graph_flowchart.snap.md +++ b/rust/kcl-lib/tests/kcl_samples/walkie-talkie/artifact_graph_flowchart.snap.md @@ -393,22 +393,12 @@ flowchart LR 351["SweepEdge Adjacent"] 352["SweepEdge Adjacent"] 353["SweepEdge Adjacent"] - 354["EdgeCut Chamfer
[657, 888, 2]"] - 355["EdgeCut Chamfer
[657, 888, 2]"] - 356["EdgeCut Chamfer
[657, 888, 2]"] - 357["EdgeCut Chamfer
[657, 888, 2]"] - 358["EdgeCut Fillet
[667, 873, 6]"] - 359["EdgeCut Fillet
[667, 873, 6]"] - 360["EdgeCut Fillet
[667, 873, 6]"] - 361["EdgeCut Fillet
[667, 873, 6]"] - 362["EdgeCut Chamfer
[707, 853, 8]"] - 363["EdgeCut Chamfer
[707, 853, 8]"] - 364["EdgeCut Chamfer
[707, 853, 8]"] - 365["EdgeCut Chamfer
[707, 853, 8]"] - 366["EdgeCut Chamfer
[707, 853, 8]"] - 367["EdgeCut Chamfer
[707, 853, 8]"] - 368["EdgeCut Chamfer
[707, 853, 8]"] - 369["EdgeCut Chamfer
[707, 853, 8]"] + 354["EdgeCut Fillet
[657, 888, 2]"] + 355["EdgeCut Fillet
[667, 873, 6]"] + 356["EdgeCut Fillet
[707, 853, 8]"] + 357["EdgeCut Fillet
[707, 853, 8]"] + 358["EdgeCut Fillet
[707, 853, 8]"] + 359["EdgeCut Fillet
[707, 853, 8]"] 1 --- 18 2 --- 22 3 --- 23 @@ -709,7 +699,6 @@ flowchart LR 115 --- 179 115 x--> 228 115 --- 256 - 115 x--> 307 115 --- 308 164 <--x 116 116 --- 184 @@ -1161,20 +1150,20 @@ flowchart LR 294 <--x 244 295 <--x 244 296 <--x 244 - 301 <--x 362 - 303 <--x 365 - 305 <--x 360 - 306 <--x 359 - 307 <--x 361 - 308 <--x 358 - 314 <--x 363 - 315 <--x 364 - 319 <--x 369 - 320 <--x 367 - 322 <--x 355 - 323 <--x 356 + 301 <--x 356 + 303 <--x 356 + 305 <--x 355 + 306 <--x 355 + 307 <--x 355 + 308 <--x 355 + 314 <--x 357 + 315 <--x 357 + 319 <--x 358 + 320 <--x 358 + 322 <--x 354 + 323 <--x 354 324 <--x 354 - 325 <--x 357 - 350 <--x 368 - 353 <--x 366 + 325 <--x 354 + 350 <--x 359 + 353 <--x 359 ``` diff --git a/rust/kcl-lib/tests/kcl_samples/walkie-talkie/rendered_model.png b/rust/kcl-lib/tests/kcl_samples/walkie-talkie/rendered_model.png index f209790f7b3589493cacc57638e4e4e757c78833..d6ec46fbe05dbda89e6505eac25abae51e1a4149 100644 GIT binary patch literal 59228 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ð2K@?Yz>uf+r6h~ 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 x<<Jl}iI{{i+&VGjTR diff --git a/rust/kcl-lib/tests/pattern_into_union/artifact_commands.snap b/rust/kcl-lib/tests/pattern_into_union/artifact_commands.snap index 67833b421..e9a90f0f9 100644 --- a/rust/kcl-lib/tests/pattern_into_union/artifact_commands.snap +++ b/rust/kcl-lib/tests/pattern_into_union/artifact_commands.snap @@ -1023,10 +1023,15 @@ description: Artifact commands pattern_into_union.kcl "command": { "type": "solid3d_fillet_edge", "object_id": "[uuid]", - "edge_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]" + ], "radius": 0.1, "tolerance": 0.0000001, - "cut_type": "fillet" + "cut_type": "fillet", + "strategy": "automatic", + "extra_face_ids": [] } }, { @@ -2002,10 +2007,15 @@ description: Artifact commands pattern_into_union.kcl "command": { "type": "solid3d_fillet_edge", "object_id": "[uuid]", - "edge_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]" + ], "radius": 0.1, "tolerance": 0.0000001, - "cut_type": "fillet" + "cut_type": "fillet", + "strategy": "automatic", + "extra_face_ids": [] } }, { diff --git a/rust/kcl-lib/tests/pentagon_fillet_sugar/artifact_commands.snap b/rust/kcl-lib/tests/pentagon_fillet_sugar/artifact_commands.snap index 8ad1a08ff..401445ead 100644 --- a/rust/kcl-lib/tests/pentagon_fillet_sugar/artifact_commands.snap +++ b/rust/kcl-lib/tests/pentagon_fillet_sugar/artifact_commands.snap @@ -584,22 +584,18 @@ description: Artifact commands pentagon_fillet_sugar.kcl "command": { "type": "solid3d_fillet_edge", "object_id": "[uuid]", - "edge_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]", + "[uuid]" + ], "radius": 5.0, "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 5.0, - "tolerance": 0.0000001, - "cut_type": "fillet" + "cut_type": "fillet", + "strategy": "automatic", + "extra_face_ids": [ + "[uuid]" + ] } }, { @@ -712,22 +708,18 @@ description: Artifact commands pentagon_fillet_sugar.kcl "command": { "type": "solid3d_fillet_edge", "object_id": "[uuid]", - "edge_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]", + "[uuid]" + ], "radius": 5.0, "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 5.0, - "tolerance": 0.0000001, - "cut_type": "fillet" + "cut_type": "fillet", + "strategy": "automatic", + "extra_face_ids": [ + "[uuid]" + ] } }, { diff --git a/rust/kcl-lib/tests/pentagon_fillet_sugar/artifact_graph_flowchart.snap.md b/rust/kcl-lib/tests/pentagon_fillet_sugar/artifact_graph_flowchart.snap.md index 3aab9389e..f3196df4b 100644 --- a/rust/kcl-lib/tests/pentagon_fillet_sugar/artifact_graph_flowchart.snap.md +++ b/rust/kcl-lib/tests/pentagon_fillet_sugar/artifact_graph_flowchart.snap.md @@ -44,9 +44,7 @@ flowchart LR 36["SweepEdge Adjacent"] 37["SweepEdge Adjacent"] 38["EdgeCut Fillet
[685, 812, 0]"] - 39["EdgeCut Fillet
[685, 812, 0]"] - 40["EdgeCut Fillet
[896, 1023, 0]"] - 41["EdgeCut Fillet
[896, 1023, 0]"] + 39["EdgeCut Fillet
[896, 1023, 0]"] 1 --- 4 22 x--> 2 23 x--> 3 @@ -80,12 +78,12 @@ flowchart LR 10 x--> 22 10 --- 29 10 --- 34 - 10 --- 38 + 10 <--x 38 11 --- 19 11 x--> 23 11 --- 28 11 --- 33 - 11 --- 40 + 11 <--x 39 16 --- 21 16 --- 22 16 --- 23 @@ -119,6 +117,6 @@ flowchart LR 30 <--x 27 31 <--x 27 32 <--x 27 - 28 <--x 41 - 29 <--x 39 + 28 <--x 39 + 29 <--x 38 ``` diff --git a/rust/kcl-lib/tests/rotate_after_fillet/artifact_commands.snap b/rust/kcl-lib/tests/rotate_after_fillet/artifact_commands.snap index 74d13564b..f8e7c02f2 100644 --- a/rust/kcl-lib/tests/rotate_after_fillet/artifact_commands.snap +++ b/rust/kcl-lib/tests/rotate_after_fillet/artifact_commands.snap @@ -234,22 +234,18 @@ description: Artifact commands rotate_after_fillet.kcl "command": { "type": "solid3d_fillet_edge", "object_id": "[uuid]", - "edge_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]", + "[uuid]" + ], "radius": 0.02, "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 0.02, - "tolerance": 0.0000001, - "cut_type": "fillet" + "cut_type": "fillet", + "strategy": "automatic", + "extra_face_ids": [ + "[uuid]" + ] } }, { @@ -895,10 +891,15 @@ description: Artifact commands rotate_after_fillet.kcl "command": { "type": "solid3d_fillet_edge", "object_id": "[uuid]", - "edge_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]" + ], "radius": 0.02, "tolerance": 0.0000001, - "cut_type": "fillet" + "cut_type": "fillet", + "strategy": "automatic", + "extra_face_ids": [] } }, { diff --git a/rust/kcl-lib/tests/rotate_after_fillet/artifact_graph_flowchart.snap.md b/rust/kcl-lib/tests/rotate_after_fillet/artifact_graph_flowchart.snap.md index bf6b0dea1..03e57b3c8 100644 --- a/rust/kcl-lib/tests/rotate_after_fillet/artifact_graph_flowchart.snap.md +++ b/rust/kcl-lib/tests/rotate_after_fillet/artifact_graph_flowchart.snap.md @@ -55,8 +55,7 @@ flowchart LR 47["SweepEdge Adjacent"] 48["SweepEdge Adjacent"] 49["EdgeCut Fillet
[456, 522, 0]"] - 50["EdgeCut Fillet
[456, 522, 0]"] - 51["EdgeCut Fillet
[1381, 1440, 0]"] + 50["EdgeCut Fillet
[1381, 1440, 0]"] 1 --- 4 29 x--> 2 31 x--> 3 @@ -80,7 +79,7 @@ flowchart LR 7 x--> 31 7 --- 40 7 --- 48 - 7 --- 50 + 7 <--x 49 8 --- 26 8 x--> 29 8 --- 36 @@ -163,6 +162,6 @@ flowchart LR 37 <--x 30 38 <--x 30 39 <--x 30 - 33 <--x 51 + 33 <--x 50 40 <--x 49 ``` diff --git a/rust/kcl-lib/tests/scale_after_fillet/artifact_commands.snap b/rust/kcl-lib/tests/scale_after_fillet/artifact_commands.snap index 805d7808a..5a80bd29b 100644 --- a/rust/kcl-lib/tests/scale_after_fillet/artifact_commands.snap +++ b/rust/kcl-lib/tests/scale_after_fillet/artifact_commands.snap @@ -234,22 +234,18 @@ description: Artifact commands scale_after_fillet.kcl "command": { "type": "solid3d_fillet_edge", "object_id": "[uuid]", - "edge_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]", + "[uuid]" + ], "radius": 0.02, "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 0.02, - "tolerance": 0.0000001, - "cut_type": "fillet" + "cut_type": "fillet", + "strategy": "automatic", + "extra_face_ids": [ + "[uuid]" + ] } }, { @@ -895,10 +891,15 @@ description: Artifact commands scale_after_fillet.kcl "command": { "type": "solid3d_fillet_edge", "object_id": "[uuid]", - "edge_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]" + ], "radius": 0.02, "tolerance": 0.0000001, - "cut_type": "fillet" + "cut_type": "fillet", + "strategy": "automatic", + "extra_face_ids": [] } }, { diff --git a/rust/kcl-lib/tests/scale_after_fillet/artifact_graph_flowchart.snap.md b/rust/kcl-lib/tests/scale_after_fillet/artifact_graph_flowchart.snap.md index bf6b0dea1..03e57b3c8 100644 --- a/rust/kcl-lib/tests/scale_after_fillet/artifact_graph_flowchart.snap.md +++ b/rust/kcl-lib/tests/scale_after_fillet/artifact_graph_flowchart.snap.md @@ -55,8 +55,7 @@ flowchart LR 47["SweepEdge Adjacent"] 48["SweepEdge Adjacent"] 49["EdgeCut Fillet
[456, 522, 0]"] - 50["EdgeCut Fillet
[456, 522, 0]"] - 51["EdgeCut Fillet
[1381, 1440, 0]"] + 50["EdgeCut Fillet
[1381, 1440, 0]"] 1 --- 4 29 x--> 2 31 x--> 3 @@ -80,7 +79,7 @@ flowchart LR 7 x--> 31 7 --- 40 7 --- 48 - 7 --- 50 + 7 <--x 49 8 --- 26 8 x--> 29 8 --- 36 @@ -163,6 +162,6 @@ flowchart LR 37 <--x 30 38 <--x 30 39 <--x 30 - 33 <--x 51 + 33 <--x 50 40 <--x 49 ``` diff --git a/rust/kcl-lib/tests/sketch-on-chamfer-two-times-different-order/artifact_commands.snap b/rust/kcl-lib/tests/sketch-on-chamfer-two-times-different-order/artifact_commands.snap index 52a322237..ea1c1735b 100644 --- a/rust/kcl-lib/tests/sketch-on-chamfer-two-times-different-order/artifact_commands.snap +++ b/rust/kcl-lib/tests/sketch-on-chamfer-two-times-different-order/artifact_commands.snap @@ -418,10 +418,15 @@ description: Artifact commands sketch-on-chamfer-two-times-different-order.kcl "command": { "type": "solid3d_fillet_edge", "object_id": "[uuid]", - "edge_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]" + ], "radius": 20.0, "tolerance": 0.0000001, - "cut_type": "fillet" + "cut_type": "fillet", + "strategy": "automatic", + "extra_face_ids": [] } }, { @@ -430,10 +435,15 @@ description: Artifact commands sketch-on-chamfer-two-times-different-order.kcl "command": { "type": "solid3d_fillet_edge", "object_id": "[uuid]", - "edge_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]" + ], "radius": 50.0, "tolerance": 0.0000001, - "cut_type": "chamfer" + "cut_type": "chamfer", + "strategy": "automatic", + "extra_face_ids": [] } }, { @@ -452,10 +462,15 @@ description: Artifact commands sketch-on-chamfer-two-times-different-order.kcl "command": { "type": "solid3d_fillet_edge", "object_id": "[uuid]", - "edge_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]" + ], "radius": 50.0, "tolerance": 0.0000001, - "cut_type": "chamfer" + "cut_type": "chamfer", + "strategy": "automatic", + "extra_face_ids": [] } }, { diff --git a/rust/kcl-lib/tests/sketch-on-chamfer-two-times-different-order/artifact_graph_flowchart.snap.md b/rust/kcl-lib/tests/sketch-on-chamfer-two-times-different-order/artifact_graph_flowchart.snap.md index 3b6a83169..ad205973a 100644 --- a/rust/kcl-lib/tests/sketch-on-chamfer-two-times-different-order/artifact_graph_flowchart.snap.md +++ b/rust/kcl-lib/tests/sketch-on-chamfer-two-times-different-order/artifact_graph_flowchart.snap.md @@ -65,7 +65,6 @@ flowchart LR 1 --- 6 2 <--x 5 2 --- 7 - 12 <--x 2 3 <--x 4 3 --- 8 19 <--x 3 @@ -100,7 +99,7 @@ flowchart LR 10 x--> 37 10 --- 41 10 --- 50 - 10 --- 56 + 10 <--x 56 11 --- 29 11 x--> 37 11 --- 43 diff --git a/rust/kcl-lib/tests/sketch-on-chamfer-two-times/artifact_commands.snap b/rust/kcl-lib/tests/sketch-on-chamfer-two-times/artifact_commands.snap index fe0dea41a..74cfcd512 100644 --- a/rust/kcl-lib/tests/sketch-on-chamfer-two-times/artifact_commands.snap +++ b/rust/kcl-lib/tests/sketch-on-chamfer-two-times/artifact_commands.snap @@ -418,10 +418,15 @@ description: Artifact commands sketch-on-chamfer-two-times.kcl "command": { "type": "solid3d_fillet_edge", "object_id": "[uuid]", - "edge_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]" + ], "radius": 20.0, "tolerance": 0.0000001, - "cut_type": "fillet" + "cut_type": "fillet", + "strategy": "automatic", + "extra_face_ids": [] } }, { @@ -430,10 +435,15 @@ description: Artifact commands sketch-on-chamfer-two-times.kcl "command": { "type": "solid3d_fillet_edge", "object_id": "[uuid]", - "edge_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]" + ], "radius": 50.0, "tolerance": 0.0000001, - "cut_type": "chamfer" + "cut_type": "chamfer", + "strategy": "automatic", + "extra_face_ids": [] } }, { @@ -442,10 +452,15 @@ description: Artifact commands sketch-on-chamfer-two-times.kcl "command": { "type": "solid3d_fillet_edge", "object_id": "[uuid]", - "edge_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]" + ], "radius": 50.0, "tolerance": 0.0000001, - "cut_type": "chamfer" + "cut_type": "chamfer", + "strategy": "automatic", + "extra_face_ids": [] } }, { diff --git a/rust/kcl-lib/tests/sketch-on-chamfer-two-times/artifact_graph_flowchart.snap.md b/rust/kcl-lib/tests/sketch-on-chamfer-two-times/artifact_graph_flowchart.snap.md index 460da6d7f..342ad1ca9 100644 --- a/rust/kcl-lib/tests/sketch-on-chamfer-two-times/artifact_graph_flowchart.snap.md +++ b/rust/kcl-lib/tests/sketch-on-chamfer-two-times/artifact_graph_flowchart.snap.md @@ -65,7 +65,6 @@ flowchart LR 1 --- 6 2 <--x 5 2 --- 7 - 12 <--x 2 3 <--x 4 3 --- 8 19 <--x 3 @@ -100,7 +99,7 @@ flowchart LR 10 x--> 37 10 --- 42 10 --- 50 - 10 --- 56 + 10 <--x 56 11 --- 29 11 x--> 37 11 --- 43 diff --git a/rust/kcl-lib/tests/sketch_on_face_after_fillets_referencing_face/artifact_commands.snap b/rust/kcl-lib/tests/sketch_on_face_after_fillets_referencing_face/artifact_commands.snap index eafcc86e0..b2f87e9ee 100644 --- a/rust/kcl-lib/tests/sketch_on_face_after_fillets_referencing_face/artifact_commands.snap +++ b/rust/kcl-lib/tests/sketch_on_face_after_fillets_referencing_face/artifact_commands.snap @@ -529,10 +529,15 @@ description: Artifact commands sketch_on_face_after_fillets_referencing_face.kcl "command": { "type": "solid3d_fillet_edge", "object_id": "[uuid]", - "edge_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]" + ], "radius": 0.25, "tolerance": 0.0000001, - "cut_type": "fillet" + "cut_type": "fillet", + "strategy": "automatic", + "extra_face_ids": [] } }, { @@ -551,10 +556,15 @@ description: Artifact commands sketch_on_face_after_fillets_referencing_face.kcl "command": { "type": "solid3d_fillet_edge", "object_id": "[uuid]", - "edge_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]" + ], "radius": 0.5707134902949093, "tolerance": 0.0000001, - "cut_type": "fillet" + "cut_type": "fillet", + "strategy": "automatic", + "extra_face_ids": [] } }, { diff --git a/rust/kcl-lib/tests/translate_after_fillet/artifact_commands.snap b/rust/kcl-lib/tests/translate_after_fillet/artifact_commands.snap index 47d5a33ad..13765c550 100644 --- a/rust/kcl-lib/tests/translate_after_fillet/artifact_commands.snap +++ b/rust/kcl-lib/tests/translate_after_fillet/artifact_commands.snap @@ -234,22 +234,18 @@ description: Artifact commands translate_after_fillet.kcl "command": { "type": "solid3d_fillet_edge", "object_id": "[uuid]", - "edge_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]", + "[uuid]" + ], "radius": 0.02, "tolerance": 0.0000001, - "cut_type": "fillet" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_fillet_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "radius": 0.02, - "tolerance": 0.0000001, - "cut_type": "fillet" + "cut_type": "fillet", + "strategy": "automatic", + "extra_face_ids": [ + "[uuid]" + ] } }, { @@ -895,10 +891,15 @@ description: Artifact commands translate_after_fillet.kcl "command": { "type": "solid3d_fillet_edge", "object_id": "[uuid]", - "edge_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]" + ], "radius": 0.02, "tolerance": 0.0000001, - "cut_type": "fillet" + "cut_type": "fillet", + "strategy": "automatic", + "extra_face_ids": [] } }, { diff --git a/rust/kcl-lib/tests/translate_after_fillet/artifact_graph_flowchart.snap.md b/rust/kcl-lib/tests/translate_after_fillet/artifact_graph_flowchart.snap.md index bf6b0dea1..03e57b3c8 100644 --- a/rust/kcl-lib/tests/translate_after_fillet/artifact_graph_flowchart.snap.md +++ b/rust/kcl-lib/tests/translate_after_fillet/artifact_graph_flowchart.snap.md @@ -55,8 +55,7 @@ flowchart LR 47["SweepEdge Adjacent"] 48["SweepEdge Adjacent"] 49["EdgeCut Fillet
[456, 522, 0]"] - 50["EdgeCut Fillet
[456, 522, 0]"] - 51["EdgeCut Fillet
[1381, 1440, 0]"] + 50["EdgeCut Fillet
[1381, 1440, 0]"] 1 --- 4 29 x--> 2 31 x--> 3 @@ -80,7 +79,7 @@ flowchart LR 7 x--> 31 7 --- 40 7 --- 48 - 7 --- 50 + 7 <--x 49 8 --- 26 8 x--> 29 8 --- 36 @@ -163,6 +162,6 @@ flowchart LR 37 <--x 30 38 <--x 30 39 <--x 30 - 33 <--x 51 + 33 <--x 50 40 <--x 49 ```