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.
36 KiB
36 KiB
flowchart LR
subgraph path13 [Path]
13["Path<br>[1206, 1252, 0]"]
%% [ProgramBodyItem { index: 23 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }]
22["Segment<br>[1260, 1282, 0]"]
%% [ProgramBodyItem { index: 23 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 2 }]
25["Segment<br>[1290, 1320, 0]"]
%% [ProgramBodyItem { index: 23 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 3 }]
26["Segment<br>[1328, 1372, 0]"]
%% [ProgramBodyItem { index: 23 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 4 }]
28["Segment<br>[1380, 1407, 0]"]
%% [ProgramBodyItem { index: 23 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 5 }]
30["Segment<br>[1415, 1459, 0]"]
%% [ProgramBodyItem { index: 23 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 6 }]
32["Segment<br>[1467, 1474, 0]"]
%% [ProgramBodyItem { index: 23 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 7 }]
80[Solid2d]
end
subgraph path14 [Path]
14["Path<br>[1206, 1252, 0]"]
%% [ProgramBodyItem { index: 23 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }]
23["Segment<br>[1260, 1282, 0]"]
%% [ProgramBodyItem { index: 23 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 2 }]
24["Segment<br>[1290, 1320, 0]"]
%% [ProgramBodyItem { index: 23 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 3 }]
27["Segment<br>[1328, 1372, 0]"]
%% [ProgramBodyItem { index: 23 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 4 }]
29["Segment<br>[1380, 1407, 0]"]
%% [ProgramBodyItem { index: 23 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 5 }]
31["Segment<br>[1415, 1459, 0]"]
%% [ProgramBodyItem { index: 23 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 6 }]
33["Segment<br>[1467, 1474, 0]"]
%% [ProgramBodyItem { index: 23 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 7 }]
83[Solid2d]
end
subgraph path15 [Path]
15["Path<br>[2515, 2603, 0]"]
%% [ProgramBodyItem { index: 29 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }]
34["Segment<br>[2609, 2673, 0]"]
%% [ProgramBodyItem { index: 29 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 2 }]
35["Segment<br>[2679, 2743, 0]"]
%% [ProgramBodyItem { index: 29 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 3 }]
36["Segment<br>[2749, 2802, 0]"]
%% [ProgramBodyItem { index: 29 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 4 }]
37["Segment<br>[2808, 2829, 0]"]
%% [ProgramBodyItem { index: 29 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 5 }]
79[Solid2d]
end
subgraph path16 [Path]
16["Path<br>[3160, 3326, 0]"]
%% [ProgramBodyItem { index: 30 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }]
38["Segment<br>[3160, 3326, 0]"]
%% [ProgramBodyItem { index: 30 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }]
82[Solid2d]
end
subgraph path17 [Path]
17["Path<br>[4610, 4635, 0]"]
%% [ProgramBodyItem { index: 34 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }]
39["Segment<br>[4641, 4713, 0]"]
%% [ProgramBodyItem { index: 34 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 2 }]
40["Segment<br>[4719, 4792, 0]"]
%% [ProgramBodyItem { index: 34 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 3 }]
41["Segment<br>[4798, 4851, 0]"]
%% [ProgramBodyItem { index: 34 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 4 }]
42["Segment<br>[4857, 4878, 0]"]
%% [ProgramBodyItem { index: 34 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 5 }]
75[Solid2d]
end
subgraph path18 [Path]
18["Path<br>[5346, 5371, 0]"]
%% [ProgramBodyItem { index: 35 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }]
43["Segment<br>[5431, 5474, 0]"]
%% [ProgramBodyItem { index: 35 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 2 }]
50["Segment<br>[5482, 5602, 0]"]
%% [ProgramBodyItem { index: 35 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 3 }]
53["Segment<br>[5665, 5714, 0]"]
%% [ProgramBodyItem { index: 35 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 4 }]
57["Segment<br>[5722, 5747, 0]"]
%% [ProgramBodyItem { index: 35 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 5 }]
60["Segment<br>[5755, 5798, 0]"]
%% [ProgramBodyItem { index: 35 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 6 }]
63["Segment<br>[5806, 5831, 0]"]
%% [ProgramBodyItem { index: 35 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 7 }]
69["Segment<br>[5839, 5883, 0]"]
%% [ProgramBodyItem { index: 35 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 8 }]
71["Segment<br>[5891, 5898, 0]"]
%% [ProgramBodyItem { index: 35 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 9 }]
76[Solid2d]
end
subgraph path19 [Path]
19["Path<br>[5346, 5371, 0]"]
%% [ProgramBodyItem { index: 35 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }]
46["Segment<br>[5431, 5474, 0]"]
%% [ProgramBodyItem { index: 35 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 2 }]
48["Segment<br>[5482, 5602, 0]"]
%% [ProgramBodyItem { index: 35 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 3 }]
54["Segment<br>[5665, 5714, 0]"]
%% [ProgramBodyItem { index: 35 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 4 }]
56["Segment<br>[5722, 5747, 0]"]
%% [ProgramBodyItem { index: 35 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 5 }]
59["Segment<br>[5755, 5798, 0]"]
%% [ProgramBodyItem { index: 35 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 6 }]
66["Segment<br>[5806, 5831, 0]"]
%% [ProgramBodyItem { index: 35 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 7 }]
68["Segment<br>[5839, 5883, 0]"]
%% [ProgramBodyItem { index: 35 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 8 }]
74["Segment<br>[5891, 5898, 0]"]
%% [ProgramBodyItem { index: 35 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 9 }]
77[Solid2d]
end
subgraph path20 [Path]
20["Path<br>[5346, 5371, 0]"]
%% [ProgramBodyItem { index: 35 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }]
44["Segment<br>[5431, 5474, 0]"]
%% [ProgramBodyItem { index: 35 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 2 }]
47["Segment<br>[5482, 5602, 0]"]
%% [ProgramBodyItem { index: 35 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 3 }]
52["Segment<br>[5665, 5714, 0]"]
%% [ProgramBodyItem { index: 35 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 4 }]
55["Segment<br>[5722, 5747, 0]"]
%% [ProgramBodyItem { index: 35 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 5 }]
62["Segment<br>[5755, 5798, 0]"]
%% [ProgramBodyItem { index: 35 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 6 }]
65["Segment<br>[5806, 5831, 0]"]
%% [ProgramBodyItem { index: 35 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 7 }]
70["Segment<br>[5839, 5883, 0]"]
%% [ProgramBodyItem { index: 35 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 8 }]
73["Segment<br>[5891, 5898, 0]"]
%% [ProgramBodyItem { index: 35 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 9 }]
78[Solid2d]
end
subgraph path21 [Path]
21["Path<br>[5346, 5371, 0]"]
%% [ProgramBodyItem { index: 35 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }]
45["Segment<br>[5431, 5474, 0]"]
%% [ProgramBodyItem { index: 35 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 2 }]
49["Segment<br>[5482, 5602, 0]"]
%% [ProgramBodyItem { index: 35 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 3 }]
51["Segment<br>[5665, 5714, 0]"]
%% [ProgramBodyItem { index: 35 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 4 }]
58["Segment<br>[5722, 5747, 0]"]
%% [ProgramBodyItem { index: 35 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 5 }]
61["Segment<br>[5755, 5798, 0]"]
%% [ProgramBodyItem { index: 35 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 6 }]
64["Segment<br>[5806, 5831, 0]"]
%% [ProgramBodyItem { index: 35 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 7 }]
67["Segment<br>[5839, 5883, 0]"]
%% [ProgramBodyItem { index: 35 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 8 }]
72["Segment<br>[5891, 5898, 0]"]
%% [ProgramBodyItem { index: 35 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 9 }]
81[Solid2d]
end
1["Plane<br>[1560, 1607, 0]"]
%% [ProgramBodyItem { index: 24 }, VariableDeclarationDeclaration, VariableDeclarationInit, CallKwUnlabeledArg, CallKwUnlabeledArg]
2["Plane<br>[2139, 2186, 0]"]
%% [ProgramBodyItem { index: 27 }, VariableDeclarationDeclaration, VariableDeclarationInit, CallKwUnlabeledArg, CallKwUnlabeledArg]
3["Plane<br>[2492, 2509, 0]"]
%% [ProgramBodyItem { index: 29 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }]
4["Plane<br>[4571, 4603, 0]"]
%% [ProgramBodyItem { index: 34 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }, CallKwUnlabeledArg]
5["Plane<br>[5318, 5338, 0]"]
%% [ProgramBodyItem { index: 35 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }]
6["Plane<br>[5318, 5338, 0]"]
%% [ProgramBodyItem { index: 35 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }]
7["Plane<br>[5318, 5338, 0]"]
%% [ProgramBodyItem { index: 35 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }]
8["Plane<br>[5318, 5338, 0]"]
%% [ProgramBodyItem { index: 35 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }]
9["StartSketchOnPlane<br>[1178, 1198, 0]"]
%% [ProgramBodyItem { index: 23 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }]
10["StartSketchOnPlane<br>[1178, 1198, 0]"]
%% [ProgramBodyItem { index: 23 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }]
11["StartSketchOnPlane<br>[4557, 4604, 0]"]
%% [ProgramBodyItem { index: 34 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }]
12["StartSketchOnFace<br>[3112, 3154, 0]"]
%% [ProgramBodyItem { index: 30 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }]
84["Sweep Extrusion<br>[1547, 1650, 0]"]
%% [ProgramBodyItem { index: 24 }, VariableDeclarationDeclaration, VariableDeclarationInit]
85["Sweep Revolve<br>[2126, 2217, 0]"]
%% [ProgramBodyItem { index: 27 }, VariableDeclarationDeclaration, VariableDeclarationInit]
86["Sweep Extrusion<br>[2835, 2859, 0]"]
%% [ProgramBodyItem { index: 29 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 6 }]
87["Sweep Extrusion<br>[3548, 3575, 0]"]
%% [ProgramBodyItem { index: 30 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 3 }]
88["Sweep Extrusion<br>[3548, 3575, 0]"]
%% [ProgramBodyItem { index: 30 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 3 }]
89["Sweep Extrusion<br>[3548, 3575, 0]"]
%% [ProgramBodyItem { index: 30 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 3 }]
90["Sweep Extrusion<br>[3548, 3575, 0]"]
%% [ProgramBodyItem { index: 30 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 3 }]
91["Sweep Extrusion<br>[4884, 4928, 0]"]
%% [ProgramBodyItem { index: 34 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 6 }]
92["Sweep Extrusion<br>[6536, 6648, 0]"]
%% [ProgramBodyItem { index: 39 }, VariableDeclarationDeclaration, VariableDeclarationInit]
93["Sweep Extrusion<br>[6714, 6828, 0]"]
%% [ProgramBodyItem { index: 40 }, VariableDeclarationDeclaration, VariableDeclarationInit]
94["Sweep Revolve<br>[7654, 7709, 0]"]
%% [ProgramBodyItem { index: 44 }, VariableDeclarationDeclaration, VariableDeclarationInit]
95["Sweep Revolve<br>[7771, 7825, 0]"]
%% [ProgramBodyItem { index: 45 }, VariableDeclarationDeclaration, VariableDeclarationInit]
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[Wall]
%% face_code_ref=Missing NodePath
101[Wall]
%% face_code_ref=Missing NodePath
102[Wall]
%% face_code_ref=Missing NodePath
103[Wall]
%% face_code_ref=Missing NodePath
104[Wall]
%% face_code_ref=Missing NodePath
105[Wall]
%% face_code_ref=Missing NodePath
106[Wall]
%% face_code_ref=Missing NodePath
107[Wall]
%% face_code_ref=Missing NodePath
108[Wall]
%% face_code_ref=Missing NodePath
109[Wall]
%% face_code_ref=Missing NodePath
110[Wall]
%% face_code_ref=Missing NodePath
111[Wall]
%% face_code_ref=Missing NodePath
112[Wall]
%% face_code_ref=Missing NodePath
113[Wall]
%% face_code_ref=Missing NodePath
114[Wall]
%% face_code_ref=Missing NodePath
115[Wall]
%% face_code_ref=Missing NodePath
116[Wall]
%% face_code_ref=Missing NodePath
117[Wall]
%% face_code_ref=Missing NodePath
118[Wall]
%% face_code_ref=Missing NodePath
119[Wall]
%% face_code_ref=Missing NodePath
120[Wall]
%% face_code_ref=Missing NodePath
121[Wall]
%% face_code_ref=Missing NodePath
122[Wall]
%% face_code_ref=Missing NodePath
123[Wall]
%% face_code_ref=Missing NodePath
124[Wall]
%% face_code_ref=Missing NodePath
125[Wall]
%% face_code_ref=Missing NodePath
126[Wall]
%% face_code_ref=Missing NodePath
127[Wall]
%% face_code_ref=Missing NodePath
128[Wall]
%% face_code_ref=Missing NodePath
129[Wall]
%% face_code_ref=Missing NodePath
130[Wall]
%% face_code_ref=Missing NodePath
131[Wall]
%% face_code_ref=Missing NodePath
132[Wall]
%% face_code_ref=Missing NodePath
133[Wall]
%% face_code_ref=Missing NodePath
134[Wall]
%% face_code_ref=Missing NodePath
135[Wall]
%% face_code_ref=Missing NodePath
136[Wall]
%% face_code_ref=Missing NodePath
137[Wall]
%% face_code_ref=Missing NodePath
138[Wall]
%% face_code_ref=Missing NodePath
139[Wall]
%% face_code_ref=Missing NodePath
140[Wall]
%% face_code_ref=Missing NodePath
141[Wall]
%% face_code_ref=Missing NodePath
142[Wall]
%% face_code_ref=Missing NodePath
143[Wall]
%% face_code_ref=Missing NodePath
144[Wall]
%% face_code_ref=Missing NodePath
145[Wall]
%% face_code_ref=Missing NodePath
146[Wall]
%% face_code_ref=Missing NodePath
147["Cap Start"]
%% face_code_ref=Missing NodePath
148["Cap Start"]
%% face_code_ref=Missing NodePath
149["Cap Start"]
%% face_code_ref=Missing NodePath
150["Cap Start"]
%% face_code_ref=[ProgramBodyItem { index: 30 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }]
151["Cap Start"]
%% face_code_ref=Missing NodePath
152["Cap Start"]
%% face_code_ref=Missing NodePath
153["Cap Start"]
%% face_code_ref=Missing NodePath
154["Cap Start"]
%% face_code_ref=Missing NodePath
155["Cap Start"]
%% face_code_ref=Missing NodePath
156["Cap End"]
%% face_code_ref=Missing NodePath
157["Cap End"]
%% face_code_ref=Missing NodePath
158["Cap End"]
%% face_code_ref=Missing NodePath
159["Cap End"]
%% face_code_ref=Missing NodePath
160["Cap End"]
%% face_code_ref=Missing NodePath
161["Cap End"]
%% face_code_ref=Missing NodePath
162["Cap End"]
%% face_code_ref=Missing NodePath
163["Cap End"]
%% face_code_ref=Missing NodePath
164["SweepEdge Opposite"]
165["SweepEdge Opposite"]
166["SweepEdge Opposite"]
167["SweepEdge Opposite"]
168["SweepEdge Opposite"]
169["SweepEdge Opposite"]
170["SweepEdge Opposite"]
171["SweepEdge Opposite"]
172["SweepEdge Opposite"]
173["SweepEdge Opposite"]
174["SweepEdge Opposite"]
175["SweepEdge Opposite"]
176["SweepEdge Opposite"]
177["SweepEdge Opposite"]
178["SweepEdge Opposite"]
179["SweepEdge Opposite"]
180["SweepEdge Opposite"]
181["SweepEdge Opposite"]
182["SweepEdge Opposite"]
183["SweepEdge Opposite"]
184["SweepEdge Opposite"]
185["SweepEdge Opposite"]
186["SweepEdge Opposite"]
187["SweepEdge Opposite"]
188["SweepEdge Opposite"]
189["SweepEdge Opposite"]
190["SweepEdge Opposite"]
191["SweepEdge Opposite"]
192["SweepEdge Opposite"]
193["SweepEdge Opposite"]
194["SweepEdge Opposite"]
195["SweepEdge Opposite"]
196["SweepEdge Opposite"]
197["SweepEdge Opposite"]
198["SweepEdge Opposite"]
199["SweepEdge Opposite"]
200["SweepEdge Opposite"]
201["SweepEdge Opposite"]
202["SweepEdge Opposite"]
203["SweepEdge Opposite"]
204["SweepEdge Opposite"]
205["SweepEdge Opposite"]
206["SweepEdge Opposite"]
207["SweepEdge Opposite"]
208["SweepEdge Opposite"]
209["SweepEdge Opposite"]
210["SweepEdge Opposite"]
211["SweepEdge Opposite"]
212["SweepEdge Opposite"]
213["SweepEdge Opposite"]
214["SweepEdge Opposite"]
215["SweepEdge Adjacent"]
216["SweepEdge Adjacent"]
217["SweepEdge Adjacent"]
218["SweepEdge Adjacent"]
219["SweepEdge Adjacent"]
220["SweepEdge Adjacent"]
221["SweepEdge Adjacent"]
222["SweepEdge Adjacent"]
223["SweepEdge Adjacent"]
224["SweepEdge Adjacent"]
225["SweepEdge Adjacent"]
226["SweepEdge Adjacent"]
227["SweepEdge Adjacent"]
228["SweepEdge Adjacent"]
229["SweepEdge Adjacent"]
230["SweepEdge Adjacent"]
231["SweepEdge Adjacent"]
232["SweepEdge Adjacent"]
233["SweepEdge Adjacent"]
234["SweepEdge Adjacent"]
235["SweepEdge Adjacent"]
236["SweepEdge Adjacent"]
237["SweepEdge Adjacent"]
238["SweepEdge Adjacent"]
239["SweepEdge Adjacent"]
240["SweepEdge Adjacent"]
241["SweepEdge Adjacent"]
242["SweepEdge Adjacent"]
243["SweepEdge Adjacent"]
244["SweepEdge Adjacent"]
245["SweepEdge Adjacent"]
246["SweepEdge Adjacent"]
247["SweepEdge Adjacent"]
248["SweepEdge Adjacent"]
249["SweepEdge Adjacent"]
250["SweepEdge Adjacent"]
251["SweepEdge Adjacent"]
252["SweepEdge Adjacent"]
253["SweepEdge Adjacent"]
254["SweepEdge Adjacent"]
255["SweepEdge Adjacent"]
256["SweepEdge Adjacent"]
257["SweepEdge Adjacent"]
258["SweepEdge Adjacent"]
259["SweepEdge Adjacent"]
260["SweepEdge Adjacent"]
261["SweepEdge Adjacent"]
262["SweepEdge Adjacent"]
263["SweepEdge Adjacent"]
264["SweepEdge Adjacent"]
265["SweepEdge Adjacent"]
266["EdgeCut Fillet<br>[2865, 3095, 0]"]
%% [ProgramBodyItem { index: 29 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 7 }]
267["EdgeCut Fillet<br>[4934, 5167, 0]"]
%% [ProgramBodyItem { index: 34 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 7 }]
1 <--x 10
1 --- 14
2 <--x 9
2 --- 13
3 --- 15
4 <--x 11
4 --- 17
5 --- 18
6 --- 20
7 --- 19
8 --- 21
150 x--> 12
13 --- 22
13 --- 25
13 --- 26
13 --- 28
13 --- 30
13 --- 32
13 --- 80
13 ---- 85
14 --- 23
14 --- 24
14 --- 27
14 --- 29
14 --- 31
14 --- 33
14 --- 83
14 ---- 84
15 --- 34
15 --- 35
15 --- 36
15 --- 37
15 --- 79
15 ---- 86
16 --- 38
16 --- 82
16 ---- 89
150 --- 16
17 --- 39
17 --- 40
17 --- 41
17 --- 42
17 --- 75
17 ---- 91
18 --- 43
18 --- 50
18 --- 53
18 --- 57
18 --- 60
18 --- 63
18 --- 69
18 --- 71
18 --- 76
18 ---- 93
19 --- 46
19 --- 48
19 --- 54
19 --- 56
19 --- 59
19 --- 66
19 --- 68
19 --- 74
19 --- 77
19 ---- 92
20 --- 44
20 --- 47
20 --- 52
20 --- 55
20 --- 62
20 --- 65
20 --- 70
20 --- 73
20 --- 78
20 ---- 94
21 --- 45
21 --- 49
21 --- 51
21 --- 58
21 --- 61
21 --- 64
21 --- 67
21 --- 72
21 --- 81
21 ---- 95
22 --- 127
22 x--> 162
22 --- 193
22 --- 244
23 --- 114
23 x--> 151
23 --- 180
23 --- 231
24 --- 113
24 x--> 151
24 --- 181
24 --- 232
25 --- 128
25 x--> 162
25 --- 194
25 --- 245
26 --- 125
26 x--> 162
26 --- 195
26 --- 246
27 --- 112
27 x--> 151
27 --- 182
27 --- 233
28 --- 129
28 x--> 162
28 --- 196
28 --- 247
29 --- 115
29 x--> 151
29 --- 183
29 --- 234
30 --- 126
30 x--> 162
30 --- 197
30 --- 248
31 --- 116
31 x--> 151
31 --- 184
31 --- 235
34 --- 133
34 x--> 150
34 --- 198
34 --- 249
35 --- 130
35 x--> 150
35 --- 199
35 --- 250
36 --- 132
36 x--> 150
36 --- 200
36 --- 251
37 --- 131
37 x--> 150
37 --- 201
37 --- 252
38 --- 134
38 x--> 150
38 --- 202
38 --- 253
39 --- 135
39 x--> 149
39 --- 203
39 --- 254
40 --- 138
40 x--> 149
40 --- 204
40 --- 255
41 --- 137
41 x--> 149
41 --- 205
41 --- 256
42 --- 136
42 x--> 149
42 --- 206
42 --- 257
43 --- 141
43 x--> 155
43 --- 214
43 --- 265
44 --- 101
44 x--> 157
44 --- 164
44 --- 215
45 --- 110
45 x--> 152
45 --- 172
45 --- 223
46 --- 123
46 x--> 147
46 --- 192
46 --- 243
47 --- 96
47 x--> 157
47 --- 165
47 --- 216
48 --- 119
48 x--> 147
48 --- 191
48 --- 242
49 --- 108
49 x--> 152
49 --- 173
49 --- 224
50 --- 145
50 x--> 155
50 --- 213
50 --- 264
51 --- 106
51 x--> 152
51 --- 174
51 --- 225
52 --- 98
52 x--> 157
52 --- 166
52 --- 217
53 --- 143
53 x--> 155
53 --- 212
53 --- 263
54 --- 122
54 x--> 147
54 --- 190
54 --- 241
55 --- 97
55 x--> 157
55 --- 167
55 --- 218
56 --- 124
56 x--> 147
56 --- 189
56 --- 240
57 --- 146
57 x--> 155
57 --- 211
57 --- 262
58 --- 111
58 x--> 152
58 --- 175
58 --- 226
59 --- 118
59 x--> 147
59 --- 188
59 --- 239
60 --- 144
60 x--> 155
60 --- 210
60 --- 261
61 --- 109
61 x--> 152
61 --- 176
61 --- 227
62 --- 103
62 x--> 157
62 --- 168
62 --- 219
63 --- 139
63 x--> 155
63 --- 209
63 --- 260
64 --- 107
64 x--> 152
64 --- 177
64 --- 228
65 --- 100
65 x--> 157
65 --- 169
65 --- 220
66 --- 121
66 x--> 147
66 --- 187
66 --- 238
67 --- 104
67 x--> 152
67 --- 178
67 --- 229
68 --- 117
68 x--> 147
68 --- 186
68 --- 237
69 --- 142
69 x--> 155
69 --- 208
69 --- 259
70 --- 102
70 x--> 157
70 --- 170
70 --- 221
71 --- 140
71 x--> 155
71 --- 207
71 --- 258
72 --- 105
72 x--> 152
72 --- 179
72 --- 230
73 --- 99
73 x--> 157
73 --- 171
73 --- 222
74 --- 120
74 x--> 147
74 --- 185
74 --- 236
84 --- 112
84 --- 113
84 --- 114
84 --- 115
84 --- 116
84 --- 151
84 --- 160
84 --- 180
84 --- 181
84 --- 182
84 --- 183
84 --- 184
84 --- 231
84 --- 232
84 --- 233
84 --- 234
84 --- 235
85 --- 125
85 --- 126
85 --- 127
85 --- 128
85 --- 129
85 --- 153
85 --- 162
85 --- 193
85 --- 194
85 --- 195
85 --- 196
85 --- 197
85 --- 244
85 --- 245
85 --- 246
85 --- 247
85 --- 248
86 --- 130
86 --- 131
86 --- 132
86 --- 133
86 --- 150
86 --- 159
86 --- 198
86 --- 199
86 --- 200
86 --- 201
86 --- 249
86 --- 250
86 --- 251
86 --- 252
89 --- 134
89 --- 154
89 --- 202
89 --- 253
91 --- 135
91 --- 136
91 --- 137
91 --- 138
91 --- 149
91 --- 158
91 --- 203
91 --- 204
91 --- 205
91 --- 206
91 --- 254
91 --- 255
91 --- 256
91 --- 257
92 --- 117
92 --- 118
92 --- 119
92 --- 120
92 --- 121
92 --- 122
92 --- 123
92 --- 124
92 --- 147
92 --- 156
92 --- 185
92 --- 186
92 --- 187
92 --- 188
92 --- 189
92 --- 190
92 --- 191
92 --- 192
92 --- 236
92 --- 237
92 --- 238
92 --- 239
92 --- 240
92 --- 241
92 --- 242
92 --- 243
93 --- 139
93 --- 140
93 --- 141
93 --- 142
93 --- 143
93 --- 144
93 --- 145
93 --- 146
93 --- 155
93 --- 163
93 --- 207
93 --- 208
93 --- 209
93 --- 210
93 --- 211
93 --- 212
93 --- 213
93 --- 214
93 --- 258
93 --- 259
93 --- 260
93 --- 261
93 --- 262
93 --- 263
93 --- 264
93 --- 265
94 --- 96
94 --- 97
94 --- 98
94 --- 99
94 --- 100
94 --- 101
94 --- 102
94 --- 103
94 --- 148
94 --- 157
94 --- 164
94 --- 165
94 --- 166
94 --- 167
94 --- 168
94 --- 169
94 --- 170
94 --- 171
94 --- 215
94 --- 216
94 --- 217
94 --- 218
94 --- 219
94 --- 220
94 --- 221
94 --- 222
95 --- 104
95 --- 105
95 --- 106
95 --- 107
95 --- 108
95 --- 109
95 --- 110
95 --- 111
95 --- 152
95 --- 161
95 --- 172
95 --- 173
95 --- 174
95 --- 175
95 --- 176
95 --- 177
95 --- 178
95 --- 179
95 --- 223
95 --- 224
95 --- 225
95 --- 226
95 --- 227
95 --- 228
95 --- 229
95 --- 230
96 --- 165
215 <--x 96
96 --- 216
97 --- 167
217 <--x 97
97 --- 218
98 --- 166
216 <--x 98
98 --- 217
99 --- 171
221 <--x 99
99 --- 222
100 --- 169
219 <--x 100
100 --- 220
101 --- 164
101 --- 215
222 <--x 101
102 --- 170
220 <--x 102
102 --- 221
103 --- 168
218 <--x 103
103 --- 219
104 --- 178
228 <--x 104
104 --- 229
105 --- 179
229 <--x 105
105 --- 230
106 --- 174
224 <--x 106
106 --- 225
107 --- 177
227 <--x 107
107 --- 228
108 --- 173
223 <--x 108
108 --- 224
109 --- 176
226 <--x 109
109 --- 227
110 --- 172
110 --- 223
230 <--x 110
111 --- 175
225 <--x 111
111 --- 226
112 --- 182
232 <--x 112
112 --- 233
113 --- 181
231 <--x 113
113 --- 232
114 --- 180
114 --- 231
235 <--x 114
115 --- 183
233 <--x 115
115 --- 234
116 --- 184
234 <--x 116
116 --- 235
117 --- 186
117 --- 237
238 <--x 117
118 --- 188
118 --- 239
240 <--x 118
119 --- 191
119 --- 242
243 <--x 119
120 --- 185
120 --- 236
237 <--x 120
121 --- 187
121 --- 238
239 <--x 121
122 --- 190
122 --- 241
242 <--x 122
123 --- 192
236 <--x 123
123 --- 243
124 --- 189
124 --- 240
241 <--x 124
125 --- 195
245 <--x 125
125 --- 246
126 --- 197
247 <--x 126
126 --- 248
127 --- 193
127 --- 244
248 <--x 127
128 --- 194
244 <--x 128
128 --- 245
129 --- 196
246 <--x 129
129 --- 247
130 --- 199
249 <--x 130
130 --- 250
131 --- 201
251 <--x 131
131 --- 252
132 --- 200
250 <--x 132
132 --- 251
133 --- 198
133 --- 249
252 <--x 133
134 --- 202
134 --- 253
135 --- 203
135 --- 254
257 <--x 135
136 --- 206
256 <--x 136
136 --- 257
137 --- 205
255 <--x 137
137 --- 256
138 --- 204
254 <--x 138
138 --- 255
139 --- 209
139 --- 260
261 <--x 139
140 --- 207
140 --- 258
259 <--x 140
141 --- 214
258 <--x 141
141 --- 265
142 --- 208
142 --- 259
260 <--x 142
143 --- 212
143 --- 263
264 <--x 143
144 --- 210
144 --- 261
262 <--x 144
145 --- 213
145 --- 264
265 <--x 145
146 --- 211
146 --- 262
263 <--x 146
164 <--x 148
165 <--x 148
166 <--x 148
167 <--x 148
168 <--x 148
169 <--x 148
170 <--x 148
171 <--x 148
193 <--x 153
194 <--x 153
195 <--x 153
196 <--x 153
197 <--x 153
202 <--x 154
185 <--x 156
186 <--x 156
187 <--x 156
188 <--x 156
189 <--x 156
190 <--x 156
191 <--x 156
192 <--x 156
203 <--x 158
204 <--x 158
205 <--x 158
206 <--x 158
198 <--x 159
199 <--x 159
200 <--x 159
201 <--x 159
180 <--x 160
181 <--x 160
182 <--x 160
183 <--x 160
184 <--x 160
172 <--x 161
173 <--x 161
174 <--x 161
175 <--x 161
176 <--x 161
177 <--x 161
178 <--x 161
179 <--x 161
207 <--x 163
208 <--x 163
209 <--x 163
210 <--x 163
211 <--x 163
212 <--x 163
213 <--x 163
214 <--x 163
249 <--x 266
254 <--x 267