2025-03-06 18:01:24 -05:00
---
source: kcl-lib/src/simulation_tests.rs
description: Result of parsing sheet-metal-bracket.kcl
---
{
"Ok": {
"body": [
{
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-06 18:01:24 -05:00
"declaration": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-06 18:01:24 -05:00
"id": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "mountingBoltDiameter",
"start": 0,
"type": "Identifier"
},
"init": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"left": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"raw": "1",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 1.0,
"suffix": "None"
}
},
"operator": "/",
"right": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"raw": "4",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 4.0,
"suffix": "None"
}
},
"start": 0,
"type": "BinaryExpression",
"type": "BinaryExpression"
},
"start": 0,
"type": "VariableDeclarator"
},
"end": 0,
"kind": "const",
"preComments": [
"// Input bolt pattern dimensions to mount the bracket"
],
"start": 0,
"type": "VariableDeclaration",
"type": "VariableDeclaration"
},
{
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"declaration": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"id": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": "mountingBoltPatternX",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "Identifier"
},
"init": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"raw": "7",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "Literal",
"type": "Literal",
"value": {
2025-04-01 11:28:09 -07:00
"value": 7.0,
2025-03-06 18:01:24 -05:00
"suffix": "None"
}
},
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "VariableDeclarator"
},
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-06 18:01:24 -05:00
"kind": "const",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "VariableDeclaration",
"type": "VariableDeclaration"
},
{
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-06 18:01:24 -05:00
"declaration": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-06 18:01:24 -05:00
"id": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "mountingBoltPatternY",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "Identifier"
},
"init": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"raw": "4",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "Literal",
"type": "Literal",
"value": {
2025-04-01 11:28:09 -07:00
"value": 4.0,
2025-03-06 18:01:24 -05:00
"suffix": "None"
}
},
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "VariableDeclarator"
},
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-06 18:01:24 -05:00
"kind": "const",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "VariableDeclaration",
"type": "VariableDeclaration"
},
{
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-06 18:01:24 -05:00
"declaration": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-06 18:01:24 -05:00
"id": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "componentBoltDiameter",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "Identifier"
},
"init": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-06 18:01:24 -05:00
"left": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"raw": "3",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-04-01 11:28:09 -07:00
"type": "Literal",
"type": "Literal",
"value": {
"value": 3.0,
"suffix": "None"
}
2025-03-06 18:01:24 -05:00
},
2025-04-01 11:28:09 -07:00
"operator": "/",
2025-03-06 18:01:24 -05:00
"right": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"raw": "16",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-04-01 11:28:09 -07:00
"type": "Literal",
"type": "Literal",
"value": {
"value": 16.0,
"suffix": "None"
}
2025-03-06 18:01:24 -05:00
},
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "BinaryExpression",
"type": "BinaryExpression"
},
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "VariableDeclarator"
},
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-06 18:01:24 -05:00
"kind": "const",
2025-04-01 11:28:09 -07:00
"preComments": [
"",
"",
"// Input bolt pattern dimensions to mount a component to the bracket"
],
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "VariableDeclaration",
"type": "VariableDeclaration"
},
{
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-06 18:01:24 -05:00
"declaration": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-06 18:01:24 -05:00
"id": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "componentBoltPatternX",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "Identifier"
},
"init": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"raw": "2",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "Literal",
"type": "Literal",
"value": {
2025-04-01 11:28:09 -07:00
"value": 2.0,
2025-03-06 18:01:24 -05:00
"suffix": "None"
}
},
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "VariableDeclarator"
},
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-06 18:01:24 -05:00
"kind": "const",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "VariableDeclaration",
"type": "VariableDeclaration"
},
{
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-06 18:01:24 -05:00
"declaration": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-06 18:01:24 -05:00
"id": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "componentBoltPatternY",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "Identifier"
},
"init": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-06 18:01:24 -05:00
"raw": "3",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "Literal",
"type": "Literal",
"value": {
"value": 3.0,
"suffix": "None"
}
},
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "VariableDeclarator"
},
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-06 18:01:24 -05:00
"kind": "const",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "VariableDeclaration",
"type": "VariableDeclaration"
},
{
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-06 18:01:24 -05:00
"declaration": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-06 18:01:24 -05:00
"id": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "hatHeight",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "Identifier"
},
"init": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"raw": "2.5",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "Literal",
"type": "Literal",
"value": {
2025-04-01 11:28:09 -07:00
"value": 2.5,
2025-03-06 18:01:24 -05:00
"suffix": "None"
}
},
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "VariableDeclarator"
},
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-06 18:01:24 -05:00
"kind": "const",
2025-04-01 11:28:09 -07:00
"preComments": [
"",
"",
2025-04-04 11:03:13 -07:00
"// Define bracket parameters such as sheet metal thickness, bend radius, flange length, etc."
2025-04-01 11:28:09 -07:00
],
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "VariableDeclaration",
"type": "VariableDeclaration"
},
{
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-06 18:01:24 -05:00
"declaration": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-06 18:01:24 -05:00
"id": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "bendAngle",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "Identifier"
},
"init": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"raw": "75",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "Literal",
"type": "Literal",
"value": {
2025-04-01 11:28:09 -07:00
"value": 75.0,
2025-03-06 18:01:24 -05:00
"suffix": "None"
}
},
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "VariableDeclarator"
},
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-06 18:01:24 -05:00
"kind": "const",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "VariableDeclaration",
"type": "VariableDeclaration"
},
{
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-06 18:01:24 -05:00
"declaration": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-06 18:01:24 -05:00
"id": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "thickness",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "Identifier"
},
"init": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"raw": "0.125",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "Literal",
"type": "Literal",
"value": {
2025-04-01 11:28:09 -07:00
"value": 0.125,
2025-03-06 18:01:24 -05:00
"suffix": "None"
}
},
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "VariableDeclarator"
},
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-06 18:01:24 -05:00
"kind": "const",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "VariableDeclaration",
"type": "VariableDeclaration"
},
{
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-06 18:01:24 -05:00
"declaration": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-06 18:01:24 -05:00
"id": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "interiorBendRadius",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "Identifier"
},
"init": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"raw": "0.125",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 0.125,
"suffix": "None"
}
},
"start": 0,
"type": "VariableDeclarator"
},
"end": 0,
"kind": "const",
"start": 0,
"type": "VariableDeclaration",
"type": "VariableDeclaration"
},
{
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"declaration": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"id": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": "exteriorBendRadius",
"start": 0,
"type": "Identifier"
},
"init": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"left": {
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "interiorBendRadius",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-04-01 11:28:09 -07:00
"type": "Identifier"
2025-03-06 18:01:24 -05:00
},
2025-04-01 11:28:09 -07:00
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
},
"operator": "+",
"right": {
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "thickness",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-04-01 11:28:09 -07:00
"type": "Identifier"
2025-03-06 18:01:24 -05:00
},
2025-04-01 11:28:09 -07:00
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
},
"start": 0,
"type": "BinaryExpression",
"type": "BinaryExpression"
},
"start": 0,
"type": "VariableDeclarator"
},
"end": 0,
"kind": "const",
"preComments": [
"",
"",
2025-04-04 11:03:13 -07:00
"// Calculate remaining parameters"
2025-04-01 11:28:09 -07:00
],
"start": 0,
"type": "VariableDeclaration",
"type": "VariableDeclaration"
},
{
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"declaration": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"id": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": "overhang",
"start": 0,
"type": "Identifier"
},
"init": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"left": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"raw": "3",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 3.0,
"suffix": "None"
}
},
"operator": "*",
"right": {
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": "mountingBoltDiameter",
"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"
},
{
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"declaration": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"id": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": "flangeLength",
"start": 0,
"type": "Identifier"
},
"init": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"left": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"raw": "6",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 6.0,
"suffix": "None"
}
},
"operator": "*",
"right": {
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": "mountingBoltDiameter",
"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"
},
{
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"declaration": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"id": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": "flangeExtrusion",
"start": 0,
"type": "Identifier"
},
"init": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"cond": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"left": {
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": "mountingBoltPatternY",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
},
"operator": ">",
"right": {
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": "componentBoltPatternY",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
},
"start": 0,
"type": "BinaryExpression",
"type": "BinaryExpression"
},
"digest": null,
"else_ifs": [],
"end": 0,
"final_else": {
"body": [
{
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"expression": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"left": {
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": "componentBoltPatternY",
"start": 0,
"type": "Identifier"
},
"path": [],
2025-03-20 11:06:27 +13:00
"start": 0,
2025-04-01 11:28:09 -07:00
"type": "Name",
"type": "Name"
},
"operator": "+",
"right": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"left": {
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": "overhang",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
},
"operator": "*",
"right": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"raw": "2",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 2.0,
"suffix": "None"
}
},
"start": 0,
"type": "BinaryExpression",
"type": "BinaryExpression"
},
"start": 0,
"type": "BinaryExpression",
"type": "BinaryExpression"
},
"start": 0,
"type": "ExpressionStatement",
"type": "ExpressionStatement"
}
],
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"start": 0
},
"start": 0,
"then_val": {
"body": [
{
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"expression": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"left": {
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": "mountingBoltPatternY",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
},
"operator": "+",
"right": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"left": {
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": "overhang",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
},
"operator": "*",
"right": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"raw": "2",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 2.0,
"suffix": "None"
}
},
"start": 0,
"type": "BinaryExpression",
"type": "BinaryExpression"
},
"start": 0,
"type": "BinaryExpression",
"type": "BinaryExpression"
},
"start": 0,
"type": "ExpressionStatement",
"type": "ExpressionStatement"
}
],
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"start": 0
},
"type": "IfExpression",
"type": "IfExpression"
},
"start": 0,
"type": "VariableDeclarator"
},
"end": 0,
"kind": "const",
"start": 0,
"type": "VariableDeclaration",
"type": "VariableDeclaration"
},
{
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"declaration": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"id": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": "bracketProfile",
"start": 0,
"type": "Identifier"
},
"init": {
"body": [
{
"arguments": [
{
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": "XZ",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
2025-03-06 18:01:24 -05:00
}
],
"callee": {
2025-03-24 20:58:55 +13:00
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-24 20:58:55 +13:00
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-24 20:58:55 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "startSketchOn",
2025-03-24 20:58:55 +13:00
"start": 0,
"type": "Identifier"
},
"path": [],
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-24 20:58:55 +13:00
"type": "Name"
2025-03-06 18:01:24 -05:00
},
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
"start": 0,
2025-04-01 11:28:09 -07:00
"type": "CallExpression",
"type": "CallExpression"
2025-03-06 18:01:24 -05:00
},
{
"arguments": [
{
2025-04-25 16:01:35 -05:00
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "at",
"start": 0,
"type": "Identifier"
},
"arg": {
"commentStart": 0,
"elements": [
{
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"left": {
2025-04-25 16:01:35 -05:00
"commentStart": 0,
"end": 0,
"left": {
"argument": {
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
2025-04-25 16:01:35 -05:00
"name": {
"commentStart": 0,
"end": 0,
"name": "mountingBoltPatternX",
"start": 0,
"type": "Identifier"
},
"path": [],
2025-04-01 11:28:09 -07:00
"start": 0,
2025-04-25 16:01:35 -05:00
"type": "Name",
"type": "Name"
2025-04-01 11:28:09 -07:00
},
2025-04-25 16:01:35 -05:00
"commentStart": 0,
"end": 0,
"operator": "-",
2025-04-01 11:28:09 -07:00
"start": 0,
2025-04-25 16:01:35 -05:00
"type": "UnaryExpression",
"type": "UnaryExpression"
},
"operator": "/",
"right": {
"commentStart": 0,
"end": 0,
"raw": "2",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 2.0,
"suffix": "None"
}
2025-04-01 11:28:09 -07:00
},
"start": 0,
2025-04-25 16:01:35 -05:00
"type": "BinaryExpression",
"type": "BinaryExpression"
2025-04-01 11:28:09 -07:00
},
2025-04-25 16:01:35 -05:00
"operator": "-",
2025-04-01 11:28:09 -07:00
"right": {
2025-04-25 16:01:35 -05:00
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
2025-04-25 16:01:35 -05:00
"name": {
"commentStart": 0,
"end": 0,
"name": "overhang",
"start": 0,
"type": "Identifier"
},
"path": [],
2025-04-01 11:28:09 -07:00
"start": 0,
2025-04-25 16:01:35 -05:00
"type": "Name",
"type": "Name"
2025-04-01 11:28:09 -07:00
},
"start": 0,
"type": "BinaryExpression",
"type": "BinaryExpression"
},
2025-04-25 16:01:35 -05:00
{
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-25 16:01:35 -05:00
"raw": "0",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-04-25 16:01:35 -05:00
"type": "Literal",
"type": "Literal",
"value": {
"value": 0.0,
"suffix": "None"
}
2025-03-06 18:01:24 -05:00
}
2025-04-25 16:01:35 -05:00
],
"end": 0,
"start": 0,
"type": "ArrayExpression",
"type": "ArrayExpression"
}
2025-04-01 11:28:09 -07:00
}
],
"callee": {
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
2025-04-25 16:01:35 -05:00
"name": "startProfile",
2025-04-01 11:28:09 -07:00
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name"
},
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"start": 0,
2025-04-25 16:01:35 -05:00
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": null
2025-04-01 11:28:09 -07:00
},
{
"arguments": [
2025-03-06 18:01:24 -05:00
{
"type": "LabeledArg",
"label": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "length",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "Identifier"
},
"arg": {
2025-04-01 11:28:09 -07:00
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": "flangeLength",
"start": 0,
"type": "Identifier"
},
"path": [],
2025-03-20 11:06:27 +13:00
"start": 0,
2025-04-01 11:28:09 -07:00
"type": "Name",
"type": "Name"
2025-03-06 18:01:24 -05:00
}
}
],
"callee": {
2025-03-24 20:58:55 +13:00
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": "xLine",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name"
},
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"start": 0,
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": null
},
{
"arguments": [
{
2025-04-11 14:17:20 -04:00
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "radius",
"start": 0,
"type": "Identifier"
},
"arg": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
2025-04-11 14:17:20 -04:00
"name": "exteriorBendRadius",
2025-04-01 11:28:09 -07:00
"start": 0,
2025-04-11 14:17:20 -04:00
"type": "Identifier"
2025-04-01 11:28:09 -07:00
},
2025-04-11 14:17:20 -04:00
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
}
},
{
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "angle",
"start": 0,
"type": "Identifier"
},
"arg": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
2025-04-11 14:17:20 -04:00
"name": "bendAngle",
2025-04-01 11:28:09 -07:00
"start": 0,
2025-04-11 14:17:20 -04:00
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
}
2025-04-01 11:28:09 -07:00
}
],
"callee": {
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-24 20:58:55 +13:00
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-24 20:58:55 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "tangentialArc",
2025-03-24 20:58:55 +13:00
"start": 0,
"type": "Identifier"
},
"path": [],
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-24 20:58:55 +13:00
"type": "Name"
2025-03-06 18:01:24 -05:00
},
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
"start": 0,
2025-04-11 14:17:20 -04:00
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": null
2025-03-06 18:01:24 -05:00
},
{
"arguments": [
{
KCL: Angled line should use keyword args (#5803)
We continue migrating KCL stdlib functions to use keyword arguments. Next up is the `angledLine` family of functions (except `angledLineThatIntersects, which will be a quick follow-up).
Before vs. after:
`angledLine({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, length = 3, tag = $edge)`
`angledLineOfXLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthX = 3, tag = $edge)`
`angledLineOfYLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthY = 3, tag = $edge)`
`angledLineToX({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteX = 3, tag = $edge)`
`angledLineToY({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteY = 3, tag = $edge)`
2025-04-09 14:55:15 -05:00
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "angle",
"start": 0,
"type": "Identifier"
},
"arg": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "bendAngle",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
}
},
{
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
2025-04-09 15:43:56 -05:00
"name": "endAbsoluteY",
KCL: Angled line should use keyword args (#5803)
We continue migrating KCL stdlib functions to use keyword arguments. Next up is the `angledLine` family of functions (except `angledLineThatIntersects, which will be a quick follow-up).
Before vs. after:
`angledLine({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, length = 3, tag = $edge)`
`angledLineOfXLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthX = 3, tag = $edge)`
`angledLineOfYLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthY = 3, tag = $edge)`
`angledLineToX({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteX = 3, tag = $edge)`
`angledLineToY({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteY = 3, tag = $edge)`
2025-04-09 14:55:15 -05:00
"start": 0,
"type": "Identifier"
},
"arg": {
"commentStart": 0,
"end": 0,
"left": {
2025-04-01 11:28:09 -07:00
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
KCL: Angled line should use keyword args (#5803)
We continue migrating KCL stdlib functions to use keyword arguments. Next up is the `angledLine` family of functions (except `angledLineThatIntersects, which will be a quick follow-up).
Before vs. after:
`angledLine({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, length = 3, tag = $edge)`
`angledLineOfXLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthX = 3, tag = $edge)`
`angledLineOfYLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthY = 3, tag = $edge)`
`angledLineToX({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteX = 3, tag = $edge)`
`angledLineToY({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteY = 3, tag = $edge)`
2025-04-09 14:55:15 -05:00
"name": "hatHeight",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-04-01 11:28:09 -07:00
"type": "Identifier"
2025-03-06 18:01:24 -05:00
},
2025-04-01 11:28:09 -07:00
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
},
KCL: Angled line should use keyword args (#5803)
We continue migrating KCL stdlib functions to use keyword arguments. Next up is the `angledLine` family of functions (except `angledLineThatIntersects, which will be a quick follow-up).
Before vs. after:
`angledLine({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, length = 3, tag = $edge)`
`angledLineOfXLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthX = 3, tag = $edge)`
`angledLineOfYLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthY = 3, tag = $edge)`
`angledLineToX({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteX = 3, tag = $edge)`
`angledLineToY({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteY = 3, tag = $edge)`
2025-04-09 14:55:15 -05:00
"operator": "-",
"right": {
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
KCL: Angled line should use keyword args (#5803)
We continue migrating KCL stdlib functions to use keyword arguments. Next up is the `angledLine` family of functions (except `angledLineThatIntersects, which will be a quick follow-up).
Before vs. after:
`angledLine({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, length = 3, tag = $edge)`
`angledLineOfXLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthX = 3, tag = $edge)`
`angledLineOfYLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthY = 3, tag = $edge)`
`angledLineToX({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteX = 3, tag = $edge)`
`angledLineToY({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteY = 3, tag = $edge)`
2025-04-09 14:55:15 -05:00
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
KCL: Angled line should use keyword args (#5803)
We continue migrating KCL stdlib functions to use keyword arguments. Next up is the `angledLine` family of functions (except `angledLineThatIntersects, which will be a quick follow-up).
Before vs. after:
`angledLine({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, length = 3, tag = $edge)`
`angledLineOfXLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthX = 3, tag = $edge)`
`angledLineOfYLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthY = 3, tag = $edge)`
`angledLineToX({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteX = 3, tag = $edge)`
`angledLineToY({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteY = 3, tag = $edge)`
2025-04-09 14:55:15 -05:00
"name": "thickness",
2025-03-20 11:06:27 +13:00
"start": 0,
KCL: Angled line should use keyword args (#5803)
We continue migrating KCL stdlib functions to use keyword arguments. Next up is the `angledLine` family of functions (except `angledLineThatIntersects, which will be a quick follow-up).
Before vs. after:
`angledLine({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, length = 3, tag = $edge)`
`angledLineOfXLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthX = 3, tag = $edge)`
`angledLineOfYLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthY = 3, tag = $edge)`
`angledLineToX({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteX = 3, tag = $edge)`
`angledLineToY({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteY = 3, tag = $edge)`
2025-04-09 14:55:15 -05:00
"type": "Identifier"
2025-04-01 11:28:09 -07:00
},
KCL: Angled line should use keyword args (#5803)
We continue migrating KCL stdlib functions to use keyword arguments. Next up is the `angledLine` family of functions (except `angledLineThatIntersects, which will be a quick follow-up).
Before vs. after:
`angledLine({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, length = 3, tag = $edge)`
`angledLineOfXLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthX = 3, tag = $edge)`
`angledLineOfYLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthY = 3, tag = $edge)`
`angledLineToX({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteX = 3, tag = $edge)`
`angledLineToY({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteY = 3, tag = $edge)`
2025-04-09 14:55:15 -05:00
"path": [],
2025-04-01 11:28:09 -07:00
"start": 0,
KCL: Angled line should use keyword args (#5803)
We continue migrating KCL stdlib functions to use keyword arguments. Next up is the `angledLine` family of functions (except `angledLineThatIntersects, which will be a quick follow-up).
Before vs. after:
`angledLine({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, length = 3, tag = $edge)`
`angledLineOfXLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthX = 3, tag = $edge)`
`angledLineOfYLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthY = 3, tag = $edge)`
`angledLineToX({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteX = 3, tag = $edge)`
`angledLineToY({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteY = 3, tag = $edge)`
2025-04-09 14:55:15 -05:00
"type": "Name",
"type": "Name"
},
"start": 0,
"type": "BinaryExpression",
"type": "BinaryExpression"
}
2025-04-01 11:28:09 -07:00
},
{
KCL: Angled line should use keyword args (#5803)
We continue migrating KCL stdlib functions to use keyword arguments. Next up is the `angledLine` family of functions (except `angledLineThatIntersects, which will be a quick follow-up).
Before vs. after:
`angledLine({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, length = 3, tag = $edge)`
`angledLineOfXLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthX = 3, tag = $edge)`
`angledLineOfYLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthY = 3, tag = $edge)`
`angledLineToX({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteX = 3, tag = $edge)`
`angledLineToY({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteY = 3, tag = $edge)`
2025-04-09 14:55:15 -05:00
"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": "seg01"
}
2025-03-06 18:01:24 -05:00
}
],
"callee": {
2025-03-24 20:58:55 +13:00
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-24 20:58:55 +13:00
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-24 20:58:55 +13:00
"end": 0,
KCL: Angled line should use keyword args (#5803)
We continue migrating KCL stdlib functions to use keyword arguments. Next up is the `angledLine` family of functions (except `angledLineThatIntersects, which will be a quick follow-up).
Before vs. after:
`angledLine({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, length = 3, tag = $edge)`
`angledLineOfXLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthX = 3, tag = $edge)`
`angledLineOfYLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthY = 3, tag = $edge)`
`angledLineToX({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteX = 3, tag = $edge)`
`angledLineToY({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteY = 3, tag = $edge)`
2025-04-09 14:55:15 -05:00
"name": "angledLine",
2025-03-24 20:58:55 +13:00
"start": 0,
"type": "Identifier"
},
"path": [],
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-24 20:58:55 +13:00
"type": "Name"
2025-03-06 18:01:24 -05:00
},
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
"start": 0,
KCL: Angled line should use keyword args (#5803)
We continue migrating KCL stdlib functions to use keyword arguments. Next up is the `angledLine` family of functions (except `angledLineThatIntersects, which will be a quick follow-up).
Before vs. after:
`angledLine({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, length = 3, tag = $edge)`
`angledLineOfXLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthX = 3, tag = $edge)`
`angledLineOfYLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthY = 3, tag = $edge)`
`angledLineToX({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteX = 3, tag = $edge)`
`angledLineToY({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteY = 3, tag = $edge)`
2025-04-09 14:55:15 -05:00
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": null
2025-03-06 18:01:24 -05:00
},
{
"arguments": [
{
2025-04-11 14:17:20 -04:00
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "radius",
"start": 0,
"type": "Identifier"
},
"arg": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
2025-04-11 14:17:20 -04:00
"name": "interiorBendRadius",
2025-04-01 11:28:09 -07:00
"start": 0,
2025-04-11 14:17:20 -04:00
"type": "Identifier"
2025-04-01 11:28:09 -07:00
},
2025-04-11 14:17:20 -04:00
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
}
},
{
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "angle",
"start": 0,
"type": "Identifier"
},
"arg": {
"argument": {
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
2025-04-11 14:17:20 -04:00
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
2025-04-11 14:17:20 -04:00
"name": "bendAngle",
2025-04-01 11:28:09 -07:00
"start": 0,
"type": "Identifier"
2025-03-06 18:01:24 -05:00
},
2025-04-11 14:17:20 -04:00
"path": [],
2025-04-01 11:28:09 -07:00
"start": 0,
2025-04-11 14:17:20 -04:00
"type": "Name",
"type": "Name"
},
"commentStart": 0,
"end": 0,
"operator": "-",
"start": 0,
"type": "UnaryExpression",
"type": "UnaryExpression"
}
2025-03-06 18:01:24 -05:00
}
],
"callee": {
2025-03-24 20:58:55 +13:00
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-24 20:58:55 +13:00
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-24 20:58:55 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "tangentialArc",
2025-03-24 20:58:55 +13:00
"start": 0,
"type": "Identifier"
},
"path": [],
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-24 20:58:55 +13:00
"type": "Name"
2025-03-06 18:01:24 -05:00
},
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
"start": 0,
2025-04-11 14:17:20 -04:00
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": null
2025-03-06 18:01:24 -05:00
},
{
"arguments": [
{
"type": "LabeledArg",
"label": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "endAbsolute",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "Identifier"
},
"arg": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"raw": "0",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-04-01 11:28:09 -07:00
"type": "Literal",
"type": "Literal",
"value": {
"value": 0.0,
"suffix": "None"
}
2025-03-06 18:01:24 -05:00
}
},
{
"type": "LabeledArg",
"label": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-06 18:01:24 -05:00
"name": "tag",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "Identifier"
},
"arg": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "TagDeclarator",
"type": "TagDeclarator",
2025-04-01 11:28:09 -07:00
"value": "seg02"
2025-03-06 18:01:24 -05:00
}
}
],
"callee": {
2025-03-24 20:58:55 +13:00
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-24 20:58:55 +13:00
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-24 20:58:55 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "xLine",
2025-03-24 20:58:55 +13:00
"start": 0,
"type": "Identifier"
},
"path": [],
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-24 20:58:55 +13:00
"type": "Name"
2025-03-06 18:01:24 -05:00
},
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": null
},
{
"arguments": [
{
"type": "LabeledArg",
"label": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "length",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "Identifier"
},
"arg": {
2025-04-01 11:28:09 -07:00
"arguments": [
2025-03-06 18:01:24 -05:00
{
2025-03-24 20:58:55 +13:00
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-24 20:58:55 +13:00
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-24 20:58:55 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "seg02",
2025-03-24 20:58:55 +13:00
"start": 0,
"type": "Identifier"
},
"path": [],
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-24 20:58:55 +13:00
"type": "Name",
"type": "Name"
2025-03-06 18:01:24 -05:00
}
],
2025-04-01 11:28:09 -07:00
"callee": {
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": "segLen",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name"
},
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
"start": 0,
2025-04-01 11:28:09 -07:00
"type": "CallExpression",
"type": "CallExpression"
2025-03-06 18:01:24 -05:00
}
}
],
"callee": {
2025-03-24 20:58:55 +13:00
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-24 20:58:55 +13:00
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-24 20:58:55 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "xLine",
2025-03-24 20:58:55 +13:00
"start": 0,
"type": "Identifier"
},
"path": [],
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-24 20:58:55 +13:00
"type": "Name"
2025-03-06 18:01:24 -05:00
},
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": null
},
{
"arguments": [
{
2025-04-11 14:17:20 -04:00
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "radius",
"start": 0,
"type": "Identifier"
},
"arg": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
2025-04-11 14:17:20 -04:00
"name": "interiorBendRadius",
2025-04-01 11:28:09 -07:00
"start": 0,
2025-04-11 14:17:20 -04:00
"type": "Identifier"
2025-04-01 11:28:09 -07:00
},
2025-04-11 14:17:20 -04:00
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
}
},
{
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "angle",
"start": 0,
"type": "Identifier"
},
"arg": {
"argument": {
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
2025-04-11 14:17:20 -04:00
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
2025-04-11 14:17:20 -04:00
"name": "bendAngle",
2025-04-01 11:28:09 -07:00
"start": 0,
"type": "Identifier"
},
2025-04-11 14:17:20 -04:00
"path": [],
2025-04-01 11:28:09 -07:00
"start": 0,
2025-04-11 14:17:20 -04:00
"type": "Name",
"type": "Name"
},
"commentStart": 0,
"end": 0,
"operator": "-",
"start": 0,
"type": "UnaryExpression",
"type": "UnaryExpression"
}
2025-03-06 18:01:24 -05:00
}
],
"callee": {
2025-03-24 20:58:55 +13:00
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-24 20:58:55 +13:00
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-24 20:58:55 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "tangentialArc",
2025-03-24 20:58:55 +13:00
"start": 0,
"type": "Identifier"
},
"path": [],
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-24 20:58:55 +13:00
"type": "Name"
2025-03-06 18:01:24 -05:00
},
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
"start": 0,
2025-04-11 14:17:20 -04:00
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": null
2025-03-06 18:01:24 -05:00
},
{
"arguments": [
{
KCL: Angled line should use keyword args (#5803)
We continue migrating KCL stdlib functions to use keyword arguments. Next up is the `angledLine` family of functions (except `angledLineThatIntersects, which will be a quick follow-up).
Before vs. after:
`angledLine({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, length = 3, tag = $edge)`
`angledLineOfXLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthX = 3, tag = $edge)`
`angledLineOfYLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthY = 3, tag = $edge)`
`angledLineToX({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteX = 3, tag = $edge)`
`angledLineToY({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteY = 3, tag = $edge)`
2025-04-09 14:55:15 -05:00
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "angle",
"start": 0,
"type": "Identifier"
},
"arg": {
"argument": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
KCL: Angled line should use keyword args (#5803)
We continue migrating KCL stdlib functions to use keyword arguments. Next up is the `angledLine` family of functions (except `angledLineThatIntersects, which will be a quick follow-up).
Before vs. after:
`angledLine({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, length = 3, tag = $edge)`
`angledLineOfXLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthX = 3, tag = $edge)`
`angledLineOfYLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthY = 3, tag = $edge)`
`angledLineToX({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteX = 3, tag = $edge)`
`angledLineToY({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteY = 3, tag = $edge)`
2025-04-09 14:55:15 -05:00
"name": "bendAngle",
2025-04-01 11:28:09 -07:00
"start": 0,
KCL: Angled line should use keyword args (#5803)
We continue migrating KCL stdlib functions to use keyword arguments. Next up is the `angledLine` family of functions (except `angledLineThatIntersects, which will be a quick follow-up).
Before vs. after:
`angledLine({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, length = 3, tag = $edge)`
`angledLineOfXLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthX = 3, tag = $edge)`
`angledLineOfYLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthY = 3, tag = $edge)`
`angledLineToX({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteX = 3, tag = $edge)`
`angledLineToY({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteY = 3, tag = $edge)`
2025-04-09 14:55:15 -05:00
"type": "Identifier"
2025-04-01 11:28:09 -07:00
},
KCL: Angled line should use keyword args (#5803)
We continue migrating KCL stdlib functions to use keyword arguments. Next up is the `angledLine` family of functions (except `angledLineThatIntersects, which will be a quick follow-up).
Before vs. after:
`angledLine({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, length = 3, tag = $edge)`
`angledLineOfXLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthX = 3, tag = $edge)`
`angledLineOfYLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthY = 3, tag = $edge)`
`angledLineToX({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteX = 3, tag = $edge)`
`angledLineToY({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteY = 3, tag = $edge)`
2025-04-09 14:55:15 -05:00
"path": [],
2025-04-01 11:28:09 -07:00
"start": 0,
KCL: Angled line should use keyword args (#5803)
We continue migrating KCL stdlib functions to use keyword arguments. Next up is the `angledLine` family of functions (except `angledLineThatIntersects, which will be a quick follow-up).
Before vs. after:
`angledLine({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, length = 3, tag = $edge)`
`angledLineOfXLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthX = 3, tag = $edge)`
`angledLineOfYLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthY = 3, tag = $edge)`
`angledLineToX({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteX = 3, tag = $edge)`
`angledLineToY({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteY = 3, tag = $edge)`
2025-04-09 14:55:15 -05:00
"type": "Name",
"type": "Name"
2025-04-01 11:28:09 -07:00
},
KCL: Angled line should use keyword args (#5803)
We continue migrating KCL stdlib functions to use keyword arguments. Next up is the `angledLine` family of functions (except `angledLineThatIntersects, which will be a quick follow-up).
Before vs. after:
`angledLine({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, length = 3, tag = $edge)`
`angledLineOfXLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthX = 3, tag = $edge)`
`angledLineOfYLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthY = 3, tag = $edge)`
`angledLineToX({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteX = 3, tag = $edge)`
`angledLineToY({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteY = 3, tag = $edge)`
2025-04-09 14:55:15 -05:00
"commentStart": 0,
"end": 0,
"operator": "-",
"start": 0,
"type": "UnaryExpression",
"type": "UnaryExpression"
}
},
{
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "length",
"start": 0,
"type": "Identifier"
},
"arg": {
"arguments": [
{
2025-04-01 11:28:09 -07:00
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
KCL: Angled line should use keyword args (#5803)
We continue migrating KCL stdlib functions to use keyword arguments. Next up is the `angledLine` family of functions (except `angledLineThatIntersects, which will be a quick follow-up).
Before vs. after:
`angledLine({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, length = 3, tag = $edge)`
`angledLineOfXLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthX = 3, tag = $edge)`
`angledLineOfYLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthY = 3, tag = $edge)`
`angledLineToX({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteX = 3, tag = $edge)`
`angledLineToY({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteY = 3, tag = $edge)`
2025-04-09 14:55:15 -05:00
"name": "seg01",
2025-04-01 11:28:09 -07:00
"start": 0,
"type": "Identifier"
2025-03-06 18:01:24 -05:00
},
2025-04-01 11:28:09 -07:00
"path": [],
2025-03-20 11:06:27 +13:00
"start": 0,
KCL: Angled line should use keyword args (#5803)
We continue migrating KCL stdlib functions to use keyword arguments. Next up is the `angledLine` family of functions (except `angledLineThatIntersects, which will be a quick follow-up).
Before vs. after:
`angledLine({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, length = 3, tag = $edge)`
`angledLineOfXLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthX = 3, tag = $edge)`
`angledLineOfYLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthY = 3, tag = $edge)`
`angledLineToX({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteX = 3, tag = $edge)`
`angledLineToY({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteY = 3, tag = $edge)`
2025-04-09 14:55:15 -05:00
"type": "Name",
2025-04-01 11:28:09 -07:00
"type": "Name"
KCL: Angled line should use keyword args (#5803)
We continue migrating KCL stdlib functions to use keyword arguments. Next up is the `angledLine` family of functions (except `angledLineThatIntersects, which will be a quick follow-up).
Before vs. after:
`angledLine({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, length = 3, tag = $edge)`
`angledLineOfXLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthX = 3, tag = $edge)`
`angledLineOfYLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthY = 3, tag = $edge)`
`angledLineToX({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteX = 3, tag = $edge)`
`angledLineToY({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteY = 3, tag = $edge)`
2025-04-09 14:55:15 -05:00
}
],
"callee": {
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
KCL: Angled line should use keyword args (#5803)
We continue migrating KCL stdlib functions to use keyword arguments. Next up is the `angledLine` family of functions (except `angledLineThatIntersects, which will be a quick follow-up).
Before vs. after:
`angledLine({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, length = 3, tag = $edge)`
`angledLineOfXLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthX = 3, tag = $edge)`
`angledLineOfYLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthY = 3, tag = $edge)`
`angledLineToX({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteX = 3, tag = $edge)`
`angledLineToY({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteY = 3, tag = $edge)`
2025-04-09 14:55:15 -05:00
"name": {
"commentStart": 0,
"end": 0,
"name": "segLen",
"start": 0,
"type": "Identifier"
},
"path": [],
2025-04-01 11:28:09 -07:00
"start": 0,
KCL: Angled line should use keyword args (#5803)
We continue migrating KCL stdlib functions to use keyword arguments. Next up is the `angledLine` family of functions (except `angledLineThatIntersects, which will be a quick follow-up).
Before vs. after:
`angledLine({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, length = 3, tag = $edge)`
`angledLineOfXLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthX = 3, tag = $edge)`
`angledLineOfYLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthY = 3, tag = $edge)`
`angledLineToX({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteX = 3, tag = $edge)`
`angledLineToY({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteY = 3, tag = $edge)`
2025-04-09 14:55:15 -05:00
"type": "Name"
},
"commentStart": 0,
"end": 0,
"start": 0,
"type": "CallExpression",
"type": "CallExpression"
}
2025-04-01 11:28:09 -07:00
}
],
"callee": {
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": "angledLine",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name"
},
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"start": 0,
KCL: Angled line should use keyword args (#5803)
We continue migrating KCL stdlib functions to use keyword arguments. Next up is the `angledLine` family of functions (except `angledLineThatIntersects, which will be a quick follow-up).
Before vs. after:
`angledLine({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, length = 3, tag = $edge)`
`angledLineOfXLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthX = 3, tag = $edge)`
`angledLineOfYLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthY = 3, tag = $edge)`
`angledLineToX({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteX = 3, tag = $edge)`
`angledLineToY({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteY = 3, tag = $edge)`
2025-04-09 14:55:15 -05:00
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": null
2025-04-01 11:28:09 -07:00
},
{
"arguments": [
{
2025-04-11 14:17:20 -04:00
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "radius",
"start": 0,
"type": "Identifier"
},
"arg": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
2025-04-11 14:17:20 -04:00
"name": "exteriorBendRadius",
2025-04-01 11:28:09 -07:00
"start": 0,
2025-04-11 14:17:20 -04:00
"type": "Identifier"
2025-04-01 11:28:09 -07:00
},
2025-04-11 14:17:20 -04:00
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
}
},
{
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "angle",
"start": 0,
"type": "Identifier"
},
"arg": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
2025-04-11 14:17:20 -04:00
"name": "bendAngle",
2025-04-01 11:28:09 -07:00
"start": 0,
2025-04-11 14:17:20 -04:00
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
}
2025-04-01 11:28:09 -07:00
}
],
"callee": {
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": "tangentialArc",
"start": 0,
"type": "Identifier"
2025-03-06 18:01:24 -05:00
},
2025-04-01 11:28:09 -07:00
"path": [],
"start": 0,
"type": "Name"
},
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"start": 0,
2025-04-11 14:17:20 -04:00
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": null
2025-04-01 11:28:09 -07:00
},
{
"arguments": [
2025-03-06 18:01:24 -05:00
{
"type": "LabeledArg",
"label": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "length",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "Identifier"
},
"arg": {
2025-04-01 11:28:09 -07:00
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": "flangeLength",
"start": 0,
"type": "Identifier"
},
"path": [],
2025-03-20 11:06:27 +13:00
"start": 0,
2025-04-01 11:28:09 -07:00
"type": "Name",
"type": "Name"
2025-03-06 18:01:24 -05:00
}
}
],
"callee": {
2025-03-24 20:58:55 +13:00
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-24 20:58:55 +13:00
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-24 20:58:55 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "xLine",
2025-03-24 20:58:55 +13:00
"start": 0,
"type": "Identifier"
},
"path": [],
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-24 20:58:55 +13:00
"type": "Name"
2025-03-06 18:01:24 -05:00
},
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": null
},
{
"arguments": [
{
"type": "LabeledArg",
"label": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "length",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "Identifier"
},
"arg": {
2025-04-01 11:28:09 -07:00
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": "thickness",
"start": 0,
"type": "Identifier"
},
"path": [],
2025-03-20 11:06:27 +13:00
"start": 0,
2025-04-01 11:28:09 -07:00
"type": "Name",
"type": "Name"
2025-03-06 18:01:24 -05:00
}
},
{
"type": "LabeledArg",
"label": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-06 18:01:24 -05:00
"name": "tag",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "Identifier"
},
"arg": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "TagDeclarator",
"type": "TagDeclarator",
2025-04-01 11:28:09 -07:00
"value": "seg03"
2025-03-06 18:01:24 -05:00
}
}
],
"callee": {
2025-03-24 20:58:55 +13:00
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-24 20:58:55 +13:00
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-24 20:58:55 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "yLine",
2025-03-24 20:58:55 +13:00
"start": 0,
"type": "Identifier"
},
"path": [],
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-24 20:58:55 +13:00
"type": "Name"
2025-03-06 18:01:24 -05:00
},
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": null
},
{
"arguments": [
{
"type": "LabeledArg",
"label": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "length",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "Identifier"
},
"arg": {
2025-04-01 11:28:09 -07:00
"argument": {
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "flangeLength",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-04-01 11:28:09 -07:00
"type": "Identifier"
2025-03-06 18:01:24 -05:00
},
2025-04-01 11:28:09 -07:00
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
},
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"operator": "-",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-04-01 11:28:09 -07:00
"type": "UnaryExpression",
"type": "UnaryExpression"
2025-03-06 18:01:24 -05:00
}
},
{
"type": "LabeledArg",
"label": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-06 18:01:24 -05:00
"name": "tag",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "Identifier"
},
"arg": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "TagDeclarator",
"type": "TagDeclarator",
2025-04-01 11:28:09 -07:00
"value": "seg04"
2025-03-06 18:01:24 -05:00
}
}
],
"callee": {
2025-03-24 20:58:55 +13:00
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-24 20:58:55 +13:00
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-24 20:58:55 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "xLine",
2025-03-24 20:58:55 +13:00
"start": 0,
"type": "Identifier"
},
"path": [],
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-24 20:58:55 +13:00
"type": "Name"
2025-03-06 18:01:24 -05:00
},
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": null
},
{
"arguments": [
{
2025-04-11 14:17:20 -04:00
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "radius",
"start": 0,
"type": "Identifier"
},
"arg": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
2025-04-11 14:17:20 -04:00
"name": "interiorBendRadius",
2025-04-01 11:28:09 -07:00
"start": 0,
2025-04-11 14:17:20 -04:00
"type": "Identifier"
2025-04-01 11:28:09 -07:00
},
2025-04-11 14:17:20 -04:00
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
}
},
{
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "angle",
"start": 0,
"type": "Identifier"
},
"arg": {
"argument": {
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
2025-04-11 14:17:20 -04:00
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
2025-04-11 14:17:20 -04:00
"name": "bendAngle",
2025-04-01 11:28:09 -07:00
"start": 0,
"type": "Identifier"
},
2025-04-11 14:17:20 -04:00
"path": [],
2025-04-01 11:28:09 -07:00
"start": 0,
2025-04-11 14:17:20 -04:00
"type": "Name",
"type": "Name"
},
"commentStart": 0,
"end": 0,
"operator": "-",
"start": 0,
"type": "UnaryExpression",
"type": "UnaryExpression"
}
2025-04-01 11:28:09 -07:00
}
],
"callee": {
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": "tangentialArc",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name"
},
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"start": 0,
2025-04-11 14:17:20 -04:00
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": null
2025-04-01 11:28:09 -07:00
},
{
"arguments": [
{
KCL: Angled line should use keyword args (#5803)
We continue migrating KCL stdlib functions to use keyword arguments. Next up is the `angledLine` family of functions (except `angledLineThatIntersects, which will be a quick follow-up).
Before vs. after:
`angledLine({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, length = 3, tag = $edge)`
`angledLineOfXLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthX = 3, tag = $edge)`
`angledLineOfYLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthY = 3, tag = $edge)`
`angledLineToX({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteX = 3, tag = $edge)`
`angledLineToY({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteY = 3, tag = $edge)`
2025-04-09 14:55:15 -05:00
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "angle",
"start": 0,
"type": "Identifier"
},
"arg": {
"commentStart": 0,
"end": 0,
"left": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
KCL: Angled line should use keyword args (#5803)
We continue migrating KCL stdlib functions to use keyword arguments. Next up is the `angledLine` family of functions (except `angledLineThatIntersects, which will be a quick follow-up).
Before vs. after:
`angledLine({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, length = 3, tag = $edge)`
`angledLineOfXLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthX = 3, tag = $edge)`
`angledLineOfYLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthY = 3, tag = $edge)`
`angledLineToX({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteX = 3, tag = $edge)`
`angledLineToY({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteY = 3, tag = $edge)`
2025-04-09 14:55:15 -05:00
"raw": "180",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 180.0,
"suffix": "None"
}
},
"operator": "-",
"right": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
KCL: Angled line should use keyword args (#5803)
We continue migrating KCL stdlib functions to use keyword arguments. Next up is the `angledLine` family of functions (except `angledLineThatIntersects, which will be a quick follow-up).
Before vs. after:
`angledLine({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, length = 3, tag = $edge)`
`angledLineOfXLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthX = 3, tag = $edge)`
`angledLineOfYLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthY = 3, tag = $edge)`
`angledLineToX({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteX = 3, tag = $edge)`
`angledLineToY({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteY = 3, tag = $edge)`
2025-04-09 14:55:15 -05:00
"name": "bendAngle",
2025-03-20 11:06:27 +13:00
"start": 0,
KCL: Angled line should use keyword args (#5803)
We continue migrating KCL stdlib functions to use keyword arguments. Next up is the `angledLine` family of functions (except `angledLineThatIntersects, which will be a quick follow-up).
Before vs. after:
`angledLine({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, length = 3, tag = $edge)`
`angledLineOfXLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthX = 3, tag = $edge)`
`angledLineOfYLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthY = 3, tag = $edge)`
`angledLineToX({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteX = 3, tag = $edge)`
`angledLineToY({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteY = 3, tag = $edge)`
2025-04-09 14:55:15 -05:00
"type": "Identifier"
2025-03-06 18:01:24 -05:00
},
KCL: Angled line should use keyword args (#5803)
We continue migrating KCL stdlib functions to use keyword arguments. Next up is the `angledLine` family of functions (except `angledLineThatIntersects, which will be a quick follow-up).
Before vs. after:
`angledLine({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, length = 3, tag = $edge)`
`angledLineOfXLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthX = 3, tag = $edge)`
`angledLineOfYLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthY = 3, tag = $edge)`
`angledLineToX({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteX = 3, tag = $edge)`
`angledLineToY({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteY = 3, tag = $edge)`
2025-04-09 14:55:15 -05:00
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
},
"start": 0,
"type": "BinaryExpression",
"type": "BinaryExpression"
}
},
{
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "length",
"start": 0,
"type": "Identifier"
},
"arg": {
"arguments": [
{
2025-04-01 11:28:09 -07:00
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
KCL: Angled line should use keyword args (#5803)
We continue migrating KCL stdlib functions to use keyword arguments. Next up is the `angledLine` family of functions (except `angledLineThatIntersects, which will be a quick follow-up).
Before vs. after:
`angledLine({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, length = 3, tag = $edge)`
`angledLineOfXLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthX = 3, tag = $edge)`
`angledLineOfYLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthY = 3, tag = $edge)`
`angledLineToX({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteX = 3, tag = $edge)`
`angledLineToY({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteY = 3, tag = $edge)`
2025-04-09 14:55:15 -05:00
"name": "seg01",
2025-04-01 11:28:09 -07:00
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
KCL: Angled line should use keyword args (#5803)
We continue migrating KCL stdlib functions to use keyword arguments. Next up is the `angledLine` family of functions (except `angledLineThatIntersects, which will be a quick follow-up).
Before vs. after:
`angledLine({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, length = 3, tag = $edge)`
`angledLineOfXLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthX = 3, tag = $edge)`
`angledLineOfYLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthY = 3, tag = $edge)`
`angledLineToX({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteX = 3, tag = $edge)`
`angledLineToY({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteY = 3, tag = $edge)`
2025-04-09 14:55:15 -05:00
}
],
"callee": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
KCL: Angled line should use keyword args (#5803)
We continue migrating KCL stdlib functions to use keyword arguments. Next up is the `angledLine` family of functions (except `angledLineThatIntersects, which will be a quick follow-up).
Before vs. after:
`angledLine({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, length = 3, tag = $edge)`
`angledLineOfXLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthX = 3, tag = $edge)`
`angledLineOfYLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthY = 3, tag = $edge)`
`angledLineToX({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteX = 3, tag = $edge)`
`angledLineToY({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteY = 3, tag = $edge)`
2025-04-09 14:55:15 -05:00
"name": "segLen",
2025-03-20 11:06:27 +13:00
"start": 0,
KCL: Angled line should use keyword args (#5803)
We continue migrating KCL stdlib functions to use keyword arguments. Next up is the `angledLine` family of functions (except `angledLineThatIntersects, which will be a quick follow-up).
Before vs. after:
`angledLine({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, length = 3, tag = $edge)`
`angledLineOfXLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthX = 3, tag = $edge)`
`angledLineOfYLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthY = 3, tag = $edge)`
`angledLineToX({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteX = 3, tag = $edge)`
`angledLineToY({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteY = 3, tag = $edge)`
2025-04-09 14:55:15 -05:00
"type": "Identifier"
2025-04-01 11:28:09 -07:00
},
KCL: Angled line should use keyword args (#5803)
We continue migrating KCL stdlib functions to use keyword arguments. Next up is the `angledLine` family of functions (except `angledLineThatIntersects, which will be a quick follow-up).
Before vs. after:
`angledLine({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, length = 3, tag = $edge)`
`angledLineOfXLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthX = 3, tag = $edge)`
`angledLineOfYLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthY = 3, tag = $edge)`
`angledLineToX({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteX = 3, tag = $edge)`
`angledLineToY({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteY = 3, tag = $edge)`
2025-04-09 14:55:15 -05:00
"path": [],
2025-04-01 11:28:09 -07:00
"start": 0,
KCL: Angled line should use keyword args (#5803)
We continue migrating KCL stdlib functions to use keyword arguments. Next up is the `angledLine` family of functions (except `angledLineThatIntersects, which will be a quick follow-up).
Before vs. after:
`angledLine({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, length = 3, tag = $edge)`
`angledLineOfXLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthX = 3, tag = $edge)`
`angledLineOfYLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthY = 3, tag = $edge)`
`angledLineToX({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteX = 3, tag = $edge)`
`angledLineToY({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteY = 3, tag = $edge)`
2025-04-09 14:55:15 -05:00
"type": "Name"
},
"commentStart": 0,
"end": 0,
"start": 0,
"type": "CallExpression",
"type": "CallExpression"
}
2025-03-06 18:01:24 -05:00
}
],
"callee": {
2025-03-24 20:58:55 +13:00
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-24 20:58:55 +13:00
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-24 20:58:55 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "angledLine",
2025-03-24 20:58:55 +13:00
"start": 0,
"type": "Identifier"
},
"path": [],
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-24 20:58:55 +13:00
"type": "Name"
2025-03-06 18:01:24 -05:00
},
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
"start": 0,
KCL: Angled line should use keyword args (#5803)
We continue migrating KCL stdlib functions to use keyword arguments. Next up is the `angledLine` family of functions (except `angledLineThatIntersects, which will be a quick follow-up).
Before vs. after:
`angledLine({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, length = 3, tag = $edge)`
`angledLineOfXLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthX = 3, tag = $edge)`
`angledLineOfYLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthY = 3, tag = $edge)`
`angledLineToX({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteX = 3, tag = $edge)`
`angledLineToY({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteY = 3, tag = $edge)`
2025-04-09 14:55:15 -05:00
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": null
2025-03-06 18:01:24 -05:00
},
{
"arguments": [
{
2025-04-11 14:17:20 -04:00
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "radius",
"start": 0,
"type": "Identifier"
},
"arg": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-24 20:58:55 +13:00
"end": 0,
2025-04-11 14:17:20 -04:00
"name": "exteriorBendRadius",
2025-03-24 20:58:55 +13:00
"start": 0,
2025-04-11 14:17:20 -04:00
"type": "Identifier"
2025-03-24 20:58:55 +13:00
},
2025-04-11 14:17:20 -04:00
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
}
},
{
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "angle",
"start": 0,
"type": "Identifier"
},
"arg": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
2025-04-11 14:17:20 -04:00
"name": "bendAngle",
2025-04-01 11:28:09 -07:00
"start": 0,
2025-04-11 14:17:20 -04:00
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
}
2025-03-06 18:01:24 -05:00
}
],
"callee": {
2025-03-24 20:58:55 +13:00
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-24 20:58:55 +13:00
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-24 20:58:55 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "tangentialArc",
2025-03-24 20:58:55 +13:00
"start": 0,
"type": "Identifier"
},
"path": [],
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-24 20:58:55 +13:00
"type": "Name"
2025-03-06 18:01:24 -05:00
},
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
"start": 0,
2025-04-11 14:17:20 -04:00
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": null
2025-03-06 18:01:24 -05:00
},
{
"arguments": [
{
"type": "LabeledArg",
"label": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "endAbsolute",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "Identifier"
},
"arg": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"raw": "0",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-04-01 11:28:09 -07:00
"type": "Literal",
"type": "Literal",
"value": {
"value": 0.0,
"suffix": "None"
}
2025-03-06 18:01:24 -05:00
}
},
{
"type": "LabeledArg",
"label": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "tag",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "Identifier"
},
"arg": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
"start": 0,
2025-04-01 11:28:09 -07:00
"type": "TagDeclarator",
"type": "TagDeclarator",
"value": "seg05"
2025-03-06 18:01:24 -05:00
}
}
],
"callee": {
2025-03-24 20:58:55 +13:00
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-24 20:58:55 +13:00
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-24 20:58:55 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "xLine",
2025-03-24 20:58:55 +13:00
"start": 0,
"type": "Identifier"
},
"path": [],
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-24 20:58:55 +13:00
"type": "Name"
2025-03-06 18:01:24 -05:00
},
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": null
},
{
"arguments": [
{
"type": "LabeledArg",
"label": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "length",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "Identifier"
},
"arg": {
2025-04-01 11:28:09 -07:00
"argument": {
"arguments": [
{
2025-03-24 20:58:55 +13:00
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-24 20:58:55 +13:00
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-24 20:58:55 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "seg05",
2025-03-24 20:58:55 +13:00
"start": 0,
"type": "Identifier"
},
"path": [],
2025-03-20 11:06:27 +13:00
"start": 0,
2025-04-01 11:28:09 -07:00
"type": "Name",
"type": "Name"
}
],
"callee": {
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": "segLen",
"start": 0,
"type": "Identifier"
2025-03-06 18:01:24 -05:00
},
2025-04-01 11:28:09 -07:00
"path": [],
2025-03-20 11:06:27 +13:00
"start": 0,
2025-04-01 11:28:09 -07:00
"type": "Name"
},
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"start": 0,
"type": "CallExpression",
"type": "CallExpression"
},
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"operator": "-",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-04-01 11:28:09 -07:00
"type": "UnaryExpression",
"type": "UnaryExpression"
2025-03-06 18:01:24 -05:00
}
}
],
"callee": {
2025-03-24 20:58:55 +13:00
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-24 20:58:55 +13:00
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-24 20:58:55 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "xLine",
2025-03-24 20:58:55 +13:00
"start": 0,
"type": "Identifier"
},
"path": [],
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-24 20:58:55 +13:00
"type": "Name"
2025-03-06 18:01:24 -05:00
},
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": null
},
{
"arguments": [
{
2025-04-11 14:17:20 -04:00
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "radius",
"start": 0,
"type": "Identifier"
},
"arg": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-24 20:58:55 +13:00
"end": 0,
2025-04-11 14:17:20 -04:00
"name": "exteriorBendRadius",
2025-03-24 20:58:55 +13:00
"start": 0,
2025-04-11 14:17:20 -04:00
"type": "Identifier"
2025-03-24 20:58:55 +13:00
},
2025-04-11 14:17:20 -04:00
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
}
},
{
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "angle",
"start": 0,
"type": "Identifier"
},
"arg": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
2025-04-11 14:17:20 -04:00
"name": "bendAngle",
2025-04-01 11:28:09 -07:00
"start": 0,
2025-04-11 14:17:20 -04:00
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
}
2025-04-01 11:28:09 -07:00
}
],
"callee": {
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": "tangentialArc",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name"
},
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"start": 0,
2025-04-11 14:17:20 -04:00
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": null
2025-04-01 11:28:09 -07:00
},
{
"arguments": [
{
KCL: Angled line should use keyword args (#5803)
We continue migrating KCL stdlib functions to use keyword arguments. Next up is the `angledLine` family of functions (except `angledLineThatIntersects, which will be a quick follow-up).
Before vs. after:
`angledLine({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, length = 3, tag = $edge)`
`angledLineOfXLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthX = 3, tag = $edge)`
`angledLineOfYLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthY = 3, tag = $edge)`
`angledLineToX({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteX = 3, tag = $edge)`
`angledLineToY({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteY = 3, tag = $edge)`
2025-04-09 14:55:15 -05:00
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "angle",
"start": 0,
"type": "Identifier"
},
"arg": {
"commentStart": 0,
"end": 0,
"left": {
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
KCL: Angled line should use keyword args (#5803)
We continue migrating KCL stdlib functions to use keyword arguments. Next up is the `angledLine` family of functions (except `angledLineThatIntersects, which will be a quick follow-up).
Before vs. after:
`angledLine({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, length = 3, tag = $edge)`
`angledLineOfXLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthX = 3, tag = $edge)`
`angledLineOfYLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthY = 3, tag = $edge)`
`angledLineToX({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteX = 3, tag = $edge)`
`angledLineToY({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteY = 3, tag = $edge)`
2025-04-09 14:55:15 -05:00
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
KCL: Angled line should use keyword args (#5803)
We continue migrating KCL stdlib functions to use keyword arguments. Next up is the `angledLine` family of functions (except `angledLineThatIntersects, which will be a quick follow-up).
Before vs. after:
`angledLine({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, length = 3, tag = $edge)`
`angledLineOfXLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthX = 3, tag = $edge)`
`angledLineOfYLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthY = 3, tag = $edge)`
`angledLineToX({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteX = 3, tag = $edge)`
`angledLineToY({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteY = 3, tag = $edge)`
2025-04-09 14:55:15 -05:00
"name": "bendAngle",
2025-04-01 11:28:09 -07:00
"start": 0,
KCL: Angled line should use keyword args (#5803)
We continue migrating KCL stdlib functions to use keyword arguments. Next up is the `angledLine` family of functions (except `angledLineThatIntersects, which will be a quick follow-up).
Before vs. after:
`angledLine({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, length = 3, tag = $edge)`
`angledLineOfXLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthX = 3, tag = $edge)`
`angledLineOfYLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthY = 3, tag = $edge)`
`angledLineToX({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteX = 3, tag = $edge)`
`angledLineToY({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteY = 3, tag = $edge)`
2025-04-09 14:55:15 -05:00
"type": "Identifier"
2025-04-01 11:28:09 -07:00
},
KCL: Angled line should use keyword args (#5803)
We continue migrating KCL stdlib functions to use keyword arguments. Next up is the `angledLine` family of functions (except `angledLineThatIntersects, which will be a quick follow-up).
Before vs. after:
`angledLine({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, length = 3, tag = $edge)`
`angledLineOfXLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthX = 3, tag = $edge)`
`angledLineOfYLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthY = 3, tag = $edge)`
`angledLineToX({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteX = 3, tag = $edge)`
`angledLineToY({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteY = 3, tag = $edge)`
2025-04-09 14:55:15 -05:00
"path": [],
2025-04-01 11:28:09 -07:00
"start": 0,
KCL: Angled line should use keyword args (#5803)
We continue migrating KCL stdlib functions to use keyword arguments. Next up is the `angledLine` family of functions (except `angledLineThatIntersects, which will be a quick follow-up).
Before vs. after:
`angledLine({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, length = 3, tag = $edge)`
`angledLineOfXLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthX = 3, tag = $edge)`
`angledLineOfYLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthY = 3, tag = $edge)`
`angledLineToX({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteX = 3, tag = $edge)`
`angledLineToY({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteY = 3, tag = $edge)`
2025-04-09 14:55:15 -05:00
"type": "Name",
"type": "Name"
2025-04-01 11:28:09 -07:00
},
KCL: Angled line should use keyword args (#5803)
We continue migrating KCL stdlib functions to use keyword arguments. Next up is the `angledLine` family of functions (except `angledLineThatIntersects, which will be a quick follow-up).
Before vs. after:
`angledLine({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, length = 3, tag = $edge)`
`angledLineOfXLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthX = 3, tag = $edge)`
`angledLineOfYLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthY = 3, tag = $edge)`
`angledLineToX({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteX = 3, tag = $edge)`
`angledLineToY({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteY = 3, tag = $edge)`
2025-04-09 14:55:15 -05:00
"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"
}
},
{
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "length",
"start": 0,
"type": "Identifier"
},
"arg": {
"arguments": [
{
2025-04-01 11:28:09 -07:00
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
KCL: Angled line should use keyword args (#5803)
We continue migrating KCL stdlib functions to use keyword arguments. Next up is the `angledLine` family of functions (except `angledLineThatIntersects, which will be a quick follow-up).
Before vs. after:
`angledLine({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, length = 3, tag = $edge)`
`angledLineOfXLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthX = 3, tag = $edge)`
`angledLineOfYLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthY = 3, tag = $edge)`
`angledLineToX({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteX = 3, tag = $edge)`
`angledLineToY({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteY = 3, tag = $edge)`
2025-04-09 14:55:15 -05:00
"name": "seg01",
2025-04-01 11:28:09 -07:00
"start": 0,
"type": "Identifier"
},
"path": [],
2025-03-20 11:06:27 +13:00
"start": 0,
KCL: Angled line should use keyword args (#5803)
We continue migrating KCL stdlib functions to use keyword arguments. Next up is the `angledLine` family of functions (except `angledLineThatIntersects, which will be a quick follow-up).
Before vs. after:
`angledLine({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, length = 3, tag = $edge)`
`angledLineOfXLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthX = 3, tag = $edge)`
`angledLineOfYLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthY = 3, tag = $edge)`
`angledLineToX({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteX = 3, tag = $edge)`
`angledLineToY({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteY = 3, tag = $edge)`
2025-04-09 14:55:15 -05:00
"type": "Name",
2025-04-01 11:28:09 -07:00
"type": "Name"
KCL: Angled line should use keyword args (#5803)
We continue migrating KCL stdlib functions to use keyword arguments. Next up is the `angledLine` family of functions (except `angledLineThatIntersects, which will be a quick follow-up).
Before vs. after:
`angledLine({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, length = 3, tag = $edge)`
`angledLineOfXLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthX = 3, tag = $edge)`
`angledLineOfYLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthY = 3, tag = $edge)`
`angledLineToX({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteX = 3, tag = $edge)`
`angledLineToY({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteY = 3, tag = $edge)`
2025-04-09 14:55:15 -05:00
}
],
"callee": {
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
KCL: Angled line should use keyword args (#5803)
We continue migrating KCL stdlib functions to use keyword arguments. Next up is the `angledLine` family of functions (except `angledLineThatIntersects, which will be a quick follow-up).
Before vs. after:
`angledLine({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, length = 3, tag = $edge)`
`angledLineOfXLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthX = 3, tag = $edge)`
`angledLineOfYLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthY = 3, tag = $edge)`
`angledLineToX({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteX = 3, tag = $edge)`
`angledLineToY({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteY = 3, tag = $edge)`
2025-04-09 14:55:15 -05:00
"name": {
"commentStart": 0,
"end": 0,
"name": "segLen",
"start": 0,
"type": "Identifier"
},
"path": [],
2025-04-01 11:28:09 -07:00
"start": 0,
KCL: Angled line should use keyword args (#5803)
We continue migrating KCL stdlib functions to use keyword arguments. Next up is the `angledLine` family of functions (except `angledLineThatIntersects, which will be a quick follow-up).
Before vs. after:
`angledLine({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, length = 3, tag = $edge)`
`angledLineOfXLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthX = 3, tag = $edge)`
`angledLineOfYLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthY = 3, tag = $edge)`
`angledLineToX({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteX = 3, tag = $edge)`
`angledLineToY({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteY = 3, tag = $edge)`
2025-04-09 14:55:15 -05:00
"type": "Name"
},
"commentStart": 0,
"end": 0,
"start": 0,
"type": "CallExpression",
"type": "CallExpression"
}
2025-03-06 18:01:24 -05:00
}
],
"callee": {
2025-03-24 20:58:55 +13:00
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-24 20:58:55 +13:00
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-24 20:58:55 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "angledLine",
2025-03-24 20:58:55 +13:00
"start": 0,
"type": "Identifier"
},
"path": [],
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-24 20:58:55 +13:00
"type": "Name"
2025-03-06 18:01:24 -05:00
},
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
"start": 0,
KCL: Angled line should use keyword args (#5803)
We continue migrating KCL stdlib functions to use keyword arguments. Next up is the `angledLine` family of functions (except `angledLineThatIntersects, which will be a quick follow-up).
Before vs. after:
`angledLine({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, length = 3, tag = $edge)`
`angledLineOfXLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthX = 3, tag = $edge)`
`angledLineOfYLength({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, lengthY = 3, tag = $edge)`
`angledLineToX({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteX = 3, tag = $edge)`
`angledLineToY({angle = 90, length = 3}, %, $edge)`
=> `angledLine(angle = 90, endAbsoluteY = 3, tag = $edge)`
2025-04-09 14:55:15 -05:00
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": null
2025-03-06 18:01:24 -05:00
},
{
"arguments": [
{
2025-04-11 14:17:20 -04:00
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "radius",
"start": 0,
"type": "Identifier"
},
"arg": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-24 20:58:55 +13:00
"end": 0,
2025-04-11 14:17:20 -04:00
"name": "interiorBendRadius",
2025-03-24 20:58:55 +13:00
"start": 0,
2025-04-11 14:17:20 -04:00
"type": "Identifier"
2025-04-01 11:28:09 -07:00
},
2025-04-11 14:17:20 -04:00
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
}
},
{
"type": "LabeledArg",
"label": {
"commentStart": 0,
"end": 0,
"name": "angle",
"start": 0,
"type": "Identifier"
},
"arg": {
"argument": {
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
2025-04-11 14:17:20 -04:00
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
2025-04-11 14:17:20 -04:00
"name": "bendAngle",
2025-04-01 11:28:09 -07:00
"start": 0,
"type": "Identifier"
},
2025-04-11 14:17:20 -04:00
"path": [],
2025-04-01 11:28:09 -07:00
"start": 0,
2025-04-11 14:17:20 -04:00
"type": "Name",
"type": "Name"
},
"commentStart": 0,
"end": 0,
"operator": "-",
"start": 0,
"type": "UnaryExpression",
"type": "UnaryExpression"
}
2025-03-06 18:01:24 -05:00
}
],
"callee": {
2025-03-24 20:58:55 +13:00
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-24 20:58:55 +13:00
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-24 20:58:55 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "tangentialArc",
2025-03-24 20:58:55 +13:00
"start": 0,
"type": "Identifier"
},
"path": [],
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-24 20:58:55 +13:00
"type": "Name"
2025-03-06 18:01:24 -05:00
},
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
"start": 0,
2025-04-11 14:17:20 -04:00
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": null
2025-03-06 18:01:24 -05:00
},
{
"arguments": [
{
"type": "LabeledArg",
"label": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "length",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "Identifier"
},
"arg": {
2025-04-01 11:28:09 -07:00
"argument": {
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-24 20:58:55 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": "flangeLength",
"start": 0,
"type": "Identifier"
},
"path": [],
2025-03-24 20:58:55 +13:00
"start": 0,
2025-04-01 11:28:09 -07:00
"type": "Name",
"type": "Name"
2025-03-24 20:58:55 +13:00
},
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"operator": "-",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-04-01 11:28:09 -07:00
"type": "UnaryExpression",
"type": "UnaryExpression"
2025-03-06 18:01:24 -05:00
}
},
{
"type": "LabeledArg",
"label": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "tag",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "Identifier"
},
"arg": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
"start": 0,
2025-04-01 11:28:09 -07:00
"type": "TagDeclarator",
"type": "TagDeclarator",
"value": "seg06"
2025-03-06 18:01:24 -05:00
}
}
],
"callee": {
2025-03-24 20:58:55 +13:00
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-24 20:58:55 +13:00
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-24 20:58:55 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "xLine",
2025-03-24 20:58:55 +13:00
"start": 0,
"type": "Identifier"
},
"path": [],
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-24 20:58:55 +13:00
"type": "Name"
2025-03-06 18:01:24 -05:00
},
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": null
},
{
"arguments": [
{
"type": "LabeledArg",
"label": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "endAbsolute",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "Identifier"
},
"arg": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-06 18:01:24 -05:00
"elements": [
{
"arguments": [
{
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
"start": 0,
2025-04-01 11:28:09 -07:00
"type": "PipeSubstitution",
"type": "PipeSubstitution"
2025-03-06 18:01:24 -05:00
}
],
"callee": {
2025-03-24 20:58:55 +13:00
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-24 20:58:55 +13:00
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-24 20:58:55 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "profileStartX",
2025-03-24 20:58:55 +13:00
"start": 0,
"type": "Identifier"
},
"path": [],
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-24 20:58:55 +13:00
"type": "Name"
2025-03-06 18:01:24 -05:00
},
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"start": 0,
"type": "CallExpression",
"type": "CallExpression"
},
{
"arguments": [
{
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"start": 0,
"type": "PipeSubstitution",
"type": "PipeSubstitution"
}
],
"callee": {
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": "profileStartY",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name"
},
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "CallExpression",
"type": "CallExpression"
}
],
2025-03-20 11:06:27 +13:00
"end": 0,
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "ArrayExpression",
"type": "ArrayExpression"
}
2025-04-01 11:28:09 -07:00
},
{
"type": "LabeledArg",
"label": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": "tag",
"start": 0,
"type": "Identifier"
},
"arg": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"start": 0,
"type": "TagDeclarator",
"type": "TagDeclarator",
"value": "seg07"
}
2025-03-06 18:01:24 -05:00
}
],
"callee": {
2025-03-24 20:58:55 +13:00
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-24 20:58:55 +13:00
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-24 20:58:55 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "line",
2025-03-24 20:58:55 +13:00
"start": 0,
"type": "Identifier"
},
"path": [],
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-24 20:58:55 +13:00
"type": "Name"
2025-03-06 18:01:24 -05:00
},
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": null
},
{
2025-04-01 11:28:09 -07:00
"arguments": [],
"callee": {
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": "close",
"start": 0,
"type": "Identifier"
2025-03-06 18:01:24 -05:00
},
2025-04-01 11:28:09 -07:00
"path": [],
"start": 0,
"type": "Name"
},
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"start": 0,
"type": "CallExpression",
"type": "CallExpression"
},
{
"arguments": [
2025-03-06 18:01:24 -05:00
{
"type": "LabeledArg",
"label": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "length",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "Identifier"
2025-04-01 11:28:09 -07:00
},
"arg": {
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": "flangeExtrusion",
"start": 0,
"type": "Identifier"
},
"path": [],
2025-03-20 11:06:27 +13:00
"start": 0,
2025-04-01 11:28:09 -07:00
"type": "Name",
"type": "Name"
2025-03-06 18:01:24 -05:00
}
}
],
"callee": {
2025-03-24 20:58:55 +13:00
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-24 20:58:55 +13:00
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-24 20:58:55 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "extrude",
2025-03-24 20:58:55 +13:00
"start": 0,
"type": "Identifier"
},
"path": [],
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-24 20:58:55 +13:00
"type": "Name"
2025-03-06 18:01:24 -05:00
},
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": null
},
{
"arguments": [
{
"type": "LabeledArg",
"label": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-06 18:01:24 -05:00
"name": "radius",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "Identifier"
},
"arg": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"left": {
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-24 20:58:55 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": "flangeLength",
"start": 0,
"type": "Identifier"
},
"path": [],
2025-03-24 20:58:55 +13:00
"start": 0,
2025-04-01 11:28:09 -07:00
"type": "Name",
"type": "Name"
},
"operator": "/",
"right": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"raw": "3",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 3.0,
"suffix": "None"
}
2025-03-24 20:58:55 +13:00
},
2025-03-20 11:06:27 +13:00
"start": 0,
2025-04-01 11:28:09 -07:00
"type": "BinaryExpression",
"type": "BinaryExpression"
2025-03-06 18:01:24 -05:00
}
},
{
"type": "LabeledArg",
"label": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-06 18:01:24 -05:00
"name": "tags",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "Identifier"
},
"arg": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-06 18:01:24 -05:00
"elements": [
2025-04-01 11:28:09 -07:00
{
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": "seg03",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
},
{
"arguments": [
{
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": "seg03",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
}
],
"callee": {
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": "getOppositeEdge",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name"
},
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"start": 0,
"type": "CallExpression",
"type": "CallExpression"
},
{
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": "seg07",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
},
2025-03-06 18:01:24 -05:00
{
"arguments": [
{
2025-03-24 20:58:55 +13:00
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-24 20:58:55 +13:00
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-24 20:58:55 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "seg07",
2025-03-24 20:58:55 +13:00
"start": 0,
"type": "Identifier"
},
"path": [],
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-24 20:58:55 +13:00
"type": "Name",
"type": "Name"
2025-03-06 18:01:24 -05:00
}
],
"callee": {
2025-03-24 20:58:55 +13:00
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-24 20:58:55 +13:00
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-24 20:58:55 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "getOppositeEdge",
2025-03-24 20:58:55 +13:00
"start": 0,
"type": "Identifier"
},
"path": [],
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-24 20:58:55 +13:00
"type": "Name"
2025-03-06 18:01:24 -05:00
},
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "CallExpression",
"type": "CallExpression"
}
],
2025-03-20 11:06:27 +13:00
"end": 0,
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "ArrayExpression",
"type": "ArrayExpression"
}
}
],
"callee": {
2025-03-24 20:58:55 +13:00
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-24 20:58:55 +13:00
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-24 20:58:55 +13:00
"end": 0,
"name": "fillet",
"start": 0,
"type": "Identifier"
},
"path": [],
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-24 20:58:55 +13:00
"type": "Name"
2025-03-06 18:01:24 -05:00
},
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": null
}
],
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-06 18:01:24 -05:00
"nonCodeMeta": {
"nonCodeNodes": {
2025-04-01 11:28:09 -07:00
"26": [
2025-03-06 18:01:24 -05:00
{
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "NonCodeNode",
"value": {
"type": "newLineBlockComment",
2025-04-01 11:28:09 -07:00
"value": "Cut the bolt pattern in the left base flange",
2025-03-06 18:01:24 -05:00
"style": "line"
}
}
]
},
"startNodes": []
},
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "PipeExpression",
"type": "PipeExpression"
},
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "VariableDeclarator"
},
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-06 18:01:24 -05:00
"kind": "const",
2025-03-20 16:23:20 +13:00
"preComments": [
"",
"",
2025-04-01 11:28:09 -07:00
"// Draw the extrusion profile of the sheet metal bracket"
2025-03-20 16:23:20 +13:00
],
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "VariableDeclaration",
"type": "VariableDeclaration"
},
{
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-06 18:01:24 -05:00
"declaration": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-06 18:01:24 -05:00
"id": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "leftFlangeBoltPattern",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "Identifier"
},
"init": {
"body": [
{
"arguments": [
{
2025-04-14 05:58:19 -04:00
"type": "LabeledArg",
"label": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-26 08:53:34 -07:00
"end": 0,
2025-04-14 05:58:19 -04:00
"name": "face",
2025-03-26 08:53:34 -07:00
"start": 0,
"type": "Identifier"
},
2025-04-14 05:58:19 -04:00
"arg": {
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
2025-04-14 05:58:19 -04:00
"name": {
"commentStart": 0,
"end": 0,
"name": "seg04",
"start": 0,
"type": "Identifier"
},
"path": [],
2025-04-01 11:28:09 -07:00
"start": 0,
2025-04-14 05:58:19 -04:00
"type": "Name",
"type": "Name"
}
2025-03-06 18:01:24 -05:00
}
],
"callee": {
2025-03-24 20:58:55 +13:00
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-24 20:58:55 +13:00
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-24 20:58:55 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "startSketchOn",
2025-03-24 20:58:55 +13:00
"start": 0,
"type": "Identifier"
},
"path": [],
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-24 20:58:55 +13:00
"type": "Name"
2025-03-06 18:01:24 -05:00
},
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
"start": 0,
2025-04-14 05:58:19 -04:00
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "bracketProfile",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
}
2025-03-06 18:01:24 -05:00
},
{
"arguments": [
{
"type": "LabeledArg",
"label": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "center",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "Identifier"
},
"arg": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-06 18:01:24 -05:00
"elements": [
{
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"left": {
"argument": {
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": "mountingBoltPatternX",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
},
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"operator": "-",
"start": 0,
"type": "UnaryExpression",
"type": "UnaryExpression"
},
"operator": "/",
"right": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"raw": "2",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 2.0,
"suffix": "None"
}
},
2025-03-20 11:06:27 +13:00
"start": 0,
2025-04-01 11:28:09 -07:00
"type": "BinaryExpression",
"type": "BinaryExpression"
2025-03-06 18:01:24 -05:00
},
{
2025-03-24 20:58:55 +13:00
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-24 20:58:55 +13:00
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-24 20:58:55 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "overhang",
2025-03-24 20:58:55 +13:00
"start": 0,
"type": "Identifier"
},
"path": [],
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-24 20:58:55 +13:00
"type": "Name",
"type": "Name"
2025-03-06 18:01:24 -05:00
}
],
2025-03-20 11:06:27 +13:00
"end": 0,
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "ArrayExpression",
"type": "ArrayExpression"
}
2025-04-01 11:28:09 -07:00
},
{
"type": "LabeledArg",
"label": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": "radius",
"start": 0,
"type": "Identifier"
},
"arg": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"left": {
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": "mountingBoltDiameter",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
},
"operator": "/",
"right": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"raw": "2",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 2.0,
"suffix": "None"
}
},
"start": 0,
"type": "BinaryExpression",
"type": "BinaryExpression"
}
2025-03-06 18:01:24 -05:00
}
],
"callee": {
2025-03-24 20:58:55 +13:00
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-24 20:58:55 +13:00
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-24 20:58:55 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "circle",
2025-03-24 20:58:55 +13:00
"start": 0,
"type": "Identifier"
},
"path": [],
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-24 20:58:55 +13:00
"type": "Name"
2025-03-06 18:01:24 -05:00
},
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": null
},
{
"arguments": [
{
"type": "LabeledArg",
"label": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "instances",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "Identifier"
},
"arg": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"raw": "2",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-04-01 11:28:09 -07:00
"type": "Literal",
"type": "Literal",
"value": {
"value": 2.0,
"suffix": "None"
}
2025-03-06 18:01:24 -05:00
}
},
{
"type": "LabeledArg",
"label": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "distance",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "Identifier"
},
"arg": {
2025-04-01 11:28:09 -07:00
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": "mountingBoltPatternY",
"start": 0,
"type": "Identifier"
},
"path": [],
2025-03-20 11:06:27 +13:00
"start": 0,
2025-04-01 11:28:09 -07:00
"type": "Name",
"type": "Name"
2025-03-06 18:01:24 -05:00
}
2025-03-24 20:58:55 +13:00
},
2025-03-06 18:01:24 -05:00
{
"type": "LabeledArg",
"label": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "axis",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "Identifier"
},
"arg": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-06 18:01:24 -05:00
"elements": [
{
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-06 18:01:24 -05:00
"raw": "0",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "Literal",
"type": "Literal",
"value": {
"value": 0.0,
"suffix": "None"
}
},
{
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"raw": "1",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-04-01 11:28:09 -07:00
"type": "Literal",
"type": "Literal",
"value": {
"value": 1.0,
"suffix": "None"
}
2025-03-06 18:01:24 -05:00
}
],
2025-03-20 11:06:27 +13:00
"end": 0,
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "ArrayExpression",
"type": "ArrayExpression"
}
}
],
"callee": {
2025-03-24 20:58:55 +13:00
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-24 20:58:55 +13:00
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-24 20:58:55 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "patternLinear2d",
2025-03-24 20:58:55 +13:00
"start": 0,
"type": "Identifier"
},
"path": [],
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-24 20:58:55 +13:00
"type": "Name"
2025-03-06 18:01:24 -05:00
},
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "CallExpressionKw",
"type": "CallExpressionKw",
2025-04-01 11:28:09 -07:00
"unlabeled": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
"start": 0,
2025-04-01 11:28:09 -07:00
"type": "PipeSubstitution",
"type": "PipeSubstitution"
}
2025-03-06 18:01:24 -05:00
},
{
"arguments": [
{
2025-04-01 11:28:09 -07:00
"type": "LabeledArg",
"label": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": "length",
"start": 0,
"type": "Identifier"
},
"arg": {
"argument": {
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "thickness",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "Identifier"
},
2025-04-01 11:28:09 -07:00
"path": [],
2025-03-24 20:58:55 +13:00
"start": 0,
2025-04-01 11:28:09 -07:00
"type": "Name",
"type": "Name"
2025-03-24 20:58:55 +13:00
},
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"operator": "-",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-04-01 11:28:09 -07:00
"type": "UnaryExpression",
"type": "UnaryExpression"
}
2025-03-06 18:01:24 -05:00
}
],
"callee": {
2025-03-24 20:58:55 +13:00
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-24 20:58:55 +13:00
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-24 20:58:55 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "extrude",
2025-03-24 20:58:55 +13:00
"start": 0,
"type": "Identifier"
},
"path": [],
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-24 20:58:55 +13:00
"type": "Name"
2025-03-06 18:01:24 -05:00
},
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
"start": 0,
2025-04-01 11:28:09 -07:00
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": null
}
],
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"nonCodeMeta": {
"nonCodeNodes": {
"3": [
{
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"start": 0,
"type": "NonCodeNode",
"value": {
"type": "newLineBlockComment",
"value": "Cut the bolt pattern in the right base flange",
"style": "line"
}
}
]
2025-03-06 18:01:24 -05:00
},
2025-04-01 11:28:09 -07:00
"startNodes": []
},
"start": 0,
"type": "PipeExpression",
"type": "PipeExpression"
},
"start": 0,
"type": "VariableDeclarator"
},
"end": 0,
"kind": "const",
"start": 0,
"type": "VariableDeclaration",
"type": "VariableDeclaration"
},
{
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"declaration": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"id": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": "rightFlangeBoltPattern",
"start": 0,
"type": "Identifier"
},
"init": {
"body": [
2025-03-06 18:01:24 -05:00
{
2025-04-01 11:28:09 -07:00
"arguments": [
{
2025-04-14 05:58:19 -04:00
"type": "LabeledArg",
"label": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-14 05:58:19 -04:00
"name": "face",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-04-01 11:28:09 -07:00
"type": "Identifier"
2025-03-06 18:01:24 -05:00
},
2025-04-14 05:58:19 -04:00
"arg": {
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
2025-04-14 05:58:19 -04:00
"name": {
"commentStart": 0,
"end": 0,
"name": "seg06",
"start": 0,
"type": "Identifier"
},
"path": [],
2025-04-01 11:28:09 -07:00
"start": 0,
2025-04-14 05:58:19 -04:00
"type": "Name",
"type": "Name"
}
2025-03-06 18:01:24 -05:00
}
],
"callee": {
2025-03-24 20:58:55 +13:00
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-24 20:58:55 +13:00
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-24 20:58:55 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "startSketchOn",
2025-03-24 20:58:55 +13:00
"start": 0,
"type": "Identifier"
},
"path": [],
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-24 20:58:55 +13:00
"type": "Name"
2025-03-06 18:01:24 -05:00
},
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
"start": 0,
2025-04-14 05:58:19 -04:00
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "bracketProfile",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
}
2025-03-06 18:01:24 -05:00
},
{
"arguments": [
{
"type": "LabeledArg",
"label": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "center",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "Identifier"
},
"arg": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"elements": [
{
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"left": {
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": "mountingBoltPatternX",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
},
"operator": "/",
"right": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"raw": "2",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 2.0,
"suffix": "None"
}
},
"start": 0,
"type": "BinaryExpression",
"type": "BinaryExpression"
},
{
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": "overhang",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
}
],
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"start": 0,
"type": "ArrayExpression",
"type": "ArrayExpression"
}
},
{
"type": "LabeledArg",
"label": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": "radius",
"start": 0,
"type": "Identifier"
},
"arg": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"left": {
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-24 20:58:55 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": "mountingBoltDiameter",
"start": 0,
"type": "Identifier"
},
"path": [],
2025-03-24 20:58:55 +13:00
"start": 0,
2025-04-01 11:28:09 -07:00
"type": "Name",
"type": "Name"
},
"operator": "/",
"right": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"raw": "2",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 2.0,
"suffix": "None"
}
2025-03-24 20:58:55 +13:00
},
2025-03-20 11:06:27 +13:00
"start": 0,
2025-04-01 11:28:09 -07:00
"type": "BinaryExpression",
"type": "BinaryExpression"
2025-03-06 18:01:24 -05:00
}
}
],
"callee": {
2025-03-24 20:58:55 +13:00
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-24 20:58:55 +13:00
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-24 20:58:55 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "circle",
2025-03-24 20:58:55 +13:00
"start": 0,
"type": "Identifier"
},
"path": [],
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-24 20:58:55 +13:00
"type": "Name"
2025-03-06 18:01:24 -05:00
},
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": null
},
{
"arguments": [
{
"type": "LabeledArg",
"label": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "instances",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "Identifier"
},
"arg": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"raw": "2",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "Literal",
"type": "Literal",
"value": {
2025-04-01 11:28:09 -07:00
"value": 2.0,
2025-03-06 18:01:24 -05:00
"suffix": "None"
}
}
},
{
"type": "LabeledArg",
"label": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "distance",
"start": 0,
"type": "Identifier"
},
"arg": {
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": "mountingBoltPatternY",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
}
},
{
"type": "LabeledArg",
"label": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": "axis",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "Identifier"
},
"arg": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-06 18:01:24 -05:00
"elements": [
{
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"raw": "0",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-04-01 11:28:09 -07:00
"type": "Literal",
"type": "Literal",
"value": {
"value": 0.0,
"suffix": "None"
}
2025-03-06 18:01:24 -05:00
},
{
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"raw": "1",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-04-01 11:28:09 -07:00
"type": "Literal",
"type": "Literal",
"value": {
"value": 1.0,
"suffix": "None"
}
2025-03-06 18:01:24 -05:00
}
],
2025-03-20 11:06:27 +13:00
"end": 0,
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "ArrayExpression",
"type": "ArrayExpression"
}
}
],
"callee": {
2025-03-24 20:58:55 +13:00
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-24 20:58:55 +13:00
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-24 20:58:55 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "patternLinear2d",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name"
},
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"start": 0,
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"start": 0,
"type": "PipeSubstitution",
"type": "PipeSubstitution"
}
},
{
"arguments": [
{
"type": "LabeledArg",
"label": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": "length",
"start": 0,
"type": "Identifier"
},
"arg": {
"argument": {
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": "thickness",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
},
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"operator": "-",
"start": 0,
"type": "UnaryExpression",
"type": "UnaryExpression"
}
}
],
"callee": {
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": "extrude",
2025-03-24 20:58:55 +13:00
"start": 0,
"type": "Identifier"
},
"path": [],
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-24 20:58:55 +13:00
"type": "Name"
2025-03-06 18:01:24 -05:00
},
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": null
}
],
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"nonCodeMeta": {
"nonCodeNodes": {
"3": [
{
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"start": 0,
"type": "NonCodeNode",
"value": {
"type": "newLineBlockComment",
"value": "Provision the top flange with holes to mount an object",
"style": "line"
}
}
]
},
"startNodes": []
},
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "PipeExpression",
"type": "PipeExpression"
},
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "VariableDeclarator"
},
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-06 18:01:24 -05:00
"kind": "const",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "VariableDeclaration",
"type": "VariableDeclaration"
},
{
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-06 18:01:24 -05:00
"declaration": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-06 18:01:24 -05:00
"id": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "topFlangeBoltPattern",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "Identifier"
},
"init": {
"body": [
{
"arguments": [
{
2025-04-14 05:58:19 -04:00
"type": "LabeledArg",
"label": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-26 08:53:34 -07:00
"end": 0,
2025-04-14 05:58:19 -04:00
"name": "face",
2025-03-26 08:53:34 -07:00
"start": 0,
"type": "Identifier"
},
2025-04-14 05:58:19 -04:00
"arg": {
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
2025-04-14 05:58:19 -04:00
"name": {
"commentStart": 0,
"end": 0,
"name": "seg05",
"start": 0,
"type": "Identifier"
},
"path": [],
2025-04-01 11:28:09 -07:00
"start": 0,
2025-04-14 05:58:19 -04:00
"type": "Name",
"type": "Name"
}
2025-03-06 18:01:24 -05:00
}
],
"callee": {
2025-03-24 20:58:55 +13:00
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-24 20:58:55 +13:00
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-24 20:58:55 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "startSketchOn",
2025-03-24 20:58:55 +13:00
"start": 0,
"type": "Identifier"
},
"path": [],
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-24 20:58:55 +13:00
"type": "Name"
2025-03-06 18:01:24 -05:00
},
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
"start": 0,
2025-04-14 05:58:19 -04:00
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "bracketProfile",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
}
2025-03-06 18:01:24 -05:00
},
{
"arguments": [
{
"type": "LabeledArg",
"label": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "center",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "Identifier"
},
"arg": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-06 18:01:24 -05:00
"elements": [
{
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"left": {
"argument": {
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": "componentBoltPatternX",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
},
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"operator": "-",
"start": 0,
"type": "UnaryExpression",
"type": "UnaryExpression"
},
"operator": "/",
"right": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"raw": "2",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 2.0,
"suffix": "None"
}
},
2025-03-20 11:06:27 +13:00
"start": 0,
2025-04-01 11:28:09 -07:00
"type": "BinaryExpression",
"type": "BinaryExpression"
2025-03-06 18:01:24 -05:00
},
{
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"left": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"left": {
"argument": {
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": "componentBoltPatternY",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
},
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"operator": "-",
"start": 0,
"type": "UnaryExpression",
"type": "UnaryExpression"
},
"operator": "/",
"right": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"raw": "2",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 2.0,
"suffix": "None"
}
},
"start": 0,
"type": "BinaryExpression",
"type": "BinaryExpression"
},
"operator": "+",
"right": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-24 20:58:55 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"left": {
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": "flangeExtrusion",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
},
"operator": "/",
"right": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"raw": "2",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 2.0,
"suffix": "None"
}
},
2025-03-24 20:58:55 +13:00
"start": 0,
2025-04-01 11:28:09 -07:00
"type": "BinaryExpression",
"type": "BinaryExpression"
2025-03-24 20:58:55 +13:00
},
2025-03-20 11:06:27 +13:00
"start": 0,
2025-04-01 11:28:09 -07:00
"type": "BinaryExpression",
"type": "BinaryExpression"
2025-03-06 18:01:24 -05:00
}
],
2025-03-20 11:06:27 +13:00
"end": 0,
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "ArrayExpression",
"type": "ArrayExpression"
}
2025-04-01 11:28:09 -07:00
},
{
"type": "LabeledArg",
"label": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": "radius",
"start": 0,
"type": "Identifier"
},
"arg": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"left": {
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": "componentBoltDiameter",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
},
"operator": "/",
"right": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"raw": "2",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 2.0,
"suffix": "None"
}
},
"start": 0,
"type": "BinaryExpression",
"type": "BinaryExpression"
}
2025-03-06 18:01:24 -05:00
}
],
"callee": {
2025-03-24 20:58:55 +13:00
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-24 20:58:55 +13:00
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-24 20:58:55 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "circle",
2025-03-24 20:58:55 +13:00
"start": 0,
"type": "Identifier"
},
"path": [],
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-24 20:58:55 +13:00
"type": "Name"
2025-03-06 18:01:24 -05:00
},
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": null
},
{
"arguments": [
{
"type": "LabeledArg",
"label": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "instances",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "Identifier"
},
"arg": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"raw": "2",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-04-01 11:28:09 -07:00
"type": "Literal",
"type": "Literal",
"value": {
"value": 2.0,
"suffix": "None"
}
2025-03-06 18:01:24 -05:00
}
},
{
"type": "LabeledArg",
"label": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "distance",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "Identifier"
},
"arg": {
2025-04-01 11:28:09 -07:00
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": "componentBoltPatternX",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
}
2025-03-24 20:58:55 +13:00
},
2025-03-06 18:01:24 -05:00
{
"type": "LabeledArg",
"label": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "axis",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "Identifier"
},
"arg": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-06 18:01:24 -05:00
"elements": [
{
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"raw": "1",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "Literal",
"type": "Literal",
"value": {
2025-04-01 11:28:09 -07:00
"value": 1.0,
2025-03-06 18:01:24 -05:00
"suffix": "None"
}
},
{
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"raw": "0",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-04-01 11:28:09 -07:00
"type": "Literal",
"type": "Literal",
"value": {
"value": 0.0,
"suffix": "None"
}
2025-03-06 18:01:24 -05:00
}
],
2025-03-20 11:06:27 +13:00
"end": 0,
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "ArrayExpression",
"type": "ArrayExpression"
}
}
],
"callee": {
2025-03-24 20:58:55 +13:00
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-24 20:58:55 +13:00
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-24 20:58:55 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "patternLinear2d",
2025-03-24 20:58:55 +13:00
"start": 0,
"type": "Identifier"
},
"path": [],
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-24 20:58:55 +13:00
"type": "Name"
2025-03-06 18:01:24 -05:00
},
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "CallExpressionKw",
"type": "CallExpressionKw",
2025-04-01 11:28:09 -07:00
"unlabeled": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
"start": 0,
2025-04-01 11:28:09 -07:00
"type": "PipeSubstitution",
"type": "PipeSubstitution"
}
2025-03-06 18:01:24 -05:00
},
{
"arguments": [
{
2025-04-01 11:28:09 -07:00
"type": "LabeledArg",
"label": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": "instances",
"start": 0,
"type": "Identifier"
},
"arg": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"raw": "2",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 2.0,
"suffix": "None"
2025-03-06 18:01:24 -05:00
}
2025-04-01 11:28:09 -07:00
}
},
{
"type": "LabeledArg",
"label": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": "distance",
"start": 0,
"type": "Identifier"
},
"arg": {
2025-03-24 20:58:55 +13:00
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-24 20:58:55 +13:00
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-24 20:58:55 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "componentBoltPatternY",
2025-03-24 20:58:55 +13:00
"start": 0,
"type": "Identifier"
},
"path": [],
2025-03-20 11:06:27 +13:00
"start": 0,
2025-04-01 11:28:09 -07:00
"type": "Name",
2025-03-24 20:58:55 +13:00
"type": "Name"
2025-04-01 11:28:09 -07:00
}
2025-03-24 20:58:55 +13:00
},
2025-03-06 18:01:24 -05:00
{
2025-04-01 11:28:09 -07:00
"type": "LabeledArg",
"label": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": "axis",
"start": 0,
"type": "Identifier"
},
"arg": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"elements": [
{
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"raw": "0",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-04-01 11:28:09 -07:00
"type": "Literal",
"type": "Literal",
"value": {
"value": 0.0,
"suffix": "None"
}
2025-03-06 18:01:24 -05:00
},
2025-04-01 11:28:09 -07:00
{
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"raw": "1",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-04-01 11:28:09 -07:00
"type": "Literal",
"type": "Literal",
"value": {
"value": 1.0,
"suffix": "None"
}
2025-03-06 18:01:24 -05:00
}
2025-04-01 11:28:09 -07:00
],
"end": 0,
2025-03-20 11:06:27 +13:00
"start": 0,
2025-04-01 11:28:09 -07:00
"type": "ArrayExpression",
"type": "ArrayExpression"
}
2025-03-06 18:01:24 -05:00
}
],
"callee": {
2025-03-24 20:58:55 +13:00
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-24 20:58:55 +13:00
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-24 20:58:55 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "patternLinear2d",
2025-03-24 20:58:55 +13:00
"start": 0,
"type": "Identifier"
},
"path": [],
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-24 20:58:55 +13:00
"type": "Name"
2025-03-06 18:01:24 -05:00
},
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
"start": 0,
2025-04-01 11:28:09 -07:00
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"start": 0,
"type": "PipeSubstitution",
"type": "PipeSubstitution"
}
2025-03-06 18:01:24 -05:00
},
{
"arguments": [
{
"type": "LabeledArg",
"label": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-06 18:01:24 -05:00
"name": "length",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "Identifier"
},
"arg": {
2025-04-01 11:28:09 -07:00
"argument": {
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-24 20:58:55 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": "thickness",
"start": 0,
"type": "Identifier"
},
"path": [],
2025-03-24 20:58:55 +13:00
"start": 0,
2025-04-01 11:28:09 -07:00
"type": "Name",
"type": "Name"
2025-03-24 20:58:55 +13:00
},
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"operator": "-",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-04-01 11:28:09 -07:00
"type": "UnaryExpression",
"type": "UnaryExpression"
2025-03-06 18:01:24 -05:00
}
}
],
"callee": {
2025-03-24 20:58:55 +13:00
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-24 20:58:55 +13:00
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-24 20:58:55 +13:00
"end": 0,
"name": "extrude",
"start": 0,
"type": "Identifier"
},
"path": [],
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-24 20:58:55 +13:00
"type": "Name"
2025-03-06 18:01:24 -05:00
},
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": null
2025-04-01 11:28:09 -07:00
}
],
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"nonCodeMeta": {
"nonCodeNodes": {
"4": [
{
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"start": 0,
"type": "NonCodeNode",
"value": {
"type": "newLineBlockComment",
"value": "Place a hole at the center of the component bolt pattern to reduce mass",
"style": "line"
}
}
]
2025-03-06 18:01:24 -05:00
},
2025-04-01 11:28:09 -07:00
"startNodes": []
},
"start": 0,
"type": "PipeExpression",
"type": "PipeExpression"
},
"start": 0,
"type": "VariableDeclarator"
},
"end": 0,
"kind": "const",
"start": 0,
"type": "VariableDeclaration",
"type": "VariableDeclaration"
},
{
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"declaration": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"id": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": "centeredHole",
"start": 0,
"type": "Identifier"
},
"init": {
"body": [
2025-03-06 18:01:24 -05:00
{
"arguments": [
{
2025-04-14 05:58:19 -04:00
"type": "LabeledArg",
"label": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-14 05:58:19 -04:00
"name": "face",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "Identifier"
},
2025-04-14 05:58:19 -04:00
"arg": {
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-14 05:58:19 -04:00
"name": {
"commentStart": 0,
"end": 0,
"name": "seg05",
"start": 0,
"type": "Identifier"
},
"path": [],
2025-03-20 11:06:27 +13:00
"start": 0,
2025-04-14 05:58:19 -04:00
"type": "Name",
"type": "Name"
}
2025-04-01 11:28:09 -07:00
}
],
"callee": {
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": "startSketchOn",
"start": 0,
"type": "Identifier"
2025-03-06 18:01:24 -05:00
},
2025-04-01 11:28:09 -07:00
"path": [],
"start": 0,
"type": "Name"
},
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"start": 0,
2025-04-14 05:58:19 -04:00
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "bracketProfile",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
}
2025-04-01 11:28:09 -07:00
},
{
"arguments": [
2025-03-06 18:01:24 -05:00
{
"type": "LabeledArg",
"label": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "center",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "Identifier"
},
"arg": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-06 18:01:24 -05:00
"elements": [
{
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"raw": "0",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-04-01 11:28:09 -07:00
"type": "Literal",
"type": "Literal",
"value": {
"value": 0.0,
"suffix": "None"
}
2025-03-06 18:01:24 -05:00
},
{
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"left": {
2025-03-24 20:58:55 +13:00
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-24 20:58:55 +13:00
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-24 20:58:55 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "flangeExtrusion",
2025-03-24 20:58:55 +13:00
"start": 0,
"type": "Identifier"
},
"path": [],
2025-03-20 11:06:27 +13:00
"start": 0,
2025-04-01 11:28:09 -07:00
"type": "Name",
2025-03-24 20:58:55 +13:00
"type": "Name"
2025-03-06 18:01:24 -05:00
},
2025-04-01 11:28:09 -07:00
"operator": "/",
"right": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"raw": "2",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 2.0,
"suffix": "None"
}
},
2025-03-20 11:06:27 +13:00
"start": 0,
2025-04-01 11:28:09 -07:00
"type": "BinaryExpression",
"type": "BinaryExpression"
2025-03-06 18:01:24 -05:00
}
],
2025-03-20 11:06:27 +13:00
"end": 0,
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "ArrayExpression",
"type": "ArrayExpression"
}
2025-04-01 11:28:09 -07:00
},
{
"type": "LabeledArg",
"label": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": "radius",
"start": 0,
"type": "Identifier"
},
"arg": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"raw": "0.75",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 0.75,
"suffix": "None"
}
}
2025-03-06 18:01:24 -05:00
}
],
"callee": {
2025-03-24 20:58:55 +13:00
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-24 20:58:55 +13:00
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-24 20:58:55 +13:00
"end": 0,
2025-04-01 11:28:09 -07:00
"name": "circle",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name"
},
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"start": 0,
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": null
},
{
"arguments": [
{
"type": "LabeledArg",
"label": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": "length",
"start": 0,
"type": "Identifier"
},
"arg": {
"argument": {
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": "thickness",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name",
"type": "Name"
},
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"operator": "-",
"start": 0,
"type": "UnaryExpression",
"type": "UnaryExpression"
}
}
],
"callee": {
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-04-01 11:28:09 -07:00
"end": 0,
"name": "extrude",
2025-03-24 20:58:55 +13:00
"start": 0,
"type": "Identifier"
},
"path": [],
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-24 20:58:55 +13:00
"type": "Name"
2025-03-06 18:01:24 -05:00
},
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": null
}
],
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "PipeExpression",
"type": "PipeExpression"
},
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "VariableDeclarator"
},
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-06 18:01:24 -05:00
"kind": "const",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "VariableDeclaration",
"type": "VariableDeclaration"
}
],
2025-03-20 16:23:20 +13:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-06 18:01:24 -05:00
"innerAttrs": [
{
2025-03-20 16:23:20 +13:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-06 18:01:24 -05:00
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-06 18:01:24 -05:00
"name": "settings",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "Identifier"
},
2025-03-20 16:23:20 +13:00
"preComments": [
"// Sheet Metal Bracket",
"// A component typically made from flat sheet metal through various manufacturing processes such as bending, punching, cutting, and forming. These brackets are used to support, attach, or mount other hardware components, often providing a structural or functional base for assembly.",
"",
"",
2025-04-04 11:03:13 -07:00
"// Set units"
2025-03-20 16:23:20 +13:00
],
2025-03-06 18:01:24 -05:00
"properties": [
{
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-06 18:01:24 -05:00
"key": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-06 18:01:24 -05:00
"name": "defaultLengthUnit",
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "Identifier"
},
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "ObjectProperty",
"value": {
2025-03-24 20:58:55 +13:00
"abs_path": false,
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
2025-03-24 20:58:55 +13:00
"name": {
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-24 20:58:55 +13:00
"end": 0,
"name": "in",
"start": 0,
"type": "Identifier"
},
"path": [],
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-24 20:58:55 +13:00
"type": "Name",
"type": "Name"
2025-03-06 18:01:24 -05:00
}
}
],
2025-03-20 11:06:27 +13:00
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "Annotation"
}
],
"nonCodeMeta": {
2025-04-01 11:28:09 -07:00
"nonCodeNodes": {},
2025-03-06 18:01:24 -05:00
"startNodes": [
{
2025-04-07 17:42:15 +12:00
"commentStart": 0,
2025-03-20 11:06:27 +13:00
"end": 0,
"start": 0,
2025-03-06 18:01:24 -05:00
"type": "NonCodeNode",
"value": {
"type": "newLine"
}
}
]
},
"start": 0
}
}