test: Add SSI pattern simulation test (#5379)
* Add new SSI pattern test * Update output since adding new test
This commit is contained in:
@ -1600,6 +1600,27 @@ mod parametric {
|
|||||||
super::execute(TEST_NAME, true).await
|
super::execute(TEST_NAME, true).await
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
mod ssi_pattern {
|
||||||
|
const TEST_NAME: &str = "ssi_pattern";
|
||||||
|
|
||||||
|
/// Test parsing KCL.
|
||||||
|
#[test]
|
||||||
|
fn parse() {
|
||||||
|
super::parse(TEST_NAME)
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Test that parsing and unparsing KCL produces the original KCL input.
|
||||||
|
#[test]
|
||||||
|
fn unparse() {
|
||||||
|
super::unparse(TEST_NAME)
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Test that KCL is executed correctly.
|
||||||
|
#[tokio::test(flavor = "multi_thread")]
|
||||||
|
async fn kcl_test_execute() {
|
||||||
|
super::execute(TEST_NAME, true).await
|
||||||
|
}
|
||||||
|
}
|
||||||
mod angled_line {
|
mod angled_line {
|
||||||
const TEST_NAME: &str = "angled_line";
|
const TEST_NAME: &str = "angled_line";
|
||||||
|
|
||||||
|
|||||||
4535
src/wasm-lib/kcl/tests/ssi_pattern/artifact_commands.snap
Normal file
4535
src/wasm-lib/kcl/tests/ssi_pattern/artifact_commands.snap
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
source: kcl/src/simulation_tests.rs
|
||||||
|
description: Artifact graph flowchart ssi_pattern.kcl
|
||||||
|
extension: md
|
||||||
|
snapshot_kind: binary
|
||||||
|
---
|
||||||
@ -0,0 +1,92 @@
|
|||||||
|
```mermaid
|
||||||
|
flowchart LR
|
||||||
|
subgraph path2 [Path]
|
||||||
|
2["Path<br>[37, 71, 0]"]
|
||||||
|
3["Segment<br>[77, 91, 0]"]
|
||||||
|
4["Segment<br>[97, 122, 0]"]
|
||||||
|
5["Segment<br>[128, 161, 0]"]
|
||||||
|
6["Segment<br>[167, 183, 0]"]
|
||||||
|
7["Segment<br>[189, 259, 0]"]
|
||||||
|
8["Segment<br>[265, 272, 0]"]
|
||||||
|
9[Solid2d]
|
||||||
|
end
|
||||||
|
subgraph path28 [Path]
|
||||||
|
28["Path<br>[370, 421, 0]"]
|
||||||
|
29["Segment<br>[370, 421, 0]"]
|
||||||
|
30[Solid2d]
|
||||||
|
end
|
||||||
|
1["Plane<br>[12, 31, 0]"]
|
||||||
|
10["Sweep Extrusion<br>[287, 318, 0]"]
|
||||||
|
11[Wall]
|
||||||
|
12[Wall]
|
||||||
|
13[Wall]
|
||||||
|
14[Wall]
|
||||||
|
15[Wall]
|
||||||
|
16["Cap Start"]
|
||||||
|
17["Cap End"]
|
||||||
|
18["SweepEdge Opposite"]
|
||||||
|
19["SweepEdge Adjacent"]
|
||||||
|
20["SweepEdge Opposite"]
|
||||||
|
21["SweepEdge Adjacent"]
|
||||||
|
22["SweepEdge Opposite"]
|
||||||
|
23["SweepEdge Adjacent"]
|
||||||
|
24["SweepEdge Opposite"]
|
||||||
|
25["SweepEdge Adjacent"]
|
||||||
|
26["SweepEdge Opposite"]
|
||||||
|
27["SweepEdge Adjacent"]
|
||||||
|
31["Sweep Extrusion<br>[611, 632, 0]"]
|
||||||
|
32[Wall]
|
||||||
|
33["SweepEdge Opposite"]
|
||||||
|
34["SweepEdge Adjacent"]
|
||||||
|
1 --- 2
|
||||||
|
2 --- 3
|
||||||
|
2 --- 4
|
||||||
|
2 --- 5
|
||||||
|
2 --- 6
|
||||||
|
2 --- 7
|
||||||
|
2 --- 8
|
||||||
|
2 ---- 10
|
||||||
|
2 --- 9
|
||||||
|
3 --- 15
|
||||||
|
3 --- 26
|
||||||
|
3 --- 27
|
||||||
|
4 --- 14
|
||||||
|
4 --- 24
|
||||||
|
4 --- 25
|
||||||
|
5 --- 13
|
||||||
|
5 --- 22
|
||||||
|
5 --- 23
|
||||||
|
6 --- 12
|
||||||
|
6 --- 20
|
||||||
|
6 --- 21
|
||||||
|
7 --- 11
|
||||||
|
7 --- 18
|
||||||
|
7 --- 19
|
||||||
|
10 --- 11
|
||||||
|
10 --- 12
|
||||||
|
10 --- 13
|
||||||
|
10 --- 14
|
||||||
|
10 --- 15
|
||||||
|
10 --- 16
|
||||||
|
10 --- 17
|
||||||
|
10 --- 18
|
||||||
|
10 --- 19
|
||||||
|
10 --- 20
|
||||||
|
10 --- 21
|
||||||
|
10 --- 22
|
||||||
|
10 --- 23
|
||||||
|
10 --- 24
|
||||||
|
10 --- 25
|
||||||
|
10 --- 26
|
||||||
|
10 --- 27
|
||||||
|
11 --- 28
|
||||||
|
28 --- 29
|
||||||
|
28 ---- 31
|
||||||
|
28 --- 30
|
||||||
|
29 --- 32
|
||||||
|
29 --- 33
|
||||||
|
29 --- 34
|
||||||
|
31 --- 32
|
||||||
|
31 --- 33
|
||||||
|
31 --- 34
|
||||||
|
```
|
||||||
873
src/wasm-lib/kcl/tests/ssi_pattern/ast.snap
Normal file
873
src/wasm-lib/kcl/tests/ssi_pattern/ast.snap
Normal file
@ -0,0 +1,873 @@
|
|||||||
|
---
|
||||||
|
source: kcl/src/simulation_tests.rs
|
||||||
|
description: Result of parsing ssi_pattern.kcl
|
||||||
|
---
|
||||||
|
{
|
||||||
|
"Ok": {
|
||||||
|
"body": [
|
||||||
|
{
|
||||||
|
"declaration": {
|
||||||
|
"end": 272,
|
||||||
|
"id": {
|
||||||
|
"end": 9,
|
||||||
|
"name": "sketch001",
|
||||||
|
"start": 0,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"init": {
|
||||||
|
"body": [
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"end": 30,
|
||||||
|
"raw": "'XZ'",
|
||||||
|
"start": 26,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": "XZ"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 25,
|
||||||
|
"name": "startSketchOn",
|
||||||
|
"start": 12,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 31,
|
||||||
|
"start": 12,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"argument": {
|
||||||
|
"end": 58,
|
||||||
|
"raw": "4.35",
|
||||||
|
"start": 54,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": {
|
||||||
|
"value": 4.35,
|
||||||
|
"suffix": "None"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"end": 58,
|
||||||
|
"operator": "-",
|
||||||
|
"start": 53,
|
||||||
|
"type": "UnaryExpression",
|
||||||
|
"type": "UnaryExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"argument": {
|
||||||
|
"end": 66,
|
||||||
|
"raw": "12.26",
|
||||||
|
"start": 61,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": {
|
||||||
|
"value": 12.26,
|
||||||
|
"suffix": "None"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"end": 66,
|
||||||
|
"operator": "-",
|
||||||
|
"start": 60,
|
||||||
|
"type": "UnaryExpression",
|
||||||
|
"type": "UnaryExpression"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 67,
|
||||||
|
"start": 52,
|
||||||
|
"type": "ArrayExpression",
|
||||||
|
"type": "ArrayExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 70,
|
||||||
|
"start": 69,
|
||||||
|
"type": "PipeSubstitution",
|
||||||
|
"type": "PipeSubstitution"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 51,
|
||||||
|
"name": "startProfileAt",
|
||||||
|
"start": 37,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 71,
|
||||||
|
"start": 37,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"end": 87,
|
||||||
|
"raw": "10.2",
|
||||||
|
"start": 83,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": {
|
||||||
|
"value": 10.2,
|
||||||
|
"suffix": "None"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 90,
|
||||||
|
"start": 89,
|
||||||
|
"type": "PipeSubstitution",
|
||||||
|
"type": "PipeSubstitution"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 82,
|
||||||
|
"name": "yLine",
|
||||||
|
"start": 77,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 91,
|
||||||
|
"start": 77,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"type": "LabeledArg",
|
||||||
|
"label": {
|
||||||
|
"type": "Identifier",
|
||||||
|
"name": "end"
|
||||||
|
},
|
||||||
|
"arg": {
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"end": 113,
|
||||||
|
"raw": "0.54",
|
||||||
|
"start": 109,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": {
|
||||||
|
"value": 0.54,
|
||||||
|
"suffix": "None"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"argument": {
|
||||||
|
"end": 120,
|
||||||
|
"raw": "0.03",
|
||||||
|
"start": 116,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": {
|
||||||
|
"value": 0.03,
|
||||||
|
"suffix": "None"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"end": 120,
|
||||||
|
"operator": "-",
|
||||||
|
"start": 115,
|
||||||
|
"type": "UnaryExpression",
|
||||||
|
"type": "UnaryExpression"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 121,
|
||||||
|
"start": 108,
|
||||||
|
"type": "ArrayExpression",
|
||||||
|
"type": "ArrayExpression"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 101,
|
||||||
|
"name": "line",
|
||||||
|
"start": 97,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 122,
|
||||||
|
"start": 97,
|
||||||
|
"type": "CallExpressionKw",
|
||||||
|
"type": "CallExpressionKw",
|
||||||
|
"unlabeled": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"end": 149,
|
||||||
|
"raw": "20.4",
|
||||||
|
"start": 145,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": {
|
||||||
|
"value": 20.4,
|
||||||
|
"suffix": "None"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 156,
|
||||||
|
"raw": "14.61",
|
||||||
|
"start": 151,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": {
|
||||||
|
"value": 14.61,
|
||||||
|
"suffix": "None"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 157,
|
||||||
|
"start": 144,
|
||||||
|
"type": "ArrayExpression",
|
||||||
|
"type": "ArrayExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 160,
|
||||||
|
"start": 159,
|
||||||
|
"type": "PipeSubstitution",
|
||||||
|
"type": "PipeSubstitution"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 143,
|
||||||
|
"name": "tangentialArcTo",
|
||||||
|
"start": 128,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 161,
|
||||||
|
"start": 128,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"argument": {
|
||||||
|
"end": 179,
|
||||||
|
"raw": "26.76",
|
||||||
|
"start": 174,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": {
|
||||||
|
"value": 26.76,
|
||||||
|
"suffix": "None"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"end": 179,
|
||||||
|
"operator": "-",
|
||||||
|
"start": 173,
|
||||||
|
"type": "UnaryExpression",
|
||||||
|
"type": "UnaryExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 182,
|
||||||
|
"start": 181,
|
||||||
|
"type": "PipeSubstitution",
|
||||||
|
"type": "PipeSubstitution"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 172,
|
||||||
|
"name": "yLine",
|
||||||
|
"start": 167,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 183,
|
||||||
|
"start": 167,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"type": "LabeledArg",
|
||||||
|
"label": {
|
||||||
|
"type": "Identifier",
|
||||||
|
"name": "endAbsolute"
|
||||||
|
},
|
||||||
|
"arg": {
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"end": 224,
|
||||||
|
"start": 223,
|
||||||
|
"type": "PipeSubstitution",
|
||||||
|
"type": "PipeSubstitution"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 222,
|
||||||
|
"name": "profileStartX",
|
||||||
|
"start": 209,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 225,
|
||||||
|
"start": 209,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"end": 242,
|
||||||
|
"start": 241,
|
||||||
|
"type": "PipeSubstitution",
|
||||||
|
"type": "PipeSubstitution"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 240,
|
||||||
|
"name": "profileStartY",
|
||||||
|
"start": 227,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 243,
|
||||||
|
"start": 227,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 244,
|
||||||
|
"start": 208,
|
||||||
|
"type": "ArrayExpression",
|
||||||
|
"type": "ArrayExpression"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "LabeledArg",
|
||||||
|
"label": {
|
||||||
|
"type": "Identifier",
|
||||||
|
"name": "tag"
|
||||||
|
},
|
||||||
|
"arg": {
|
||||||
|
"end": 258,
|
||||||
|
"start": 252,
|
||||||
|
"type": "TagDeclarator",
|
||||||
|
"type": "TagDeclarator",
|
||||||
|
"value": "seg01"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 193,
|
||||||
|
"name": "line",
|
||||||
|
"start": 189,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 259,
|
||||||
|
"start": 189,
|
||||||
|
"type": "CallExpressionKw",
|
||||||
|
"type": "CallExpressionKw",
|
||||||
|
"unlabeled": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [],
|
||||||
|
"callee": {
|
||||||
|
"end": 270,
|
||||||
|
"name": "close",
|
||||||
|
"start": 265,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 272,
|
||||||
|
"start": 265,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 272,
|
||||||
|
"start": 12,
|
||||||
|
"type": "PipeExpression",
|
||||||
|
"type": "PipeExpression"
|
||||||
|
},
|
||||||
|
"start": 0,
|
||||||
|
"type": "VariableDeclarator"
|
||||||
|
},
|
||||||
|
"end": 272,
|
||||||
|
"kind": "const",
|
||||||
|
"start": 0,
|
||||||
|
"type": "VariableDeclaration",
|
||||||
|
"type": "VariableDeclaration"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"declaration": {
|
||||||
|
"end": 318,
|
||||||
|
"id": {
|
||||||
|
"end": 284,
|
||||||
|
"name": "extrude001",
|
||||||
|
"start": 274,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"init": {
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"type": "LabeledArg",
|
||||||
|
"label": {
|
||||||
|
"type": "Identifier",
|
||||||
|
"name": "length"
|
||||||
|
},
|
||||||
|
"arg": {
|
||||||
|
"end": 317,
|
||||||
|
"raw": "50",
|
||||||
|
"start": 315,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": {
|
||||||
|
"value": 50.0,
|
||||||
|
"suffix": "None"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 294,
|
||||||
|
"name": "extrude",
|
||||||
|
"start": 287,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 318,
|
||||||
|
"start": 287,
|
||||||
|
"type": "CallExpressionKw",
|
||||||
|
"type": "CallExpressionKw",
|
||||||
|
"unlabeled": {
|
||||||
|
"end": 304,
|
||||||
|
"name": "sketch001",
|
||||||
|
"start": 295,
|
||||||
|
"type": "Identifier",
|
||||||
|
"type": "Identifier"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"start": 274,
|
||||||
|
"type": "VariableDeclarator"
|
||||||
|
},
|
||||||
|
"end": 318,
|
||||||
|
"kind": "const",
|
||||||
|
"start": 274,
|
||||||
|
"type": "VariableDeclaration",
|
||||||
|
"type": "VariableDeclaration"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"declaration": {
|
||||||
|
"end": 632,
|
||||||
|
"id": {
|
||||||
|
"end": 329,
|
||||||
|
"name": "sketch002",
|
||||||
|
"start": 320,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"init": {
|
||||||
|
"body": [
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"end": 356,
|
||||||
|
"name": "extrude001",
|
||||||
|
"start": 346,
|
||||||
|
"type": "Identifier",
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 363,
|
||||||
|
"name": "seg01",
|
||||||
|
"start": 358,
|
||||||
|
"type": "Identifier",
|
||||||
|
"type": "Identifier"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 345,
|
||||||
|
"name": "startSketchOn",
|
||||||
|
"start": 332,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 364,
|
||||||
|
"start": 332,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"end": 417,
|
||||||
|
"properties": [
|
||||||
|
{
|
||||||
|
"end": 401,
|
||||||
|
"key": {
|
||||||
|
"end": 385,
|
||||||
|
"name": "center",
|
||||||
|
"start": 379,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"start": 379,
|
||||||
|
"type": "ObjectProperty",
|
||||||
|
"value": {
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"argument": {
|
||||||
|
"end": 394,
|
||||||
|
"raw": "2.08",
|
||||||
|
"start": 390,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": {
|
||||||
|
"value": 2.08,
|
||||||
|
"suffix": "None"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"end": 394,
|
||||||
|
"operator": "-",
|
||||||
|
"start": 389,
|
||||||
|
"type": "UnaryExpression",
|
||||||
|
"type": "UnaryExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 400,
|
||||||
|
"raw": "47.7",
|
||||||
|
"start": 396,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": {
|
||||||
|
"value": 47.7,
|
||||||
|
"suffix": "None"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 401,
|
||||||
|
"start": 388,
|
||||||
|
"type": "ArrayExpression",
|
||||||
|
"type": "ArrayExpression"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 415,
|
||||||
|
"key": {
|
||||||
|
"end": 409,
|
||||||
|
"name": "radius",
|
||||||
|
"start": 403,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"start": 403,
|
||||||
|
"type": "ObjectProperty",
|
||||||
|
"value": {
|
||||||
|
"end": 415,
|
||||||
|
"raw": "1.4",
|
||||||
|
"start": 412,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": {
|
||||||
|
"value": 1.4,
|
||||||
|
"suffix": "None"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"start": 377,
|
||||||
|
"type": "ObjectExpression",
|
||||||
|
"type": "ObjectExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 420,
|
||||||
|
"start": 419,
|
||||||
|
"type": "PipeSubstitution",
|
||||||
|
"type": "PipeSubstitution"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 376,
|
||||||
|
"name": "circle",
|
||||||
|
"start": 370,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 421,
|
||||||
|
"start": 370,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"type": "LabeledArg",
|
||||||
|
"label": {
|
||||||
|
"type": "Identifier",
|
||||||
|
"name": "instances"
|
||||||
|
},
|
||||||
|
"arg": {
|
||||||
|
"end": 456,
|
||||||
|
"raw": "5",
|
||||||
|
"start": 455,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": {
|
||||||
|
"value": 5.0,
|
||||||
|
"suffix": "None"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "LabeledArg",
|
||||||
|
"label": {
|
||||||
|
"type": "Identifier",
|
||||||
|
"name": "distance"
|
||||||
|
},
|
||||||
|
"arg": {
|
||||||
|
"end": 470,
|
||||||
|
"raw": "5",
|
||||||
|
"start": 469,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": {
|
||||||
|
"value": 5.0,
|
||||||
|
"suffix": "None"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "LabeledArg",
|
||||||
|
"label": {
|
||||||
|
"type": "Identifier",
|
||||||
|
"name": "axis"
|
||||||
|
},
|
||||||
|
"arg": {
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"end": 481,
|
||||||
|
"raw": "1",
|
||||||
|
"start": 480,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": {
|
||||||
|
"value": 1.0,
|
||||||
|
"suffix": "None"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 484,
|
||||||
|
"raw": "0",
|
||||||
|
"start": 483,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": {
|
||||||
|
"value": 0.0,
|
||||||
|
"suffix": "None"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 485,
|
||||||
|
"start": 479,
|
||||||
|
"type": "ArrayExpression",
|
||||||
|
"type": "ArrayExpression"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 442,
|
||||||
|
"name": "patternLinear2d",
|
||||||
|
"start": 427,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 486,
|
||||||
|
"start": 427,
|
||||||
|
"type": "CallExpressionKw",
|
||||||
|
"type": "CallExpressionKw",
|
||||||
|
"unlabeled": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"type": "LabeledArg",
|
||||||
|
"label": {
|
||||||
|
"type": "Identifier",
|
||||||
|
"name": "instances"
|
||||||
|
},
|
||||||
|
"arg": {
|
||||||
|
"end": 574,
|
||||||
|
"raw": "6",
|
||||||
|
"start": 573,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": {
|
||||||
|
"value": 6.0,
|
||||||
|
"suffix": "None"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "LabeledArg",
|
||||||
|
"label": {
|
||||||
|
"type": "Identifier",
|
||||||
|
"name": "distance"
|
||||||
|
},
|
||||||
|
"arg": {
|
||||||
|
"end": 588,
|
||||||
|
"raw": "4",
|
||||||
|
"start": 587,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": {
|
||||||
|
"value": 4.0,
|
||||||
|
"suffix": "None"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "LabeledArg",
|
||||||
|
"label": {
|
||||||
|
"type": "Identifier",
|
||||||
|
"name": "axis"
|
||||||
|
},
|
||||||
|
"arg": {
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"end": 599,
|
||||||
|
"raw": "0",
|
||||||
|
"start": 598,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": {
|
||||||
|
"value": 0.0,
|
||||||
|
"suffix": "None"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"argument": {
|
||||||
|
"end": 603,
|
||||||
|
"raw": "1",
|
||||||
|
"start": 602,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": {
|
||||||
|
"value": 1.0,
|
||||||
|
"suffix": "None"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"end": 603,
|
||||||
|
"operator": "-",
|
||||||
|
"start": 601,
|
||||||
|
"type": "UnaryExpression",
|
||||||
|
"type": "UnaryExpression"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 604,
|
||||||
|
"start": 597,
|
||||||
|
"type": "ArrayExpression",
|
||||||
|
"type": "ArrayExpression"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 560,
|
||||||
|
"name": "patternLinear2d",
|
||||||
|
"start": 545,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 605,
|
||||||
|
"start": 545,
|
||||||
|
"type": "CallExpressionKw",
|
||||||
|
"type": "CallExpressionKw",
|
||||||
|
"unlabeled": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"type": "LabeledArg",
|
||||||
|
"label": {
|
||||||
|
"type": "Identifier",
|
||||||
|
"name": "length"
|
||||||
|
},
|
||||||
|
"arg": {
|
||||||
|
"argument": {
|
||||||
|
"end": 631,
|
||||||
|
"raw": "40",
|
||||||
|
"start": 629,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": {
|
||||||
|
"value": 40.0,
|
||||||
|
"suffix": "None"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"end": 631,
|
||||||
|
"operator": "-",
|
||||||
|
"start": 628,
|
||||||
|
"type": "UnaryExpression",
|
||||||
|
"type": "UnaryExpression"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 618,
|
||||||
|
"name": "extrude",
|
||||||
|
"start": 611,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 632,
|
||||||
|
"start": 611,
|
||||||
|
"type": "CallExpressionKw",
|
||||||
|
"type": "CallExpressionKw",
|
||||||
|
"unlabeled": null
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 632,
|
||||||
|
"nonCodeMeta": {
|
||||||
|
"nonCodeNodes": {
|
||||||
|
"2": [
|
||||||
|
{
|
||||||
|
"end": 539,
|
||||||
|
"start": 488,
|
||||||
|
"type": "NonCodeNode",
|
||||||
|
"value": {
|
||||||
|
"type": "blockComment",
|
||||||
|
"value": "Instances was reduced from 12 to speed this up.",
|
||||||
|
"style": "line"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"startNodes": []
|
||||||
|
},
|
||||||
|
"start": 332,
|
||||||
|
"type": "PipeExpression",
|
||||||
|
"type": "PipeExpression"
|
||||||
|
},
|
||||||
|
"start": 320,
|
||||||
|
"type": "VariableDeclarator"
|
||||||
|
},
|
||||||
|
"end": 632,
|
||||||
|
"kind": "const",
|
||||||
|
"start": 320,
|
||||||
|
"type": "VariableDeclaration",
|
||||||
|
"type": "VariableDeclaration"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 633,
|
||||||
|
"nonCodeMeta": {
|
||||||
|
"nonCodeNodes": {
|
||||||
|
"0": [
|
||||||
|
{
|
||||||
|
"end": 274,
|
||||||
|
"start": 272,
|
||||||
|
"type": "NonCodeNode",
|
||||||
|
"value": {
|
||||||
|
"type": "newLine"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"1": [
|
||||||
|
{
|
||||||
|
"end": 320,
|
||||||
|
"start": 318,
|
||||||
|
"type": "NonCodeNode",
|
||||||
|
"value": {
|
||||||
|
"type": "newLine"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"startNodes": []
|
||||||
|
},
|
||||||
|
"start": 0
|
||||||
|
}
|
||||||
|
}
|
||||||
17
src/wasm-lib/kcl/tests/ssi_pattern/input.kcl
Normal file
17
src/wasm-lib/kcl/tests/ssi_pattern/input.kcl
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
sketch001 = startSketchOn('XZ')
|
||||||
|
|> startProfileAt([-4.35, -12.26], %)
|
||||||
|
|> yLine(10.2, %)
|
||||||
|
|> line(end = [0.54, -0.03])
|
||||||
|
|> tangentialArcTo([20.4, 14.61], %)
|
||||||
|
|> yLine(-26.76, %)
|
||||||
|
|> line(endAbsolute = [profileStartX(%), profileStartY(%)], tag = $seg01)
|
||||||
|
|> close()
|
||||||
|
|
||||||
|
extrude001 = extrude(sketch001, length = 50)
|
||||||
|
|
||||||
|
sketch002 = startSketchOn(extrude001, seg01)
|
||||||
|
|> circle({ center = [-2.08, 47.7], radius = 1.4 }, %)
|
||||||
|
|> patternLinear2d(instances = 5, distance = 5, axis = [1, 0])
|
||||||
|
// Instances was reduced from 12 to speed this up.
|
||||||
|
|> patternLinear2d(instances = 6, distance = 4, axis = [0, -1])
|
||||||
|
|> extrude(length = -40)
|
||||||
95
src/wasm-lib/kcl/tests/ssi_pattern/ops.snap
Normal file
95
src/wasm-lib/kcl/tests/ssi_pattern/ops.snap
Normal file
@ -0,0 +1,95 @@
|
|||||||
|
---
|
||||||
|
source: kcl/src/simulation_tests.rs
|
||||||
|
description: Operations executed ssi_pattern.kcl
|
||||||
|
---
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"labeledArgs": {
|
||||||
|
"data": {
|
||||||
|
"sourceRange": [
|
||||||
|
26,
|
||||||
|
30,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"name": "startSketchOn",
|
||||||
|
"sourceRange": [
|
||||||
|
12,
|
||||||
|
31,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"type": "StdLibCall",
|
||||||
|
"unlabeledArg": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"labeledArgs": {
|
||||||
|
"length": {
|
||||||
|
"sourceRange": [
|
||||||
|
315,
|
||||||
|
317,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"name": "extrude",
|
||||||
|
"sourceRange": [
|
||||||
|
287,
|
||||||
|
318,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"type": "StdLibCall",
|
||||||
|
"unlabeledArg": {
|
||||||
|
"sourceRange": [
|
||||||
|
295,
|
||||||
|
304,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"labeledArgs": {
|
||||||
|
"data": {
|
||||||
|
"sourceRange": [
|
||||||
|
346,
|
||||||
|
356,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"tag": {
|
||||||
|
"sourceRange": [
|
||||||
|
358,
|
||||||
|
363,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"name": "startSketchOn",
|
||||||
|
"sourceRange": [
|
||||||
|
332,
|
||||||
|
364,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"type": "StdLibCall",
|
||||||
|
"unlabeledArg": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"labeledArgs": {
|
||||||
|
"length": {
|
||||||
|
"sourceRange": [
|
||||||
|
628,
|
||||||
|
631,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"name": "extrude",
|
||||||
|
"sourceRange": [
|
||||||
|
611,
|
||||||
|
632,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"type": "StdLibCall",
|
||||||
|
"unlabeledArg": null
|
||||||
|
}
|
||||||
|
]
|
||||||
14889
src/wasm-lib/kcl/tests/ssi_pattern/program_memory.snap
Normal file
14889
src/wasm-lib/kcl/tests/ssi_pattern/program_memory.snap
Normal file
File diff suppressed because it is too large
Load Diff
BIN
src/wasm-lib/kcl/tests/ssi_pattern/rendered_model.png
Normal file
BIN
src/wasm-lib/kcl/tests/ssi_pattern/rendered_model.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 85 KiB |
Reference in New Issue
Block a user