KCL's `fillet` function takes an array of edges to fillet. Previously this would do `n` fillet API commands, one per edge. This PR combines them all into one call, which should improve performance. You can see the effect in the artifact_commands snapshots, e.g. `rust/kcl-lib/tests/kcl_samples/axial-fan/artifact_commands.snap` Besides performance, this should fix a bug where some KCL fillets would fail, when they should have succeeded. Example from @max-mrgrsk: ```kcl sketch001 = startSketchOn(XY) |> startProfile(at = [-12, -6]) |> line(end = [0, 12], tag = $seg04) |> line(end = [24, 0], tag = $seg03) |> line(end = [0, -12], tag = $seg02) |> line(endAbsolute = [profileStartX(%), profileStartY(%)], tag = $seg01) |> close() extrude001 = extrude( sketch001, length = 12, tagEnd = $capEnd001, tagStart = $capStart001, ) |> fillet( radius = 5, tags = [ getCommonEdge(faces = [seg02, capEnd001]), getCommonEdge(faces = [seg01, capEnd001]), getCommonEdge(faces = [seg03, capEnd001]), getCommonEdge(faces = [seg04, capEnd001]) ], ) ``` This program fails on main, but succeeds on this branch.
26 KiB
26 KiB
flowchart LR
subgraph path11 [Path]
11["Path<br>[941, 966, 0]"]
%% [ProgramBodyItem { index: 11 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }]
18["Segment<br>[974, 996, 0]"]
%% [ProgramBodyItem { index: 11 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 2 }]
20["Segment<br>[1004, 1048, 0]"]
%% [ProgramBodyItem { index: 11 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 3 }]
23["Segment<br>[1056, 1083, 0]"]
%% [ProgramBodyItem { index: 11 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 4 }]
24["Segment<br>[1091, 1135, 0]"]
%% [ProgramBodyItem { index: 11 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 5 }]
26["Segment<br>[1143, 1150, 0]"]
%% [ProgramBodyItem { index: 11 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 6 }]
76[Solid2d]
end
subgraph path12 [Path]
12["Path<br>[941, 966, 0]"]
%% [ProgramBodyItem { index: 11 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }]
19["Segment<br>[974, 996, 0]"]
%% [ProgramBodyItem { index: 11 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 2 }]
21["Segment<br>[1004, 1048, 0]"]
%% [ProgramBodyItem { index: 11 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 3 }]
22["Segment<br>[1056, 1083, 0]"]
%% [ProgramBodyItem { index: 11 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 4 }]
25["Segment<br>[1091, 1135, 0]"]
%% [ProgramBodyItem { index: 11 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 5 }]
27["Segment<br>[1143, 1150, 0]"]
%% [ProgramBodyItem { index: 11 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 6 }]
77[Solid2d]
end
subgraph path13 [Path]
13["Path<br>[2743, 2830, 0]"]
%% [ProgramBodyItem { index: 19 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }]
29["Segment<br>[2838, 2917, 0]"]
%% [ProgramBodyItem { index: 19 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 2 }]
30["Segment<br>[2925, 2990, 0]"]
%% [ProgramBodyItem { index: 19 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 3 }]
32["Segment<br>[2998, 3080, 0]"]
%% [ProgramBodyItem { index: 19 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 4 }]
34["Segment<br>[3088, 3134, 0]"]
%% [ProgramBodyItem { index: 19 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 5 }]
37["Segment<br>[3142, 3221, 0]"]
%% [ProgramBodyItem { index: 19 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 6 }]
38["Segment<br>[3229, 3296, 0]"]
%% [ProgramBodyItem { index: 19 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 7 }]
40["Segment<br>[3304, 3383, 0]"]
%% [ProgramBodyItem { index: 19 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 8 }]
43["Segment<br>[3391, 3437, 0]"]
%% [ProgramBodyItem { index: 19 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 9 }]
45["Segment<br>[3445, 3527, 0]"]
%% [ProgramBodyItem { index: 19 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 10 }]
46["Segment<br>[3535, 3603, 0]"]
%% [ProgramBodyItem { index: 19 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 11 }]
49["Segment<br>[3611, 3690, 0]"]
%% [ProgramBodyItem { index: 19 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 12 }]
50["Segment<br>[3698, 3763, 0]"]
%% [ProgramBodyItem { index: 19 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 13 }]
52["Segment<br>[3771, 3853, 0]"]
%% [ProgramBodyItem { index: 19 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 14 }]
54["Segment<br>[3861, 3929, 0]"]
%% [ProgramBodyItem { index: 19 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 15 }]
56["Segment<br>[3937, 4019, 0]"]
%% [ProgramBodyItem { index: 19 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 16 }]
59["Segment<br>[4027, 4076, 0]"]
%% [ProgramBodyItem { index: 19 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 17 }]
60["Segment<br>[4084, 4091, 0]"]
%% [ProgramBodyItem { index: 19 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 18 }]
71[Solid2d]
end
subgraph path14 [Path]
14["Path<br>[2743, 2830, 0]"]
%% [ProgramBodyItem { index: 19 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }]
28["Segment<br>[2838, 2917, 0]"]
%% [ProgramBodyItem { index: 19 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 2 }]
31["Segment<br>[2925, 2990, 0]"]
%% [ProgramBodyItem { index: 19 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 3 }]
33["Segment<br>[2998, 3080, 0]"]
%% [ProgramBodyItem { index: 19 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 4 }]
35["Segment<br>[3088, 3134, 0]"]
%% [ProgramBodyItem { index: 19 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 5 }]
36["Segment<br>[3142, 3221, 0]"]
%% [ProgramBodyItem { index: 19 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 6 }]
39["Segment<br>[3229, 3296, 0]"]
%% [ProgramBodyItem { index: 19 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 7 }]
41["Segment<br>[3304, 3383, 0]"]
%% [ProgramBodyItem { index: 19 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 8 }]
42["Segment<br>[3391, 3437, 0]"]
%% [ProgramBodyItem { index: 19 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 9 }]
44["Segment<br>[3445, 3527, 0]"]
%% [ProgramBodyItem { index: 19 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 10 }]
47["Segment<br>[3535, 3603, 0]"]
%% [ProgramBodyItem { index: 19 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 11 }]
48["Segment<br>[3611, 3690, 0]"]
%% [ProgramBodyItem { index: 19 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 12 }]
51["Segment<br>[3698, 3763, 0]"]
%% [ProgramBodyItem { index: 19 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 13 }]
53["Segment<br>[3771, 3853, 0]"]
%% [ProgramBodyItem { index: 19 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 14 }]
55["Segment<br>[3861, 3929, 0]"]
%% [ProgramBodyItem { index: 19 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 15 }]
57["Segment<br>[3937, 4019, 0]"]
%% [ProgramBodyItem { index: 19 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 16 }]
58["Segment<br>[4027, 4076, 0]"]
%% [ProgramBodyItem { index: 19 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 17 }]
61["Segment<br>[4084, 4091, 0]"]
%% [ProgramBodyItem { index: 19 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 18 }]
74[Solid2d]
end
subgraph path15 [Path]
15["Path<br>[4235, 4260, 0]"]
%% [ProgramBodyItem { index: 20 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }]
62["Segment<br>[4268, 4309, 0]"]
%% [ProgramBodyItem { index: 20 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 2 }]
64["Segment<br>[4317, 4358, 0]"]
%% [ProgramBodyItem { index: 20 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 3 }]
66["Segment<br>[4366, 4419, 0]"]
%% [ProgramBodyItem { index: 20 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 4 }]
68["Segment<br>[4427, 4448, 0]"]
%% [ProgramBodyItem { index: 20 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 5 }]
72[Solid2d]
end
subgraph path16 [Path]
16["Path<br>[4235, 4260, 0]"]
%% [ProgramBodyItem { index: 20 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }]
63["Segment<br>[4268, 4309, 0]"]
%% [ProgramBodyItem { index: 20 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 2 }]
65["Segment<br>[4317, 4358, 0]"]
%% [ProgramBodyItem { index: 20 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 3 }]
67["Segment<br>[4366, 4419, 0]"]
%% [ProgramBodyItem { index: 20 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 4 }]
69["Segment<br>[4427, 4448, 0]"]
%% [ProgramBodyItem { index: 20 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 5 }]
73[Solid2d]
end
subgraph path17 [Path]
17["Path<br>[4614, 4694, 0]"]
%% [ProgramBodyItem { index: 21 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }]
70["Segment<br>[4614, 4694, 0]"]
%% [ProgramBodyItem { index: 21 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }]
75[Solid2d]
end
1["Plane<br>[1236, 1274, 0]"]
%% [ProgramBodyItem { index: 12 }, VariableDeclarationDeclaration, VariableDeclarationInit, CallKwUnlabeledArg, CallKwUnlabeledArg]
2["Plane<br>[1730, 1768, 0]"]
%% [ProgramBodyItem { index: 15 }, VariableDeclarationDeclaration, VariableDeclarationInit, CallKwUnlabeledArg, CallKwUnlabeledArg]
3["Plane<br>[2715, 2735, 0]"]
%% [ProgramBodyItem { index: 19 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }]
4["Plane<br>[4207, 4227, 0]"]
%% [ProgramBodyItem { index: 20 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }]
5["Plane<br>[4591, 4608, 0]"]
%% [ProgramBodyItem { index: 21 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }]
6["Plane<br>[5583, 5618, 0]"]
%% [ProgramBodyItem { index: 25 }, VariableDeclarationDeclaration, VariableDeclarationInit, CallKwUnlabeledArg]
7["StartSketchOnPlane<br>[4207, 4227, 0]"]
%% [ProgramBodyItem { index: 20 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }]
8["StartSketchOnPlane<br>[913, 933, 0]"]
%% [ProgramBodyItem { index: 11 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }]
9["StartSketchOnPlane<br>[2715, 2735, 0]"]
%% [ProgramBodyItem { index: 19 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }]
10["StartSketchOnPlane<br>[913, 933, 0]"]
%% [ProgramBodyItem { index: 11 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }]
78["Sweep Extrusion<br>[1223, 1317, 0]"]
%% [ProgramBodyItem { index: 12 }, VariableDeclarationDeclaration, VariableDeclarationInit]
79["Sweep Revolve<br>[1717, 1799, 0]"]
%% [ProgramBodyItem { index: 15 }, VariableDeclarationDeclaration, VariableDeclarationInit]
80["Sweep Extrusion<br>[5047, 5089, 0]"]
%% [ProgramBodyItem { index: 23 }, VariableDeclarationDeclaration, VariableDeclarationInit]
81["Sweep Extrusion<br>[5701, 5752, 0]"]
%% [ProgramBodyItem { index: 26 }, VariableDeclarationDeclaration, VariableDeclarationInit]
82[Wall]
%% face_code_ref=Missing NodePath
83[Wall]
%% face_code_ref=Missing NodePath
84[Wall]
%% face_code_ref=Missing NodePath
85[Wall]
%% face_code_ref=Missing NodePath
86[Wall]
%% face_code_ref=Missing NodePath
87[Wall]
%% face_code_ref=Missing NodePath
88[Wall]
%% face_code_ref=Missing NodePath
89[Wall]
%% face_code_ref=Missing NodePath
90[Wall]
%% face_code_ref=Missing NodePath
91[Wall]
%% face_code_ref=Missing NodePath
92[Wall]
%% face_code_ref=Missing NodePath
93[Wall]
%% face_code_ref=Missing NodePath
94[Wall]
%% face_code_ref=Missing NodePath
95[Wall]
%% face_code_ref=Missing NodePath
96[Wall]
%% face_code_ref=Missing NodePath
97[Wall]
%% face_code_ref=Missing NodePath
98[Wall]
%% face_code_ref=Missing NodePath
99[Wall]
%% face_code_ref=Missing NodePath
100["Cap Start"]
%% face_code_ref=Missing NodePath
101["Cap Start"]
%% face_code_ref=Missing NodePath
102["Cap Start"]
%% face_code_ref=Missing NodePath
103["Cap Start"]
%% face_code_ref=Missing NodePath
104["Cap End"]
%% face_code_ref=Missing NodePath
105["Cap End"]
%% face_code_ref=Missing NodePath
106["Cap End"]
%% face_code_ref=Missing NodePath
107["Cap End"]
%% face_code_ref=Missing NodePath
108["SweepEdge Opposite"]
109["SweepEdge Opposite"]
110["SweepEdge Opposite"]
111["SweepEdge Opposite"]
112["SweepEdge Opposite"]
113["SweepEdge Opposite"]
114["SweepEdge Opposite"]
115["SweepEdge Opposite"]
116["SweepEdge Opposite"]
117["SweepEdge Opposite"]
118["SweepEdge Opposite"]
119["SweepEdge Opposite"]
120["SweepEdge Opposite"]
121["SweepEdge Opposite"]
122["SweepEdge Opposite"]
123["SweepEdge Opposite"]
124["SweepEdge Opposite"]
125["SweepEdge Opposite"]
126["SweepEdge Adjacent"]
127["SweepEdge Adjacent"]
128["SweepEdge Adjacent"]
129["SweepEdge Adjacent"]
130["SweepEdge Adjacent"]
131["SweepEdge Adjacent"]
132["SweepEdge Adjacent"]
133["SweepEdge Adjacent"]
134["SweepEdge Adjacent"]
135["SweepEdge Adjacent"]
136["SweepEdge Adjacent"]
137["SweepEdge Adjacent"]
138["SweepEdge Adjacent"]
139["SweepEdge Adjacent"]
140["SweepEdge Adjacent"]
141["SweepEdge Adjacent"]
142["SweepEdge Adjacent"]
143["SweepEdge Adjacent"]
144["EdgeCut Fillet<br>[5152, 5491, 0]"]
%% [ProgramBodyItem { index: 24 }, VariableDeclarationDeclaration, VariableDeclarationInit]
145["EdgeCut Fillet<br>[5816, 6160, 0]"]
%% [ProgramBodyItem { index: 27 }, VariableDeclarationDeclaration, VariableDeclarationInit]
1 <--x 8
1 --- 12
2 <--x 10
2 --- 11
3 --- 13
4 --- 16
5 --- 17
6 <--x 7
6 <--x 9
6 --- 14
6 --- 15
11 --- 18
11 --- 20
11 --- 23
11 --- 24
11 --- 26
11 --- 76
11 ---- 79
12 --- 19
12 --- 21
12 --- 22
12 --- 25
12 --- 27
12 --- 77
12 ---- 78
13 --- 29
13 --- 30
13 --- 32
13 --- 34
13 --- 37
13 --- 38
13 --- 40
13 --- 43
13 --- 45
13 --- 46
13 --- 49
13 --- 50
13 --- 52
13 --- 54
13 --- 56
13 --- 59
13 --- 60
13 --- 71
14 --- 28
14 --- 31
14 --- 33
14 --- 35
14 --- 36
14 --- 39
14 --- 41
14 --- 42
14 --- 44
14 --- 47
14 --- 48
14 --- 51
14 --- 53
14 --- 55
14 --- 57
14 --- 58
14 --- 61
14 --- 74
15 --- 62
15 --- 64
15 --- 66
15 --- 68
15 --- 72
15 ---- 81
16 --- 63
16 --- 65
16 --- 67
16 --- 69
16 --- 73
16 ---- 80
17 --- 70
17 --- 75
18 --- 93
18 x--> 105
18 --- 116
18 --- 134
19 --- 97
19 x--> 103
19 --- 125
19 --- 143
20 --- 91
20 x--> 105
20 --- 117
20 --- 135
21 --- 96
21 x--> 103
21 --- 124
21 --- 142
22 --- 95
22 x--> 103
22 --- 123
22 --- 141
23 --- 92
23 x--> 105
23 --- 118
23 --- 136
24 --- 90
24 x--> 105
24 --- 119
24 --- 137
25 --- 98
25 x--> 103
25 --- 122
25 --- 140
26 --- 94
26 x--> 105
26 --- 120
26 --- 138
27 --- 99
27 x--> 103
27 --- 121
27 --- 139
62 --- 83
62 x--> 106
62 --- 108
62 --- 126
63 --- 86
63 x--> 104
63 --- 112
63 --- 130
64 --- 84
64 x--> 106
64 --- 109
64 --- 127
65 --- 87
65 x--> 104
65 --- 113
65 --- 131
66 --- 82
66 x--> 106
66 --- 110
66 --- 128
67 --- 88
67 x--> 104
67 --- 114
67 --- 132
68 --- 85
68 x--> 106
68 --- 111
68 --- 129
69 --- 89
69 x--> 104
69 --- 115
69 --- 133
78 --- 95
78 --- 96
78 --- 97
78 --- 98
78 --- 99
78 --- 103
78 --- 107
78 --- 121
78 --- 122
78 --- 123
78 --- 124
78 --- 125
78 --- 139
78 --- 140
78 --- 141
78 --- 142
78 --- 143
79 --- 90
79 --- 91
79 --- 92
79 --- 93
79 --- 94
79 --- 101
79 --- 105
79 --- 116
79 --- 117
79 --- 118
79 --- 119
79 --- 120
79 --- 134
79 --- 135
79 --- 136
79 --- 137
79 --- 138
80 --- 86
80 --- 87
80 --- 88
80 --- 89
80 --- 100
80 --- 104
80 --- 112
80 --- 113
80 --- 114
80 --- 115
80 --- 130
80 --- 131
80 --- 132
80 --- 133
81 --- 82
81 --- 83
81 --- 84
81 --- 85
81 --- 102
81 --- 106
81 --- 108
81 --- 109
81 --- 110
81 --- 111
81 --- 126
81 --- 127
81 --- 128
81 --- 129
82 --- 110
127 <--x 82
82 --- 128
83 --- 108
83 --- 126
129 <--x 83
84 --- 109
126 <--x 84
84 --- 127
85 --- 111
128 <--x 85
85 --- 129
86 --- 112
86 --- 130
133 <--x 86
87 --- 113
130 <--x 87
87 --- 131
88 --- 114
131 <--x 88
88 --- 132
89 --- 115
132 <--x 89
89 --- 133
90 --- 119
136 <--x 90
90 --- 137
91 --- 117
134 <--x 91
91 --- 135
92 --- 118
135 <--x 92
92 --- 136
93 --- 116
93 --- 134
138 <--x 93
94 --- 120
137 <--x 94
94 --- 138
95 --- 123
95 --- 141
142 <--x 95
96 --- 124
96 --- 142
143 <--x 96
97 --- 125
139 <--x 97
97 --- 143
98 --- 122
98 --- 140
141 <--x 98
99 --- 121
99 --- 139
140 <--x 99
112 <--x 100
113 <--x 100
114 <--x 100
115 <--x 100
116 <--x 101
117 <--x 101
118 <--x 101
119 <--x 101
120 <--x 101
108 <--x 102
109 <--x 102
110 <--x 102
111 <--x 102
121 <--x 107
122 <--x 107
123 <--x 107
124 <--x 107
125 <--x 107
126 <--x 145
130 <--x 144