WIP: Fix up artifact graph tests

This commit is contained in:
Adam Chalmers
2025-01-29 14:00:21 -06:00
parent 7b3cfb1c2f
commit 012da726ec
28 changed files with 4959 additions and 2355 deletions

View File

@ -94,7 +94,7 @@ async fn execute(test_name: &str, render_to_png: bool) {
Ok((exec_state, png)) => {
let fail_path_str = format!("tests/{test_name}/execution_error.snap");
let fail_path = Path::new(&fail_path_str);
if std::fs::exists(&fail_path).unwrap() {
if std::fs::exists(fail_path).unwrap() {
panic!("This test case is expected to fail, but it passed. If this is intended, and the test should actually be passing now, please delete kcl/{fail_path_str}")
}
if render_to_png {
@ -143,7 +143,7 @@ async fn execute(test_name: &str, render_to_png: bool) {
Err(e) => {
let ok_path_str = format!("tests/{test_name}/program_memory.snap");
let ok_path = Path::new(&ok_path_str);
let previously_passed = std::fs::exists(&ok_path).unwrap();
let previously_passed = std::fs::exists(ok_path).unwrap();
match e.error {
crate::errors::ExecError::Kcl(error) => {
// Snapshot the KCL error with a fancy graphical report.

View File

@ -281,5 +281,656 @@ snapshot_kind: text
"object_id": "[uuid]",
"hidden": true
}
},
{
"cmdId": "[uuid]",
"range": [
12,
31,
0
],
"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": [
37,
64,
0
],
"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": [
37,
64,
0
],
"command": {
"type": "start_path"
}
},
{
"cmdId": "[uuid]",
"range": [
37,
64,
0
],
"command": {
"type": "move_path_pen",
"path": "[uuid]",
"to": {
"x": -5.0,
"y": -5.0,
"z": 0.0
}
}
},
{
"cmdId": "[uuid]",
"range": [
70,
89,
0
],
"command": {
"type": "extend_path",
"path": "[uuid]",
"segment": {
"type": "line",
"end": {
"x": 0.0,
"y": 10.0,
"z": 0.0
},
"relative": true
}
}
},
{
"cmdId": "[uuid]",
"range": [
95,
131,
0
],
"command": {
"type": "extend_path",
"path": "[uuid]",
"segment": {
"type": "line",
"end": {
"x": 10.55,
"y": 0.0,
"z": 0.0
},
"relative": true
}
}
},
{
"cmdId": "[uuid]",
"range": [
137,
171,
0
],
"command": {
"type": "extend_path",
"path": "[uuid]",
"segment": {
"type": "line",
"end": {
"x": 0.0,
"y": -10.0,
"z": 0.0
},
"relative": true
}
}
},
{
"cmdId": "[uuid]",
"range": [
177,
233,
0
],
"command": {
"type": "extend_path",
"path": "[uuid]",
"segment": {
"type": "line",
"end": {
"x": -5.0,
"y": -5.0,
"z": 0.0
},
"relative": false
}
}
},
{
"cmdId": "[uuid]",
"range": [
239,
246,
0
],
"command": {
"type": "close_path",
"path_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [
239,
246,
0
],
"command": {
"type": "sketch_mode_disable"
}
},
{
"cmdId": "[uuid]",
"range": [
260,
292,
0
],
"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": [
260,
292,
0
],
"command": {
"type": "extrude",
"target": "[uuid]",
"distance": -10.0,
"faces": null
}
},
{
"cmdId": "[uuid]",
"range": [
260,
292,
0
],
"command": {
"type": "sketch_mode_disable"
}
},
{
"cmdId": "[uuid]",
"range": [
260,
292,
0
],
"command": {
"type": "object_bring_to_front",
"object_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [
260,
292,
0
],
"command": {
"type": "solid3d_get_extrusion_face_info",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [
260,
292,
0
],
"command": {
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [
260,
292,
0
],
"command": {
"type": "solid3d_get_next_adjacent_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [
260,
292,
0
],
"command": {
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [
260,
292,
0
],
"command": {
"type": "solid3d_get_next_adjacent_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [
260,
292,
0
],
"command": {
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [
260,
292,
0
],
"command": {
"type": "solid3d_get_next_adjacent_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [
260,
292,
0
],
"command": {
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [
260,
292,
0
],
"command": {
"type": "solid3d_get_next_adjacent_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [
298,
339,
0
],
"command": {
"type": "solid3d_fillet_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"radius": 5.0,
"tolerance": 0.0000001,
"cut_type": "fillet"
}
},
{
"cmdId": "[uuid]",
"range": [
390,
417,
0
],
"command": {
"type": "enable_sketch_mode",
"entity_id": "[uuid]",
"ortho": false,
"animated": false,
"adjust_camera": false,
"planar_normal": null
}
},
{
"cmdId": "[uuid]",
"range": [
390,
417,
0
],
"command": {
"type": "start_path"
}
},
{
"cmdId": "[uuid]",
"range": [
390,
417,
0
],
"command": {
"type": "move_path_pen",
"path": "[uuid]",
"to": {
"x": -2.0,
"y": -6.0,
"z": 0.0
}
}
},
{
"cmdId": "[uuid]",
"range": [
423,
441,
0
],
"command": {
"type": "extend_path",
"path": "[uuid]",
"segment": {
"type": "line",
"end": {
"x": 2.0,
"y": 3.0,
"z": 0.0
},
"relative": true
}
}
},
{
"cmdId": "[uuid]",
"range": [
447,
466,
0
],
"command": {
"type": "extend_path",
"path": "[uuid]",
"segment": {
"type": "line",
"end": {
"x": 2.0,
"y": -3.0,
"z": 0.0
},
"relative": true
}
}
},
{
"cmdId": "[uuid]",
"range": [
472,
528,
0
],
"command": {
"type": "extend_path",
"path": "[uuid]",
"segment": {
"type": "line",
"end": {
"x": -2.0,
"y": -6.0,
"z": 0.0
},
"relative": false
}
}
},
{
"cmdId": "[uuid]",
"range": [
534,
541,
0
],
"command": {
"type": "close_path",
"path_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [
555,
585,
0
],
"command": {
"type": "enable_sketch_mode",
"entity_id": "[uuid]",
"ortho": false,
"animated": false,
"adjust_camera": false,
"planar_normal": null
}
},
{
"cmdId": "[uuid]",
"range": [
555,
585,
0
],
"command": {
"type": "extrude",
"target": "[uuid]",
"distance": 5.0,
"faces": null
}
},
{
"cmdId": "[uuid]",
"range": [
555,
585,
0
],
"command": {
"type": "sketch_mode_disable"
}
},
{
"cmdId": "[uuid]",
"range": [
555,
585,
0
],
"command": {
"type": "object_bring_to_front",
"object_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [
555,
585,
0
],
"command": {
"type": "solid3d_get_extrusion_face_info",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [
555,
585,
0
],
"command": {
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [
555,
585,
0
],
"command": {
"type": "solid3d_get_next_adjacent_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [
555,
585,
0
],
"command": {
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [
555,
585,
0
],
"command": {
"type": "solid3d_get_next_adjacent_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [
555,
585,
0
],
"command": {
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [
555,
585,
0
],
"command": {
"type": "solid3d_get_next_adjacent_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
}
]

View File

@ -2,23 +2,23 @@
flowchart LR
subgraph path2 [Path]
2["Path<br>[37, 64, 0]"]
3["Segment<br>[70, 86, 0]"]
4["Segment<br>[92, 119, 0]"]
5["Segment<br>[125, 150, 0]"]
6["Segment<br>[156, 203, 0]"]
7["Segment<br>[209, 217, 0]"]
3["Segment<br>[70, 89, 0]"]
4["Segment<br>[95, 131, 0]"]
5["Segment<br>[137, 171, 0]"]
6["Segment<br>[177, 233, 0]"]
7["Segment<br>[239, 246, 0]"]
8[Solid2d]
end
subgraph path25 [Path]
25["Path<br>[352, 379, 0]"]
26["Segment<br>[385, 400, 0]"]
27["Segment<br>[406, 422, 0]"]
28["Segment<br>[428, 475, 0]"]
29["Segment<br>[481, 489, 0]"]
25["Path<br>[390, 417, 0]"]
26["Segment<br>[423, 441, 0]"]
27["Segment<br>[447, 466, 0]"]
28["Segment<br>[472, 528, 0]"]
29["Segment<br>[534, 541, 0]"]
30[Solid2d]
end
1["Plane<br>[12, 31, 0]"]
9["Sweep Extrusion<br>[231, 254, 0]"]
9["Sweep Extrusion<br>[260, 292, 0]"]
10[Wall]
11[Wall]
12[Wall]
@ -33,8 +33,8 @@ flowchart LR
21["SweepEdge Adjacent"]
22["SweepEdge Opposite"]
23["SweepEdge Adjacent"]
24["EdgeCut Fillet<br>[260, 301, 0]"]
31["Sweep Extrusion<br>[503, 524, 0]"]
24["EdgeCut Fillet<br>[298, 339, 0]"]
31["Sweep Extrusion<br>[555, 585, 0]"]
32[Wall]
33[Wall]
34[Wall]

File diff suppressed because it is too large Load Diff

View File

@ -1,14 +0,0 @@
---
source: kcl/src/simulation_tests.rs
description: Error from executing artifact_graph_example_code1.kcl
snapshot_kind: text
---
KCL Semantic error
× semantic: Expected a kcl_lib::execution::Sketch but found array (list)
╭─[3:11]
2 │ |> startProfileAt([-5, -5], %)
3 │ |> line([0, 10], %)
· ───────
4 │ |> line([10.55, 0], %, $seg01)
╰────

View File

@ -1,16 +1,16 @@
sketch001 = startSketchOn('XY')
|> startProfileAt([-5, -5], %)
|> line([0, 10], %)
|> line([10.55, 0], %, $seg01)
|> line([0, -10], %, $seg02)
|> lineTo([profileStartX(%), profileStartY(%)], %)
|> close(%)
extrude001 = extrude(-10, sketch001)
|> line(end = [0, 10])
|> line(end = [10.55, 0], tag = $seg01)
|> line(end = [0, -10], tag = $seg02)
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close()
extrude001 = extrude(sketch001, length = -10)
|> fillet({ radius = 5, tags = [seg01] }, %)
sketch002 = startSketchOn(extrude001, seg02)
|> startProfileAt([-2, -6], %)
|> line([2, 3], %)
|> line([2, -3], %)
|> lineTo([profileStartX(%), profileStartY(%)], %)
|> close(%)
|> line(end = [2, 3])
|> line(end = [2, -3])
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close()
extrude002 = extrude(sketch002, length = 5)

View File

@ -22,5 +22,107 @@ snapshot_kind: text
],
"type": "StdLibCall",
"unlabeledArg": null
},
{
"labeledArgs": {
"length": {
"sourceRange": [
288,
291,
0
]
}
},
"name": "extrude",
"sourceRange": [
260,
292,
0
],
"type": "StdLibCall",
"unlabeledArg": {
"sourceRange": [
268,
277,
0
]
}
},
{
"labeledArgs": {
"data": {
"sourceRange": [
305,
335,
0
]
},
"solid": {
"sourceRange": [
337,
338,
0
]
}
},
"name": "fillet",
"sourceRange": [
298,
339,
0
],
"type": "StdLibCall",
"unlabeledArg": null
},
{
"labeledArgs": {
"data": {
"sourceRange": [
366,
376,
0
]
},
"tag": {
"sourceRange": [
378,
383,
0
]
}
},
"name": "startSketchOn",
"sourceRange": [
352,
384,
0
],
"type": "StdLibCall",
"unlabeledArg": null
},
{
"labeledArgs": {
"length": {
"sourceRange": [
583,
584,
0
]
}
},
"name": "extrude",
"sourceRange": [
555,
585,
0
],
"type": "StdLibCall",
"unlabeledArg": {
"sourceRange": [
563,
572,
0
]
}
}
]

View File

@ -281,5 +281,329 @@ snapshot_kind: text
"object_id": "[uuid]",
"hidden": true
}
},
{
"cmdId": "[uuid]",
"range": [
12,
31,
0
],
"command": {
"type": "make_plane",
"origin": {
"x": 0.0,
"y": 0.0,
"z": 0.0
},
"x_axis": {
"x": 0.0,
"y": 1.0,
"z": 0.0
},
"y_axis": {
"x": 0.0,
"y": 0.0,
"z": 1.0
},
"size": 60.0,
"clobber": false,
"hide": true
}
},
{
"cmdId": "[uuid]",
"range": [
37,
65,
0
],
"command": {
"type": "enable_sketch_mode",
"entity_id": "[uuid]",
"ortho": false,
"animated": false,
"adjust_camera": false,
"planar_normal": {
"x": 1.0,
"y": 0.0,
"z": 0.0
}
}
},
{
"cmdId": "[uuid]",
"range": [
37,
65,
0
],
"command": {
"type": "start_path"
}
},
{
"cmdId": "[uuid]",
"range": [
37,
65,
0
],
"command": {
"type": "move_path_pen",
"path": "[uuid]",
"to": {
"x": 5.82,
"y": 0.0,
"z": 0.0
}
}
},
{
"cmdId": "[uuid]",
"range": [
71,
121,
0
],
"command": {
"type": "extend_path",
"path": "[uuid]",
"segment": {
"type": "line",
"end": {
"x": -11.54,
"y": 0.0,
"z": 0.0
},
"relative": true
}
}
},
{
"cmdId": "[uuid]",
"range": [
127,
227,
0
],
"command": {
"type": "extend_path",
"path": "[uuid]",
"segment": {
"type": "line",
"end": {
"x": 0.0,
"y": 8.21,
"z": 0.0
},
"relative": true
}
}
},
{
"cmdId": "[uuid]",
"range": [
233,
353,
0
],
"command": {
"type": "extend_path",
"path": "[uuid]",
"segment": {
"type": "line",
"end": {
"x": 11.54,
"y": -0.0,
"z": 0.0
},
"relative": true
}
}
},
{
"cmdId": "[uuid]",
"range": [
359,
415,
0
],
"command": {
"type": "extend_path",
"path": "[uuid]",
"segment": {
"type": "line",
"end": {
"x": 5.82,
"y": 0.0,
"z": 0.0
},
"relative": false
}
}
},
{
"cmdId": "[uuid]",
"range": [
421,
428,
0
],
"command": {
"type": "close_path",
"path_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [
421,
428,
0
],
"command": {
"type": "sketch_mode_disable"
}
},
{
"cmdId": "[uuid]",
"range": [
441,
461,
0
],
"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": 0.0,
"z": 1.0
},
"size": 60.0,
"clobber": false,
"hide": true
}
},
{
"cmdId": "[uuid]",
"range": [
467,
496,
0
],
"command": {
"type": "enable_sketch_mode",
"entity_id": "[uuid]",
"ortho": false,
"animated": false,
"adjust_camera": false,
"planar_normal": {
"x": 0.0,
"y": 1.0,
"z": 0.0
}
}
},
{
"cmdId": "[uuid]",
"range": [
467,
496,
0
],
"command": {
"type": "start_path"
}
},
{
"cmdId": "[uuid]",
"range": [
467,
496,
0
],
"command": {
"type": "move_path_pen",
"path": "[uuid]",
"to": {
"x": 0.0,
"y": 14.36,
"z": 0.0
}
}
},
{
"cmdId": "[uuid]",
"range": [
502,
527,
0
],
"command": {
"type": "extend_path",
"path": "[uuid]",
"segment": {
"type": "line",
"end": {
"x": 15.49,
"y": 0.05,
"z": 0.0
},
"relative": true
}
}
},
{
"cmdId": "[uuid]",
"range": [
533,
559,
0
],
"command": {
"type": "extend_path",
"path": "[uuid]",
"segment": {
"type": "tangential_arc_to",
"to": {
"x": -15.49,
"y": -14.41,
"z": 0.0
},
"angle_snap_increment": null
}
}
},
{
"cmdId": "[uuid]",
"range": [
565,
597,
0
],
"command": {
"type": "extend_path",
"path": "[uuid]",
"segment": {
"type": "tangential_arc_to",
"to": {
"x": -6.8,
"y": 8.17,
"z": 0.0
},
"angle_snap_increment": null
}
}
}
]

View File

@ -5,18 +5,18 @@ flowchart LR
3["Segment<br>[71, 121, 0]"]
4["Segment<br>[127, 227, 0]"]
5["Segment<br>[233, 353, 0]"]
6["Segment<br>[359, 406, 0]"]
7["Segment<br>[412, 420, 0]"]
6["Segment<br>[359, 415, 0]"]
7["Segment<br>[421, 428, 0]"]
8[Solid2d]
end
subgraph path10 [Path]
10["Path<br>[459, 488, 0]"]
11["Segment<br>[494, 516, 0]"]
12["Segment<br>[522, 548, 0]"]
13["Segment<br>[554, 586, 0]"]
10["Path<br>[467, 496, 0]"]
11["Segment<br>[502, 527, 0]"]
12["Segment<br>[533, 559, 0]"]
13["Segment<br>[565, 597, 0]"]
end
1["Plane<br>[12, 31, 0]"]
9["Plane<br>[433, 453, 0]"]
9["Plane<br>[441, 461, 0]"]
1 --- 2
2 --- 3
2 --- 4

View File

@ -1,13 +1,14 @@
---
source: kcl/src/simulation_tests.rs
description: Result of parsing artifact_graph_example_code_no_3d.kcl
snapshot_kind: text
---
{
"Ok": {
"body": [
{
"declaration": {
"end": 420,
"end": 428,
"id": {
"end": 9,
"name": "sketch003",
@ -317,93 +318,88 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl
{
"arguments": [
{
"elements": [
{
"arguments": [
{
"end": 382,
"start": 381,
"type": "PipeSubstitution",
"type": "PipeSubstitution"
}
],
"callee": {
"end": 380,
"name": "profileStartX",
"start": 367,
"type": "Identifier"
"type": "LabeledArg",
"label": {
"type": "Identifier",
"name": "endAbsolute"
},
"arg": {
"elements": [
{
"arguments": [
{
"end": 394,
"start": 393,
"type": "PipeSubstitution",
"type": "PipeSubstitution"
}
],
"callee": {
"end": 392,
"name": "profileStartX",
"start": 379,
"type": "Identifier"
},
"end": 395,
"start": 379,
"type": "CallExpression",
"type": "CallExpression"
},
"end": 383,
"start": 367,
"type": "CallExpression",
"type": "CallExpression"
},
{
"arguments": [
{
"end": 400,
"start": 399,
"type": "PipeSubstitution",
"type": "PipeSubstitution"
}
],
"callee": {
"end": 398,
"name": "profileStartY",
"start": 385,
"type": "Identifier"
},
"end": 401,
"start": 385,
"type": "CallExpression",
"type": "CallExpression"
}
],
"end": 402,
"start": 366,
"type": "ArrayExpression",
"type": "ArrayExpression"
},
{
"end": 405,
"start": 404,
"type": "PipeSubstitution",
"type": "PipeSubstitution"
{
"arguments": [
{
"end": 412,
"start": 411,
"type": "PipeSubstitution",
"type": "PipeSubstitution"
}
],
"callee": {
"end": 410,
"name": "profileStartY",
"start": 397,
"type": "Identifier"
},
"end": 413,
"start": 397,
"type": "CallExpression",
"type": "CallExpression"
}
],
"end": 414,
"start": 378,
"type": "ArrayExpression",
"type": "ArrayExpression"
}
}
],
"callee": {
"end": 365,
"name": "lineTo",
"end": 363,
"name": "line",
"start": 359,
"type": "Identifier"
},
"end": 406,
"end": 415,
"start": 359,
"type": "CallExpression",
"type": "CallExpression"
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": null
},
{
"arguments": [
{
"end": 419,
"start": 418,
"type": "PipeSubstitution",
"type": "PipeSubstitution"
}
],
"arguments": [],
"callee": {
"end": 417,
"end": 426,
"name": "close",
"start": 412,
"start": 421,
"type": "Identifier"
},
"end": 420,
"start": 412,
"end": 428,
"start": 421,
"type": "CallExpression",
"type": "CallExpression"
}
],
"end": 420,
"end": 428,
"start": 12,
"type": "PipeExpression",
"type": "PipeExpression"
@ -411,7 +407,7 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl
"start": 0,
"type": "VariableDeclarator"
},
"end": 420,
"end": 428,
"kind": "const",
"start": 0,
"type": "VariableDeclaration",
@ -419,11 +415,11 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl
},
{
"declaration": {
"end": 586,
"end": 597,
"id": {
"end": 430,
"end": 438,
"name": "sketch004",
"start": 421,
"start": 429,
"type": "Identifier"
},
"init": {
@ -431,22 +427,22 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl
{
"arguments": [
{
"end": 452,
"end": 460,
"raw": "'-XZ'",
"start": 447,
"start": 455,
"type": "Literal",
"type": "Literal",
"value": "-XZ"
}
],
"callee": {
"end": 446,
"end": 454,
"name": "startSketchOn",
"start": 433,
"start": 441,
"type": "Identifier"
},
"end": 453,
"start": 433,
"end": 461,
"start": 441,
"type": "CallExpression",
"type": "CallExpression"
},
@ -455,9 +451,9 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl
{
"elements": [
{
"end": 476,
"end": 484,
"raw": "0",
"start": 475,
"start": 483,
"type": "Literal",
"type": "Literal",
"value": {
@ -466,9 +462,9 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl
}
},
{
"end": 483,
"end": 491,
"raw": "14.36",
"start": 478,
"start": 486,
"type": "Literal",
"type": "Literal",
"value": {
@ -477,87 +473,89 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl
}
}
],
"end": 484,
"start": 474,
"end": 492,
"start": 482,
"type": "ArrayExpression",
"type": "ArrayExpression"
},
{
"end": 487,
"start": 486,
"end": 495,
"start": 494,
"type": "PipeSubstitution",
"type": "PipeSubstitution"
}
],
"callee": {
"end": 473,
"end": 481,
"name": "startProfileAt",
"start": 459,
"start": 467,
"type": "Identifier"
},
"end": 488,
"start": 459,
"end": 496,
"start": 467,
"type": "CallExpression",
"type": "CallExpression"
},
{
"arguments": [
{
"elements": [
{
"end": 505,
"raw": "15.49",
"start": 500,
"type": "Literal",
"type": "Literal",
"value": {
"value": 15.49,
"suffix": "None"
"type": "LabeledArg",
"label": {
"type": "Identifier",
"name": "end"
},
"arg": {
"elements": [
{
"end": 519,
"raw": "15.49",
"start": 514,
"type": "Literal",
"type": "Literal",
"value": {
"value": 15.49,
"suffix": "None"
}
},
{
"end": 525,
"raw": "0.05",
"start": 521,
"type": "Literal",
"type": "Literal",
"value": {
"value": 0.05,
"suffix": "None"
}
}
},
{
"end": 511,
"raw": "0.05",
"start": 507,
"type": "Literal",
"type": "Literal",
"value": {
"value": 0.05,
"suffix": "None"
}
}
],
"end": 512,
"start": 499,
"type": "ArrayExpression",
"type": "ArrayExpression"
},
{
"end": 515,
"start": 514,
"type": "PipeSubstitution",
"type": "PipeSubstitution"
],
"end": 526,
"start": 513,
"type": "ArrayExpression",
"type": "ArrayExpression"
}
}
],
"callee": {
"end": 498,
"end": 506,
"name": "line",
"start": 494,
"start": 502,
"type": "Identifier"
},
"end": 516,
"start": 494,
"type": "CallExpression",
"type": "CallExpression"
"end": 527,
"start": 502,
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": null
},
{
"arguments": [
{
"elements": [
{
"end": 540,
"end": 551,
"raw": "0",
"start": 539,
"start": 550,
"type": "Literal",
"type": "Literal",
"value": {
@ -566,9 +564,9 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl
}
},
{
"end": 543,
"end": 554,
"raw": "0",
"start": 542,
"start": 553,
"type": "Literal",
"type": "Literal",
"value": {
@ -577,26 +575,26 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl
}
}
],
"end": 544,
"start": 538,
"end": 555,
"start": 549,
"type": "ArrayExpression",
"type": "ArrayExpression"
},
{
"end": 547,
"start": 546,
"end": 558,
"start": 557,
"type": "PipeSubstitution",
"type": "PipeSubstitution"
}
],
"callee": {
"end": 537,
"end": 548,
"name": "tangentialArcTo",
"start": 522,
"start": 533,
"type": "Identifier"
},
"end": 548,
"start": 522,
"end": 559,
"start": 533,
"type": "CallExpression",
"type": "CallExpression"
},
@ -606,9 +604,9 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl
"elements": [
{
"argument": {
"end": 575,
"end": 586,
"raw": "6.8",
"start": 572,
"start": 583,
"type": "Literal",
"type": "Literal",
"value": {
@ -616,16 +614,16 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl
"suffix": "None"
}
},
"end": 575,
"end": 586,
"operator": "-",
"start": 571,
"start": 582,
"type": "UnaryExpression",
"type": "UnaryExpression"
},
{
"end": 581,
"end": 592,
"raw": "8.17",
"start": 577,
"start": 588,
"type": "Literal",
"type": "Literal",
"value": {
@ -634,46 +632,46 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl
}
}
],
"end": 582,
"start": 570,
"end": 593,
"start": 581,
"type": "ArrayExpression",
"type": "ArrayExpression"
},
{
"end": 585,
"start": 584,
"end": 596,
"start": 595,
"type": "PipeSubstitution",
"type": "PipeSubstitution"
}
],
"callee": {
"end": 569,
"end": 580,
"name": "tangentialArcTo",
"start": 554,
"start": 565,
"type": "Identifier"
},
"end": 586,
"start": 554,
"end": 597,
"start": 565,
"type": "CallExpression",
"type": "CallExpression"
}
],
"end": 586,
"start": 433,
"end": 597,
"start": 441,
"type": "PipeExpression",
"type": "PipeExpression"
},
"start": 421,
"start": 429,
"type": "VariableDeclarator"
},
"end": 586,
"end": 597,
"kind": "const",
"start": 421,
"start": 429,
"type": "VariableDeclaration",
"type": "VariableDeclaration"
}
],
"end": 587,
"end": 598,
"start": 0
}
}

View File

@ -1,14 +0,0 @@
---
source: kcl/src/simulation_tests.rs
description: Error from executing artifact_graph_example_code_no_3d.kcl
snapshot_kind: text
---
KCL UndefinedValue error
× undefined value: memory item key `lineTo` is not defined
╭─[12:6]
11 │ ], %, $rectangleSegmentC001)
12 │ |> lineTo([profileStartX(%), profileStartY(%)], %)
· ───────────────────────────────────────────────
13 │ |> close(%)
╰────

View File

@ -9,10 +9,10 @@ sketch003 = startSketchOn('YZ')
segAng(rectangleSegmentA001),
-segLen(rectangleSegmentA001)
], %, $rectangleSegmentC001)
|> lineTo([profileStartX(%), profileStartY(%)], %)
|> close(%)
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close()
sketch004 = startSketchOn('-XZ')
|> startProfileAt([0, 14.36], %)
|> line([15.49, 0.05], %)
|> line(end = [15.49, 0.05])
|> tangentialArcTo([0, 0], %)
|> tangentialArcTo([-6.8, 8.17], %)

