diff --git a/public/kcl-samples/screenshots/surgical-drill-guide.png b/public/kcl-samples/screenshots/surgical-drill-guide.png
index e69de29bb..b75b445e2 100644
Binary files a/public/kcl-samples/screenshots/surgical-drill-guide.png and b/public/kcl-samples/screenshots/surgical-drill-guide.png differ
diff --git a/public/kcl-samples/screenshots/teapot.png b/public/kcl-samples/screenshots/teapot.png
index e69de29bb..e6e5b5b5f 100644
Binary files a/public/kcl-samples/screenshots/teapot.png and b/public/kcl-samples/screenshots/teapot.png differ
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 0406a627f..07c2c5abf 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
@@ -2546,174 +2546,6 @@ description: Artifact commands multi-axis-robot.kcl
"planar_normal": null
}
},
- {
- "cmdId": "[uuid]",
- "range": [],
- "command": {
- "type": "extrude",
- "target": "[uuid]",
- "distance": 3.8099999999999996,
- "faces": null,
- "opposite": "None"
- }
- },
- {
- "cmdId": "[uuid]",
- "range": [],
- "command": {
- "type": "sketch_mode_disable"
- }
- },
- {
- "cmdId": "[uuid]",
- "range": [],
- "command": {
- "type": "object_bring_to_front",
- "object_id": "[uuid]"
- }
- },
- {
- "cmdId": "[uuid]",
- "range": [],
- "command": {
- "type": "solid3d_get_extrusion_face_info",
- "object_id": "[uuid]",
- "edge_id": "[uuid]"
- }
- },
- {
- "cmdId": "[uuid]",
- "range": [],
- "command": {
- "type": "solid3d_get_adjacency_info",
- "object_id": "[uuid]",
- "edge_id": "[uuid]"
- }
- },
- {
- "cmdId": "[uuid]",
- "range": [],
- "command": {
- "type": "enable_sketch_mode",
- "entity_id": "[uuid]",
- "ortho": false,
- "animated": false,
- "adjust_camera": false,
- "planar_normal": null
- }
- },
- {
- "cmdId": "[uuid]",
- "range": [],
- "command": {
- "type": "extrude",
- "target": "[uuid]",
- "distance": 3.8099999999999996,
- "faces": null,
- "opposite": "None"
- }
- },
- {
- "cmdId": "[uuid]",
- "range": [],
- "command": {
- "type": "sketch_mode_disable"
- }
- },
- {
- "cmdId": "[uuid]",
- "range": [],
- "command": {
- "type": "object_bring_to_front",
- "object_id": "[uuid]"
- }
- },
- {
- "cmdId": "[uuid]",
- "range": [],
- "command": {
- "type": "solid3d_get_extrusion_face_info",
- "object_id": "[uuid]",
- "edge_id": "[uuid]"
- }
- },
- {
- "cmdId": "[uuid]",
- "range": [],
- "command": {
- "type": "solid3d_get_adjacency_info",
- "object_id": "[uuid]",
- "edge_id": "[uuid]"
- }
- },
- {
- "cmdId": "[uuid]",
- "range": [],
- "command": {
- "type": "enable_sketch_mode",
- "entity_id": "[uuid]",
- "ortho": false,
- "animated": false,
- "adjust_camera": false,
- "planar_normal": null
- }
- },
- {
- "cmdId": "[uuid]",
- "range": [],
- "command": {
- "type": "extrude",
- "target": "[uuid]",
- "distance": 3.8099999999999996,
- "faces": null,
- "opposite": "None"
- }
- },
- {
- "cmdId": "[uuid]",
- "range": [],
- "command": {
- "type": "sketch_mode_disable"
- }
- },
- {
- "cmdId": "[uuid]",
- "range": [],
- "command": {
- "type": "object_bring_to_front",
- "object_id": "[uuid]"
- }
- },
- {
- "cmdId": "[uuid]",
- "range": [],
- "command": {
- "type": "solid3d_get_extrusion_face_info",
- "object_id": "[uuid]",
- "edge_id": "[uuid]"
- }
- },
- {
- "cmdId": "[uuid]",
- "range": [],
- "command": {
- "type": "solid3d_get_adjacency_info",
- "object_id": "[uuid]",
- "edge_id": "[uuid]"
- }
- },
- {
- "cmdId": "[uuid]",
- "range": [],
- "command": {
- "type": "enable_sketch_mode",
- "entity_id": "[uuid]",
- "ortho": false,
- "animated": false,
- "adjust_camera": false,
- "planar_normal": null
- }
- },
{
"cmdId": "[uuid]",
"range": [],
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 7d757975e..279c0f1b3 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
@@ -92,68 +92,68 @@ flowchart LR
195["Segment
[1741, 1911, 4]"]
196[Solid2d]
end
- subgraph path205 [Path]
- 205["Path
[2247, 2400, 4]"]
- 206["Segment
[2247, 2400, 4]"]
- 207[Solid2d]
+ subgraph path202 [Path]
+ 202["Path
[2247, 2400, 4]"]
+ 203["Segment
[2247, 2400, 4]"]
+ 204[Solid2d]
end
- subgraph path214 [Path]
- 214["Path
[289, 478, 5]"]
- 215["Segment
[484, 570, 5]"]
- 216["Segment
[576, 630, 5]"]
- 217["Segment
[636, 722, 5]"]
- 218["Segment
[728, 798, 5]"]
- 219["Segment
[804, 811, 5]"]
- 220[Solid2d]
+ subgraph path211 [Path]
+ 211["Path
[289, 478, 5]"]
+ 212["Segment
[484, 570, 5]"]
+ 213["Segment
[576, 630, 5]"]
+ 214["Segment
[636, 722, 5]"]
+ 215["Segment
[728, 798, 5]"]
+ 216["Segment
[804, 811, 5]"]
+ 217[Solid2d]
end
- subgraph path236 [Path]
- 236["Path
[930, 1117, 5]"]
- 237["Segment
[930, 1117, 5]"]
- 238[Solid2d]
+ subgraph path233 [Path]
+ 233["Path
[930, 1117, 5]"]
+ 234["Segment
[930, 1117, 5]"]
+ 235[Solid2d]
end
- subgraph path245 [Path]
- 245["Path
[1327, 1494, 5]"]
- 246["Segment
[1327, 1494, 5]"]
- 247[Solid2d]
+ subgraph path242 [Path]
+ 242["Path
[1327, 1494, 5]"]
+ 243["Segment
[1327, 1494, 5]"]
+ 244[Solid2d]
end
- subgraph path260 [Path]
- 260["Path
[1898, 2140, 5]"]
- 261["Segment
[1898, 2140, 5]"]
- 262[Solid2d]
+ subgraph path257 [Path]
+ 257["Path
[1898, 2140, 5]"]
+ 258["Segment
[1898, 2140, 5]"]
+ 259[Solid2d]
end
- subgraph path269 [Path]
- 269["Path
[2244, 2484, 5]"]
- 270["Segment
[2244, 2484, 5]"]
- 271[Solid2d]
+ subgraph path266 [Path]
+ 266["Path
[2244, 2484, 5]"]
+ 267["Segment
[2244, 2484, 5]"]
+ 268[Solid2d]
end
- subgraph path278 [Path]
- 278["Path
[2643, 2681, 5]"]
- 279["Segment
[2643, 2681, 5]"]
- 280[Solid2d]
+ subgraph path275 [Path]
+ 275["Path
[2643, 2681, 5]"]
+ 276["Segment
[2643, 2681, 5]"]
+ 277[Solid2d]
end
- subgraph path287 [Path]
- 287["Path
[2816, 2997, 5]"]
- 288["Segment
[3003, 3071, 5]"]
- 289["Segment
[3077, 3187, 5]"]
- 290["Segment
[3193, 3261, 5]"]
- 291["Segment
[3267, 3343, 5]"]
- 292["Segment
[3349, 3425, 5]"]
- 293["Segment
[3431, 3505, 5]"]
- 294["Segment
[3511, 3567, 5]"]
- 295["Segment
[3573, 3580, 5]"]
- 296[Solid2d]
+ subgraph path284 [Path]
+ 284["Path
[2816, 2997, 5]"]
+ 285["Segment
[3003, 3071, 5]"]
+ 286["Segment
[3077, 3187, 5]"]
+ 287["Segment
[3193, 3261, 5]"]
+ 288["Segment
[3267, 3343, 5]"]
+ 289["Segment
[3349, 3425, 5]"]
+ 290["Segment
[3431, 3505, 5]"]
+ 291["Segment
[3511, 3567, 5]"]
+ 292["Segment
[3573, 3580, 5]"]
+ 293[Solid2d]
end
- subgraph path321 [Path]
- 321["Path
[3714, 3895, 5]"]
- 322["Segment
[3901, 3971, 5]"]
- 323["Segment
[3977, 4092, 5]"]
- 324["Segment
[4098, 4168, 5]"]
- 325["Segment
[4174, 4252, 5]"]
- 326["Segment
[4258, 4336, 5]"]
- 327["Segment
[4342, 4418, 5]"]
- 328["Segment
[4424, 4480, 5]"]
- 329["Segment
[4486, 4493, 5]"]
- 330[Solid2d]
+ subgraph path318 [Path]
+ 318["Path
[3714, 3895, 5]"]
+ 319["Segment
[3901, 3971, 5]"]
+ 320["Segment
[3977, 4092, 5]"]
+ 321["Segment
[4098, 4168, 5]"]
+ 322["Segment
[4174, 4252, 5]"]
+ 323["Segment
[4258, 4336, 5]"]
+ 324["Segment
[4342, 4418, 5]"]
+ 325["Segment
[4424, 4480, 5]"]
+ 326["Segment
[4486, 4493, 5]"]
+ 327[Solid2d]
end
1["Plane
[219, 236, 1]"]
9["Sweep Extrusion
[742, 789, 1]"]
@@ -332,83 +332,86 @@ flowchart LR
%% face_code_ref=Missing NodePath
200["SweepEdge Opposite"]
201["SweepEdge Adjacent"]
- 202["Sweep Extrusion
[2157, 2190, 4]"]
- 203["Sweep Extrusion
[2157, 2190, 4]"]
- 204["Sweep Extrusion
[2157, 2190, 4]"]
- 208["Sweep Extrusion
[2402, 2432, 4]"]
- 209[Wall]
+ 205["Sweep Extrusion
[2402, 2432, 4]"]
+ 206[Wall]
%% face_code_ref=Missing NodePath
- 210["Cap End"]
+ 207["Cap End"]
+ %% face_code_ref=Missing NodePath
+ 208["SweepEdge Opposite"]
+ 209["SweepEdge Adjacent"]
+ 210["Plane
[260, 283, 5]"]
+ 218["Sweep Extrusion
[825, 873, 5]"]
+ 219[Wall]
+ %% face_code_ref=Missing NodePath
+ 220[Wall]
+ %% face_code_ref=Missing NodePath
+ 221[Wall]
%% face_code_ref=Missing NodePath
- 211["SweepEdge Opposite"]
- 212["SweepEdge Adjacent"]
- 213["Plane
[260, 283, 5]"]
- 221["Sweep Extrusion
[825, 873, 5]"]
222[Wall]
%% face_code_ref=Missing NodePath
- 223[Wall]
+ 223["Cap Start"]
+ 224["Cap End"]
+ 225["SweepEdge Opposite"]
+ 226["SweepEdge Adjacent"]
+ 227["SweepEdge Opposite"]
+ 228["SweepEdge Adjacent"]
+ 229["SweepEdge Opposite"]
+ 230["SweepEdge Adjacent"]
+ 231["SweepEdge Opposite"]
+ 232["SweepEdge Adjacent"]
+ 236["Sweep Extrusion
[1132, 1165, 5]"]
+ 237[Wall]
%% face_code_ref=Missing NodePath
- 224[Wall]
+ 238["Cap End"]
+ 239["SweepEdge Opposite"]
+ 240["SweepEdge Adjacent"]
+ 241["EdgeCut Fillet
[1171, 1233, 5]"]
+ 245["Sweep Extrusion
[1737, 1770, 5]"]
+ 246[Wall]
%% face_code_ref=Missing NodePath
- 225[Wall]
+ 247["Cap End"]
%% face_code_ref=Missing NodePath
- 226["Cap Start"]
- 227["Cap End"]
- 228["SweepEdge Opposite"]
- 229["SweepEdge Adjacent"]
- 230["SweepEdge Opposite"]
- 231["SweepEdge Adjacent"]
- 232["SweepEdge Opposite"]
- 233["SweepEdge Adjacent"]
- 234["SweepEdge Opposite"]
- 235["SweepEdge Adjacent"]
- 239["Sweep Extrusion
[1132, 1165, 5]"]
- 240[Wall]
- %% face_code_ref=Missing NodePath
- 241["Cap End"]
- 242["SweepEdge Opposite"]
- 243["SweepEdge Adjacent"]
- 244["EdgeCut Fillet
[1171, 1233, 5]"]
- 248["Sweep Extrusion
[1737, 1770, 5]"]
- 249[Wall]
- %% face_code_ref=Missing NodePath
- 250["Cap End"]
- %% face_code_ref=Missing NodePath
- 251["SweepEdge Opposite"]
- 252["SweepEdge Adjacent"]
+ 248["SweepEdge Opposite"]
+ 249["SweepEdge Adjacent"]
+ 250["Sweep Extrusion
[1737, 1770, 5]"]
+ 251["Sweep Extrusion
[1737, 1770, 5]"]
+ 252["Sweep Extrusion
[1737, 1770, 5]"]
253["Sweep Extrusion
[1737, 1770, 5]"]
254["Sweep Extrusion
[1737, 1770, 5]"]
255["Sweep Extrusion
[1737, 1770, 5]"]
256["Sweep Extrusion
[1737, 1770, 5]"]
- 257["Sweep Extrusion
[1737, 1770, 5]"]
- 258["Sweep Extrusion
[1737, 1770, 5]"]
- 259["Sweep Extrusion
[1737, 1770, 5]"]
- 263["Sweep Extrusion
[2154, 2187, 5]"]
- 264[Wall]
+ 260["Sweep Extrusion
[2154, 2187, 5]"]
+ 261[Wall]
%% face_code_ref=Missing NodePath
- 265["Cap Start"]
+ 262["Cap Start"]
%% face_code_ref=Missing NodePath
- 266["Cap End"]
+ 263["Cap End"]
%% face_code_ref=Missing NodePath
- 267["SweepEdge Opposite"]
- 268["SweepEdge Adjacent"]
- 272["Sweep Extrusion
[2499, 2532, 5]"]
- 273[Wall]
+ 264["SweepEdge Opposite"]
+ 265["SweepEdge Adjacent"]
+ 269["Sweep Extrusion
[2499, 2532, 5]"]
+ 270[Wall]
%% face_code_ref=Missing NodePath
- 274["Cap Start"]
- 275["Cap End"]
+ 271["Cap Start"]
+ 272["Cap End"]
%% face_code_ref=Missing NodePath
- 276["SweepEdge Opposite"]
- 277["SweepEdge Adjacent"]
- 281["Sweep Extrusion
[2696, 2730, 5]"]
- 282[Wall]
+ 273["SweepEdge Opposite"]
+ 274["SweepEdge Adjacent"]
+ 278["Sweep Extrusion
[2696, 2730, 5]"]
+ 279[Wall]
%% face_code_ref=Missing NodePath
- 283["Cap Start"]
- 284["Cap End"]
+ 280["Cap Start"]
+ 281["Cap End"]
+ %% face_code_ref=Missing NodePath
+ 282["SweepEdge Opposite"]
+ 283["SweepEdge Adjacent"]
+ 294["Sweep Extrusion
[3595, 3628, 5]"]
+ 295[Wall]
+ %% face_code_ref=Missing NodePath
+ 296[Wall]
+ %% face_code_ref=Missing NodePath
+ 297[Wall]
%% face_code_ref=Missing NodePath
- 285["SweepEdge Opposite"]
- 286["SweepEdge Adjacent"]
- 297["Sweep Extrusion
[3595, 3628, 5]"]
298[Wall]
%% face_code_ref=Missing NodePath
299[Wall]
@@ -417,31 +420,31 @@ flowchart LR
%% face_code_ref=Missing NodePath
301[Wall]
%% face_code_ref=Missing NodePath
- 302[Wall]
+ 302["Cap Start"]
%% face_code_ref=Missing NodePath
- 303[Wall]
+ 303["Cap End"]
%% face_code_ref=Missing NodePath
- 304[Wall]
+ 304["SweepEdge Opposite"]
+ 305["SweepEdge Adjacent"]
+ 306["SweepEdge Opposite"]
+ 307["SweepEdge Adjacent"]
+ 308["SweepEdge Opposite"]
+ 309["SweepEdge Adjacent"]
+ 310["SweepEdge Opposite"]
+ 311["SweepEdge Adjacent"]
+ 312["SweepEdge Opposite"]
+ 313["SweepEdge Adjacent"]
+ 314["SweepEdge Opposite"]
+ 315["SweepEdge Adjacent"]
+ 316["SweepEdge Opposite"]
+ 317["SweepEdge Adjacent"]
+ 328["Sweep Extrusion
[4495, 4528, 5]"]
+ 329[Wall]
%% face_code_ref=Missing NodePath
- 305["Cap Start"]
+ 330[Wall]
%% face_code_ref=Missing NodePath
- 306["Cap End"]
+ 331[Wall]
%% face_code_ref=Missing NodePath
- 307["SweepEdge Opposite"]
- 308["SweepEdge Adjacent"]
- 309["SweepEdge Opposite"]
- 310["SweepEdge Adjacent"]
- 311["SweepEdge Opposite"]
- 312["SweepEdge Adjacent"]
- 313["SweepEdge Opposite"]
- 314["SweepEdge Adjacent"]
- 315["SweepEdge Opposite"]
- 316["SweepEdge Adjacent"]
- 317["SweepEdge Opposite"]
- 318["SweepEdge Adjacent"]
- 319["SweepEdge Opposite"]
- 320["SweepEdge Adjacent"]
- 331["Sweep Extrusion
[4495, 4528, 5]"]
332[Wall]
%% face_code_ref=Missing NodePath
333[Wall]
@@ -450,49 +453,43 @@ flowchart LR
%% face_code_ref=Missing NodePath
335[Wall]
%% face_code_ref=Missing NodePath
- 336[Wall]
+ 336["Cap Start"]
%% face_code_ref=Missing NodePath
- 337[Wall]
+ 337["Cap End"]
%% face_code_ref=Missing NodePath
- 338[Wall]
- %% face_code_ref=Missing NodePath
- 339["Cap Start"]
- %% face_code_ref=Missing NodePath
- 340["Cap End"]
- %% face_code_ref=Missing NodePath
- 341["SweepEdge Opposite"]
- 342["SweepEdge Adjacent"]
- 343["SweepEdge Opposite"]
- 344["SweepEdge Adjacent"]
- 345["SweepEdge Opposite"]
- 346["SweepEdge Adjacent"]
- 347["SweepEdge Opposite"]
- 348["SweepEdge Adjacent"]
- 349["SweepEdge Opposite"]
- 350["SweepEdge Adjacent"]
- 351["SweepEdge Opposite"]
- 352["SweepEdge Adjacent"]
- 353["SweepEdge Opposite"]
- 354["SweepEdge Adjacent"]
- 355["StartSketchOnFace
[1126, 1163, 1]"]
- 356["StartSketchOnFace
[1386, 1423, 1]"]
- 357["StartSketchOnFace
[1560, 1597, 1]"]
- 358["StartSketchOnFace
[1951, 1988, 1]"]
- 359["StartSketchOnFace
[840, 877, 3]"]
- 360["StartSketchOnFace
[1202, 1239, 3]"]
- 361["StartSketchOnFace
[1627, 1664, 3]"]
- 362["StartSketchOnFace
[777, 816, 4]"]
- 363["StartSketchOnFace
[1015, 1054, 4]"]
- 364["StartSketchOnFace
[1411, 1448, 4]"]
- 365["StartSketchOnFace
[1698, 1735, 4]"]
- 366["StartSketchOnFace
[2204, 2241, 4]"]
- 367["StartSketchOnFace
[887, 924, 5]"]
- 368["StartSketchOnFace
[1284, 1321, 5]"]
- 369["StartSketchOnFace
[1853, 1892, 5]"]
- 370["StartSketchOnFace
[2201, 2238, 5]"]
- 371["StartSketchOnFace
[2598, 2637, 5]"]
- 372["StartSketchOnFace
[2771, 2810, 5]"]
- 373["StartSketchOnFace
[3669, 3708, 5]"]
+ 338["SweepEdge Opposite"]
+ 339["SweepEdge Adjacent"]
+ 340["SweepEdge Opposite"]
+ 341["SweepEdge Adjacent"]
+ 342["SweepEdge Opposite"]
+ 343["SweepEdge Adjacent"]
+ 344["SweepEdge Opposite"]
+ 345["SweepEdge Adjacent"]
+ 346["SweepEdge Opposite"]
+ 347["SweepEdge Adjacent"]
+ 348["SweepEdge Opposite"]
+ 349["SweepEdge Adjacent"]
+ 350["SweepEdge Opposite"]
+ 351["SweepEdge Adjacent"]
+ 352["StartSketchOnFace
[1126, 1163, 1]"]
+ 353["StartSketchOnFace
[1386, 1423, 1]"]
+ 354["StartSketchOnFace
[1560, 1597, 1]"]
+ 355["StartSketchOnFace
[1951, 1988, 1]"]
+ 356["StartSketchOnFace
[840, 877, 3]"]
+ 357["StartSketchOnFace
[1202, 1239, 3]"]
+ 358["StartSketchOnFace
[1627, 1664, 3]"]
+ 359["StartSketchOnFace
[777, 816, 4]"]
+ 360["StartSketchOnFace
[1015, 1054, 4]"]
+ 361["StartSketchOnFace
[1411, 1448, 4]"]
+ 362["StartSketchOnFace
[1698, 1735, 4]"]
+ 363["StartSketchOnFace
[2204, 2241, 4]"]
+ 364["StartSketchOnFace
[887, 924, 5]"]
+ 365["StartSketchOnFace
[1284, 1321, 5]"]
+ 366["StartSketchOnFace
[1853, 1892, 5]"]
+ 367["StartSketchOnFace
[2201, 2238, 5]"]
+ 368["StartSketchOnFace
[2598, 2637, 5]"]
+ 369["StartSketchOnFace
[2771, 2810, 5]"]
+ 370["StartSketchOnFace
[3669, 3708, 5]"]
1 --- 2
2 --- 3
2 --- 4
@@ -555,9 +552,9 @@ flowchart LR
46 <--x 15
15 --- 55
56 <--x 15
+ 15 <--x 352
+ 15 <--x 354
15 <--x 355
- 15 <--x 357
- 15 <--x 358
17 <--x 24
19 <--x 25
21 <--x 26
@@ -577,7 +574,7 @@ flowchart LR
34 <--x 33
33 --- 37
38 <--x 33
- 33 <--x 356
+ 33 <--x 353
34 <--x 36
37 --- 38
37 --- 39
@@ -687,7 +684,7 @@ flowchart LR
97 <--x 90
90 --- 99
100 <--x 90
- 90 <--x 359
+ 90 <--x 356
99 --- 100
99 --- 101
99 ---- 102
@@ -705,8 +702,8 @@ flowchart LR
109 <--x 104
104 --- 119
120 <--x 104
- 104 <--x 360
- 104 <--x 361
+ 104 <--x 357
+ 104 <--x 358
105 <--x 107
108 --- 109
108 --- 110
@@ -809,11 +806,11 @@ flowchart LR
162 <--x 151
151 --- 170
171 <--x 151
- 151 <--x 362
- 151 <--x 363
- 152 --- 205
- 206 <--x 152
- 152 <--x 366
+ 151 <--x 359
+ 151 <--x 360
+ 152 --- 202
+ 203 <--x 152
+ 152 <--x 363
161 --- 162
161 --- 163
161 ---- 164
@@ -829,7 +826,7 @@ flowchart LR
167 <--x 166
166 --- 179
180 <--x 166
- 166 <--x 364
+ 166 <--x 361
167 <--x 169
170 --- 171
170 --- 172
@@ -846,7 +843,7 @@ flowchart LR
176 <--x 175
175 --- 194
195 <--x 175
- 175 <--x 365
+ 175 <--x 362
176 <--x 178
179 --- 180
179 --- 181
@@ -874,337 +871,337 @@ flowchart LR
198 --- 200
198 --- 201
200 <--x 199
+ 202 --- 203
+ 202 --- 204
+ 202 ---- 205
+ 203 --- 206
+ 203 --- 208
+ 203 --- 209
205 --- 206
205 --- 207
- 205 ---- 208
+ 205 --- 208
+ 205 --- 209
+ 206 --- 208
206 --- 209
- 206 --- 211
- 206 --- 212
- 208 --- 209
- 208 --- 210
- 208 --- 211
- 208 --- 212
- 209 --- 211
- 209 --- 212
- 211 <--x 210
- 213 --- 214
- 214 --- 215
- 214 --- 216
- 214 --- 217
- 214 --- 218
- 214 --- 219
- 214 --- 220
- 214 ---- 221
+ 208 <--x 207
+ 210 --- 211
+ 211 --- 212
+ 211 --- 213
+ 211 --- 214
+ 211 --- 215
+ 211 --- 216
+ 211 --- 217
+ 211 ---- 218
+ 212 --- 219
+ 212 x--> 223
+ 212 --- 225
+ 212 --- 226
+ 213 --- 220
+ 213 x--> 223
+ 213 --- 227
+ 213 --- 228
+ 214 --- 221
+ 214 x--> 223
+ 214 --- 229
+ 214 --- 230
215 --- 222
- 215 x--> 226
- 215 --- 228
- 215 --- 229
- 216 --- 223
- 216 x--> 226
- 216 --- 230
- 216 --- 231
- 217 --- 224
- 217 x--> 226
- 217 --- 232
- 217 --- 233
+ 215 x--> 223
+ 215 --- 231
+ 215 --- 232
+ 218 --- 219
+ 218 --- 220
+ 218 --- 221
+ 218 --- 222
+ 218 --- 223
+ 218 --- 224
218 --- 225
- 218 x--> 226
- 218 --- 234
- 218 --- 235
- 221 --- 222
- 221 --- 223
- 221 --- 224
- 221 --- 225
- 221 --- 226
- 221 --- 227
- 221 --- 228
+ 218 --- 226
+ 218 --- 227
+ 218 --- 228
+ 218 --- 229
+ 218 --- 230
+ 218 --- 231
+ 218 --- 232
+ 219 --- 225
+ 219 --- 226
+ 232 <--x 219
+ 226 <--x 220
+ 220 --- 227
+ 220 --- 228
+ 228 <--x 221
221 --- 229
221 --- 230
- 221 --- 231
- 221 --- 232
- 221 --- 233
- 221 --- 234
- 221 --- 235
- 222 --- 228
- 222 --- 229
- 235 <--x 222
- 229 <--x 223
- 223 --- 230
- 223 --- 231
+ 230 <--x 222
+ 222 --- 231
+ 222 --- 232
+ 223 --- 257
+ 223 <--x 366
+ 225 <--x 224
+ 227 <--x 224
+ 229 <--x 224
231 <--x 224
- 224 --- 232
224 --- 233
- 233 <--x 225
- 225 --- 234
- 225 --- 235
- 226 --- 260
- 226 <--x 369
- 228 <--x 227
- 230 <--x 227
- 232 <--x 227
- 234 <--x 227
- 227 --- 236
- 237 <--x 227
- 227 --- 269
- 227 <--x 367
- 227 <--x 370
+ 234 <--x 224
+ 224 --- 266
+ 224 <--x 364
+ 224 <--x 367
+ 233 --- 234
+ 233 --- 235
+ 233 ---- 236
+ 234 --- 237
+ 234 --- 239
+ 234 --- 240
236 --- 237
236 --- 238
- 236 ---- 239
+ 236 --- 239
+ 236 --- 240
+ 237 --- 239
237 --- 240
- 237 --- 242
- 237 --- 243
- 239 --- 240
- 239 --- 241
- 239 --- 242
- 239 --- 243
- 240 --- 242
- 240 --- 243
- 242 <--x 241
- 241 --- 245
- 246 <--x 241
- 241 <--x 368
- 242 <--x 244
+ 239 <--x 238
+ 238 --- 242
+ 243 <--x 238
+ 238 <--x 365
+ 239 <--x 241
+ 242 --- 243
+ 242 --- 244
+ 242 ---- 245
+ 243 --- 246
+ 243 --- 248
+ 243 --- 249
245 --- 246
245 --- 247
- 245 ---- 248
+ 245 --- 248
+ 245 --- 249
+ 246 --- 248
246 --- 249
- 246 --- 251
- 246 --- 252
- 248 --- 249
- 248 --- 250
- 248 --- 251
- 248 --- 252
- 249 --- 251
- 249 --- 252
- 251 <--x 250
+ 248 <--x 247
+ 257 --- 258
+ 257 --- 259
+ 257 ---- 260
+ 258 --- 261
+ 258 x--> 263
+ 258 --- 264
+ 258 --- 265
260 --- 261
260 --- 262
- 260 ---- 263
+ 260 --- 263
+ 260 --- 264
+ 260 --- 265
261 --- 264
- 261 x--> 266
- 261 --- 267
- 261 --- 268
- 263 --- 264
- 263 --- 265
- 263 --- 266
- 263 --- 267
- 263 --- 268
- 264 --- 267
- 264 --- 268
- 267 <--x 265
+ 261 --- 265
+ 264 <--x 262
+ 266 --- 267
+ 266 --- 268
+ 266 ---- 269
+ 267 --- 270
+ 267 x--> 272
+ 267 --- 273
+ 267 --- 274
269 --- 270
269 --- 271
- 269 ---- 272
+ 269 --- 272
+ 269 --- 273
+ 269 --- 274
270 --- 273
- 270 x--> 275
- 270 --- 276
- 270 --- 277
- 272 --- 273
- 272 --- 274
- 272 --- 275
- 272 --- 276
- 272 --- 277
- 273 --- 276
- 273 --- 277
- 276 <--x 274
- 274 --- 278
- 274 <--x 371
+ 270 --- 274
+ 273 <--x 271
+ 271 --- 275
+ 271 <--x 368
+ 275 --- 276
+ 275 --- 277
+ 275 ---- 278
+ 276 --- 279
+ 276 x--> 281
+ 276 --- 282
+ 276 --- 283
278 --- 279
278 --- 280
- 278 ---- 281
+ 278 --- 281
+ 278 --- 282
+ 278 --- 283
279 --- 282
- 279 x--> 284
- 279 --- 285
- 279 --- 286
- 281 --- 282
- 281 --- 283
- 281 --- 284
- 281 --- 285
- 281 --- 286
- 282 --- 285
- 282 --- 286
- 285 <--x 283
- 283 --- 287
- 283 --- 321
- 283 <--x 372
- 283 <--x 373
- 287 --- 288
- 287 --- 289
- 287 --- 290
- 287 --- 291
- 287 --- 292
- 287 --- 293
- 287 --- 294
- 287 --- 295
- 287 --- 296
- 287 ---- 297
+ 279 --- 283
+ 282 <--x 280
+ 280 --- 284
+ 280 --- 318
+ 280 <--x 369
+ 280 <--x 370
+ 284 --- 285
+ 284 --- 286
+ 284 --- 287
+ 284 --- 288
+ 284 --- 289
+ 284 --- 290
+ 284 --- 291
+ 284 --- 292
+ 284 --- 293
+ 284 ---- 294
+ 285 --- 295
+ 285 x--> 303
+ 285 --- 304
+ 285 --- 305
+ 286 --- 296
+ 286 x--> 303
+ 286 --- 306
+ 286 --- 307
+ 287 --- 297
+ 287 x--> 303
+ 287 --- 308
+ 287 --- 309
288 --- 298
- 288 x--> 306
- 288 --- 307
- 288 --- 308
+ 288 x--> 303
+ 288 --- 310
+ 288 --- 311
289 --- 299
- 289 x--> 306
- 289 --- 309
- 289 --- 310
+ 289 x--> 303
+ 289 --- 312
+ 289 --- 313
290 --- 300
- 290 x--> 306
- 290 --- 311
- 290 --- 312
+ 290 x--> 303
+ 290 --- 314
+ 290 --- 315
291 --- 301
- 291 x--> 306
- 291 --- 313
- 291 --- 314
- 292 --- 302
- 292 x--> 306
- 292 --- 315
- 292 --- 316
- 293 --- 303
- 293 x--> 306
- 293 --- 317
- 293 --- 318
+ 291 x--> 303
+ 291 --- 316
+ 291 --- 317
+ 294 --- 295
+ 294 --- 296
+ 294 --- 297
+ 294 --- 298
+ 294 --- 299
+ 294 --- 300
+ 294 --- 301
+ 294 --- 302
+ 294 --- 303
294 --- 304
- 294 x--> 306
- 294 --- 319
- 294 --- 320
- 297 --- 298
- 297 --- 299
- 297 --- 300
- 297 --- 301
- 297 --- 302
- 297 --- 303
- 297 --- 304
- 297 --- 305
- 297 --- 306
- 297 --- 307
+ 294 --- 305
+ 294 --- 306
+ 294 --- 307
+ 294 --- 308
+ 294 --- 309
+ 294 --- 310
+ 294 --- 311
+ 294 --- 312
+ 294 --- 313
+ 294 --- 314
+ 294 --- 315
+ 294 --- 316
+ 294 --- 317
+ 295 --- 304
+ 295 --- 305
+ 317 <--x 295
+ 305 <--x 296
+ 296 --- 306
+ 296 --- 307
+ 307 <--x 297
297 --- 308
297 --- 309
- 297 --- 310
- 297 --- 311
- 297 --- 312
- 297 --- 313
- 297 --- 314
- 297 --- 315
- 297 --- 316
- 297 --- 317
- 297 --- 318
- 297 --- 319
- 297 --- 320
- 298 --- 307
- 298 --- 308
- 320 <--x 298
- 308 <--x 299
- 299 --- 309
- 299 --- 310
- 310 <--x 300
- 300 --- 311
- 300 --- 312
- 312 <--x 301
- 301 --- 313
- 301 --- 314
+ 309 <--x 298
+ 298 --- 310
+ 298 --- 311
+ 311 <--x 299
+ 299 --- 312
+ 299 --- 313
+ 313 <--x 300
+ 300 --- 314
+ 300 --- 315
+ 315 <--x 301
+ 301 --- 316
+ 301 --- 317
+ 304 <--x 302
+ 306 <--x 302
+ 308 <--x 302
+ 310 <--x 302
+ 312 <--x 302
314 <--x 302
- 302 --- 315
- 302 --- 316
- 316 <--x 303
- 303 --- 317
- 303 --- 318
- 318 <--x 304
- 304 --- 319
- 304 --- 320
- 307 <--x 305
- 309 <--x 305
- 311 <--x 305
- 313 <--x 305
- 315 <--x 305
- 317 <--x 305
- 319 <--x 305
- 321 --- 322
- 321 --- 323
- 321 --- 324
- 321 --- 325
- 321 --- 326
- 321 --- 327
- 321 --- 328
- 321 --- 329
- 321 --- 330
- 321 ---- 331
- 322 --- 338
- 322 x--> 340
- 322 --- 353
- 322 --- 354
- 323 --- 337
- 323 x--> 340
- 323 --- 351
- 323 --- 352
- 324 --- 336
- 324 x--> 340
- 324 --- 349
- 324 --- 350
- 325 --- 335
- 325 x--> 340
- 325 --- 347
- 325 --- 348
- 326 --- 334
- 326 x--> 340
- 326 --- 345
- 326 --- 346
- 327 --- 333
- 327 x--> 340
- 327 --- 343
- 327 --- 344
+ 316 <--x 302
+ 318 --- 319
+ 318 --- 320
+ 318 --- 321
+ 318 --- 322
+ 318 --- 323
+ 318 --- 324
+ 318 --- 325
+ 318 --- 326
+ 318 --- 327
+ 318 ---- 328
+ 319 --- 335
+ 319 x--> 337
+ 319 --- 350
+ 319 --- 351
+ 320 --- 334
+ 320 x--> 337
+ 320 --- 348
+ 320 --- 349
+ 321 --- 333
+ 321 x--> 337
+ 321 --- 346
+ 321 --- 347
+ 322 --- 332
+ 322 x--> 337
+ 322 --- 344
+ 322 --- 345
+ 323 --- 331
+ 323 x--> 337
+ 323 --- 342
+ 323 --- 343
+ 324 --- 330
+ 324 x--> 337
+ 324 --- 340
+ 324 --- 341
+ 325 --- 329
+ 325 x--> 337
+ 325 --- 338
+ 325 --- 339
+ 328 --- 329
+ 328 --- 330
+ 328 --- 331
328 --- 332
- 328 x--> 340
+ 328 --- 333
+ 328 --- 334
+ 328 --- 335
+ 328 --- 336
+ 328 --- 337
+ 328 --- 338
+ 328 --- 339
+ 328 --- 340
328 --- 341
328 --- 342
- 331 --- 332
- 331 --- 333
- 331 --- 334
- 331 --- 335
- 331 --- 336
- 331 --- 337
- 331 --- 338
- 331 --- 339
- 331 --- 340
- 331 --- 341
+ 328 --- 343
+ 328 --- 344
+ 328 --- 345
+ 328 --- 346
+ 328 --- 347
+ 328 --- 348
+ 328 --- 349
+ 328 --- 350
+ 328 --- 351
+ 329 --- 338
+ 329 --- 339
+ 341 <--x 329
+ 330 --- 340
+ 330 --- 341
+ 343 <--x 330
331 --- 342
331 --- 343
- 331 --- 344
- 331 --- 345
- 331 --- 346
- 331 --- 347
- 331 --- 348
- 331 --- 349
- 331 --- 350
- 331 --- 351
- 331 --- 352
- 331 --- 353
- 331 --- 354
- 332 --- 341
- 332 --- 342
- 344 <--x 332
- 333 --- 343
- 333 --- 344
- 346 <--x 333
- 334 --- 345
- 334 --- 346
- 348 <--x 334
- 335 --- 347
- 335 --- 348
- 350 <--x 335
- 336 --- 349
- 336 --- 350
- 352 <--x 336
- 337 --- 351
- 337 --- 352
- 354 <--x 337
- 342 <--x 338
- 338 --- 353
- 338 --- 354
- 341 <--x 339
- 343 <--x 339
- 345 <--x 339
- 347 <--x 339
- 349 <--x 339
- 351 <--x 339
- 353 <--x 339
+ 345 <--x 331
+ 332 --- 344
+ 332 --- 345
+ 347 <--x 332
+ 333 --- 346
+ 333 --- 347
+ 349 <--x 333
+ 334 --- 348
+ 334 --- 349
+ 351 <--x 334
+ 339 <--x 335
+ 335 --- 350
+ 335 --- 351
+ 338 <--x 336
+ 340 <--x 336
+ 342 <--x 336
+ 344 <--x 336
+ 346 <--x 336
+ 348 <--x 336
+ 350 <--x 336
```
diff --git a/rust/kcl-lib/tests/kcl_samples/multi-axis-robot/ops.snap b/rust/kcl-lib/tests/kcl_samples/multi-axis-robot/ops.snap
index 986372dec..adec9fa53 100644
--- a/rust/kcl-lib/tests/kcl_samples/multi-axis-robot/ops.snap
+++ b/rust/kcl-lib/tests/kcl_samples/multi-axis-robot/ops.snap
@@ -1253,33 +1253,10 @@ description: Operations executed multi-axis-robot.kcl
"name": "extrude",
"unlabeledArg": {
"value": {
- "type": "Array",
- "value": [
- {
- "type": "Sketch",
- "value": {
- "artifactId": "[uuid]"
- }
- },
- {
- "type": "Sketch",
- "value": {
- "artifactId": "[uuid]"
- }
- },
- {
- "type": "Sketch",
- "value": {
- "artifactId": "[uuid]"
- }
- },
- {
- "type": "Sketch",
- "value": {
- "artifactId": "[uuid]"
- }
- }
- ]
+ "type": "Sketch",
+ "value": {
+ "artifactId": "[uuid]"
+ }
},
"sourceRange": []
},
diff --git a/rust/kcl-lib/tests/subtract_regression12/rendered_model.png b/rust/kcl-lib/tests/subtract_regression12/rendered_model.png
index 5aae217e3..c541dac7c 100644
Binary files a/rust/kcl-lib/tests/subtract_regression12/rendered_model.png and b/rust/kcl-lib/tests/subtract_regression12/rendered_model.png differ