diff --git a/rust/kcl-lib/src/execution/mod.rs b/rust/kcl-lib/src/execution/mod.rs
index e5b409c27..f1c169fec 100644
--- a/rust/kcl-lib/src/execution/mod.rs
+++ b/rust/kcl-lib/src/execution/mod.rs
@@ -95,8 +95,7 @@ pub struct DefaultPlanes {
pub struct TagIdentifier {
pub value: String,
// Multi-version representation of info about the tag. Kept ordered. The usize is the epoch at which the info
- // was written. Note that there might be multiple versions of tag info from the same epoch, the version with
- // the higher index will be the most recent.
+ // was written.
#[serde(skip)]
pub info: Vec<(usize, TagEngineInfo)>,
#[serde(skip)]
@@ -123,10 +122,16 @@ impl TagIdentifier {
/// Add info from a different instance of this tag.
pub fn merge_info(&mut self, other: &TagIdentifier) {
assert_eq!(&self.value, &other.value);
- 'new_info: for (oe, ot) in &other.info {
- for (e, _) in &self.info {
- if e > oe {
- continue 'new_info;
+ for (oe, ot) in &other.info {
+ if let Some((e, t)) = self.info.last_mut() {
+ // If there is newer info, then skip this iteration.
+ if *e > *oe {
+ continue;
+ }
+ // If we're in the same epoch, then overwrite.
+ if e == oe {
+ *t = ot.clone();
+ continue;
}
}
self.info.push((*oe, ot.clone()));
diff --git a/rust/kcl-lib/src/simulation_tests.rs b/rust/kcl-lib/src/simulation_tests.rs
index c9fd174c0..ac4220490 100644
--- a/rust/kcl-lib/src/simulation_tests.rs
+++ b/rust/kcl-lib/src/simulation_tests.rs
@@ -2600,3 +2600,24 @@ mod import_async {
super::execute(TEST_NAME, true).await
}
}
+mod loop_tag {
+ const TEST_NAME: &str = "loop_tag";
+
+ /// Test parsing KCL.
+ #[test]
+ fn parse() {
+ super::parse(TEST_NAME)
+ }
+
+ /// Test that parsing and unparsing KCL produces the original KCL input.
+ #[tokio::test(flavor = "multi_thread")]
+ async fn unparse() {
+ super::unparse(TEST_NAME).await
+ }
+
+ /// Test that KCL is executed correctly.
+ #[tokio::test(flavor = "multi_thread")]
+ async fn kcl_test_execute() {
+ super::execute(TEST_NAME, true).await
+ }
+}
diff --git a/rust/kcl-lib/tests/loop_tag/artifact_commands.snap b/rust/kcl-lib/tests/loop_tag/artifact_commands.snap
new file mode 100644
index 000000000..68df0be41
--- /dev/null
+++ b/rust/kcl-lib/tests/loop_tag/artifact_commands.snap
@@ -0,0 +1,2032 @@
+---
+source: kcl-lib/src/simulation_tests.rs
+description: Artifact commands loop_tag.kcl
+---
+[
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "edge_lines_visible",
+ "hidden": false
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "object_visible",
+ "object_id": "[uuid]",
+ "hidden": true
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "object_visible",
+ "object_id": "[uuid]",
+ "hidden": true
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "set_scene_units",
+ "unit": "mm"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "make_plane",
+ "origin": {
+ "x": 0.0,
+ "y": 0.0,
+ "z": 0.0
+ },
+ "x_axis": {
+ "x": 1.0,
+ "y": 0.0,
+ "z": 0.0
+ },
+ "y_axis": {
+ "x": 0.0,
+ "y": 1.0,
+ "z": 0.0
+ },
+ "size": 60.0,
+ "clobber": false,
+ "hide": true
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "enable_sketch_mode",
+ "entity_id": "[uuid]",
+ "ortho": false,
+ "animated": false,
+ "adjust_camera": false,
+ "planar_normal": {
+ "x": 0.0,
+ "y": 0.0,
+ "z": 1.0
+ }
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "start_path"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "move_path_pen",
+ "path": "[uuid]",
+ "to": {
+ "x": 10.0,
+ "y": 0.0,
+ "z": 0.0
+ }
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "sketch_mode_disable"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "extend_path",
+ "path": "[uuid]",
+ "segment": {
+ "type": "line",
+ "end": {
+ "x": 9.9211,
+ "y": 1.2533,
+ "z": 0.0
+ },
+ "relative": true
+ }
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "extend_path",
+ "path": "[uuid]",
+ "segment": {
+ "type": "line",
+ "end": {
+ "x": 9.6858,
+ "y": 2.4869,
+ "z": 0.0
+ },
+ "relative": true
+ }
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "extend_path",
+ "path": "[uuid]",
+ "segment": {
+ "type": "line",
+ "end": {
+ "x": 9.2978,
+ "y": 3.6812,
+ "z": 0.0
+ },
+ "relative": true
+ }
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "extend_path",
+ "path": "[uuid]",
+ "segment": {
+ "type": "line",
+ "end": {
+ "x": 8.7631,
+ "y": 4.8175,
+ "z": 0.0
+ },
+ "relative": true
+ }
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "extend_path",
+ "path": "[uuid]",
+ "segment": {
+ "type": "line",
+ "end": {
+ "x": 8.0902,
+ "y": 5.8779,
+ "z": 0.0
+ },
+ "relative": true
+ }
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "extend_path",
+ "path": "[uuid]",
+ "segment": {
+ "type": "line",
+ "end": {
+ "x": 7.2897,
+ "y": 6.8455,
+ "z": 0.0
+ },
+ "relative": true
+ }
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "extend_path",
+ "path": "[uuid]",
+ "segment": {
+ "type": "line",
+ "end": {
+ "x": 6.3742,
+ "y": 7.7051,
+ "z": 0.0
+ },
+ "relative": true
+ }
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "extend_path",
+ "path": "[uuid]",
+ "segment": {
+ "type": "line",
+ "end": {
+ "x": 5.3583,
+ "y": 8.4433,
+ "z": 0.0
+ },
+ "relative": true
+ }
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "extend_path",
+ "path": "[uuid]",
+ "segment": {
+ "type": "line",
+ "end": {
+ "x": 4.2578,
+ "y": 9.0483,
+ "z": 0.0
+ },
+ "relative": true
+ }
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "extend_path",
+ "path": "[uuid]",
+ "segment": {
+ "type": "line",
+ "end": {
+ "x": 3.0902,
+ "y": 9.5106,
+ "z": 0.0
+ },
+ "relative": true
+ }
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "extend_path",
+ "path": "[uuid]",
+ "segment": {
+ "type": "line",
+ "end": {
+ "x": 1.8738,
+ "y": 9.8229,
+ "z": 0.0
+ },
+ "relative": true
+ }
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "extend_path",
+ "path": "[uuid]",
+ "segment": {
+ "type": "line",
+ "end": {
+ "x": 0.6279,
+ "y": 9.9803,
+ "z": 0.0
+ },
+ "relative": true
+ }
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "extend_path",
+ "path": "[uuid]",
+ "segment": {
+ "type": "line",
+ "end": {
+ "x": -0.6279,
+ "y": 9.9803,
+ "z": 0.0
+ },
+ "relative": true
+ }
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "extend_path",
+ "path": "[uuid]",
+ "segment": {
+ "type": "line",
+ "end": {
+ "x": -1.8738,
+ "y": 9.8229,
+ "z": 0.0
+ },
+ "relative": true
+ }
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "extend_path",
+ "path": "[uuid]",
+ "segment": {
+ "type": "line",
+ "end": {
+ "x": -3.0902,
+ "y": 9.5106,
+ "z": 0.0
+ },
+ "relative": true
+ }
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "extend_path",
+ "path": "[uuid]",
+ "segment": {
+ "type": "line",
+ "end": {
+ "x": -4.2578,
+ "y": 9.0483,
+ "z": 0.0
+ },
+ "relative": true
+ }
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "extend_path",
+ "path": "[uuid]",
+ "segment": {
+ "type": "line",
+ "end": {
+ "x": -5.3583,
+ "y": 8.4433,
+ "z": 0.0
+ },
+ "relative": true
+ }
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "extend_path",
+ "path": "[uuid]",
+ "segment": {
+ "type": "line",
+ "end": {
+ "x": -6.3742,
+ "y": 7.7051,
+ "z": 0.0
+ },
+ "relative": true
+ }
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "extend_path",
+ "path": "[uuid]",
+ "segment": {
+ "type": "line",
+ "end": {
+ "x": -7.2897,
+ "y": 6.8455,
+ "z": 0.0
+ },
+ "relative": true
+ }
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "extend_path",
+ "path": "[uuid]",
+ "segment": {
+ "type": "line",
+ "end": {
+ "x": -8.0902,
+ "y": 5.8779,
+ "z": 0.0
+ },
+ "relative": true
+ }
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "extend_path",
+ "path": "[uuid]",
+ "segment": {
+ "type": "line",
+ "end": {
+ "x": -8.7631,
+ "y": 4.8175,
+ "z": 0.0
+ },
+ "relative": true
+ }
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "extend_path",
+ "path": "[uuid]",
+ "segment": {
+ "type": "line",
+ "end": {
+ "x": -9.2978,
+ "y": 3.6812,
+ "z": 0.0
+ },
+ "relative": true
+ }
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "extend_path",
+ "path": "[uuid]",
+ "segment": {
+ "type": "line",
+ "end": {
+ "x": -9.6858,
+ "y": 2.4869,
+ "z": 0.0
+ },
+ "relative": true
+ }
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "extend_path",
+ "path": "[uuid]",
+ "segment": {
+ "type": "line",
+ "end": {
+ "x": -9.9211,
+ "y": 1.2533,
+ "z": 0.0
+ },
+ "relative": true
+ }
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "extend_path",
+ "path": "[uuid]",
+ "segment": {
+ "type": "line",
+ "end": {
+ "x": -10.0,
+ "y": 0.0,
+ "z": 0.0
+ },
+ "relative": true
+ }
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "extend_path",
+ "path": "[uuid]",
+ "segment": {
+ "type": "line",
+ "end": {
+ "x": -9.9211,
+ "y": -1.2533,
+ "z": 0.0
+ },
+ "relative": true
+ }
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "extend_path",
+ "path": "[uuid]",
+ "segment": {
+ "type": "line",
+ "end": {
+ "x": -9.6858,
+ "y": -2.4869,
+ "z": 0.0
+ },
+ "relative": true
+ }
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "extend_path",
+ "path": "[uuid]",
+ "segment": {
+ "type": "line",
+ "end": {
+ "x": -9.2978,
+ "y": -3.6812,
+ "z": 0.0
+ },
+ "relative": true
+ }
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "extend_path",
+ "path": "[uuid]",
+ "segment": {
+ "type": "line",
+ "end": {
+ "x": -8.7631,
+ "y": -4.8175,
+ "z": 0.0
+ },
+ "relative": true
+ }
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "extend_path",
+ "path": "[uuid]",
+ "segment": {
+ "type": "line",
+ "end": {
+ "x": -8.0902,
+ "y": -5.8779,
+ "z": 0.0
+ },
+ "relative": true
+ }
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "extend_path",
+ "path": "[uuid]",
+ "segment": {
+ "type": "line",
+ "end": {
+ "x": -7.2897,
+ "y": -6.8455,
+ "z": 0.0
+ },
+ "relative": true
+ }
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "extend_path",
+ "path": "[uuid]",
+ "segment": {
+ "type": "line",
+ "end": {
+ "x": -6.3742,
+ "y": -7.7051,
+ "z": 0.0
+ },
+ "relative": true
+ }
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "extend_path",
+ "path": "[uuid]",
+ "segment": {
+ "type": "line",
+ "end": {
+ "x": -5.3583,
+ "y": -8.4433,
+ "z": 0.0
+ },
+ "relative": true
+ }
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "extend_path",
+ "path": "[uuid]",
+ "segment": {
+ "type": "line",
+ "end": {
+ "x": -4.2578,
+ "y": -9.0483,
+ "z": 0.0
+ },
+ "relative": true
+ }
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "extend_path",
+ "path": "[uuid]",
+ "segment": {
+ "type": "line",
+ "end": {
+ "x": -3.0902,
+ "y": -9.5106,
+ "z": 0.0
+ },
+ "relative": true
+ }
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "extend_path",
+ "path": "[uuid]",
+ "segment": {
+ "type": "line",
+ "end": {
+ "x": -1.8738,
+ "y": -9.8229,
+ "z": 0.0
+ },
+ "relative": true
+ }
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "extend_path",
+ "path": "[uuid]",
+ "segment": {
+ "type": "line",
+ "end": {
+ "x": -0.6279,
+ "y": -9.9803,
+ "z": 0.0
+ },
+ "relative": true
+ }
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "extend_path",
+ "path": "[uuid]",
+ "segment": {
+ "type": "line",
+ "end": {
+ "x": 0.6279,
+ "y": -9.9803,
+ "z": 0.0
+ },
+ "relative": true
+ }
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "extend_path",
+ "path": "[uuid]",
+ "segment": {
+ "type": "line",
+ "end": {
+ "x": 1.8738,
+ "y": -9.8229,
+ "z": 0.0
+ },
+ "relative": true
+ }
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "extend_path",
+ "path": "[uuid]",
+ "segment": {
+ "type": "line",
+ "end": {
+ "x": 3.0902,
+ "y": -9.5106,
+ "z": 0.0
+ },
+ "relative": true
+ }
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "extend_path",
+ "path": "[uuid]",
+ "segment": {
+ "type": "line",
+ "end": {
+ "x": 4.2578,
+ "y": -9.0483,
+ "z": 0.0
+ },
+ "relative": true
+ }
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "extend_path",
+ "path": "[uuid]",
+ "segment": {
+ "type": "line",
+ "end": {
+ "x": 5.3583,
+ "y": -8.4433,
+ "z": 0.0
+ },
+ "relative": true
+ }
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "extend_path",
+ "path": "[uuid]",
+ "segment": {
+ "type": "line",
+ "end": {
+ "x": 6.3742,
+ "y": -7.7051,
+ "z": 0.0
+ },
+ "relative": true
+ }
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "extend_path",
+ "path": "[uuid]",
+ "segment": {
+ "type": "line",
+ "end": {
+ "x": 7.2897,
+ "y": -6.8455,
+ "z": 0.0
+ },
+ "relative": true
+ }
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "extend_path",
+ "path": "[uuid]",
+ "segment": {
+ "type": "line",
+ "end": {
+ "x": 8.0902,
+ "y": -5.8779,
+ "z": 0.0
+ },
+ "relative": true
+ }
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "extend_path",
+ "path": "[uuid]",
+ "segment": {
+ "type": "line",
+ "end": {
+ "x": 8.7631,
+ "y": -4.8175,
+ "z": 0.0
+ },
+ "relative": true
+ }
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "extend_path",
+ "path": "[uuid]",
+ "segment": {
+ "type": "line",
+ "end": {
+ "x": 9.2978,
+ "y": -3.6812,
+ "z": 0.0
+ },
+ "relative": true
+ }
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "extend_path",
+ "path": "[uuid]",
+ "segment": {
+ "type": "line",
+ "end": {
+ "x": 9.6858,
+ "y": -2.4869,
+ "z": 0.0
+ },
+ "relative": true
+ }
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "extend_path",
+ "path": "[uuid]",
+ "segment": {
+ "type": "line",
+ "end": {
+ "x": 9.9211,
+ "y": -1.2533,
+ "z": 0.0
+ },
+ "relative": true
+ }
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "close_path",
+ "path_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "enable_sketch_mode",
+ "entity_id": "[uuid]",
+ "ortho": false,
+ "animated": false,
+ "adjust_camera": false,
+ "planar_normal": {
+ "x": 0.0,
+ "y": 0.0,
+ "z": 1.0
+ }
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "extrude",
+ "target": "[uuid]",
+ "distance": 50.0,
+ "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_opposite_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_next_adjacent_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_opposite_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_next_adjacent_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_opposite_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_next_adjacent_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_opposite_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_next_adjacent_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_opposite_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_next_adjacent_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_opposite_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_next_adjacent_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_opposite_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_next_adjacent_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_opposite_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_next_adjacent_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_opposite_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_next_adjacent_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_opposite_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_next_adjacent_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_opposite_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_next_adjacent_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_opposite_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_next_adjacent_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_opposite_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_next_adjacent_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_opposite_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_next_adjacent_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_opposite_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_next_adjacent_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_opposite_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_next_adjacent_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_opposite_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_next_adjacent_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_opposite_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_next_adjacent_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_opposite_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_next_adjacent_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_opposite_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_next_adjacent_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_opposite_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_next_adjacent_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_opposite_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_next_adjacent_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_opposite_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_next_adjacent_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_opposite_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_next_adjacent_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_opposite_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_next_adjacent_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_opposite_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_next_adjacent_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_opposite_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_next_adjacent_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_opposite_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_next_adjacent_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_opposite_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_next_adjacent_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_opposite_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_next_adjacent_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_opposite_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_next_adjacent_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_opposite_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_next_adjacent_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_opposite_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_next_adjacent_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_opposite_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_next_adjacent_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_opposite_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_next_adjacent_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_opposite_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_next_adjacent_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_opposite_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_next_adjacent_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_opposite_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_next_adjacent_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_opposite_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_next_adjacent_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_opposite_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_next_adjacent_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_opposite_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_next_adjacent_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_opposite_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_next_adjacent_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_opposite_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_next_adjacent_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_opposite_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_next_adjacent_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_opposite_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_next_adjacent_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_opposite_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_next_adjacent_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_opposite_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_next_adjacent_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_opposite_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_next_adjacent_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_opposite_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_next_adjacent_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_opposite_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "solid3d_get_next_adjacent_edge",
+ "object_id": "[uuid]",
+ "edge_id": "[uuid]",
+ "face_id": "[uuid]"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "set_scene_units",
+ "unit": "mm"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "set_scene_units",
+ "unit": "mm"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "set_scene_units",
+ "unit": "mm"
+ }
+ },
+ {
+ "cmdId": "[uuid]",
+ "range": [],
+ "command": {
+ "type": "set_scene_units",
+ "unit": "mm"
+ }
+ }
+]
diff --git a/rust/kcl-lib/tests/loop_tag/artifact_graph_flowchart.snap b/rust/kcl-lib/tests/loop_tag/artifact_graph_flowchart.snap
new file mode 100644
index 000000000..ce3a2e5c0
--- /dev/null
+++ b/rust/kcl-lib/tests/loop_tag/artifact_graph_flowchart.snap
@@ -0,0 +1,6 @@
+---
+source: kcl-lib/src/simulation_tests.rs
+description: Artifact graph flowchart loop_tag.kcl
+extension: md
+snapshot_kind: binary
+---
diff --git a/rust/kcl-lib/tests/loop_tag/artifact_graph_flowchart.snap.md b/rust/kcl-lib/tests/loop_tag/artifact_graph_flowchart.snap.md
new file mode 100644
index 000000000..07050ed7e
--- /dev/null
+++ b/rust/kcl-lib/tests/loop_tag/artifact_graph_flowchart.snap.md
@@ -0,0 +1,566 @@
+```mermaid
+flowchart LR
+ subgraph path2 [Path]
+ 2["Path
[754, 790, 0]"]
+ 3["Segment
[930, 994, 0]"]
+ 4["Segment
[930, 994, 0]"]
+ 5["Segment
[930, 994, 0]"]
+ 6["Segment
[930, 994, 0]"]
+ 7["Segment
[930, 994, 0]"]
+ 8["Segment
[930, 994, 0]"]
+ 9["Segment
[930, 994, 0]"]
+ 10["Segment
[930, 994, 0]"]
+ 11["Segment
[930, 994, 0]"]
+ 12["Segment
[930, 994, 0]"]
+ 13["Segment
[930, 994, 0]"]
+ 14["Segment
[930, 994, 0]"]
+ 15["Segment
[930, 994, 0]"]
+ 16["Segment
[930, 994, 0]"]
+ 17["Segment
[930, 994, 0]"]
+ 18["Segment
[930, 994, 0]"]
+ 19["Segment
[930, 994, 0]"]
+ 20["Segment
[930, 994, 0]"]
+ 21["Segment
[930, 994, 0]"]
+ 22["Segment
[930, 994, 0]"]
+ 23["Segment
[930, 994, 0]"]
+ 24["Segment
[930, 994, 0]"]
+ 25["Segment
[930, 994, 0]"]
+ 26["Segment
[930, 994, 0]"]
+ 27["Segment
[930, 994, 0]"]
+ 28["Segment
[930, 994, 0]"]
+ 29["Segment
[930, 994, 0]"]
+ 30["Segment
[930, 994, 0]"]
+ 31["Segment
[930, 994, 0]"]
+ 32["Segment
[930, 994, 0]"]
+ 33["Segment
[930, 994, 0]"]
+ 34["Segment
[930, 994, 0]"]
+ 35["Segment
[930, 994, 0]"]
+ 36["Segment
[930, 994, 0]"]
+ 37["Segment
[930, 994, 0]"]
+ 38["Segment
[930, 994, 0]"]
+ 39["Segment
[930, 994, 0]"]
+ 40["Segment
[930, 994, 0]"]
+ 41["Segment
[930, 994, 0]"]
+ 42["Segment
[930, 994, 0]"]
+ 43["Segment
[930, 994, 0]"]
+ 44["Segment
[930, 994, 0]"]
+ 45["Segment
[930, 994, 0]"]
+ 46["Segment
[930, 994, 0]"]
+ 47["Segment
[930, 994, 0]"]
+ 48["Segment
[930, 994, 0]"]
+ 49["Segment
[930, 994, 0]"]
+ 50["Segment
[930, 994, 0]"]
+ 51["Segment
[930, 994, 0]"]
+ 52["Segment
[1058, 1076, 0]"]
+ 53[Solid2d]
+ end
+ 1["Plane
[731, 748, 0]"]
+ 54["Sweep Extrusion
[1130, 1168, 0]"]
+ 55[Wall]
+ 56[Wall]
+ 57[Wall]
+ 58[Wall]
+ 59[Wall]
+ 60[Wall]
+ 61[Wall]
+ 62[Wall]
+ 63[Wall]
+ 64[Wall]
+ 65[Wall]
+ 66[Wall]
+ 67[Wall]
+ 68[Wall]
+ 69[Wall]
+ 70[Wall]
+ 71[Wall]
+ 72[Wall]
+ 73[Wall]
+ 74[Wall]
+ 75[Wall]
+ 76[Wall]
+ 77[Wall]
+ 78[Wall]
+ 79[Wall]
+ 80[Wall]
+ 81[Wall]
+ 82[Wall]
+ 83[Wall]
+ 84[Wall]
+ 85[Wall]
+ 86[Wall]
+ 87[Wall]
+ 88[Wall]
+ 89[Wall]
+ 90[Wall]
+ 91[Wall]
+ 92[Wall]
+ 93[Wall]
+ 94[Wall]
+ 95[Wall]
+ 96[Wall]
+ 97[Wall]
+ 98[Wall]
+ 99[Wall]
+ 100[Wall]
+ 101[Wall]
+ 102[Wall]
+ 103[Wall]
+ 104[Wall]
+ 105["Cap Start"]
+ 106["Cap End"]
+ 107["SweepEdge Opposite"]
+ 108["SweepEdge Adjacent"]
+ 109["SweepEdge Opposite"]
+ 110["SweepEdge Adjacent"]
+ 111["SweepEdge Opposite"]
+ 112["SweepEdge Adjacent"]
+ 113["SweepEdge Opposite"]
+ 114["SweepEdge Adjacent"]
+ 115["SweepEdge Opposite"]
+ 116["SweepEdge Adjacent"]
+ 117["SweepEdge Opposite"]
+ 118["SweepEdge Adjacent"]
+ 119["SweepEdge Opposite"]
+ 120["SweepEdge Adjacent"]
+ 121["SweepEdge Opposite"]
+ 122["SweepEdge Adjacent"]
+ 123["SweepEdge Opposite"]
+ 124["SweepEdge Adjacent"]
+ 125["SweepEdge Opposite"]
+ 126["SweepEdge Adjacent"]
+ 127["SweepEdge Opposite"]
+ 128["SweepEdge Adjacent"]
+ 129["SweepEdge Opposite"]
+ 130["SweepEdge Adjacent"]
+ 131["SweepEdge Opposite"]
+ 132["SweepEdge Adjacent"]
+ 133["SweepEdge Opposite"]
+ 134["SweepEdge Adjacent"]
+ 135["SweepEdge Opposite"]
+ 136["SweepEdge Adjacent"]
+ 137["SweepEdge Opposite"]
+ 138["SweepEdge Adjacent"]
+ 139["SweepEdge Opposite"]
+ 140["SweepEdge Adjacent"]
+ 141["SweepEdge Opposite"]
+ 142["SweepEdge Adjacent"]
+ 143["SweepEdge Opposite"]
+ 144["SweepEdge Adjacent"]
+ 145["SweepEdge Opposite"]
+ 146["SweepEdge Adjacent"]
+ 147["SweepEdge Opposite"]
+ 148["SweepEdge Adjacent"]
+ 149["SweepEdge Opposite"]
+ 150["SweepEdge Adjacent"]
+ 151["SweepEdge Opposite"]
+ 152["SweepEdge Adjacent"]
+ 153["SweepEdge Opposite"]
+ 154["SweepEdge Adjacent"]
+ 155["SweepEdge Opposite"]
+ 156["SweepEdge Adjacent"]
+ 157["SweepEdge Opposite"]
+ 158["SweepEdge Adjacent"]
+ 159["SweepEdge Opposite"]
+ 160["SweepEdge Adjacent"]
+ 161["SweepEdge Opposite"]
+ 162["SweepEdge Adjacent"]
+ 163["SweepEdge Opposite"]
+ 164["SweepEdge Adjacent"]
+ 165["SweepEdge Opposite"]
+ 166["SweepEdge Adjacent"]
+ 167["SweepEdge Opposite"]
+ 168["SweepEdge Adjacent"]
+ 169["SweepEdge Opposite"]
+ 170["SweepEdge Adjacent"]
+ 171["SweepEdge Opposite"]
+ 172["SweepEdge Adjacent"]
+ 173["SweepEdge Opposite"]
+ 174["SweepEdge Adjacent"]
+ 175["SweepEdge Opposite"]
+ 176["SweepEdge Adjacent"]
+ 177["SweepEdge Opposite"]
+ 178["SweepEdge Adjacent"]
+ 179["SweepEdge Opposite"]
+ 180["SweepEdge Adjacent"]
+ 181["SweepEdge Opposite"]
+ 182["SweepEdge Adjacent"]
+ 183["SweepEdge Opposite"]
+ 184["SweepEdge Adjacent"]
+ 185["SweepEdge Opposite"]
+ 186["SweepEdge Adjacent"]
+ 187["SweepEdge Opposite"]
+ 188["SweepEdge Adjacent"]
+ 189["SweepEdge Opposite"]
+ 190["SweepEdge Adjacent"]
+ 191["SweepEdge Opposite"]
+ 192["SweepEdge Adjacent"]
+ 193["SweepEdge Opposite"]
+ 194["SweepEdge Adjacent"]
+ 195["SweepEdge Opposite"]
+ 196["SweepEdge Adjacent"]
+ 197["SweepEdge Opposite"]
+ 198["SweepEdge Adjacent"]
+ 199["SweepEdge Opposite"]
+ 200["SweepEdge Adjacent"]
+ 201["SweepEdge Opposite"]
+ 202["SweepEdge Adjacent"]
+ 203["SweepEdge Opposite"]
+ 204["SweepEdge Adjacent"]
+ 205["SweepEdge Opposite"]
+ 206["SweepEdge Adjacent"]
+ 1 --- 2
+ 2 --- 3
+ 2 --- 4
+ 2 --- 5
+ 2 --- 6
+ 2 --- 7
+ 2 --- 8
+ 2 --- 9
+ 2 --- 10
+ 2 --- 11
+ 2 --- 12
+ 2 --- 13
+ 2 --- 14
+ 2 --- 15
+ 2 --- 16
+ 2 --- 17
+ 2 --- 18
+ 2 --- 19
+ 2 --- 20
+ 2 --- 21
+ 2 --- 22
+ 2 --- 23
+ 2 --- 24
+ 2 --- 25
+ 2 --- 26
+ 2 --- 27
+ 2 --- 28
+ 2 --- 29
+ 2 --- 30
+ 2 --- 31
+ 2 --- 32
+ 2 --- 33
+ 2 --- 34
+ 2 --- 35
+ 2 --- 36
+ 2 --- 37
+ 2 --- 38
+ 2 --- 39
+ 2 --- 40
+ 2 --- 41
+ 2 --- 42
+ 2 --- 43
+ 2 --- 44
+ 2 --- 45
+ 2 --- 46
+ 2 --- 47
+ 2 --- 48
+ 2 --- 49
+ 2 --- 50
+ 2 --- 51
+ 2 --- 52
+ 2 ---- 54
+ 2 --- 53
+ 3 --- 55
+ 3 --- 107
+ 3 --- 108
+ 4 --- 56
+ 4 --- 109
+ 4 --- 110
+ 5 --- 57
+ 5 --- 111
+ 5 --- 112
+ 6 --- 58
+ 6 --- 113
+ 6 --- 114
+ 7 --- 59
+ 7 --- 115
+ 7 --- 116
+ 8 --- 60
+ 8 --- 117
+ 8 --- 118
+ 9 --- 61
+ 9 --- 119
+ 9 --- 120
+ 10 --- 62
+ 10 --- 121
+ 10 --- 122
+ 11 --- 63
+ 11 --- 123
+ 11 --- 124
+ 12 --- 64
+ 12 --- 125
+ 12 --- 126
+ 13 --- 65
+ 13 --- 127
+ 13 --- 128
+ 14 --- 66
+ 14 --- 129
+ 14 --- 130
+ 15 --- 67
+ 15 --- 131
+ 15 --- 132
+ 16 --- 68
+ 16 --- 133
+ 16 --- 134
+ 17 --- 69
+ 17 --- 135
+ 17 --- 136
+ 18 --- 70
+ 18 --- 137
+ 18 --- 138
+ 19 --- 71
+ 19 --- 139
+ 19 --- 140
+ 20 --- 72
+ 20 --- 141
+ 20 --- 142
+ 21 --- 73
+ 21 --- 143
+ 21 --- 144
+ 22 --- 74
+ 22 --- 145
+ 22 --- 146
+ 23 --- 75
+ 23 --- 147
+ 23 --- 148
+ 24 --- 76
+ 24 --- 149
+ 24 --- 150
+ 25 --- 77
+ 25 --- 151
+ 25 --- 152
+ 26 --- 78
+ 26 --- 153
+ 26 --- 154
+ 27 --- 79
+ 27 --- 155
+ 27 --- 156
+ 28 --- 80
+ 28 --- 157
+ 28 --- 158
+ 29 --- 81
+ 29 --- 159
+ 29 --- 160
+ 30 --- 82
+ 30 --- 161
+ 30 --- 162
+ 31 --- 83
+ 31 --- 163
+ 31 --- 164
+ 32 --- 84
+ 32 --- 165
+ 32 --- 166
+ 33 --- 85
+ 33 --- 167
+ 33 --- 168
+ 34 --- 86
+ 34 --- 169
+ 34 --- 170
+ 35 --- 87
+ 35 --- 171
+ 35 --- 172
+ 36 --- 88
+ 36 --- 173
+ 36 --- 174
+ 37 --- 89
+ 37 --- 175
+ 37 --- 176
+ 38 --- 90
+ 38 --- 177
+ 38 --- 178
+ 39 --- 91
+ 39 --- 179
+ 39 --- 180
+ 40 --- 92
+ 40 --- 181
+ 40 --- 182
+ 41 --- 93
+ 41 --- 183
+ 41 --- 184
+ 42 --- 94
+ 42 --- 185
+ 42 --- 186
+ 43 --- 95
+ 43 --- 187
+ 43 --- 188
+ 44 --- 96
+ 44 --- 189
+ 44 --- 190
+ 45 --- 97
+ 45 --- 191
+ 45 --- 192
+ 46 --- 98
+ 46 --- 193
+ 46 --- 194
+ 47 --- 99
+ 47 --- 195
+ 47 --- 196
+ 48 --- 100
+ 48 --- 197
+ 48 --- 198
+ 49 --- 101
+ 49 --- 199
+ 49 --- 200
+ 50 --- 102
+ 50 --- 201
+ 50 --- 202
+ 51 --- 103
+ 51 --- 203
+ 51 --- 204
+ 52 --- 104
+ 52 --- 205
+ 52 --- 206
+ 54 --- 55
+ 54 --- 56
+ 54 --- 57
+ 54 --- 58
+ 54 --- 59
+ 54 --- 60
+ 54 --- 61
+ 54 --- 62
+ 54 --- 63
+ 54 --- 64
+ 54 --- 65
+ 54 --- 66
+ 54 --- 67
+ 54 --- 68
+ 54 --- 69
+ 54 --- 70
+ 54 --- 71
+ 54 --- 72
+ 54 --- 73
+ 54 --- 74
+ 54 --- 75
+ 54 --- 76
+ 54 --- 77
+ 54 --- 78
+ 54 --- 79
+ 54 --- 80
+ 54 --- 81
+ 54 --- 82
+ 54 --- 83
+ 54 --- 84
+ 54 --- 85
+ 54 --- 86
+ 54 --- 87
+ 54 --- 88
+ 54 --- 89
+ 54 --- 90
+ 54 --- 91
+ 54 --- 92
+ 54 --- 93
+ 54 --- 94
+ 54 --- 95
+ 54 --- 96
+ 54 --- 97
+ 54 --- 98
+ 54 --- 99
+ 54 --- 100
+ 54 --- 101
+ 54 --- 102
+ 54 --- 103
+ 54 --- 104
+ 54 --- 105
+ 54 --- 106
+ 54 --- 107
+ 54 --- 108
+ 54 --- 109
+ 54 --- 110
+ 54 --- 111
+ 54 --- 112
+ 54 --- 113
+ 54 --- 114
+ 54 --- 115
+ 54 --- 116
+ 54 --- 117
+ 54 --- 118
+ 54 --- 119
+ 54 --- 120
+ 54 --- 121
+ 54 --- 122
+ 54 --- 123
+ 54 --- 124
+ 54 --- 125
+ 54 --- 126
+ 54 --- 127
+ 54 --- 128
+ 54 --- 129
+ 54 --- 130
+ 54 --- 131
+ 54 --- 132
+ 54 --- 133
+ 54 --- 134
+ 54 --- 135
+ 54 --- 136
+ 54 --- 137
+ 54 --- 138
+ 54 --- 139
+ 54 --- 140
+ 54 --- 141
+ 54 --- 142
+ 54 --- 143
+ 54 --- 144
+ 54 --- 145
+ 54 --- 146
+ 54 --- 147
+ 54 --- 148
+ 54 --- 149
+ 54 --- 150
+ 54 --- 151
+ 54 --- 152
+ 54 --- 153
+ 54 --- 154
+ 54 --- 155
+ 54 --- 156
+ 54 --- 157
+ 54 --- 158
+ 54 --- 159
+ 54 --- 160
+ 54 --- 161
+ 54 --- 162
+ 54 --- 163
+ 54 --- 164
+ 54 --- 165
+ 54 --- 166
+ 54 --- 167
+ 54 --- 168
+ 54 --- 169
+ 54 --- 170
+ 54 --- 171
+ 54 --- 172
+ 54 --- 173
+ 54 --- 174
+ 54 --- 175
+ 54 --- 176
+ 54 --- 177
+ 54 --- 178
+ 54 --- 179
+ 54 --- 180
+ 54 --- 181
+ 54 --- 182
+ 54 --- 183
+ 54 --- 184
+ 54 --- 185
+ 54 --- 186
+ 54 --- 187
+ 54 --- 188
+ 54 --- 189
+ 54 --- 190
+ 54 --- 191
+ 54 --- 192
+ 54 --- 193
+ 54 --- 194
+ 54 --- 195
+ 54 --- 196
+ 54 --- 197
+ 54 --- 198
+ 54 --- 199
+ 54 --- 200
+ 54 --- 201
+ 54 --- 202
+ 54 --- 203
+ 54 --- 204
+ 54 --- 205
+ 54 --- 206
+```
diff --git a/rust/kcl-lib/tests/loop_tag/ast.snap b/rust/kcl-lib/tests/loop_tag/ast.snap
new file mode 100644
index 000000000..e9c16cad8
--- /dev/null
+++ b/rust/kcl-lib/tests/loop_tag/ast.snap
@@ -0,0 +1,1290 @@
+---
+source: kcl-lib/src/simulation_tests.rs
+description: Result of parsing loop_tag.kcl
+---
+{
+ "Ok": {
+ "body": [
+ {
+ "commentStart": 0,
+ "declaration": {
+ "commentStart": 0,
+ "end": 0,
+ "id": {
+ "commentStart": 0,
+ "end": 0,
+ "name": "radius",
+ "start": 0,
+ "type": "Identifier"
+ },
+ "init": {
+ "commentStart": 0,
+ "end": 0,
+ "raw": "10",
+ "start": 0,
+ "type": "Literal",
+ "type": "Literal",
+ "value": {
+ "value": 10.0,
+ "suffix": "None"
+ }
+ },
+ "start": 0,
+ "type": "VariableDeclarator"
+ },
+ "end": 0,
+ "kind": "const",
+ "preComments": [
+ "// Define constants for the cylinder"
+ ],
+ "start": 0,
+ "type": "VariableDeclaration",
+ "type": "VariableDeclaration"
+ },
+ {
+ "commentStart": 0,
+ "declaration": {
+ "commentStart": 0,
+ "end": 0,
+ "id": {
+ "commentStart": 0,
+ "end": 0,
+ "name": "height",
+ "start": 0,
+ "type": "Identifier"
+ },
+ "init": {
+ "commentStart": 0,
+ "end": 0,
+ "raw": "50",
+ "start": 0,
+ "type": "Literal",
+ "type": "Literal",
+ "value": {
+ "value": 50.0,
+ "suffix": "None"
+ }
+ },
+ "start": 0,
+ "type": "VariableDeclarator"
+ },
+ "end": 0,
+ "kind": "const",
+ "start": 0,
+ "type": "VariableDeclaration",
+ "type": "VariableDeclaration"
+ },
+ {
+ "commentStart": 0,
+ "declaration": {
+ "commentStart": 0,
+ "end": 0,
+ "id": {
+ "commentStart": 0,
+ "end": 0,
+ "name": "numSides",
+ "start": 0,
+ "type": "Identifier"
+ },
+ "init": {
+ "commentStart": 0,
+ "end": 0,
+ "raw": "50",
+ "start": 0,
+ "type": "Literal",
+ "type": "Literal",
+ "value": {
+ "value": 50.0,
+ "suffix": "None"
+ }
+ },
+ "start": 0,
+ "type": "VariableDeclarator"
+ },
+ "end": 0,
+ "kind": "const",
+ "start": 0,
+ "type": "VariableDeclaration",
+ "type": "VariableDeclaration"
+ },
+ {
+ "commentStart": 0,
+ "declaration": {
+ "commentStart": 0,
+ "end": 0,
+ "id": {
+ "commentStart": 0,
+ "end": 0,
+ "name": "angleIncrement",
+ "start": 0,
+ "type": "Identifier"
+ },
+ "init": {
+ "commentStart": 0,
+ "end": 0,
+ "left": {
+ "commentStart": 0,
+ "end": 0,
+ "raw": "360",
+ "start": 0,
+ "type": "Literal",
+ "type": "Literal",
+ "value": {
+ "value": 360.0,
+ "suffix": "None"
+ }
+ },
+ "operator": "/",
+ "right": {
+ "abs_path": false,
+ "commentStart": 0,
+ "end": 0,
+ "name": {
+ "commentStart": 0,
+ "end": 0,
+ "name": "numSides",
+ "start": 0,
+ "type": "Identifier"
+ },
+ "path": [],
+ "start": 0,
+ "type": "Name",
+ "type": "Name"
+ },
+ "start": 0,
+ "type": "BinaryExpression",
+ "type": "BinaryExpression"
+ },
+ "start": 0,
+ "type": "VariableDeclarator"
+ },
+ "end": 0,
+ "kind": "const",
+ "start": 0,
+ "type": "VariableDeclaration",
+ "type": "VariableDeclaration"
+ },
+ {
+ "commentStart": 0,
+ "declaration": {
+ "commentStart": 0,
+ "end": 0,
+ "id": {
+ "commentStart": 0,
+ "end": 0,
+ "name": "calculatePoint",
+ "start": 0,
+ "type": "Identifier"
+ },
+ "init": {
+ "body": {
+ "body": [
+ {
+ "commentStart": 0,
+ "declaration": {
+ "commentStart": 0,
+ "end": 0,
+ "id": {
+ "commentStart": 0,
+ "end": 0,
+ "name": "angle",
+ "start": 0,
+ "type": "Identifier"
+ },
+ "init": {
+ "commentStart": 0,
+ "end": 0,
+ "left": {
+ "abs_path": false,
+ "commentStart": 0,
+ "end": 0,
+ "name": {
+ "commentStart": 0,
+ "end": 0,
+ "name": "index",
+ "start": 0,
+ "type": "Identifier"
+ },
+ "path": [],
+ "start": 0,
+ "type": "Name",
+ "type": "Name"
+ },
+ "operator": "*",
+ "right": {
+ "abs_path": false,
+ "commentStart": 0,
+ "end": 0,
+ "name": {
+ "commentStart": 0,
+ "end": 0,
+ "name": "angleIncrement",
+ "start": 0,
+ "type": "Identifier"
+ },
+ "path": [],
+ "start": 0,
+ "type": "Name",
+ "type": "Name"
+ },
+ "start": 0,
+ "type": "BinaryExpression",
+ "type": "BinaryExpression"
+ },
+ "start": 0,
+ "type": "VariableDeclarator"
+ },
+ "end": 0,
+ "kind": "const",
+ "start": 0,
+ "type": "VariableDeclaration",
+ "type": "VariableDeclaration"
+ },
+ {
+ "commentStart": 0,
+ "declaration": {
+ "commentStart": 0,
+ "end": 0,
+ "id": {
+ "commentStart": 0,
+ "end": 0,
+ "name": "x",
+ "start": 0,
+ "type": "Identifier"
+ },
+ "init": {
+ "commentStart": 0,
+ "end": 0,
+ "left": {
+ "abs_path": false,
+ "commentStart": 0,
+ "end": 0,
+ "name": {
+ "commentStart": 0,
+ "end": 0,
+ "name": "radius",
+ "start": 0,
+ "type": "Identifier"
+ },
+ "path": [],
+ "start": 0,
+ "type": "Name",
+ "type": "Name"
+ },
+ "operator": "*",
+ "right": {
+ "arguments": [
+ {
+ "commentStart": 0,
+ "end": 0,
+ "left": {
+ "commentStart": 0,
+ "end": 0,
+ "left": {
+ "abs_path": false,
+ "commentStart": 0,
+ "end": 0,
+ "name": {
+ "commentStart": 0,
+ "end": 0,
+ "name": "angle",
+ "start": 0,
+ "type": "Identifier"
+ },
+ "path": [],
+ "start": 0,
+ "type": "Name",
+ "type": "Name"
+ },
+ "operator": "*",
+ "right": {
+ "abs_path": false,
+ "commentStart": 0,
+ "end": 0,
+ "name": {
+ "commentStart": 0,
+ "end": 0,
+ "name": "PI",
+ "start": 0,
+ "type": "Identifier"
+ },
+ "path": [],
+ "start": 0,
+ "type": "Name",
+ "type": "Name"
+ },
+ "start": 0,
+ "type": "BinaryExpression",
+ "type": "BinaryExpression"
+ },
+ "operator": "/",
+ "right": {
+ "commentStart": 0,
+ "end": 0,
+ "raw": "180",
+ "start": 0,
+ "type": "Literal",
+ "type": "Literal",
+ "value": {
+ "value": 180.0,
+ "suffix": "None"
+ }
+ },
+ "start": 0,
+ "type": "BinaryExpression",
+ "type": "BinaryExpression"
+ }
+ ],
+ "callee": {
+ "abs_path": false,
+ "commentStart": 0,
+ "end": 0,
+ "name": {
+ "commentStart": 0,
+ "end": 0,
+ "name": "cos",
+ "start": 0,
+ "type": "Identifier"
+ },
+ "path": [],
+ "start": 0,
+ "type": "Name"
+ },
+ "commentStart": 0,
+ "end": 0,
+ "start": 0,
+ "type": "CallExpression",
+ "type": "CallExpression"
+ },
+ "start": 0,
+ "type": "BinaryExpression",
+ "type": "BinaryExpression"
+ },
+ "start": 0,
+ "type": "VariableDeclarator"
+ },
+ "end": 0,
+ "kind": "const",
+ "start": 0,
+ "type": "VariableDeclaration",
+ "type": "VariableDeclaration"
+ },
+ {
+ "commentStart": 0,
+ "declaration": {
+ "commentStart": 0,
+ "end": 0,
+ "id": {
+ "commentStart": 0,
+ "end": 0,
+ "name": "y",
+ "start": 0,
+ "type": "Identifier"
+ },
+ "init": {
+ "commentStart": 0,
+ "end": 0,
+ "left": {
+ "abs_path": false,
+ "commentStart": 0,
+ "end": 0,
+ "name": {
+ "commentStart": 0,
+ "end": 0,
+ "name": "radius",
+ "start": 0,
+ "type": "Identifier"
+ },
+ "path": [],
+ "start": 0,
+ "type": "Name",
+ "type": "Name"
+ },
+ "operator": "*",
+ "right": {
+ "arguments": [
+ {
+ "commentStart": 0,
+ "end": 0,
+ "left": {
+ "commentStart": 0,
+ "end": 0,
+ "left": {
+ "abs_path": false,
+ "commentStart": 0,
+ "end": 0,
+ "name": {
+ "commentStart": 0,
+ "end": 0,
+ "name": "angle",
+ "start": 0,
+ "type": "Identifier"
+ },
+ "path": [],
+ "start": 0,
+ "type": "Name",
+ "type": "Name"
+ },
+ "operator": "*",
+ "right": {
+ "abs_path": false,
+ "commentStart": 0,
+ "end": 0,
+ "name": {
+ "commentStart": 0,
+ "end": 0,
+ "name": "PI",
+ "start": 0,
+ "type": "Identifier"
+ },
+ "path": [],
+ "start": 0,
+ "type": "Name",
+ "type": "Name"
+ },
+ "start": 0,
+ "type": "BinaryExpression",
+ "type": "BinaryExpression"
+ },
+ "operator": "/",
+ "right": {
+ "commentStart": 0,
+ "end": 0,
+ "raw": "180",
+ "start": 0,
+ "type": "Literal",
+ "type": "Literal",
+ "value": {
+ "value": 180.0,
+ "suffix": "None"
+ }
+ },
+ "start": 0,
+ "type": "BinaryExpression",
+ "type": "BinaryExpression"
+ }
+ ],
+ "callee": {
+ "abs_path": false,
+ "commentStart": 0,
+ "end": 0,
+ "name": {
+ "commentStart": 0,
+ "end": 0,
+ "name": "sin",
+ "start": 0,
+ "type": "Identifier"
+ },
+ "path": [],
+ "start": 0,
+ "type": "Name"
+ },
+ "commentStart": 0,
+ "end": 0,
+ "start": 0,
+ "type": "CallExpression",
+ "type": "CallExpression"
+ },
+ "start": 0,
+ "type": "BinaryExpression",
+ "type": "BinaryExpression"
+ },
+ "start": 0,
+ "type": "VariableDeclarator"
+ },
+ "end": 0,
+ "kind": "const",
+ "start": 0,
+ "type": "VariableDeclaration",
+ "type": "VariableDeclaration"
+ },
+ {
+ "argument": {
+ "commentStart": 0,
+ "elements": [
+ {
+ "abs_path": false,
+ "commentStart": 0,
+ "end": 0,
+ "name": {
+ "commentStart": 0,
+ "end": 0,
+ "name": "x",
+ "start": 0,
+ "type": "Identifier"
+ },
+ "path": [],
+ "start": 0,
+ "type": "Name",
+ "type": "Name"
+ },
+ {
+ "abs_path": false,
+ "commentStart": 0,
+ "end": 0,
+ "name": {
+ "commentStart": 0,
+ "end": 0,
+ "name": "y",
+ "start": 0,
+ "type": "Identifier"
+ },
+ "path": [],
+ "start": 0,
+ "type": "Name",
+ "type": "Name"
+ }
+ ],
+ "end": 0,
+ "start": 0,
+ "type": "ArrayExpression",
+ "type": "ArrayExpression"
+ },
+ "commentStart": 0,
+ "end": 0,
+ "start": 0,
+ "type": "ReturnStatement",
+ "type": "ReturnStatement"
+ }
+ ],
+ "commentStart": 0,
+ "end": 0,
+ "start": 0
+ },
+ "commentStart": 0,
+ "end": 0,
+ "params": [
+ {
+ "type": "Parameter",
+ "identifier": {
+ "commentStart": 0,
+ "end": 0,
+ "name": "index",
+ "start": 0,
+ "type": "Identifier"
+ }
+ }
+ ],
+ "start": 0,
+ "type": "FunctionExpression",
+ "type": "FunctionExpression"
+ },
+ "start": 0,
+ "type": "VariableDeclarator"
+ },
+ "end": 0,
+ "kind": "fn",
+ "preComments": [
+ "",
+ "",
+ "// Function to calculate the coordinates of a point on the circle"
+ ],
+ "start": 0,
+ "type": "VariableDeclaration",
+ "type": "VariableDeclaration"
+ },
+ {
+ "commentStart": 0,
+ "declaration": {
+ "commentStart": 0,
+ "end": 0,
+ "id": {
+ "commentStart": 0,
+ "end": 0,
+ "name": "initialSketch",
+ "start": 0,
+ "type": "Identifier"
+ },
+ "init": {
+ "body": [
+ {
+ "arguments": [
+ {
+ "abs_path": false,
+ "commentStart": 0,
+ "end": 0,
+ "name": {
+ "commentStart": 0,
+ "end": 0,
+ "name": "XY",
+ "start": 0,
+ "type": "Identifier"
+ },
+ "path": [],
+ "start": 0,
+ "type": "Name",
+ "type": "Name"
+ }
+ ],
+ "callee": {
+ "abs_path": false,
+ "commentStart": 0,
+ "end": 0,
+ "name": {
+ "commentStart": 0,
+ "end": 0,
+ "name": "startSketchOn",
+ "start": 0,
+ "type": "Identifier"
+ },
+ "path": [],
+ "start": 0,
+ "type": "Name"
+ },
+ "commentStart": 0,
+ "end": 0,
+ "start": 0,
+ "type": "CallExpression",
+ "type": "CallExpression"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "commentStart": 0,
+ "end": 0,
+ "raw": "0",
+ "start": 0,
+ "type": "Literal",
+ "type": "Literal",
+ "value": {
+ "value": 0.0,
+ "suffix": "None"
+ }
+ }
+ ],
+ "callee": {
+ "abs_path": false,
+ "commentStart": 0,
+ "end": 0,
+ "name": {
+ "commentStart": 0,
+ "end": 0,
+ "name": "calculatePoint",
+ "start": 0,
+ "type": "Identifier"
+ },
+ "path": [],
+ "start": 0,
+ "type": "Name"
+ },
+ "commentStart": 0,
+ "end": 0,
+ "start": 0,
+ "type": "CallExpression",
+ "type": "CallExpression"
+ },
+ {
+ "commentStart": 0,
+ "end": 0,
+ "start": 0,
+ "type": "PipeSubstitution",
+ "type": "PipeSubstitution"
+ }
+ ],
+ "callee": {
+ "abs_path": false,
+ "commentStart": 0,
+ "end": 0,
+ "name": {
+ "commentStart": 0,
+ "end": 0,
+ "name": "startProfileAt",
+ "start": 0,
+ "type": "Identifier"
+ },
+ "path": [],
+ "start": 0,
+ "type": "Name"
+ },
+ "commentStart": 0,
+ "end": 0,
+ "start": 0,
+ "type": "CallExpression",
+ "type": "CallExpression"
+ }
+ ],
+ "commentStart": 0,
+ "end": 0,
+ "nonCodeMeta": {
+ "nonCodeNodes": {
+ "1": [
+ {
+ "commentStart": 0,
+ "end": 0,
+ "start": 0,
+ "type": "NonCodeNode",
+ "value": {
+ "type": "newLineBlockComment",
+ "value": "Draw lines to form the base of the cylinder",
+ "style": "line"
+ }
+ }
+ ]
+ },
+ "startNodes": []
+ },
+ "start": 0,
+ "type": "PipeExpression",
+ "type": "PipeExpression"
+ },
+ "start": 0,
+ "type": "VariableDeclarator"
+ },
+ "end": 0,
+ "kind": "const",
+ "preComments": [
+ "",
+ "",
+ "// Start sketch on the XY plane"
+ ],
+ "start": 0,
+ "type": "VariableDeclaration",
+ "type": "VariableDeclaration"
+ },
+ {
+ "commentStart": 0,
+ "declaration": {
+ "commentStart": 0,
+ "end": 0,
+ "id": {
+ "commentStart": 0,
+ "end": 0,
+ "name": "finalSketch",
+ "start": 0,
+ "type": "Identifier"
+ },
+ "init": {
+ "arguments": [
+ {
+ "commentStart": 0,
+ "end": 0,
+ "endElement": {
+ "commentStart": 0,
+ "end": 0,
+ "left": {
+ "abs_path": false,
+ "commentStart": 0,
+ "end": 0,
+ "name": {
+ "commentStart": 0,
+ "end": 0,
+ "name": "numSides",
+ "start": 0,
+ "type": "Identifier"
+ },
+ "path": [],
+ "start": 0,
+ "type": "Name",
+ "type": "Name"
+ },
+ "operator": "-",
+ "right": {
+ "commentStart": 0,
+ "end": 0,
+ "raw": "1",
+ "start": 0,
+ "type": "Literal",
+ "type": "Literal",
+ "value": {
+ "value": 1.0,
+ "suffix": "None"
+ }
+ },
+ "start": 0,
+ "type": "BinaryExpression",
+ "type": "BinaryExpression"
+ },
+ "endInclusive": true,
+ "start": 0,
+ "startElement": {
+ "commentStart": 0,
+ "end": 0,
+ "raw": "1",
+ "start": 0,
+ "type": "Literal",
+ "type": "Literal",
+ "value": {
+ "value": 1.0,
+ "suffix": "None"
+ }
+ },
+ "type": "ArrayRangeExpression",
+ "type": "ArrayRangeExpression"
+ },
+ {
+ "abs_path": false,
+ "commentStart": 0,
+ "end": 0,
+ "name": {
+ "commentStart": 0,
+ "end": 0,
+ "name": "initialSketch",
+ "start": 0,
+ "type": "Identifier"
+ },
+ "path": [],
+ "start": 0,
+ "type": "Name",
+ "type": "Name"
+ },
+ {
+ "body": {
+ "body": [
+ {
+ "argument": {
+ "arguments": [
+ {
+ "type": "LabeledArg",
+ "label": {
+ "commentStart": 0,
+ "end": 0,
+ "name": "end",
+ "start": 0,
+ "type": "Identifier"
+ },
+ "arg": {
+ "arguments": [
+ {
+ "abs_path": false,
+ "commentStart": 0,
+ "end": 0,
+ "name": {
+ "commentStart": 0,
+ "end": 0,
+ "name": "index",
+ "start": 0,
+ "type": "Identifier"
+ },
+ "path": [],
+ "start": 0,
+ "type": "Name",
+ "type": "Name"
+ }
+ ],
+ "callee": {
+ "abs_path": false,
+ "commentStart": 0,
+ "end": 0,
+ "name": {
+ "commentStart": 0,
+ "end": 0,
+ "name": "calculatePoint",
+ "start": 0,
+ "type": "Identifier"
+ },
+ "path": [],
+ "start": 0,
+ "type": "Name"
+ },
+ "commentStart": 0,
+ "end": 0,
+ "start": 0,
+ "type": "CallExpression",
+ "type": "CallExpression"
+ }
+ },
+ {
+ "type": "LabeledArg",
+ "label": {
+ "commentStart": 0,
+ "end": 0,
+ "name": "tag",
+ "start": 0,
+ "type": "Identifier"
+ },
+ "arg": {
+ "commentStart": 0,
+ "end": 0,
+ "start": 0,
+ "type": "TagDeclarator",
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ }
+ }
+ ],
+ "callee": {
+ "abs_path": false,
+ "commentStart": 0,
+ "end": 0,
+ "name": {
+ "commentStart": 0,
+ "end": 0,
+ "name": "line",
+ "start": 0,
+ "type": "Identifier"
+ },
+ "path": [],
+ "start": 0,
+ "type": "Name"
+ },
+ "commentStart": 0,
+ "end": 0,
+ "start": 0,
+ "type": "CallExpressionKw",
+ "type": "CallExpressionKw",
+ "unlabeled": {
+ "abs_path": false,
+ "commentStart": 0,
+ "end": 0,
+ "name": {
+ "commentStart": 0,
+ "end": 0,
+ "name": "sketch",
+ "start": 0,
+ "type": "Identifier"
+ },
+ "path": [],
+ "start": 0,
+ "type": "Name",
+ "type": "Name"
+ }
+ },
+ "commentStart": 0,
+ "end": 0,
+ "start": 0,
+ "type": "ReturnStatement",
+ "type": "ReturnStatement"
+ }
+ ],
+ "commentStart": 0,
+ "end": 0,
+ "start": 0
+ },
+ "commentStart": 0,
+ "end": 0,
+ "params": [
+ {
+ "type": "Parameter",
+ "identifier": {
+ "commentStart": 0,
+ "end": 0,
+ "name": "index",
+ "start": 0,
+ "type": "Identifier"
+ }
+ },
+ {
+ "type": "Parameter",
+ "identifier": {
+ "commentStart": 0,
+ "end": 0,
+ "name": "sketch",
+ "start": 0,
+ "type": "Identifier"
+ }
+ }
+ ],
+ "start": 0,
+ "type": "FunctionExpression",
+ "type": "FunctionExpression"
+ }
+ ],
+ "callee": {
+ "abs_path": false,
+ "commentStart": 0,
+ "end": 0,
+ "name": {
+ "commentStart": 0,
+ "end": 0,
+ "name": "reduce",
+ "start": 0,
+ "type": "Identifier"
+ },
+ "path": [],
+ "start": 0,
+ "type": "Name"
+ },
+ "commentStart": 0,
+ "end": 0,
+ "start": 0,
+ "type": "CallExpression",
+ "type": "CallExpression"
+ },
+ "start": 0,
+ "type": "VariableDeclarator"
+ },
+ "end": 0,
+ "kind": "const",
+ "start": 0,
+ "type": "VariableDeclaration",
+ "type": "VariableDeclaration"
+ },
+ {
+ "commentStart": 0,
+ "declaration": {
+ "commentStart": 0,
+ "end": 0,
+ "id": {
+ "commentStart": 0,
+ "end": 0,
+ "name": "closedSketch",
+ "start": 0,
+ "type": "Identifier"
+ },
+ "init": {
+ "arguments": [
+ {
+ "abs_path": false,
+ "commentStart": 0,
+ "end": 0,
+ "name": {
+ "commentStart": 0,
+ "end": 0,
+ "name": "finalSketch",
+ "start": 0,
+ "type": "Identifier"
+ },
+ "path": [],
+ "start": 0,
+ "type": "Name",
+ "type": "Name"
+ }
+ ],
+ "callee": {
+ "abs_path": false,
+ "commentStart": 0,
+ "end": 0,
+ "name": {
+ "commentStart": 0,
+ "end": 0,
+ "name": "close",
+ "start": 0,
+ "type": "Identifier"
+ },
+ "path": [],
+ "start": 0,
+ "type": "Name"
+ },
+ "commentStart": 0,
+ "end": 0,
+ "start": 0,
+ "type": "CallExpression",
+ "type": "CallExpression"
+ },
+ "start": 0,
+ "type": "VariableDeclarator"
+ },
+ "end": 0,
+ "kind": "const",
+ "preComments": [
+ "",
+ "",
+ "// Close the sketch to complete the base"
+ ],
+ "start": 0,
+ "type": "VariableDeclaration",
+ "type": "VariableDeclaration"
+ },
+ {
+ "commentStart": 0,
+ "declaration": {
+ "commentStart": 0,
+ "end": 0,
+ "id": {
+ "commentStart": 0,
+ "end": 0,
+ "name": "cylinder",
+ "start": 0,
+ "type": "Identifier"
+ },
+ "init": {
+ "arguments": [
+ {
+ "type": "LabeledArg",
+ "label": {
+ "commentStart": 0,
+ "end": 0,
+ "name": "length",
+ "start": 0,
+ "type": "Identifier"
+ },
+ "arg": {
+ "abs_path": false,
+ "commentStart": 0,
+ "end": 0,
+ "name": {
+ "commentStart": 0,
+ "end": 0,
+ "name": "height",
+ "start": 0,
+ "type": "Identifier"
+ },
+ "path": [],
+ "start": 0,
+ "type": "Name",
+ "type": "Name"
+ }
+ }
+ ],
+ "callee": {
+ "abs_path": false,
+ "commentStart": 0,
+ "end": 0,
+ "name": {
+ "commentStart": 0,
+ "end": 0,
+ "name": "extrude",
+ "start": 0,
+ "type": "Identifier"
+ },
+ "path": [],
+ "start": 0,
+ "type": "Name"
+ },
+ "commentStart": 0,
+ "end": 0,
+ "start": 0,
+ "type": "CallExpressionKw",
+ "type": "CallExpressionKw",
+ "unlabeled": {
+ "abs_path": false,
+ "commentStart": 0,
+ "end": 0,
+ "name": {
+ "commentStart": 0,
+ "end": 0,
+ "name": "closedSketch",
+ "start": 0,
+ "type": "Identifier"
+ },
+ "path": [],
+ "start": 0,
+ "type": "Name",
+ "type": "Name"
+ }
+ },
+ "start": 0,
+ "type": "VariableDeclarator"
+ },
+ "end": 0,
+ "kind": "const",
+ "preComments": [
+ "",
+ "",
+ "// Extrude the base to form the cylinder"
+ ],
+ "start": 0,
+ "type": "VariableDeclaration",
+ "type": "VariableDeclaration"
+ }
+ ],
+ "commentStart": 0,
+ "end": 0,
+ "innerAttrs": [
+ {
+ "commentStart": 0,
+ "end": 0,
+ "name": {
+ "commentStart": 0,
+ "end": 0,
+ "name": "settings",
+ "start": 0,
+ "type": "Identifier"
+ },
+ "properties": [
+ {
+ "commentStart": 0,
+ "end": 0,
+ "key": {
+ "commentStart": 0,
+ "end": 0,
+ "name": "defaultLengthUnit",
+ "start": 0,
+ "type": "Identifier"
+ },
+ "start": 0,
+ "type": "ObjectProperty",
+ "value": {
+ "abs_path": false,
+ "commentStart": 0,
+ "end": 0,
+ "name": {
+ "commentStart": 0,
+ "end": 0,
+ "name": "mm",
+ "start": 0,
+ "type": "Identifier"
+ },
+ "path": [],
+ "start": 0,
+ "type": "Name",
+ "type": "Name"
+ }
+ }
+ ],
+ "start": 0,
+ "type": "Annotation"
+ }
+ ],
+ "nonCodeMeta": {
+ "nonCodeNodes": {},
+ "startNodes": [
+ {
+ "commentStart": 0,
+ "end": 0,
+ "start": 0,
+ "type": "NonCodeNode",
+ "value": {
+ "type": "blockComment",
+ "value": "This is a performance regression test. There was previously some O(2^numSides) nonsense",
+ "style": "line"
+ }
+ },
+ {
+ "commentStart": 0,
+ "end": 0,
+ "start": 0,
+ "type": "NonCodeNode",
+ "value": {
+ "type": "blockComment",
+ "value": "in updating tags. If this test stops terminating in reasonable time, or versions of tags",
+ "style": "line"
+ }
+ },
+ {
+ "commentStart": 0,
+ "end": 0,
+ "start": 0,
+ "type": "NonCodeNode",
+ "value": {
+ "type": "blockComment",
+ "value": "explodes in program memory, then you might want to look at how tag infos are being merged",
+ "style": "line"
+ }
+ },
+ {
+ "commentStart": 0,
+ "end": 0,
+ "start": 0,
+ "type": "NonCodeNode",
+ "value": {
+ "type": "blockComment",
+ "value": "by `update_memory_for_tags_of_geometry`.",
+ "style": "line"
+ }
+ },
+ {
+ "commentStart": 0,
+ "end": 0,
+ "start": 0,
+ "type": "NonCodeNode",
+ "value": {
+ "type": "newLine"
+ }
+ },
+ {
+ "commentStart": 0,
+ "end": 0,
+ "start": 0,
+ "type": "NonCodeNode",
+ "value": {
+ "type": "newLine"
+ }
+ }
+ ]
+ },
+ "start": 0
+ }
+}
diff --git a/rust/kcl-lib/tests/loop_tag/input.kcl b/rust/kcl-lib/tests/loop_tag/input.kcl
new file mode 100644
index 000000000..f8fb78c74
--- /dev/null
+++ b/rust/kcl-lib/tests/loop_tag/input.kcl
@@ -0,0 +1,39 @@
+// This is a performance regression test. There was previously some O(2^numSides) nonsense
+// in updating tags. If this test stops terminating in reasonable time, or versions of tags
+// explodes in program memory, then you might want to look at how tag infos are being merged
+// by `update_memory_for_tags_of_geometry`.
+
+@settings(defaultLengthUnit = mm)
+
+// Define constants for the cylinder
+radius = 10
+height = 50
+numSides = 50
+angleIncrement = 360 / numSides
+
+// Function to calculate the coordinates of a point on the circle
+fn calculatePoint(index) {
+ angle = index * angleIncrement
+ x = radius * cos(angle * PI / 180)
+ y = radius * sin(angle * PI / 180)
+ return [x, y]
+}
+
+// Start sketch on the XY plane
+initialSketch = startSketchOn(XY)
+ |> startProfileAt(calculatePoint(0), %)
+
+// Draw lines to form the base of the cylinder
+finalSketch = reduce(
+ [1..numSides-1],
+ initialSketch,
+ fn(index, sketch) {
+ return line(sketch, end = calculatePoint(index), tag = $problematicTag)
+ }
+)
+
+// Close the sketch to complete the base
+closedSketch = close(finalSketch)
+
+// Extrude the base to form the cylinder
+cylinder = extrude(closedSketch, length = height)
diff --git a/rust/kcl-lib/tests/loop_tag/ops.snap b/rust/kcl-lib/tests/loop_tag/ops.snap
new file mode 100644
index 000000000..b463c8515
--- /dev/null
+++ b/rust/kcl-lib/tests/loop_tag/ops.snap
@@ -0,0 +1,2753 @@
+---
+source: kcl-lib/src/simulation_tests.rs
+description: Operations executed loop_tag.kcl
+---
+[
+ {
+ "labeledArgs": {
+ "planeOrSolid": {
+ "value": {
+ "type": "Plane",
+ "artifact_id": "[uuid]"
+ },
+ "sourceRange": []
+ }
+ },
+ "name": "startSketchOn",
+ "sourceRange": [],
+ "type": "StdLibCall",
+ "unlabeledArg": null
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "calculatePoint",
+ "functionSourceRange": [
+ 547,
+ 681,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "cos",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "sin",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "calculatePoint",
+ "functionSourceRange": [
+ 547,
+ 681,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "cos",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "sin",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "calculatePoint",
+ "functionSourceRange": [
+ 547,
+ 681,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "cos",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "sin",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "calculatePoint",
+ "functionSourceRange": [
+ 547,
+ 681,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "cos",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "sin",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "calculatePoint",
+ "functionSourceRange": [
+ 547,
+ 681,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "cos",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "sin",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "calculatePoint",
+ "functionSourceRange": [
+ 547,
+ 681,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "cos",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "sin",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "calculatePoint",
+ "functionSourceRange": [
+ 547,
+ 681,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "cos",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "sin",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "calculatePoint",
+ "functionSourceRange": [
+ 547,
+ 681,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "cos",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "sin",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "calculatePoint",
+ "functionSourceRange": [
+ 547,
+ 681,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "cos",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "sin",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "calculatePoint",
+ "functionSourceRange": [
+ 547,
+ 681,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "cos",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "sin",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "calculatePoint",
+ "functionSourceRange": [
+ 547,
+ 681,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "cos",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "sin",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "calculatePoint",
+ "functionSourceRange": [
+ 547,
+ 681,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "cos",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "sin",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "calculatePoint",
+ "functionSourceRange": [
+ 547,
+ 681,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "cos",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "sin",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "calculatePoint",
+ "functionSourceRange": [
+ 547,
+ 681,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "cos",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "sin",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "calculatePoint",
+ "functionSourceRange": [
+ 547,
+ 681,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "cos",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "sin",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "calculatePoint",
+ "functionSourceRange": [
+ 547,
+ 681,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "cos",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "sin",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "calculatePoint",
+ "functionSourceRange": [
+ 547,
+ 681,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "cos",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "sin",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "calculatePoint",
+ "functionSourceRange": [
+ 547,
+ 681,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "cos",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "sin",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "calculatePoint",
+ "functionSourceRange": [
+ 547,
+ 681,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "cos",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "sin",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "calculatePoint",
+ "functionSourceRange": [
+ 547,
+ 681,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "cos",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "sin",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "calculatePoint",
+ "functionSourceRange": [
+ 547,
+ 681,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "cos",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "sin",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "calculatePoint",
+ "functionSourceRange": [
+ 547,
+ 681,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "cos",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "sin",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "calculatePoint",
+ "functionSourceRange": [
+ 547,
+ 681,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "cos",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "sin",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "calculatePoint",
+ "functionSourceRange": [
+ 547,
+ 681,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "cos",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "sin",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "calculatePoint",
+ "functionSourceRange": [
+ 547,
+ 681,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "cos",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "sin",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "calculatePoint",
+ "functionSourceRange": [
+ 547,
+ 681,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "cos",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "sin",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "calculatePoint",
+ "functionSourceRange": [
+ 547,
+ 681,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "cos",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "sin",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "calculatePoint",
+ "functionSourceRange": [
+ 547,
+ 681,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "cos",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "sin",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "calculatePoint",
+ "functionSourceRange": [
+ 547,
+ 681,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "cos",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "sin",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "calculatePoint",
+ "functionSourceRange": [
+ 547,
+ 681,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "cos",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "sin",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "calculatePoint",
+ "functionSourceRange": [
+ 547,
+ 681,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "cos",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "sin",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "calculatePoint",
+ "functionSourceRange": [
+ 547,
+ 681,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "cos",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "sin",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "calculatePoint",
+ "functionSourceRange": [
+ 547,
+ 681,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "cos",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "sin",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "calculatePoint",
+ "functionSourceRange": [
+ 547,
+ 681,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "cos",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "sin",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "calculatePoint",
+ "functionSourceRange": [
+ 547,
+ 681,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "cos",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "sin",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "calculatePoint",
+ "functionSourceRange": [
+ 547,
+ 681,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "cos",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "sin",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "calculatePoint",
+ "functionSourceRange": [
+ 547,
+ 681,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "cos",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "sin",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "calculatePoint",
+ "functionSourceRange": [
+ 547,
+ 681,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "cos",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "sin",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "calculatePoint",
+ "functionSourceRange": [
+ 547,
+ 681,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "cos",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "sin",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "calculatePoint",
+ "functionSourceRange": [
+ 547,
+ 681,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "cos",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "sin",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "calculatePoint",
+ "functionSourceRange": [
+ 547,
+ 681,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "cos",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "sin",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "calculatePoint",
+ "functionSourceRange": [
+ 547,
+ 681,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "cos",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "sin",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "calculatePoint",
+ "functionSourceRange": [
+ 547,
+ 681,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "cos",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "sin",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "calculatePoint",
+ "functionSourceRange": [
+ 547,
+ 681,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "cos",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "sin",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "calculatePoint",
+ "functionSourceRange": [
+ 547,
+ 681,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "cos",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "sin",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "calculatePoint",
+ "functionSourceRange": [
+ 547,
+ 681,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "cos",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "sin",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "calculatePoint",
+ "functionSourceRange": [
+ 547,
+ 681,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "cos",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "sin",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "calculatePoint",
+ "functionSourceRange": [
+ 547,
+ 681,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "cos",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "sin",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "calculatePoint",
+ "functionSourceRange": [
+ 547,
+ 681,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "cos",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "sin",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "calculatePoint",
+ "functionSourceRange": [
+ 547,
+ 681,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "cos",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupBegin",
+ "group": {
+ "type": "FunctionCall",
+ "name": "sin",
+ "functionSourceRange": [
+ 0,
+ 0,
+ 0
+ ],
+ "unlabeledArg": null,
+ "labeledArgs": {}
+ },
+ "sourceRange": []
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "type": "GroupEnd"
+ },
+ {
+ "labeledArgs": {
+ "length": {
+ "value": {
+ "type": "Number",
+ "value": 50.0,
+ "ty": {
+ "type": "Default",
+ "len": {
+ "type": "Mm"
+ },
+ "angle": {
+ "type": "Degrees"
+ }
+ }
+ },
+ "sourceRange": []
+ }
+ },
+ "name": "extrude",
+ "sourceRange": [],
+ "type": "StdLibCall",
+ "unlabeledArg": {
+ "value": {
+ "type": "Sketch",
+ "value": {
+ "artifactId": "[uuid]"
+ }
+ },
+ "sourceRange": []
+ }
+ }
+]
diff --git a/rust/kcl-lib/tests/loop_tag/program_memory.snap b/rust/kcl-lib/tests/loop_tag/program_memory.snap
new file mode 100644
index 000000000..aa792d45b
--- /dev/null
+++ b/rust/kcl-lib/tests/loop_tag/program_memory.snap
@@ -0,0 +1,4751 @@
+---
+source: kcl-lib/src/simulation_tests.rs
+description: Variables in memory after executing loop_tag.kcl
+---
+{
+ "angleIncrement": {
+ "type": "Number",
+ "value": 7.2,
+ "ty": {
+ "type": "Default",
+ "len": {
+ "type": "Mm"
+ },
+ "angle": {
+ "type": "Degrees"
+ }
+ }
+ },
+ "calculatePoint": {
+ "type": "Function"
+ },
+ "closedSketch": {
+ "type": "Sketch",
+ "value": {
+ "type": "Sketch",
+ "id": "[uuid]",
+ "paths": [
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 10.0,
+ 0.0
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 19.9211,
+ 1.2533
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 19.9211,
+ 1.2533
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 29.607,
+ 3.7402
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 29.607,
+ 3.7402
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 38.9047,
+ 7.4215
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 38.9047,
+ 7.4215
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 47.6678,
+ 12.239
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 47.6678,
+ 12.239
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 55.758,
+ 18.1169
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 55.758,
+ 18.1169
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 63.0477,
+ 24.9623
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 63.0477,
+ 24.9623
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 69.4219,
+ 32.6675
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 69.4219,
+ 32.6675
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 74.7802,
+ 41.1107
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 74.7802,
+ 41.1107
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 79.038,
+ 50.159
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 79.038,
+ 50.159
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 82.1281,
+ 59.6696
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 82.1281,
+ 59.6696
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 84.002,
+ 69.4925
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 84.002,
+ 69.4925
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 84.6299,
+ 79.4727
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 84.6299,
+ 79.4727
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 84.002,
+ 89.453
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 84.002,
+ 89.453
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 82.1281,
+ 99.2759
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 82.1281,
+ 99.2759
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 79.038,
+ 108.7864
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 79.038,
+ 108.7864
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 74.7802,
+ 117.8347
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 74.7802,
+ 117.8347
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 69.4219,
+ 126.278
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 69.4219,
+ 126.278
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 63.0477,
+ 133.9831
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 63.0477,
+ 133.9831
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 55.758,
+ 140.8286
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 55.758,
+ 140.8286
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 47.6678,
+ 146.7064
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 47.6678,
+ 146.7064
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 38.9047,
+ 151.524
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 38.9047,
+ 151.524
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 29.607,
+ 155.2052
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 29.607,
+ 155.2052
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 19.9211,
+ 157.6921
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 19.9211,
+ 157.6921
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 10.0,
+ 158.9454
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 10.0,
+ 158.9454
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -0.0,
+ 158.9454
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -0.0,
+ 158.9454
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -9.9211,
+ 157.6921
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -9.9211,
+ 157.6921
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -19.607,
+ 155.2052
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -19.607,
+ 155.2052
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -28.9047,
+ 151.524
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -28.9047,
+ 151.524
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -37.6678,
+ 146.7064
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -37.6678,
+ 146.7064
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -45.758,
+ 140.8286
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -45.758,
+ 140.8286
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -53.0477,
+ 133.9831
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -53.0477,
+ 133.9831
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -59.4219,
+ 126.278
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -59.4219,
+ 126.278
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -64.7802,
+ 117.8347
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -64.7802,
+ 117.8347
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -69.038,
+ 108.7864
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -69.038,
+ 108.7864
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -72.1281,
+ 99.2759
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -72.1281,
+ 99.2759
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -74.002,
+ 89.453
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -74.002,
+ 89.453
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -74.6299,
+ 79.4727
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -74.6299,
+ 79.4727
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -74.002,
+ 69.4925
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -74.002,
+ 69.4925
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -72.1281,
+ 59.6696
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -72.1281,
+ 59.6696
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -69.038,
+ 50.159
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -69.038,
+ 50.159
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -64.7802,
+ 41.1107
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -64.7802,
+ 41.1107
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -59.4219,
+ 32.6675
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -59.4219,
+ 32.6675
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -53.0477,
+ 24.9623
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -53.0477,
+ 24.9623
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -45.758,
+ 18.1169
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -45.758,
+ 18.1169
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -37.6678,
+ 12.239
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -37.6678,
+ 12.239
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -28.9047,
+ 7.4215
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -28.9047,
+ 7.4215
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -19.607,
+ 3.7402
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -19.607,
+ 3.7402
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -9.9211,
+ 1.2533
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -9.9211,
+ 1.2533
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -0.0,
+ 0.0
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -0.0,
+ 0.0
+ ],
+ "tag": null,
+ "to": [
+ 10.0,
+ 0.0
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ }
+ ],
+ "on": {
+ "type": "plane",
+ "id": "[uuid]",
+ "artifactId": "[uuid]",
+ "value": "XY",
+ "origin": {
+ "x": 0.0,
+ "y": 0.0,
+ "z": 0.0,
+ "units": {
+ "type": "Mm"
+ }
+ },
+ "xAxis": {
+ "x": 1.0,
+ "y": 0.0,
+ "z": 0.0,
+ "units": {
+ "type": "Mm"
+ }
+ },
+ "yAxis": {
+ "x": 0.0,
+ "y": 1.0,
+ "z": 0.0,
+ "units": {
+ "type": "Mm"
+ }
+ },
+ "zAxis": {
+ "x": 0.0,
+ "y": 0.0,
+ "z": 1.0,
+ "units": {
+ "type": "Mm"
+ }
+ },
+ "units": {
+ "type": "Mm"
+ }
+ },
+ "start": {
+ "from": [
+ 10.0,
+ 0.0
+ ],
+ "to": [
+ 10.0,
+ 0.0
+ ],
+ "units": {
+ "type": "Mm"
+ },
+ "tag": null,
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ }
+ },
+ "tags": {
+ "problematicTag": {
+ "type": "TagIdentifier",
+ "value": "problematicTag"
+ }
+ },
+ "artifactId": "[uuid]",
+ "originalId": "[uuid]",
+ "units": {
+ "type": "Mm"
+ }
+ }
+ },
+ "cylinder": {
+ "type": "Solid",
+ "value": {
+ "type": "Solid",
+ "id": "[uuid]",
+ "artifactId": "[uuid]",
+ "value": [
+ {
+ "faceId": "[uuid]",
+ "id": "[uuid]",
+ "sourceRange": [],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "type": "extrudePlane"
+ },
+ {
+ "faceId": "[uuid]",
+ "id": "[uuid]",
+ "sourceRange": [],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "type": "extrudePlane"
+ },
+ {
+ "faceId": "[uuid]",
+ "id": "[uuid]",
+ "sourceRange": [],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "type": "extrudePlane"
+ },
+ {
+ "faceId": "[uuid]",
+ "id": "[uuid]",
+ "sourceRange": [],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "type": "extrudePlane"
+ },
+ {
+ "faceId": "[uuid]",
+ "id": "[uuid]",
+ "sourceRange": [],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "type": "extrudePlane"
+ },
+ {
+ "faceId": "[uuid]",
+ "id": "[uuid]",
+ "sourceRange": [],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "type": "extrudePlane"
+ },
+ {
+ "faceId": "[uuid]",
+ "id": "[uuid]",
+ "sourceRange": [],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "type": "extrudePlane"
+ },
+ {
+ "faceId": "[uuid]",
+ "id": "[uuid]",
+ "sourceRange": [],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "type": "extrudePlane"
+ },
+ {
+ "faceId": "[uuid]",
+ "id": "[uuid]",
+ "sourceRange": [],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "type": "extrudePlane"
+ },
+ {
+ "faceId": "[uuid]",
+ "id": "[uuid]",
+ "sourceRange": [],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "type": "extrudePlane"
+ },
+ {
+ "faceId": "[uuid]",
+ "id": "[uuid]",
+ "sourceRange": [],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "type": "extrudePlane"
+ },
+ {
+ "faceId": "[uuid]",
+ "id": "[uuid]",
+ "sourceRange": [],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "type": "extrudePlane"
+ },
+ {
+ "faceId": "[uuid]",
+ "id": "[uuid]",
+ "sourceRange": [],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "type": "extrudePlane"
+ },
+ {
+ "faceId": "[uuid]",
+ "id": "[uuid]",
+ "sourceRange": [],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "type": "extrudePlane"
+ },
+ {
+ "faceId": "[uuid]",
+ "id": "[uuid]",
+ "sourceRange": [],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "type": "extrudePlane"
+ },
+ {
+ "faceId": "[uuid]",
+ "id": "[uuid]",
+ "sourceRange": [],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "type": "extrudePlane"
+ },
+ {
+ "faceId": "[uuid]",
+ "id": "[uuid]",
+ "sourceRange": [],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "type": "extrudePlane"
+ },
+ {
+ "faceId": "[uuid]",
+ "id": "[uuid]",
+ "sourceRange": [],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "type": "extrudePlane"
+ },
+ {
+ "faceId": "[uuid]",
+ "id": "[uuid]",
+ "sourceRange": [],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "type": "extrudePlane"
+ },
+ {
+ "faceId": "[uuid]",
+ "id": "[uuid]",
+ "sourceRange": [],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "type": "extrudePlane"
+ },
+ {
+ "faceId": "[uuid]",
+ "id": "[uuid]",
+ "sourceRange": [],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "type": "extrudePlane"
+ },
+ {
+ "faceId": "[uuid]",
+ "id": "[uuid]",
+ "sourceRange": [],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "type": "extrudePlane"
+ },
+ {
+ "faceId": "[uuid]",
+ "id": "[uuid]",
+ "sourceRange": [],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "type": "extrudePlane"
+ },
+ {
+ "faceId": "[uuid]",
+ "id": "[uuid]",
+ "sourceRange": [],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "type": "extrudePlane"
+ },
+ {
+ "faceId": "[uuid]",
+ "id": "[uuid]",
+ "sourceRange": [],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "type": "extrudePlane"
+ },
+ {
+ "faceId": "[uuid]",
+ "id": "[uuid]",
+ "sourceRange": [],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "type": "extrudePlane"
+ },
+ {
+ "faceId": "[uuid]",
+ "id": "[uuid]",
+ "sourceRange": [],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "type": "extrudePlane"
+ },
+ {
+ "faceId": "[uuid]",
+ "id": "[uuid]",
+ "sourceRange": [],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "type": "extrudePlane"
+ },
+ {
+ "faceId": "[uuid]",
+ "id": "[uuid]",
+ "sourceRange": [],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "type": "extrudePlane"
+ },
+ {
+ "faceId": "[uuid]",
+ "id": "[uuid]",
+ "sourceRange": [],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "type": "extrudePlane"
+ },
+ {
+ "faceId": "[uuid]",
+ "id": "[uuid]",
+ "sourceRange": [],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "type": "extrudePlane"
+ },
+ {
+ "faceId": "[uuid]",
+ "id": "[uuid]",
+ "sourceRange": [],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "type": "extrudePlane"
+ },
+ {
+ "faceId": "[uuid]",
+ "id": "[uuid]",
+ "sourceRange": [],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "type": "extrudePlane"
+ },
+ {
+ "faceId": "[uuid]",
+ "id": "[uuid]",
+ "sourceRange": [],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "type": "extrudePlane"
+ },
+ {
+ "faceId": "[uuid]",
+ "id": "[uuid]",
+ "sourceRange": [],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "type": "extrudePlane"
+ },
+ {
+ "faceId": "[uuid]",
+ "id": "[uuid]",
+ "sourceRange": [],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "type": "extrudePlane"
+ },
+ {
+ "faceId": "[uuid]",
+ "id": "[uuid]",
+ "sourceRange": [],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "type": "extrudePlane"
+ },
+ {
+ "faceId": "[uuid]",
+ "id": "[uuid]",
+ "sourceRange": [],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "type": "extrudePlane"
+ },
+ {
+ "faceId": "[uuid]",
+ "id": "[uuid]",
+ "sourceRange": [],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "type": "extrudePlane"
+ },
+ {
+ "faceId": "[uuid]",
+ "id": "[uuid]",
+ "sourceRange": [],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "type": "extrudePlane"
+ },
+ {
+ "faceId": "[uuid]",
+ "id": "[uuid]",
+ "sourceRange": [],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "type": "extrudePlane"
+ },
+ {
+ "faceId": "[uuid]",
+ "id": "[uuid]",
+ "sourceRange": [],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "type": "extrudePlane"
+ },
+ {
+ "faceId": "[uuid]",
+ "id": "[uuid]",
+ "sourceRange": [],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "type": "extrudePlane"
+ },
+ {
+ "faceId": "[uuid]",
+ "id": "[uuid]",
+ "sourceRange": [],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "type": "extrudePlane"
+ },
+ {
+ "faceId": "[uuid]",
+ "id": "[uuid]",
+ "sourceRange": [],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "type": "extrudePlane"
+ },
+ {
+ "faceId": "[uuid]",
+ "id": "[uuid]",
+ "sourceRange": [],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "type": "extrudePlane"
+ },
+ {
+ "faceId": "[uuid]",
+ "id": "[uuid]",
+ "sourceRange": [],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "type": "extrudePlane"
+ },
+ {
+ "faceId": "[uuid]",
+ "id": "[uuid]",
+ "sourceRange": [],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "type": "extrudePlane"
+ },
+ {
+ "faceId": "[uuid]",
+ "id": "[uuid]",
+ "sourceRange": [],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "type": "extrudePlane"
+ },
+ {
+ "faceId": "[uuid]",
+ "id": "[uuid]",
+ "sourceRange": [],
+ "tag": null,
+ "type": "extrudePlane"
+ }
+ ],
+ "sketch": {
+ "type": "Sketch",
+ "id": "[uuid]",
+ "paths": [
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 10.0,
+ 0.0
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 19.9211,
+ 1.2533
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 19.9211,
+ 1.2533
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 29.607,
+ 3.7402
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 29.607,
+ 3.7402
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 38.9047,
+ 7.4215
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 38.9047,
+ 7.4215
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 47.6678,
+ 12.239
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 47.6678,
+ 12.239
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 55.758,
+ 18.1169
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 55.758,
+ 18.1169
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 63.0477,
+ 24.9623
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 63.0477,
+ 24.9623
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 69.4219,
+ 32.6675
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 69.4219,
+ 32.6675
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 74.7802,
+ 41.1107
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 74.7802,
+ 41.1107
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 79.038,
+ 50.159
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 79.038,
+ 50.159
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 82.1281,
+ 59.6696
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 82.1281,
+ 59.6696
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 84.002,
+ 69.4925
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 84.002,
+ 69.4925
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 84.6299,
+ 79.4727
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 84.6299,
+ 79.4727
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 84.002,
+ 89.453
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 84.002,
+ 89.453
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 82.1281,
+ 99.2759
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 82.1281,
+ 99.2759
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 79.038,
+ 108.7864
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 79.038,
+ 108.7864
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 74.7802,
+ 117.8347
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 74.7802,
+ 117.8347
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 69.4219,
+ 126.278
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 69.4219,
+ 126.278
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 63.0477,
+ 133.9831
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 63.0477,
+ 133.9831
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 55.758,
+ 140.8286
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 55.758,
+ 140.8286
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 47.6678,
+ 146.7064
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 47.6678,
+ 146.7064
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 38.9047,
+ 151.524
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 38.9047,
+ 151.524
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 29.607,
+ 155.2052
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 29.607,
+ 155.2052
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 19.9211,
+ 157.6921
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 19.9211,
+ 157.6921
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 10.0,
+ 158.9454
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 10.0,
+ 158.9454
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -0.0,
+ 158.9454
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -0.0,
+ 158.9454
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -9.9211,
+ 157.6921
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -9.9211,
+ 157.6921
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -19.607,
+ 155.2052
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -19.607,
+ 155.2052
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -28.9047,
+ 151.524
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -28.9047,
+ 151.524
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -37.6678,
+ 146.7064
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -37.6678,
+ 146.7064
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -45.758,
+ 140.8286
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -45.758,
+ 140.8286
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -53.0477,
+ 133.9831
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -53.0477,
+ 133.9831
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -59.4219,
+ 126.278
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -59.4219,
+ 126.278
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -64.7802,
+ 117.8347
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -64.7802,
+ 117.8347
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -69.038,
+ 108.7864
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -69.038,
+ 108.7864
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -72.1281,
+ 99.2759
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -72.1281,
+ 99.2759
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -74.002,
+ 89.453
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -74.002,
+ 89.453
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -74.6299,
+ 79.4727
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -74.6299,
+ 79.4727
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -74.002,
+ 69.4925
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -74.002,
+ 69.4925
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -72.1281,
+ 59.6696
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -72.1281,
+ 59.6696
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -69.038,
+ 50.159
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -69.038,
+ 50.159
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -64.7802,
+ 41.1107
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -64.7802,
+ 41.1107
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -59.4219,
+ 32.6675
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -59.4219,
+ 32.6675
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -53.0477,
+ 24.9623
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -53.0477,
+ 24.9623
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -45.758,
+ 18.1169
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -45.758,
+ 18.1169
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -37.6678,
+ 12.239
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -37.6678,
+ 12.239
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -28.9047,
+ 7.4215
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -28.9047,
+ 7.4215
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -19.607,
+ 3.7402
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -19.607,
+ 3.7402
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -9.9211,
+ 1.2533
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -9.9211,
+ 1.2533
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -0.0,
+ 0.0
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -0.0,
+ 0.0
+ ],
+ "tag": null,
+ "to": [
+ 10.0,
+ 0.0
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ }
+ ],
+ "on": {
+ "type": "plane",
+ "id": "[uuid]",
+ "artifactId": "[uuid]",
+ "value": "XY",
+ "origin": {
+ "x": 0.0,
+ "y": 0.0,
+ "z": 0.0,
+ "units": {
+ "type": "Mm"
+ }
+ },
+ "xAxis": {
+ "x": 1.0,
+ "y": 0.0,
+ "z": 0.0,
+ "units": {
+ "type": "Mm"
+ }
+ },
+ "yAxis": {
+ "x": 0.0,
+ "y": 1.0,
+ "z": 0.0,
+ "units": {
+ "type": "Mm"
+ }
+ },
+ "zAxis": {
+ "x": 0.0,
+ "y": 0.0,
+ "z": 1.0,
+ "units": {
+ "type": "Mm"
+ }
+ },
+ "units": {
+ "type": "Mm"
+ }
+ },
+ "start": {
+ "from": [
+ 10.0,
+ 0.0
+ ],
+ "to": [
+ 10.0,
+ 0.0
+ ],
+ "units": {
+ "type": "Mm"
+ },
+ "tag": null,
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ }
+ },
+ "tags": {
+ "problematicTag": {
+ "type": "TagIdentifier",
+ "value": "problematicTag"
+ }
+ },
+ "artifactId": "[uuid]",
+ "originalId": "[uuid]",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ "height": 50.0,
+ "startCapId": "[uuid]",
+ "endCapId": "[uuid]",
+ "units": {
+ "type": "Mm"
+ }
+ }
+ },
+ "finalSketch": {
+ "type": "Sketch",
+ "value": {
+ "type": "Sketch",
+ "id": "[uuid]",
+ "paths": [
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 10.0,
+ 0.0
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 19.9211,
+ 1.2533
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 19.9211,
+ 1.2533
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 29.607,
+ 3.7402
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 29.607,
+ 3.7402
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 38.9047,
+ 7.4215
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 38.9047,
+ 7.4215
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 47.6678,
+ 12.239
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 47.6678,
+ 12.239
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 55.758,
+ 18.1169
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 55.758,
+ 18.1169
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 63.0477,
+ 24.9623
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 63.0477,
+ 24.9623
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 69.4219,
+ 32.6675
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 69.4219,
+ 32.6675
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 74.7802,
+ 41.1107
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 74.7802,
+ 41.1107
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 79.038,
+ 50.159
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 79.038,
+ 50.159
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 82.1281,
+ 59.6696
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 82.1281,
+ 59.6696
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 84.002,
+ 69.4925
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 84.002,
+ 69.4925
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 84.6299,
+ 79.4727
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 84.6299,
+ 79.4727
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 84.002,
+ 89.453
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 84.002,
+ 89.453
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 82.1281,
+ 99.2759
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 82.1281,
+ 99.2759
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 79.038,
+ 108.7864
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 79.038,
+ 108.7864
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 74.7802,
+ 117.8347
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 74.7802,
+ 117.8347
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 69.4219,
+ 126.278
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 69.4219,
+ 126.278
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 63.0477,
+ 133.9831
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 63.0477,
+ 133.9831
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 55.758,
+ 140.8286
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 55.758,
+ 140.8286
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 47.6678,
+ 146.7064
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 47.6678,
+ 146.7064
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 38.9047,
+ 151.524
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 38.9047,
+ 151.524
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 29.607,
+ 155.2052
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 29.607,
+ 155.2052
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 19.9211,
+ 157.6921
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 19.9211,
+ 157.6921
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ 10.0,
+ 158.9454
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ 10.0,
+ 158.9454
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -0.0,
+ 158.9454
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -0.0,
+ 158.9454
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -9.9211,
+ 157.6921
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -9.9211,
+ 157.6921
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -19.607,
+ 155.2052
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -19.607,
+ 155.2052
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -28.9047,
+ 151.524
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -28.9047,
+ 151.524
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -37.6678,
+ 146.7064
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -37.6678,
+ 146.7064
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -45.758,
+ 140.8286
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -45.758,
+ 140.8286
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -53.0477,
+ 133.9831
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -53.0477,
+ 133.9831
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -59.4219,
+ 126.278
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -59.4219,
+ 126.278
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -64.7802,
+ 117.8347
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -64.7802,
+ 117.8347
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -69.038,
+ 108.7864
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -69.038,
+ 108.7864
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -72.1281,
+ 99.2759
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -72.1281,
+ 99.2759
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -74.002,
+ 89.453
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -74.002,
+ 89.453
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -74.6299,
+ 79.4727
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -74.6299,
+ 79.4727
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -74.002,
+ 69.4925
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -74.002,
+ 69.4925
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -72.1281,
+ 59.6696
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -72.1281,
+ 59.6696
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -69.038,
+ 50.159
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -69.038,
+ 50.159
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -64.7802,
+ 41.1107
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -64.7802,
+ 41.1107
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -59.4219,
+ 32.6675
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -59.4219,
+ 32.6675
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -53.0477,
+ 24.9623
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -53.0477,
+ 24.9623
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -45.758,
+ 18.1169
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -45.758,
+ 18.1169
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -37.6678,
+ 12.239
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -37.6678,
+ 12.239
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -28.9047,
+ 7.4215
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -28.9047,
+ 7.4215
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -19.607,
+ 3.7402
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -19.607,
+ 3.7402
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -9.9211,
+ 1.2533
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ },
+ {
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ },
+ "from": [
+ -9.9211,
+ 1.2533
+ ],
+ "tag": {
+ "commentStart": 978,
+ "end": 993,
+ "start": 978,
+ "type": "TagDeclarator",
+ "value": "problematicTag"
+ },
+ "to": [
+ -0.0,
+ 0.0
+ ],
+ "type": "ToPoint",
+ "units": {
+ "type": "Mm"
+ }
+ }
+ ],
+ "on": {
+ "type": "plane",
+ "id": "[uuid]",
+ "artifactId": "[uuid]",
+ "value": "XY",
+ "origin": {
+ "x": 0.0,
+ "y": 0.0,
+ "z": 0.0,
+ "units": {
+ "type": "Mm"
+ }
+ },
+ "xAxis": {
+ "x": 1.0,
+ "y": 0.0,
+ "z": 0.0,
+ "units": {
+ "type": "Mm"
+ }
+ },
+ "yAxis": {
+ "x": 0.0,
+ "y": 1.0,
+ "z": 0.0,
+ "units": {
+ "type": "Mm"
+ }
+ },
+ "zAxis": {
+ "x": 0.0,
+ "y": 0.0,
+ "z": 1.0,
+ "units": {
+ "type": "Mm"
+ }
+ },
+ "units": {
+ "type": "Mm"
+ }
+ },
+ "start": {
+ "from": [
+ 10.0,
+ 0.0
+ ],
+ "to": [
+ 10.0,
+ 0.0
+ ],
+ "units": {
+ "type": "Mm"
+ },
+ "tag": null,
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ }
+ },
+ "tags": {
+ "problematicTag": {
+ "type": "TagIdentifier",
+ "value": "problematicTag"
+ }
+ },
+ "artifactId": "[uuid]",
+ "originalId": "[uuid]",
+ "units": {
+ "type": "Mm"
+ }
+ }
+ },
+ "height": {
+ "type": "Number",
+ "value": 50.0,
+ "ty": {
+ "type": "Default",
+ "len": {
+ "type": "Mm"
+ },
+ "angle": {
+ "type": "Degrees"
+ }
+ }
+ },
+ "initialSketch": {
+ "type": "Sketch",
+ "value": {
+ "type": "Sketch",
+ "id": "[uuid]",
+ "paths": [],
+ "on": {
+ "type": "plane",
+ "id": "[uuid]",
+ "artifactId": "[uuid]",
+ "value": "XY",
+ "origin": {
+ "x": 0.0,
+ "y": 0.0,
+ "z": 0.0,
+ "units": {
+ "type": "Mm"
+ }
+ },
+ "xAxis": {
+ "x": 1.0,
+ "y": 0.0,
+ "z": 0.0,
+ "units": {
+ "type": "Mm"
+ }
+ },
+ "yAxis": {
+ "x": 0.0,
+ "y": 1.0,
+ "z": 0.0,
+ "units": {
+ "type": "Mm"
+ }
+ },
+ "zAxis": {
+ "x": 0.0,
+ "y": 0.0,
+ "z": 1.0,
+ "units": {
+ "type": "Mm"
+ }
+ },
+ "units": {
+ "type": "Mm"
+ }
+ },
+ "start": {
+ "from": [
+ 10.0,
+ 0.0
+ ],
+ "to": [
+ 10.0,
+ 0.0
+ ],
+ "units": {
+ "type": "Mm"
+ },
+ "tag": null,
+ "__geoMeta": {
+ "id": "[uuid]",
+ "sourceRange": []
+ }
+ },
+ "tags": {
+ "problematicTag": {
+ "type": "TagIdentifier",
+ "value": "problematicTag"
+ }
+ },
+ "artifactId": "[uuid]",
+ "originalId": "[uuid]",
+ "units": {
+ "type": "Mm"
+ }
+ }
+ },
+ "numSides": {
+ "type": "Number",
+ "value": 50.0,
+ "ty": {
+ "type": "Default",
+ "len": {
+ "type": "Mm"
+ },
+ "angle": {
+ "type": "Degrees"
+ }
+ }
+ },
+ "problematicTag": {
+ "type": "TagIdentifier",
+ "type": "TagIdentifier",
+ "value": "problematicTag"
+ },
+ "radius": {
+ "type": "Number",
+ "value": 10.0,
+ "ty": {
+ "type": "Default",
+ "len": {
+ "type": "Mm"
+ },
+ "angle": {
+ "type": "Degrees"
+ }
+ }
+ }
+}
diff --git a/rust/kcl-lib/tests/loop_tag/rendered_model.png b/rust/kcl-lib/tests/loop_tag/rendered_model.png
new file mode 100644
index 000000000..0423c90a7
Binary files /dev/null and b/rust/kcl-lib/tests/loop_tag/rendered_model.png differ
diff --git a/rust/kcl-lib/tests/loop_tag/unparsed.snap b/rust/kcl-lib/tests/loop_tag/unparsed.snap
new file mode 100644
index 000000000..f084296b6
--- /dev/null
+++ b/rust/kcl-lib/tests/loop_tag/unparsed.snap
@@ -0,0 +1,42 @@
+---
+source: kcl-lib/src/simulation_tests.rs
+description: Result of unparsing loop_tag.kcl
+---
+// This is a performance regression test. There was previously some O(2^numSides) nonsense
+// in updating tags. If this test stops terminating in reasonable time, or versions of tags
+// explodes in program memory, then you might want to look at how tag infos are being merged
+// by `update_memory_for_tags_of_geometry`.
+
+
+
+
+@settings(defaultLengthUnit = mm)
+
+// Define constants for the cylinder
+radius = 10
+height = 50
+numSides = 50
+angleIncrement = 360 / numSides
+
+// Function to calculate the coordinates of a point on the circle
+fn calculatePoint(index) {
+ angle = index * angleIncrement
+ x = radius * cos(angle * PI / 180)
+ y = radius * sin(angle * PI / 180)
+ return [x, y]
+}
+
+// Start sketch on the XY plane
+initialSketch = startSketchOn(XY)
+ |> startProfileAt(calculatePoint(0), %)
+
+// Draw lines to form the base of the cylinder
+finalSketch = reduce([1 .. numSides - 1], initialSketch, fn(index, sketch) {
+ return line(sketch, end = calculatePoint(index), tag = $problematicTag)
+})
+
+// Close the sketch to complete the base
+closedSketch = close(finalSketch)
+
+// Extrude the base to form the cylinder
+cylinder = extrude(closedSketch, length = height)