View File

@ -22,5 +22,24 @@ snapshot_kind: text
],
"type": "StdLibCall",
"unlabeledArg": null
},
{
"labeledArgs": {
"data": {
"sourceRange": [
455,
460,
0
]
}
},
"name": "startSketchOn",
"sourceRange": [
441,
461,
0
],
"type": "StdLibCall",
"unlabeledArg": null
}
]

View File

@ -1,6 +1,7 @@
---
source: kcl/src/simulation_tests.rs
description: Program memory after executing artifact_graph_example_code_no_3d.kcl
snapshot_kind: text
---
{
"environments": [
@ -247,7 +248,7 @@ description: Program memory after executing artifact_graph_example_code_no_3d.kc
"id": "[uuid]",
"sourceRange": [
359,
406,
415,
0
]
},
@ -266,8 +267,8 @@ description: Program memory after executing artifact_graph_example_code_no_3d.kc
"__geoMeta": {
"id": "[uuid]",
"sourceRange": [
412,
420,
421,
428,
0
]
},
@ -489,8 +490,8 @@ description: Program memory after executing artifact_graph_example_code_no_3d.kc
"__geoMeta": {
"id": "[uuid]",
"sourceRange": [
494,
516,
502,
527,
0
]
},
@ -509,8 +510,8 @@ description: Program memory after executing artifact_graph_example_code_no_3d.kc
"__geoMeta": {
"id": "[uuid]",
"sourceRange": [
522,
548,
533,
559,
0
]
},
@ -534,8 +535,8 @@ description: Program memory after executing artifact_graph_example_code_no_3d.kc
"__geoMeta": {
"id": "[uuid]",
"sourceRange": [
554,
586,
565,
597,
0
]
},
@ -598,8 +599,8 @@ description: Program memory after executing artifact_graph_example_code_no_3d.kc
"__geoMeta": {
"id": "[uuid]",
"sourceRange": [
459,
488,
467,
496,
0
]
}
@ -610,8 +611,8 @@ description: Program memory after executing artifact_graph_example_code_no_3d.kc
"__meta": [
{
"sourceRange": [
459,
488,
467,
496,
0
]
}

View File

@ -281,5 +281,228 @@ snapshot_kind: text
"object_id": "[uuid]",
"hidden": true
}
},
{
"cmdId": "[uuid]",
"range": [
17,
38,
0
],
"command": {
"type": "make_plane",
"origin": {
"x": 0.0,
"y": 0.0,
"z": 20.0
},
"x_axis": {
"x": 1.0,
"y": 0.0,
"z": 0.0
},
"y_axis": {
"x": 0.0,
"y": 1.0,
"z": 0.0
},
"size": 100.0,
"clobber": false,
"hide": false
}
},
{
"cmdId": "[uuid]",
"range": [
17,
38,
0
],
"command": {
"type": "plane_set_color",
"plane_id": "[uuid]",
"color": {
"r": 0.6,
"g": 0.6,
"b": 0.6,
"a": 0.3
}
}
},
{
"cmdId": "[uuid]",
"range": [
56,
78,
0
],
"command": {
"type": "make_plane",
"origin": {
"x": 0.0,
"y": 50.0,
"z": 0.0
},
"x_axis": {
"x": 1.0,
"y": 0.0,
"z": 0.0
},
"y_axis": {
"x": 0.0,
"y": 0.0,
"z": 1.0
},
"size": 100.0,
"clobber": false,
"hide": false
}
},
{
"cmdId": "[uuid]",
"range": [
56,
78,
0
],
"command": {
"type": "plane_set_color",
"plane_id": "[uuid]",
"color": {
"r": 0.6,
"g": 0.6,
"b": 0.6,
"a": 0.3
}
}
},
{
"cmdId": "[uuid]",
"range": [
96,
117,
0
],
"command": {
"type": "make_plane",
"origin": {
"x": 10.0,
"y": 0.0,
"z": 0.0
},
"x_axis": {
"x": 0.0,
"y": 1.0,
"z": 0.0
},
"y_axis": {
"x": 0.0,
"y": 0.0,
"z": 1.0
},
"size": 100.0,
"clobber": false,
"hide": false
}
},
{
"cmdId": "[uuid]",
"range": [
96,
117,
0
],
"command": {
"type": "plane_set_color",
"plane_id": "[uuid]",
"color": {
"r": 0.6,
"g": 0.6,
"b": 0.6,
"a": 0.3
}
}
},
{
"cmdId": "[uuid]",
"range": [
166,
191,
0
],
"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": [
166,
191,
0
],
"command": {
"type": "start_path"
}
},
{
"cmdId": "[uuid]",
"range": [
166,
191,
0
],
"command": {
"type": "move_path_pen",
"path": "[uuid]",
"to": {
"x": 0.0,
"y": 0.0,
"z": 0.0
}
}
},
{
"cmdId": "[uuid]",
"range": [
197,
222,
0
],
"command": {
"type": "extend_path",
"path": "[uuid]",
"segment": {
"type": "line",
"end": {
"x": 6.78,
"y": 15.01,
"z": 0.0
},
"relative": true
}
}
},
{
"cmdId": "[uuid]",
"range": [
166,
191,
0
],
"command": {
"type": "object_visible",
"object_id": "[uuid]",
"hidden": true
}
}
]

View File

@ -2,7 +2,7 @@
flowchart LR
subgraph path4 [Path]
4["Path<br>[166, 191, 0]"]
5["Segment<br>[197, 219, 0]"]
5["Segment<br>[197, 222, 0]"]
end
1["Plane<br>[17, 38, 0]"]
2["Plane<br>[56, 78, 0]"]

View File

@ -1,6 +1,7 @@
---
source: kcl/src/simulation_tests.rs
description: Result of parsing artifact_graph_example_code_offset_planes.kcl
snapshot_kind: text
---
{
"Ok": {
@ -167,7 +168,7 @@ description: Result of parsing artifact_graph_example_code_offset_planes.kcl
},
{
"declaration": {
"end": 219,
"end": 222,
"id": {
"end": 128,
"name": "sketch002",
@ -250,40 +251,41 @@ description: Result of parsing artifact_graph_example_code_offset_planes.kcl
{
"arguments": [
{
"elements": [
{
"end": 207,
"raw": "6.78",
"start": 203,
"type": "Literal",
"type": "Literal",
"value": {
"value": 6.78,
"suffix": "None"
"type": "LabeledArg",
"label": {
"type": "Identifier",
"name": "end"
},
"arg": {
"elements": [
{
"end": 213,
"raw": "6.78",
"start": 209,
"type": "Literal",
"type": "Literal",
"value": {
"value": 6.78,
"suffix": "None"
}
},
{
"end": 220,
"raw": "15.01",
"start": 215,
"type": "Literal",
"type": "Literal",
"value": {
"value": 15.01,
"suffix": "None"
}
}
},
{
"end": 214,
"raw": "15.01",
"start": 209,
"type": "Literal",
"type": "Literal",
"value": {
"value": 15.01,
"suffix": "None"
}
}
],
"end": 215,
"start": 202,
"type": "ArrayExpression",
"type": "ArrayExpression"
},
{
"end": 218,
"start": 217,
"type": "PipeSubstitution",
"type": "PipeSubstitution"
],
"end": 221,
"start": 208,
"type": "ArrayExpression",
"type": "ArrayExpression"
}
}
],
"callee": {
@ -292,13 +294,14 @@ description: Result of parsing artifact_graph_example_code_offset_planes.kcl
"start": 197,
"type": "Identifier"
},
"end": 219,
"end": 222,
"start": 197,
"type": "CallExpression",
"type": "CallExpression"
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": null
}
],
"end": 219,
"end": 222,
"start": 131,
"type": "PipeExpression",
"type": "PipeExpression"
@ -306,14 +309,14 @@ description: Result of parsing artifact_graph_example_code_offset_planes.kcl
"start": 119,
"type": "VariableDeclarator"
},
"end": 219,
"end": 222,
"kind": "const",
"start": 119,
"type": "VariableDeclaration",
"type": "VariableDeclaration"
}
],
"end": 220,
"end": 223,
"nonCodeMeta": {
"nonCodeNodes": {
"2": [

View File

@ -1,13 +0,0 @@
---
source: kcl/src/simulation_tests.rs
description: Error from executing artifact_graph_example_code_offset_planes.kcl
snapshot_kind: text
---
KCL Semantic error
× semantic: Expected a kcl_lib::execution::Sketch but found array (list)
╭─[7:11]
6 │ |> startProfileAt([0, 0], %)
7 │ |> line([6.78, 15.01], %)
· ─────────────
╰────

View File

@ -4,4 +4,4 @@ offsetPlane003 = offsetPlane("YZ", 10)
sketch002 = startSketchOn(offsetPlane001)
|> startProfileAt([0, 0], %)
|> line([6.78, 15.01], %)
|> line(end = [6.78, 15.01])

View File

@ -1,6 +1,7 @@
---
source: kcl/src/simulation_tests.rs
description: Program memory after executing artifact_graph_example_code_offset_planes.kcl
snapshot_kind: text
---
{
"environments": [
@ -130,7 +131,7 @@ description: Program memory after executing artifact_graph_example_code_offset_p
"id": "[uuid]",
"sourceRange": [
197,
219,
222,
0
]
},

View File

@ -2,38 +2,38 @@
flowchart LR
subgraph path2 [Path]
2["Path<br>[37, 62, 0]"]
3["Segment<br>[68, 83, 0]"]
4["Segment<br>[89, 113, 0]"]
5["Segment<br>[119, 166, 0]"]
6["Segment<br>[172, 180, 0]"]
3["Segment<br>[68, 86, 0]"]
4["Segment<br>[92, 125, 0]"]
5["Segment<br>[131, 187, 0]"]
6["Segment<br>[193, 200, 0]"]
7[Solid2d]
end
subgraph path20 [Path]
20["Path<br>[266, 296, 0]"]
21["Segment<br>[302, 317, 0]"]
22["Segment<br>[323, 339, 0]"]
23["Segment<br>[345, 392, 0]"]
24["Segment<br>[398, 406, 0]"]
20["Path<br>[295, 325, 0]"]
21["Segment<br>[331, 349, 0]"]
22["Segment<br>[355, 374, 0]"]
23["Segment<br>[380, 436, 0]"]
24["Segment<br>[442, 449, 0]"]
25[Solid2d]
end
subgraph path37 [Path]
37["Path<br>[492, 519, 0]"]
38["Segment<br>[525, 550, 0]"]
39["Segment<br>[556, 572, 0]"]
40["Segment<br>[578, 625, 0]"]
41["Segment<br>[631, 639, 0]"]
37["Path<br>[544, 571, 0]"]
38["Segment<br>[577, 611, 0]"]
39["Segment<br>[617, 636, 0]"]
40["Segment<br>[642, 698, 0]"]
41["Segment<br>[704, 711, 0]"]
42[Solid2d]
end
subgraph path54 [Path]
54["Path<br>[725, 752, 0]"]
55["Segment<br>[758, 775, 0]"]
56["Segment<br>[781, 799, 0]"]
57["Segment<br>[805, 852, 0]"]
58["Segment<br>[858, 866, 0]"]
54["Path<br>[806, 833, 0]"]
55["Segment<br>[839, 859, 0]"]
56["Segment<br>[865, 886, 0]"]
57["Segment<br>[892, 948, 0]"]
58["Segment<br>[954, 961, 0]"]
59[Solid2d]
end
1["Plane<br>[12, 31, 0]"]
8["Sweep Extrusion<br>[194, 215, 0]"]
8["Sweep Extrusion<br>[214, 244, 0]"]
9[Wall]
10[Wall]
11[Wall]
@ -45,18 +45,18 @@ flowchart LR
17["SweepEdge Adjacent"]
18["SweepEdge Opposite"]
19["SweepEdge Adjacent"]
26["Sweep Extrusion<br>[420, 441, 0]"]
26["Sweep Extrusion<br>[463, 493, 0]"]
27[Wall]
28[Wall]
29[Wall]
30["Plane<br>[492, 519, 0]"]
30["Plane<br>[544, 571, 0]"]
31["SweepEdge Opposite"]
32["SweepEdge Adjacent"]
33["SweepEdge Opposite"]
34["SweepEdge Adjacent"]
35["SweepEdge Opposite"]
36["SweepEdge Adjacent"]
43["Sweep Extrusion<br>[653, 674, 0]"]
43["Sweep Extrusion<br>[725, 755, 0]"]
44[Wall]
45[Wall]
46[Wall]
@ -67,7 +67,7 @@ flowchart LR
51["SweepEdge Adjacent"]
52["SweepEdge Opposite"]
53["SweepEdge Adjacent"]
60["Sweep Extrusion<br>[880, 901, 0]"]
60["Sweep Extrusion<br>[975, 1005, 0]"]
61[Wall]
62[Wall]
63[Wall]

View File

@ -1,14 +0,0 @@
---
source: kcl/src/simulation_tests.rs
description: Error from executing artifact_graph_sketch_on_face_etc.kcl
snapshot_kind: text
---
KCL Semantic error
× semantic: Expected a kcl_lib::execution::Sketch but found array (list)
╭─[3:11]
2 │ |> startProfileAt([0, 0], %)
3 │ |> line([4, 8], %)
· ──────
4 │ |> line([5, -8], %, $seg01)
╰────

View File

@ -1,28 +1,28 @@
sketch001 = startSketchOn('XZ')
|> startProfileAt([0, 0], %)
|> line([4, 8], %)
|> line([5, -8], %, $seg01)
|> lineTo([profileStartX(%), profileStartY(%)], %)
|> close(%)
|> line(end = [4, 8])
|> line(end = [5, -8], tag = $seg01)
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close()
extrude001 = extrude(sketch001, length = 6)
sketch002 = startSketchOn(extrude001, seg01)
|> startProfileAt([-0.5, 0.5], %)
|> line([2, 5], %)
|> line([2, -5], %)
|> lineTo([profileStartX(%), profileStartY(%)], %)
|> close(%)
|> line(end = [2, 5])
|> line(end = [2, -5])
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close()
extrude002 = extrude(sketch002, length = 5)
sketch003 = startSketchOn(extrude002, 'END')
|> startProfileAt([1, 1.5], %)
|> line([0.5, 2], %, $seg02)
|> line([1, -2], %)
|> lineTo([profileStartX(%), profileStartY(%)], %)
|> close(%)
extrude003 = extrude(sketch002, length = 4)
|> line(end = [0.5, 2], tag = $seg02)
|> line(end = [1, -2])
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close()
extrude003 = extrude(sketch003, length = 4)
sketch004 = startSketchOn(extrude003, seg02)
|> startProfileAt([-3, 14], %)
|> line([0.5, 1], %)
|> line([0.5, -2], %)
|> lineTo([profileStartX(%), profileStartY(%)], %)
|> close(%)
extrude004 = extrude(sketch002, length = 3)
|> line(end = [0.5, 1])
|> line(end = [0.5, -2])
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|> close()
extrude004 = extrude(sketch004, length = 3)

View File

@ -22,5 +22,183 @@ snapshot_kind: text
],
"type": "StdLibCall",
"unlabeledArg": null
},
{
"labeledArgs": {
"length": {
"sourceRange": [
242,
243,
0
]
}
},
"name": "extrude",
"sourceRange": [
214,
244,
0
],
"type": "StdLibCall",
"unlabeledArg": {
"sourceRange": [
222,
231,
0
]
}
},
{
"labeledArgs": {
"data": {
"sourceRange": [
271,
281,
0
]
},
"tag": {
"sourceRange": [
283,
288,
0
]
}
},
"name": "startSketchOn",
"sourceRange": [
257,
289,
0
],
"type": "StdLibCall",
"unlabeledArg": null
},
{
"labeledArgs": {
"length": {
"sourceRange": [
491,
492,
0
]
}
},
"name": "extrude",
"sourceRange": [
463,
493,
0
],
"type": "StdLibCall",
"unlabeledArg": {
"sourceRange": [
471,
480,
0
]
}
},
{
"labeledArgs": {
"data": {
"sourceRange": [
520,
530,
0
]
},
"tag": {
"sourceRange": [
532,
537,
0
]
}
},
"name": "startSketchOn",
"sourceRange": [
506,
538,
0
],
"type": "StdLibCall",
"unlabeledArg": null
},
{
"labeledArgs": {
"length": {
"sourceRange": [
753,
754,
0
]
}
},
"name": "extrude",
"sourceRange": [
725,
755,
0
],
"type": "StdLibCall",
"unlabeledArg": {
"sourceRange": [
733,
742,
0
]
}
},
{
"labeledArgs": {
"data": {
"sourceRange": [
782,
792,
0
]
},
"tag": {
"sourceRange": [
794,
799,
0
]
}
},
"name": "startSketchOn",
"sourceRange": [
768,
800,
0
],
"type": "StdLibCall",
"unlabeledArg": null
},
{
"labeledArgs": {
"length": {
"sourceRange": [
1003,
1004,
0
]
}
},
"name": "extrude",
"sourceRange": [
975,
1005,
0
],
"type": "StdLibCall",
"unlabeledArg": {
"sourceRange": [
983,
992,
0
]
}
}
]