* improve KCL Samples & .gitignore * update block and car wheel assembly * update flange and lego, delete flange xy * artifacts Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * scale Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * docs Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> --------- Signed-off-by: Jess Frazelle <github@jessfraz.com> Co-authored-by: Jess Frazelle <github@jessfraz.com>
		
			
				
	
	
		
			3024 lines
		
	
	
		
			98 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			3024 lines
		
	
	
		
			98 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
---
 | 
						|
source: kcl-lib/src/simulation_tests.rs
 | 
						|
description: Result of parsing ball-bearing.kcl
 | 
						|
---
 | 
						|
{
 | 
						|
  "Ok": {
 | 
						|
    "body": [
 | 
						|
      {
 | 
						|
        "declaration": {
 | 
						|
          "end": 408,
 | 
						|
          "id": {
 | 
						|
            "end": 400,
 | 
						|
            "name": "outsideDiameter",
 | 
						|
            "start": 385,
 | 
						|
            "type": "Identifier"
 | 
						|
          },
 | 
						|
          "init": {
 | 
						|
            "end": 408,
 | 
						|
            "raw": "1.625",
 | 
						|
            "start": 403,
 | 
						|
            "type": "Literal",
 | 
						|
            "type": "Literal",
 | 
						|
            "value": {
 | 
						|
              "value": 1.625,
 | 
						|
              "suffix": "None"
 | 
						|
            }
 | 
						|
          },
 | 
						|
          "start": 385,
 | 
						|
          "type": "VariableDeclarator"
 | 
						|
        },
 | 
						|
        "end": 408,
 | 
						|
        "kind": "const",
 | 
						|
        "start": 385,
 | 
						|
        "type": "VariableDeclaration",
 | 
						|
        "type": "VariableDeclaration"
 | 
						|
      },
 | 
						|
      {
 | 
						|
        "declaration": {
 | 
						|
          "end": 425,
 | 
						|
          "id": {
 | 
						|
            "end": 418,
 | 
						|
            "name": "sphereDia",
 | 
						|
            "start": 409,
 | 
						|
            "type": "Identifier"
 | 
						|
          },
 | 
						|
          "init": {
 | 
						|
            "end": 425,
 | 
						|
            "raw": "0.25",
 | 
						|
            "start": 421,
 | 
						|
            "type": "Literal",
 | 
						|
            "type": "Literal",
 | 
						|
            "value": {
 | 
						|
              "value": 0.25,
 | 
						|
              "suffix": "None"
 | 
						|
            }
 | 
						|
          },
 | 
						|
          "start": 409,
 | 
						|
          "type": "VariableDeclarator"
 | 
						|
        },
 | 
						|
        "end": 425,
 | 
						|
        "kind": "const",
 | 
						|
        "start": 409,
 | 
						|
        "type": "VariableDeclaration",
 | 
						|
        "type": "VariableDeclaration"
 | 
						|
      },
 | 
						|
      {
 | 
						|
        "declaration": {
 | 
						|
          "end": 441,
 | 
						|
          "id": {
 | 
						|
            "end": 434,
 | 
						|
            "name": "shaftDia",
 | 
						|
            "start": 426,
 | 
						|
            "type": "Identifier"
 | 
						|
          },
 | 
						|
          "init": {
 | 
						|
            "end": 441,
 | 
						|
            "raw": "0.75",
 | 
						|
            "start": 437,
 | 
						|
            "type": "Literal",
 | 
						|
            "type": "Literal",
 | 
						|
            "value": {
 | 
						|
              "value": 0.75,
 | 
						|
              "suffix": "None"
 | 
						|
            }
 | 
						|
          },
 | 
						|
          "start": 426,
 | 
						|
          "type": "VariableDeclarator"
 | 
						|
        },
 | 
						|
        "end": 441,
 | 
						|
        "kind": "const",
 | 
						|
        "start": 426,
 | 
						|
        "type": "VariableDeclaration",
 | 
						|
        "type": "VariableDeclaration"
 | 
						|
      },
 | 
						|
      {
 | 
						|
        "declaration": {
 | 
						|
          "end": 466,
 | 
						|
          "id": {
 | 
						|
            "end": 458,
 | 
						|
            "name": "overallThickness",
 | 
						|
            "start": 442,
 | 
						|
            "type": "Identifier"
 | 
						|
          },
 | 
						|
          "init": {
 | 
						|
            "end": 466,
 | 
						|
            "raw": "0.313",
 | 
						|
            "start": 461,
 | 
						|
            "type": "Literal",
 | 
						|
            "type": "Literal",
 | 
						|
            "value": {
 | 
						|
              "value": 0.313,
 | 
						|
              "suffix": "None"
 | 
						|
            }
 | 
						|
          },
 | 
						|
          "start": 442,
 | 
						|
          "type": "VariableDeclarator"
 | 
						|
        },
 | 
						|
        "end": 466,
 | 
						|
        "kind": "const",
 | 
						|
        "start": 442,
 | 
						|
        "type": "VariableDeclaration",
 | 
						|
        "type": "VariableDeclaration"
 | 
						|
      },
 | 
						|
      {
 | 
						|
        "declaration": {
 | 
						|
          "end": 488,
 | 
						|
          "id": {
 | 
						|
            "end": 480,
 | 
						|
            "name": "wallThickness",
 | 
						|
            "start": 467,
 | 
						|
            "type": "Identifier"
 | 
						|
          },
 | 
						|
          "init": {
 | 
						|
            "end": 488,
 | 
						|
            "raw": "0.100",
 | 
						|
            "start": 483,
 | 
						|
            "type": "Literal",
 | 
						|
            "type": "Literal",
 | 
						|
            "value": {
 | 
						|
              "value": 0.1,
 | 
						|
              "suffix": "None"
 | 
						|
            }
 | 
						|
          },
 | 
						|
          "start": 467,
 | 
						|
          "type": "VariableDeclarator"
 | 
						|
        },
 | 
						|
        "end": 488,
 | 
						|
        "kind": "const",
 | 
						|
        "start": 467,
 | 
						|
        "type": "VariableDeclaration",
 | 
						|
        "type": "VariableDeclaration"
 | 
						|
      },
 | 
						|
      {
 | 
						|
        "declaration": {
 | 
						|
          "end": 508,
 | 
						|
          "id": {
 | 
						|
            "end": 503,
 | 
						|
            "name": "overHangLength",
 | 
						|
            "start": 489,
 | 
						|
            "type": "Identifier"
 | 
						|
          },
 | 
						|
          "init": {
 | 
						|
            "end": 508,
 | 
						|
            "raw": ".3",
 | 
						|
            "start": 506,
 | 
						|
            "type": "Literal",
 | 
						|
            "type": "Literal",
 | 
						|
            "value": {
 | 
						|
              "value": 0.3,
 | 
						|
              "suffix": "None"
 | 
						|
            }
 | 
						|
          },
 | 
						|
          "start": 489,
 | 
						|
          "type": "VariableDeclarator"
 | 
						|
        },
 | 
						|
        "end": 508,
 | 
						|
        "kind": "const",
 | 
						|
        "start": 489,
 | 
						|
        "type": "VariableDeclaration",
 | 
						|
        "type": "VariableDeclaration"
 | 
						|
      },
 | 
						|
      {
 | 
						|
        "declaration": {
 | 
						|
          "end": 520,
 | 
						|
          "id": {
 | 
						|
            "end": 515,
 | 
						|
            "name": "nBalls",
 | 
						|
            "start": 509,
 | 
						|
            "type": "Identifier"
 | 
						|
          },
 | 
						|
          "init": {
 | 
						|
            "end": 520,
 | 
						|
            "raw": "10",
 | 
						|
            "start": 518,
 | 
						|
            "type": "Literal",
 | 
						|
            "type": "Literal",
 | 
						|
            "value": {
 | 
						|
              "value": 10.0,
 | 
						|
              "suffix": "None"
 | 
						|
            }
 | 
						|
          },
 | 
						|
          "start": 509,
 | 
						|
          "type": "VariableDeclarator"
 | 
						|
        },
 | 
						|
        "end": 520,
 | 
						|
        "kind": "const",
 | 
						|
        "start": 509,
 | 
						|
        "type": "VariableDeclaration",
 | 
						|
        "type": "VariableDeclaration"
 | 
						|
      },
 | 
						|
      {
 | 
						|
        "declaration": {
 | 
						|
          "end": 547,
 | 
						|
          "id": {
 | 
						|
            "end": 531,
 | 
						|
            "name": "chainWidth",
 | 
						|
            "start": 521,
 | 
						|
            "type": "Identifier"
 | 
						|
          },
 | 
						|
          "init": {
 | 
						|
            "end": 547,
 | 
						|
            "left": {
 | 
						|
              "end": 543,
 | 
						|
              "name": "sphereDia",
 | 
						|
              "start": 534,
 | 
						|
              "type": "Identifier",
 | 
						|
              "type": "Identifier"
 | 
						|
            },
 | 
						|
            "operator": "/",
 | 
						|
            "right": {
 | 
						|
              "end": 547,
 | 
						|
              "raw": "2",
 | 
						|
              "start": 546,
 | 
						|
              "type": "Literal",
 | 
						|
              "type": "Literal",
 | 
						|
              "value": {
 | 
						|
                "value": 2.0,
 | 
						|
                "suffix": "None"
 | 
						|
              }
 | 
						|
            },
 | 
						|
            "start": 534,
 | 
						|
            "type": "BinaryExpression",
 | 
						|
            "type": "BinaryExpression"
 | 
						|
          },
 | 
						|
          "start": 521,
 | 
						|
          "type": "VariableDeclarator"
 | 
						|
        },
 | 
						|
        "end": 547,
 | 
						|
        "kind": "const",
 | 
						|
        "start": 521,
 | 
						|
        "type": "VariableDeclaration",
 | 
						|
        "type": "VariableDeclaration"
 | 
						|
      },
 | 
						|
      {
 | 
						|
        "declaration": {
 | 
						|
          "end": 578,
 | 
						|
          "id": {
 | 
						|
            "end": 562,
 | 
						|
            "name": "chainThickness",
 | 
						|
            "start": 548,
 | 
						|
            "type": "Identifier"
 | 
						|
          },
 | 
						|
          "init": {
 | 
						|
            "end": 578,
 | 
						|
            "left": {
 | 
						|
              "end": 574,
 | 
						|
              "name": "sphereDia",
 | 
						|
              "start": 565,
 | 
						|
              "type": "Identifier",
 | 
						|
              "type": "Identifier"
 | 
						|
            },
 | 
						|
            "operator": "/",
 | 
						|
            "right": {
 | 
						|
              "end": 578,
 | 
						|
              "raw": "8",
 | 
						|
              "start": 577,
 | 
						|
              "type": "Literal",
 | 
						|
              "type": "Literal",
 | 
						|
              "value": {
 | 
						|
                "value": 8.0,
 | 
						|
                "suffix": "None"
 | 
						|
              }
 | 
						|
            },
 | 
						|
            "start": 565,
 | 
						|
            "type": "BinaryExpression",
 | 
						|
            "type": "BinaryExpression"
 | 
						|
          },
 | 
						|
          "start": 548,
 | 
						|
          "type": "VariableDeclarator"
 | 
						|
        },
 | 
						|
        "end": 578,
 | 
						|
        "kind": "const",
 | 
						|
        "start": 548,
 | 
						|
        "type": "VariableDeclaration",
 | 
						|
        "type": "VariableDeclaration"
 | 
						|
      },
 | 
						|
      {
 | 
						|
        "declaration": {
 | 
						|
          "end": 607,
 | 
						|
          "id": {
 | 
						|
            "end": 591,
 | 
						|
            "name": "linkDiameter",
 | 
						|
            "start": 579,
 | 
						|
            "type": "Identifier"
 | 
						|
          },
 | 
						|
          "init": {
 | 
						|
            "end": 607,
 | 
						|
            "left": {
 | 
						|
              "end": 603,
 | 
						|
              "name": "sphereDia",
 | 
						|
              "start": 594,
 | 
						|
              "type": "Identifier",
 | 
						|
              "type": "Identifier"
 | 
						|
            },
 | 
						|
            "operator": "/",
 | 
						|
            "right": {
 | 
						|
              "end": 607,
 | 
						|
              "raw": "4",
 | 
						|
              "start": 606,
 | 
						|
              "type": "Literal",
 | 
						|
              "type": "Literal",
 | 
						|
              "value": {
 | 
						|
                "value": 4.0,
 | 
						|
                "suffix": "None"
 | 
						|
              }
 | 
						|
            },
 | 
						|
            "start": 594,
 | 
						|
            "type": "BinaryExpression",
 | 
						|
            "type": "BinaryExpression"
 | 
						|
          },
 | 
						|
          "start": 579,
 | 
						|
          "type": "VariableDeclarator"
 | 
						|
        },
 | 
						|
        "end": 607,
 | 
						|
        "kind": "const",
 | 
						|
        "start": 579,
 | 
						|
        "type": "VariableDeclaration",
 | 
						|
        "type": "VariableDeclaration"
 | 
						|
      },
 | 
						|
      {
 | 
						|
        "declaration": {
 | 
						|
          "end": 935,
 | 
						|
          "id": {
 | 
						|
            "end": 660,
 | 
						|
            "name": "insideWallSketch",
 | 
						|
            "start": 644,
 | 
						|
            "type": "Identifier"
 | 
						|
          },
 | 
						|
          "init": {
 | 
						|
            "body": [
 | 
						|
              {
 | 
						|
                "arguments": [
 | 
						|
                  {
 | 
						|
                    "arguments": [
 | 
						|
                      {
 | 
						|
                        "type": "LabeledArg",
 | 
						|
                        "label": {
 | 
						|
                          "end": 701,
 | 
						|
                          "name": "offset",
 | 
						|
                          "start": 695,
 | 
						|
                          "type": "Identifier"
 | 
						|
                        },
 | 
						|
                        "arg": {
 | 
						|
                          "end": 725,
 | 
						|
                          "left": {
 | 
						|
                            "argument": {
 | 
						|
                              "end": 721,
 | 
						|
                              "name": "overallThickness",
 | 
						|
                              "start": 705,
 | 
						|
                              "type": "Identifier",
 | 
						|
                              "type": "Identifier"
 | 
						|
                            },
 | 
						|
                            "end": 721,
 | 
						|
                            "operator": "-",
 | 
						|
                            "start": 704,
 | 
						|
                            "type": "UnaryExpression",
 | 
						|
                            "type": "UnaryExpression"
 | 
						|
                          },
 | 
						|
                          "operator": "/",
 | 
						|
                          "right": {
 | 
						|
                            "end": 725,
 | 
						|
                            "raw": "2",
 | 
						|
                            "start": 724,
 | 
						|
                            "type": "Literal",
 | 
						|
                            "type": "Literal",
 | 
						|
                            "value": {
 | 
						|
                              "value": 2.0,
 | 
						|
                              "suffix": "None"
 | 
						|
                            }
 | 
						|
                          },
 | 
						|
                          "start": 704,
 | 
						|
                          "type": "BinaryExpression",
 | 
						|
                          "type": "BinaryExpression"
 | 
						|
                        }
 | 
						|
                      }
 | 
						|
                    ],
 | 
						|
                    "callee": {
 | 
						|
                      "end": 688,
 | 
						|
                      "name": "offsetPlane",
 | 
						|
                      "start": 677,
 | 
						|
                      "type": "Identifier"
 | 
						|
                    },
 | 
						|
                    "end": 726,
 | 
						|
                    "start": 677,
 | 
						|
                    "type": "CallExpressionKw",
 | 
						|
                    "type": "CallExpressionKw",
 | 
						|
                    "unlabeled": {
 | 
						|
                      "end": 693,
 | 
						|
                      "raw": "\"XY\"",
 | 
						|
                      "start": 689,
 | 
						|
                      "type": "Literal",
 | 
						|
                      "type": "Literal",
 | 
						|
                      "value": "XY"
 | 
						|
                    }
 | 
						|
                  }
 | 
						|
                ],
 | 
						|
                "callee": {
 | 
						|
                  "end": 676,
 | 
						|
                  "name": "startSketchOn",
 | 
						|
                  "start": 663,
 | 
						|
                  "type": "Identifier"
 | 
						|
                },
 | 
						|
                "end": 727,
 | 
						|
                "start": 663,
 | 
						|
                "type": "CallExpression",
 | 
						|
                "type": "CallExpression"
 | 
						|
              },
 | 
						|
              {
 | 
						|
                "arguments": [
 | 
						|
                  {
 | 
						|
                    "type": "LabeledArg",
 | 
						|
                    "label": {
 | 
						|
                      "end": 754,
 | 
						|
                      "name": "center",
 | 
						|
                      "start": 748,
 | 
						|
                      "type": "Identifier"
 | 
						|
                    },
 | 
						|
                    "arg": {
 | 
						|
                      "elements": [
 | 
						|
                        {
 | 
						|
                          "end": 759,
 | 
						|
                          "raw": "0",
 | 
						|
                          "start": 758,
 | 
						|
                          "type": "Literal",
 | 
						|
                          "type": "Literal",
 | 
						|
                          "value": {
 | 
						|
                            "value": 0.0,
 | 
						|
                            "suffix": "None"
 | 
						|
                          }
 | 
						|
                        },
 | 
						|
                        {
 | 
						|
                          "end": 762,
 | 
						|
                          "raw": "0",
 | 
						|
                          "start": 761,
 | 
						|
                          "type": "Literal",
 | 
						|
                          "type": "Literal",
 | 
						|
                          "value": {
 | 
						|
                            "value": 0.0,
 | 
						|
                            "suffix": "None"
 | 
						|
                          }
 | 
						|
                        }
 | 
						|
                      ],
 | 
						|
                      "end": 763,
 | 
						|
                      "start": 757,
 | 
						|
                      "type": "ArrayExpression",
 | 
						|
                      "type": "ArrayExpression"
 | 
						|
                    }
 | 
						|
                  },
 | 
						|
                  {
 | 
						|
                    "type": "LabeledArg",
 | 
						|
                    "label": {
 | 
						|
                      "end": 778,
 | 
						|
                      "name": "radius",
 | 
						|
                      "start": 772,
 | 
						|
                      "type": "Identifier"
 | 
						|
                    },
 | 
						|
                    "arg": {
 | 
						|
                      "end": 809,
 | 
						|
                      "left": {
 | 
						|
                        "end": 793,
 | 
						|
                        "left": {
 | 
						|
                          "end": 789,
 | 
						|
                          "name": "shaftDia",
 | 
						|
                          "start": 781,
 | 
						|
                          "type": "Identifier",
 | 
						|
                          "type": "Identifier"
 | 
						|
                        },
 | 
						|
                        "operator": "/",
 | 
						|
                        "right": {
 | 
						|
                          "end": 793,
 | 
						|
                          "raw": "2",
 | 
						|
                          "start": 792,
 | 
						|
                          "type": "Literal",
 | 
						|
                          "type": "Literal",
 | 
						|
                          "value": {
 | 
						|
                            "value": 2.0,
 | 
						|
                            "suffix": "None"
 | 
						|
                          }
 | 
						|
                        },
 | 
						|
                        "start": 781,
 | 
						|
                        "type": "BinaryExpression",
 | 
						|
                        "type": "BinaryExpression"
 | 
						|
                      },
 | 
						|
                      "operator": "+",
 | 
						|
                      "right": {
 | 
						|
                        "end": 809,
 | 
						|
                        "name": "wallThickness",
 | 
						|
                        "start": 796,
 | 
						|
                        "type": "Identifier",
 | 
						|
                        "type": "Identifier"
 | 
						|
                      },
 | 
						|
                      "start": 781,
 | 
						|
                      "type": "BinaryExpression",
 | 
						|
                      "type": "BinaryExpression"
 | 
						|
                    }
 | 
						|
                  }
 | 
						|
                ],
 | 
						|
                "callee": {
 | 
						|
                  "end": 739,
 | 
						|
                  "name": "circle",
 | 
						|
                  "start": 733,
 | 
						|
                  "type": "Identifier"
 | 
						|
                },
 | 
						|
                "end": 816,
 | 
						|
                "start": 733,
 | 
						|
                "type": "CallExpressionKw",
 | 
						|
                "type": "CallExpressionKw",
 | 
						|
                "unlabeled": null
 | 
						|
              },
 | 
						|
              {
 | 
						|
                "arguments": [
 | 
						|
                  {
 | 
						|
                    "arguments": [
 | 
						|
                      {
 | 
						|
                        "type": "LabeledArg",
 | 
						|
                        "label": {
 | 
						|
                          "end": 848,
 | 
						|
                          "name": "center",
 | 
						|
                          "start": 842,
 | 
						|
                          "type": "Identifier"
 | 
						|
                        },
 | 
						|
                        "arg": {
 | 
						|
                          "elements": [
 | 
						|
                            {
 | 
						|
                              "end": 853,
 | 
						|
                              "raw": "0",
 | 
						|
                              "start": 852,
 | 
						|
                              "type": "Literal",
 | 
						|
                              "type": "Literal",
 | 
						|
                              "value": {
 | 
						|
                                "value": 0.0,
 | 
						|
                                "suffix": "None"
 | 
						|
                              }
 | 
						|
                            },
 | 
						|
                            {
 | 
						|
                              "end": 856,
 | 
						|
                              "raw": "0",
 | 
						|
                              "start": 855,
 | 
						|
                              "type": "Literal",
 | 
						|
                              "type": "Literal",
 | 
						|
                              "value": {
 | 
						|
                                "value": 0.0,
 | 
						|
                                "suffix": "None"
 | 
						|
                              }
 | 
						|
                            }
 | 
						|
                          ],
 | 
						|
                          "end": 857,
 | 
						|
                          "start": 851,
 | 
						|
                          "type": "ArrayExpression",
 | 
						|
                          "type": "ArrayExpression"
 | 
						|
                        }
 | 
						|
                      },
 | 
						|
                      {
 | 
						|
                        "type": "LabeledArg",
 | 
						|
                        "label": {
 | 
						|
                          "end": 872,
 | 
						|
                          "name": "radius",
 | 
						|
                          "start": 866,
 | 
						|
                          "type": "Identifier"
 | 
						|
                        },
 | 
						|
                        "arg": {
 | 
						|
                          "end": 887,
 | 
						|
                          "left": {
 | 
						|
                            "end": 883,
 | 
						|
                            "name": "shaftDia",
 | 
						|
                            "start": 875,
 | 
						|
                            "type": "Identifier",
 | 
						|
                            "type": "Identifier"
 | 
						|
                          },
 | 
						|
                          "operator": "/",
 | 
						|
                          "right": {
 | 
						|
                            "end": 887,
 | 
						|
                            "raw": "2",
 | 
						|
                            "start": 886,
 | 
						|
                            "type": "Literal",
 | 
						|
                            "type": "Literal",
 | 
						|
                            "value": {
 | 
						|
                              "value": 2.0,
 | 
						|
                              "suffix": "None"
 | 
						|
                            }
 | 
						|
                          },
 | 
						|
                          "start": 875,
 | 
						|
                          "type": "BinaryExpression",
 | 
						|
                          "type": "BinaryExpression"
 | 
						|
                        }
 | 
						|
                      }
 | 
						|
                    ],
 | 
						|
                    "callee": {
 | 
						|
                      "end": 833,
 | 
						|
                      "name": "circle",
 | 
						|
                      "start": 827,
 | 
						|
                      "type": "Identifier"
 | 
						|
                    },
 | 
						|
                    "end": 894,
 | 
						|
                    "start": 827,
 | 
						|
                    "type": "CallExpressionKw",
 | 
						|
                    "type": "CallExpressionKw",
 | 
						|
                    "unlabeled": null
 | 
						|
                  },
 | 
						|
                  {
 | 
						|
                    "end": 897,
 | 
						|
                    "start": 896,
 | 
						|
                    "type": "PipeSubstitution",
 | 
						|
                    "type": "PipeSubstitution"
 | 
						|
                  }
 | 
						|
                ],
 | 
						|
                "callee": {
 | 
						|
                  "end": 826,
 | 
						|
                  "name": "hole",
 | 
						|
                  "start": 822,
 | 
						|
                  "type": "Identifier"
 | 
						|
                },
 | 
						|
                "end": 898,
 | 
						|
                "start": 822,
 | 
						|
                "type": "CallExpression",
 | 
						|
                "type": "CallExpression"
 | 
						|
              }
 | 
						|
            ],
 | 
						|
            "end": 935,
 | 
						|
            "nonCodeMeta": {
 | 
						|
              "nonCodeNodes": {
 | 
						|
                "2": [
 | 
						|
                  {
 | 
						|
                    "end": 935,
 | 
						|
                    "start": 898,
 | 
						|
                    "type": "NonCodeNode",
 | 
						|
                    "value": {
 | 
						|
                      "type": "newLineBlockComment",
 | 
						|
                      "value": "Extrude the inside bearing piece",
 | 
						|
                      "style": "line"
 | 
						|
                    }
 | 
						|
                  }
 | 
						|
                ]
 | 
						|
              },
 | 
						|
              "startNodes": []
 | 
						|
            },
 | 
						|
            "start": 663,
 | 
						|
            "type": "PipeExpression",
 | 
						|
            "type": "PipeExpression"
 | 
						|
          },
 | 
						|
          "start": 644,
 | 
						|
          "type": "VariableDeclarator"
 | 
						|
        },
 | 
						|
        "end": 935,
 | 
						|
        "kind": "const",
 | 
						|
        "start": 644,
 | 
						|
        "type": "VariableDeclaration",
 | 
						|
        "type": "VariableDeclaration"
 | 
						|
      },
 | 
						|
      {
 | 
						|
        "declaration": {
 | 
						|
          "end": 1001,
 | 
						|
          "id": {
 | 
						|
            "end": 946,
 | 
						|
            "name": "insideWall",
 | 
						|
            "start": 936,
 | 
						|
            "type": "Identifier"
 | 
						|
          },
 | 
						|
          "init": {
 | 
						|
            "arguments": [
 | 
						|
              {
 | 
						|
                "type": "LabeledArg",
 | 
						|
                "label": {
 | 
						|
                  "end": 981,
 | 
						|
                  "name": "length",
 | 
						|
                  "start": 975,
 | 
						|
                  "type": "Identifier"
 | 
						|
                },
 | 
						|
                "arg": {
 | 
						|
                  "end": 1000,
 | 
						|
                  "name": "overallThickness",
 | 
						|
                  "start": 984,
 | 
						|
                  "type": "Identifier",
 | 
						|
                  "type": "Identifier"
 | 
						|
                }
 | 
						|
              }
 | 
						|
            ],
 | 
						|
            "callee": {
 | 
						|
              "end": 956,
 | 
						|
              "name": "extrude",
 | 
						|
              "start": 949,
 | 
						|
              "type": "Identifier"
 | 
						|
            },
 | 
						|
            "end": 1001,
 | 
						|
            "start": 949,
 | 
						|
            "type": "CallExpressionKw",
 | 
						|
            "type": "CallExpressionKw",
 | 
						|
            "unlabeled": {
 | 
						|
              "end": 973,
 | 
						|
              "name": "insideWallSketch",
 | 
						|
              "start": 957,
 | 
						|
              "type": "Identifier",
 | 
						|
              "type": "Identifier"
 | 
						|
            }
 | 
						|
          },
 | 
						|
          "start": 936,
 | 
						|
          "type": "VariableDeclarator"
 | 
						|
        },
 | 
						|
        "end": 1001,
 | 
						|
        "kind": "const",
 | 
						|
        "start": 936,
 | 
						|
        "type": "VariableDeclaration",
 | 
						|
        "type": "VariableDeclaration"
 | 
						|
      },
 | 
						|
      {
 | 
						|
        "declaration": {
 | 
						|
          "end": 1323,
 | 
						|
          "id": {
 | 
						|
            "end": 1055,
 | 
						|
            "name": "ballsSketch",
 | 
						|
            "start": 1044,
 | 
						|
            "type": "Identifier"
 | 
						|
          },
 | 
						|
          "init": {
 | 
						|
            "body": [
 | 
						|
              {
 | 
						|
                "arguments": [
 | 
						|
                  {
 | 
						|
                    "end": 1076,
 | 
						|
                    "raw": "\"XY\"",
 | 
						|
                    "start": 1072,
 | 
						|
                    "type": "Literal",
 | 
						|
                    "type": "Literal",
 | 
						|
                    "value": "XY"
 | 
						|
                  }
 | 
						|
                ],
 | 
						|
                "callee": {
 | 
						|
                  "end": 1071,
 | 
						|
                  "name": "startSketchOn",
 | 
						|
                  "start": 1058,
 | 
						|
                  "type": "Identifier"
 | 
						|
                },
 | 
						|
                "end": 1077,
 | 
						|
                "start": 1058,
 | 
						|
                "type": "CallExpression",
 | 
						|
                "type": "CallExpression"
 | 
						|
              },
 | 
						|
              {
 | 
						|
                "arguments": [
 | 
						|
                  {
 | 
						|
                    "elements": [
 | 
						|
                      {
 | 
						|
                        "end": 1127,
 | 
						|
                        "left": {
 | 
						|
                          "end": 1111,
 | 
						|
                          "left": {
 | 
						|
                            "end": 1107,
 | 
						|
                            "name": "shaftDia",
 | 
						|
                            "start": 1099,
 | 
						|
                            "type": "Identifier",
 | 
						|
                            "type": "Identifier"
 | 
						|
                          },
 | 
						|
                          "operator": "/",
 | 
						|
                          "right": {
 | 
						|
                            "end": 1111,
 | 
						|
                            "raw": "2",
 | 
						|
                            "start": 1110,
 | 
						|
                            "type": "Literal",
 | 
						|
                            "type": "Literal",
 | 
						|
                            "value": {
 | 
						|
                              "value": 2.0,
 | 
						|
                              "suffix": "None"
 | 
						|
                            }
 | 
						|
                          },
 | 
						|
                          "start": 1099,
 | 
						|
                          "type": "BinaryExpression",
 | 
						|
                          "type": "BinaryExpression"
 | 
						|
                        },
 | 
						|
                        "operator": "+",
 | 
						|
                        "right": {
 | 
						|
                          "end": 1127,
 | 
						|
                          "name": "wallThickness",
 | 
						|
                          "start": 1114,
 | 
						|
                          "type": "Identifier",
 | 
						|
                          "type": "Identifier"
 | 
						|
                        },
 | 
						|
                        "start": 1099,
 | 
						|
                        "type": "BinaryExpression",
 | 
						|
                        "type": "BinaryExpression"
 | 
						|
                      },
 | 
						|
                      {
 | 
						|
                        "end": 1134,
 | 
						|
                        "raw": "0.001",
 | 
						|
                        "start": 1129,
 | 
						|
                        "type": "Literal",
 | 
						|
                        "type": "Literal",
 | 
						|
                        "value": {
 | 
						|
                          "value": 0.001,
 | 
						|
                          "suffix": "None"
 | 
						|
                        }
 | 
						|
                      }
 | 
						|
                    ],
 | 
						|
                    "end": 1135,
 | 
						|
                    "start": 1098,
 | 
						|
                    "type": "ArrayExpression",
 | 
						|
                    "type": "ArrayExpression"
 | 
						|
                  },
 | 
						|
                  {
 | 
						|
                    "end": 1138,
 | 
						|
                    "start": 1137,
 | 
						|
                    "type": "PipeSubstitution",
 | 
						|
                    "type": "PipeSubstitution"
 | 
						|
                  }
 | 
						|
                ],
 | 
						|
                "callee": {
 | 
						|
                  "end": 1097,
 | 
						|
                  "name": "startProfileAt",
 | 
						|
                  "start": 1083,
 | 
						|
                  "type": "Identifier"
 | 
						|
                },
 | 
						|
                "end": 1139,
 | 
						|
                "start": 1083,
 | 
						|
                "type": "CallExpression",
 | 
						|
                "type": "CallExpression"
 | 
						|
              },
 | 
						|
              {
 | 
						|
                "arguments": [
 | 
						|
                  {
 | 
						|
                    "end": 1233,
 | 
						|
                    "properties": [
 | 
						|
                      {
 | 
						|
                        "end": 1170,
 | 
						|
                        "key": {
 | 
						|
                          "end": 1166,
 | 
						|
                          "name": "angleEnd",
 | 
						|
                          "start": 1158,
 | 
						|
                          "type": "Identifier"
 | 
						|
                        },
 | 
						|
                        "start": 1158,
 | 
						|
                        "type": "ObjectProperty",
 | 
						|
                        "value": {
 | 
						|
                          "end": 1170,
 | 
						|
                          "raw": "0",
 | 
						|
                          "start": 1169,
 | 
						|
                          "type": "Literal",
 | 
						|
                          "type": "Literal",
 | 
						|
                          "value": {
 | 
						|
                            "value": 0.0,
 | 
						|
                            "suffix": "None"
 | 
						|
                          }
 | 
						|
                        }
 | 
						|
                      },
 | 
						|
                      {
 | 
						|
                        "end": 1195,
 | 
						|
                        "key": {
 | 
						|
                          "end": 1189,
 | 
						|
                          "name": "angleStart",
 | 
						|
                          "start": 1179,
 | 
						|
                          "type": "Identifier"
 | 
						|
                        },
 | 
						|
                        "start": 1179,
 | 
						|
                        "type": "ObjectProperty",
 | 
						|
                        "value": {
 | 
						|
                          "end": 1195,
 | 
						|
                          "raw": "180",
 | 
						|
                          "start": 1192,
 | 
						|
                          "type": "Literal",
 | 
						|
                          "type": "Literal",
 | 
						|
                          "value": {
 | 
						|
                            "value": 180.0,
 | 
						|
                            "suffix": "None"
 | 
						|
                          }
 | 
						|
                        }
 | 
						|
                      },
 | 
						|
                      {
 | 
						|
                        "end": 1226,
 | 
						|
                        "key": {
 | 
						|
                          "end": 1210,
 | 
						|
                          "name": "radius",
 | 
						|
                          "start": 1204,
 | 
						|
                          "type": "Identifier"
 | 
						|
                        },
 | 
						|
                        "start": 1204,
 | 
						|
                        "type": "ObjectProperty",
 | 
						|
                        "value": {
 | 
						|
                          "end": 1226,
 | 
						|
                          "left": {
 | 
						|
                            "end": 1222,
 | 
						|
                            "name": "sphereDia",
 | 
						|
                            "start": 1213,
 | 
						|
                            "type": "Identifier",
 | 
						|
                            "type": "Identifier"
 | 
						|
                          },
 | 
						|
                          "operator": "/",
 | 
						|
                          "right": {
 | 
						|
                            "end": 1226,
 | 
						|
                            "raw": "2",
 | 
						|
                            "start": 1225,
 | 
						|
                            "type": "Literal",
 | 
						|
                            "type": "Literal",
 | 
						|
                            "value": {
 | 
						|
                              "value": 2.0,
 | 
						|
                              "suffix": "None"
 | 
						|
                            }
 | 
						|
                          },
 | 
						|
                          "start": 1213,
 | 
						|
                          "type": "BinaryExpression",
 | 
						|
                          "type": "BinaryExpression"
 | 
						|
                        }
 | 
						|
                      }
 | 
						|
                    ],
 | 
						|
                    "start": 1149,
 | 
						|
                    "type": "ObjectExpression",
 | 
						|
                    "type": "ObjectExpression"
 | 
						|
                  },
 | 
						|
                  {
 | 
						|
                    "end": 1236,
 | 
						|
                    "start": 1235,
 | 
						|
                    "type": "PipeSubstitution",
 | 
						|
                    "type": "PipeSubstitution"
 | 
						|
                  }
 | 
						|
                ],
 | 
						|
                "callee": {
 | 
						|
                  "end": 1148,
 | 
						|
                  "name": "arc",
 | 
						|
                  "start": 1145,
 | 
						|
                  "type": "Identifier"
 | 
						|
                },
 | 
						|
                "end": 1237,
 | 
						|
                "start": 1145,
 | 
						|
                "type": "CallExpression",
 | 
						|
                "type": "CallExpression"
 | 
						|
              },
 | 
						|
              {
 | 
						|
                "arguments": [],
 | 
						|
                "callee": {
 | 
						|
                  "end": 1248,
 | 
						|
                  "name": "close",
 | 
						|
                  "start": 1243,
 | 
						|
                  "type": "Identifier"
 | 
						|
                },
 | 
						|
                "end": 1250,
 | 
						|
                "start": 1243,
 | 
						|
                "type": "CallExpression",
 | 
						|
                "type": "CallExpression"
 | 
						|
              }
 | 
						|
            ],
 | 
						|
            "end": 1323,
 | 
						|
            "nonCodeMeta": {
 | 
						|
              "nonCodeNodes": {
 | 
						|
                "3": [
 | 
						|
                  {
 | 
						|
                    "end": 1323,
 | 
						|
                    "start": 1250,
 | 
						|
                    "type": "NonCodeNode",
 | 
						|
                    "value": {
 | 
						|
                      "type": "newLineBlockComment",
 | 
						|
                      "value": "Revolve the ball to make a sphere and pattern around the inside wall",
 | 
						|
                      "style": "line"
 | 
						|
                    }
 | 
						|
                  }
 | 
						|
                ]
 | 
						|
              },
 | 
						|
              "startNodes": []
 | 
						|
            },
 | 
						|
            "start": 1058,
 | 
						|
            "type": "PipeExpression",
 | 
						|
            "type": "PipeExpression"
 | 
						|
          },
 | 
						|
          "start": 1044,
 | 
						|
          "type": "VariableDeclarator"
 | 
						|
        },
 | 
						|
        "end": 1323,
 | 
						|
        "kind": "const",
 | 
						|
        "start": 1044,
 | 
						|
        "type": "VariableDeclaration",
 | 
						|
        "type": "VariableDeclaration"
 | 
						|
      },
 | 
						|
      {
 | 
						|
        "declaration": {
 | 
						|
          "end": 1587,
 | 
						|
          "id": {
 | 
						|
            "end": 1329,
 | 
						|
            "name": "balls",
 | 
						|
            "start": 1324,
 | 
						|
            "type": "Identifier"
 | 
						|
          },
 | 
						|
          "init": {
 | 
						|
            "body": [
 | 
						|
              {
 | 
						|
                "arguments": [
 | 
						|
                  {
 | 
						|
                    "end": 1354,
 | 
						|
                    "properties": [
 | 
						|
                      {
 | 
						|
                        "end": 1352,
 | 
						|
                        "key": {
 | 
						|
                          "end": 1346,
 | 
						|
                          "name": "axis",
 | 
						|
                          "start": 1342,
 | 
						|
                          "type": "Identifier"
 | 
						|
                        },
 | 
						|
                        "start": 1342,
 | 
						|
                        "type": "ObjectProperty",
 | 
						|
                        "value": {
 | 
						|
                          "end": 1352,
 | 
						|
                          "raw": "\"X\"",
 | 
						|
                          "start": 1349,
 | 
						|
                          "type": "Literal",
 | 
						|
                          "type": "Literal",
 | 
						|
                          "value": "X"
 | 
						|
                        }
 | 
						|
                      }
 | 
						|
                    ],
 | 
						|
                    "start": 1340,
 | 
						|
                    "type": "ObjectExpression",
 | 
						|
                    "type": "ObjectExpression"
 | 
						|
                  },
 | 
						|
                  {
 | 
						|
                    "end": 1367,
 | 
						|
                    "name": "ballsSketch",
 | 
						|
                    "start": 1356,
 | 
						|
                    "type": "Identifier",
 | 
						|
                    "type": "Identifier"
 | 
						|
                  }
 | 
						|
                ],
 | 
						|
                "callee": {
 | 
						|
                  "end": 1339,
 | 
						|
                  "name": "revolve",
 | 
						|
                  "start": 1332,
 | 
						|
                  "type": "Identifier"
 | 
						|
                },
 | 
						|
                "end": 1368,
 | 
						|
                "start": 1332,
 | 
						|
                "type": "CallExpression",
 | 
						|
                "type": "CallExpression"
 | 
						|
              },
 | 
						|
              {
 | 
						|
                "arguments": [
 | 
						|
                  {
 | 
						|
                    "type": "LabeledArg",
 | 
						|
                    "label": {
 | 
						|
                      "end": 1410,
 | 
						|
                      "name": "arcDegrees",
 | 
						|
                      "start": 1400,
 | 
						|
                      "type": "Identifier"
 | 
						|
                    },
 | 
						|
                    "arg": {
 | 
						|
                      "end": 1416,
 | 
						|
                      "raw": "360",
 | 
						|
                      "start": 1413,
 | 
						|
                      "type": "Literal",
 | 
						|
                      "type": "Literal",
 | 
						|
                      "value": {
 | 
						|
                        "value": 360.0,
 | 
						|
                        "suffix": "None"
 | 
						|
                      }
 | 
						|
                    }
 | 
						|
                  },
 | 
						|
                  {
 | 
						|
                    "type": "LabeledArg",
 | 
						|
                    "label": {
 | 
						|
                      "end": 1429,
 | 
						|
                      "name": "axis",
 | 
						|
                      "start": 1425,
 | 
						|
                      "type": "Identifier"
 | 
						|
                    },
 | 
						|
                    "arg": {
 | 
						|
                      "elements": [
 | 
						|
                        {
 | 
						|
                          "end": 1434,
 | 
						|
                          "raw": "0",
 | 
						|
                          "start": 1433,
 | 
						|
                          "type": "Literal",
 | 
						|
                          "type": "Literal",
 | 
						|
                          "value": {
 | 
						|
                            "value": 0.0,
 | 
						|
                            "suffix": "None"
 | 
						|
                          }
 | 
						|
                        },
 | 
						|
                        {
 | 
						|
                          "end": 1437,
 | 
						|
                          "raw": "0",
 | 
						|
                          "start": 1436,
 | 
						|
                          "type": "Literal",
 | 
						|
                          "type": "Literal",
 | 
						|
                          "value": {
 | 
						|
                            "value": 0.0,
 | 
						|
                            "suffix": "None"
 | 
						|
                          }
 | 
						|
                        },
 | 
						|
                        {
 | 
						|
                          "end": 1440,
 | 
						|
                          "raw": "1",
 | 
						|
                          "start": 1439,
 | 
						|
                          "type": "Literal",
 | 
						|
                          "type": "Literal",
 | 
						|
                          "value": {
 | 
						|
                            "value": 1.0,
 | 
						|
                            "suffix": "None"
 | 
						|
                          }
 | 
						|
                        }
 | 
						|
                      ],
 | 
						|
                      "end": 1441,
 | 
						|
                      "start": 1432,
 | 
						|
                      "type": "ArrayExpression",
 | 
						|
                      "type": "ArrayExpression"
 | 
						|
                    }
 | 
						|
                  },
 | 
						|
                  {
 | 
						|
                    "type": "LabeledArg",
 | 
						|
                    "label": {
 | 
						|
                      "end": 1456,
 | 
						|
                      "name": "center",
 | 
						|
                      "start": 1450,
 | 
						|
                      "type": "Identifier"
 | 
						|
                    },
 | 
						|
                    "arg": {
 | 
						|
                      "elements": [
 | 
						|
                        {
 | 
						|
                          "end": 1461,
 | 
						|
                          "raw": "0",
 | 
						|
                          "start": 1460,
 | 
						|
                          "type": "Literal",
 | 
						|
                          "type": "Literal",
 | 
						|
                          "value": {
 | 
						|
                            "value": 0.0,
 | 
						|
                            "suffix": "None"
 | 
						|
                          }
 | 
						|
                        },
 | 
						|
                        {
 | 
						|
                          "end": 1464,
 | 
						|
                          "raw": "0",
 | 
						|
                          "start": 1463,
 | 
						|
                          "type": "Literal",
 | 
						|
                          "type": "Literal",
 | 
						|
                          "value": {
 | 
						|
                            "value": 0.0,
 | 
						|
                            "suffix": "None"
 | 
						|
                          }
 | 
						|
                        },
 | 
						|
                        {
 | 
						|
                          "end": 1467,
 | 
						|
                          "raw": "0",
 | 
						|
                          "start": 1466,
 | 
						|
                          "type": "Literal",
 | 
						|
                          "type": "Literal",
 | 
						|
                          "value": {
 | 
						|
                            "value": 0.0,
 | 
						|
                            "suffix": "None"
 | 
						|
                          }
 | 
						|
                        }
 | 
						|
                      ],
 | 
						|
                      "end": 1468,
 | 
						|
                      "start": 1459,
 | 
						|
                      "type": "ArrayExpression",
 | 
						|
                      "type": "ArrayExpression"
 | 
						|
                    }
 | 
						|
                  },
 | 
						|
                  {
 | 
						|
                    "type": "LabeledArg",
 | 
						|
                    "label": {
 | 
						|
                      "end": 1486,
 | 
						|
                      "name": "instances",
 | 
						|
                      "start": 1477,
 | 
						|
                      "type": "Identifier"
 | 
						|
                    },
 | 
						|
                    "arg": {
 | 
						|
                      "end": 1495,
 | 
						|
                      "name": "nBalls",
 | 
						|
                      "start": 1489,
 | 
						|
                      "type": "Identifier",
 | 
						|
                      "type": "Identifier"
 | 
						|
                    }
 | 
						|
                  },
 | 
						|
                  {
 | 
						|
                    "type": "LabeledArg",
 | 
						|
                    "label": {
 | 
						|
                      "end": 1520,
 | 
						|
                      "name": "rotateDuplicates",
 | 
						|
                      "start": 1504,
 | 
						|
                      "type": "Identifier"
 | 
						|
                    },
 | 
						|
                    "arg": {
 | 
						|
                      "end": 1527,
 | 
						|
                      "raw": "true",
 | 
						|
                      "start": 1523,
 | 
						|
                      "type": "Literal",
 | 
						|
                      "type": "Literal",
 | 
						|
                      "value": true
 | 
						|
                    }
 | 
						|
                  }
 | 
						|
                ],
 | 
						|
                "callee": {
 | 
						|
                  "end": 1391,
 | 
						|
                  "name": "patternCircular3d",
 | 
						|
                  "start": 1374,
 | 
						|
                  "type": "Identifier"
 | 
						|
                },
 | 
						|
                "end": 1534,
 | 
						|
                "start": 1374,
 | 
						|
                "type": "CallExpressionKw",
 | 
						|
                "type": "CallExpressionKw",
 | 
						|
                "unlabeled": null
 | 
						|
              }
 | 
						|
            ],
 | 
						|
            "end": 1587,
 | 
						|
            "nonCodeMeta": {
 | 
						|
              "nonCodeNodes": {
 | 
						|
                "1": [
 | 
						|
                  {
 | 
						|
                    "end": 1587,
 | 
						|
                    "start": 1534,
 | 
						|
                    "type": "NonCodeNode",
 | 
						|
                    "value": {
 | 
						|
                      "type": "newLineBlockComment",
 | 
						|
                      "value": "Create the sketch for the chain around the balls",
 | 
						|
                      "style": "line"
 | 
						|
                    }
 | 
						|
                  }
 | 
						|
                ]
 | 
						|
              },
 | 
						|
              "startNodes": []
 | 
						|
            },
 | 
						|
            "start": 1332,
 | 
						|
            "type": "PipeExpression",
 | 
						|
            "type": "PipeExpression"
 | 
						|
          },
 | 
						|
          "start": 1324,
 | 
						|
          "type": "VariableDeclarator"
 | 
						|
        },
 | 
						|
        "end": 1587,
 | 
						|
        "kind": "const",
 | 
						|
        "start": 1324,
 | 
						|
        "type": "VariableDeclaration",
 | 
						|
        "type": "VariableDeclaration"
 | 
						|
      },
 | 
						|
      {
 | 
						|
        "declaration": {
 | 
						|
          "end": 1972,
 | 
						|
          "id": {
 | 
						|
            "end": 1599,
 | 
						|
            "name": "chainSketch",
 | 
						|
            "start": 1588,
 | 
						|
            "type": "Identifier"
 | 
						|
          },
 | 
						|
          "init": {
 | 
						|
            "body": [
 | 
						|
              {
 | 
						|
                "arguments": [
 | 
						|
                  {
 | 
						|
                    "end": 1620,
 | 
						|
                    "raw": "\"XY\"",
 | 
						|
                    "start": 1616,
 | 
						|
                    "type": "Literal",
 | 
						|
                    "type": "Literal",
 | 
						|
                    "value": "XY"
 | 
						|
                  }
 | 
						|
                ],
 | 
						|
                "callee": {
 | 
						|
                  "end": 1615,
 | 
						|
                  "name": "startSketchOn",
 | 
						|
                  "start": 1602,
 | 
						|
                  "type": "Identifier"
 | 
						|
                },
 | 
						|
                "end": 1621,
 | 
						|
                "start": 1602,
 | 
						|
                "type": "CallExpression",
 | 
						|
                "type": "CallExpression"
 | 
						|
              },
 | 
						|
              {
 | 
						|
                "arguments": [
 | 
						|
                  {
 | 
						|
                    "elements": [
 | 
						|
                      {
 | 
						|
                        "end": 1713,
 | 
						|
                        "left": {
 | 
						|
                          "end": 1695,
 | 
						|
                          "left": {
 | 
						|
                            "end": 1679,
 | 
						|
                            "left": {
 | 
						|
                              "end": 1663,
 | 
						|
                              "left": {
 | 
						|
                                "end": 1659,
 | 
						|
                                "name": "shaftDia",
 | 
						|
                                "start": 1651,
 | 
						|
                                "type": "Identifier",
 | 
						|
                                "type": "Identifier"
 | 
						|
                              },
 | 
						|
                              "operator": "/",
 | 
						|
                              "right": {
 | 
						|
                                "end": 1663,
 | 
						|
                                "raw": "2",
 | 
						|
                                "start": 1662,
 | 
						|
                                "type": "Literal",
 | 
						|
                                "type": "Literal",
 | 
						|
                                "value": {
 | 
						|
                                  "value": 2.0,
 | 
						|
                                  "suffix": "None"
 | 
						|
                                }
 | 
						|
                              },
 | 
						|
                              "start": 1651,
 | 
						|
                              "type": "BinaryExpression",
 | 
						|
                              "type": "BinaryExpression"
 | 
						|
                            },
 | 
						|
                            "operator": "+",
 | 
						|
                            "right": {
 | 
						|
                              "end": 1679,
 | 
						|
                              "name": "wallThickness",
 | 
						|
                              "start": 1666,
 | 
						|
                              "type": "Identifier",
 | 
						|
                              "type": "Identifier"
 | 
						|
                            },
 | 
						|
                            "start": 1651,
 | 
						|
                            "type": "BinaryExpression",
 | 
						|
                            "type": "BinaryExpression"
 | 
						|
                          },
 | 
						|
                          "operator": "+",
 | 
						|
                          "right": {
 | 
						|
                            "end": 1695,
 | 
						|
                            "left": {
 | 
						|
                              "end": 1691,
 | 
						|
                              "name": "sphereDia",
 | 
						|
                              "start": 1682,
 | 
						|
                              "type": "Identifier",
 | 
						|
                              "type": "Identifier"
 | 
						|
                            },
 | 
						|
                            "operator": "/",
 | 
						|
                            "right": {
 | 
						|
                              "end": 1695,
 | 
						|
                              "raw": "2",
 | 
						|
                              "start": 1694,
 | 
						|
                              "type": "Literal",
 | 
						|
                              "type": "Literal",
 | 
						|
                              "value": {
 | 
						|
                                "value": 2.0,
 | 
						|
                                "suffix": "None"
 | 
						|
                              }
 | 
						|
                            },
 | 
						|
                            "start": 1682,
 | 
						|
                            "type": "BinaryExpression",
 | 
						|
                            "type": "BinaryExpression"
 | 
						|
                          },
 | 
						|
                          "start": 1651,
 | 
						|
                          "type": "BinaryExpression",
 | 
						|
                          "type": "BinaryExpression"
 | 
						|
                        },
 | 
						|
                        "operator": "-",
 | 
						|
                        "right": {
 | 
						|
                          "end": 1713,
 | 
						|
                          "left": {
 | 
						|
                            "end": 1709,
 | 
						|
                            "name": "chainWidth",
 | 
						|
                            "start": 1699,
 | 
						|
                            "type": "Identifier",
 | 
						|
                            "type": "Identifier"
 | 
						|
                          },
 | 
						|
                          "operator": "/",
 | 
						|
                          "right": {
 | 
						|
                            "end": 1713,
 | 
						|
                            "raw": "2",
 | 
						|
                            "start": 1712,
 | 
						|
                            "type": "Literal",
 | 
						|
                            "type": "Literal",
 | 
						|
                            "value": {
 | 
						|
                              "value": 2.0,
 | 
						|
                              "suffix": "None"
 | 
						|
                            }
 | 
						|
                          },
 | 
						|
                          "start": 1699,
 | 
						|
                          "type": "BinaryExpression",
 | 
						|
                          "type": "BinaryExpression"
 | 
						|
                        },
 | 
						|
                        "start": 1651,
 | 
						|
                        "type": "BinaryExpression",
 | 
						|
                        "type": "BinaryExpression"
 | 
						|
                      },
 | 
						|
                      {
 | 
						|
                        "end": 1749,
 | 
						|
                        "left": {
 | 
						|
                          "end": 1728,
 | 
						|
                          "raw": "0.125",
 | 
						|
                          "start": 1723,
 | 
						|
                          "type": "Literal",
 | 
						|
                          "type": "Literal",
 | 
						|
                          "value": {
 | 
						|
                            "value": 0.125,
 | 
						|
                            "suffix": "None"
 | 
						|
                          }
 | 
						|
                        },
 | 
						|
                        "operator": "*",
 | 
						|
                        "right": {
 | 
						|
                          "arguments": [
 | 
						|
                            {
 | 
						|
                              "arguments": [
 | 
						|
                                {
 | 
						|
                                  "end": 1747,
 | 
						|
                                  "raw": "60",
 | 
						|
                                  "start": 1745,
 | 
						|
                                  "type": "Literal",
 | 
						|
                                  "type": "Literal",
 | 
						|
                                  "value": {
 | 
						|
                                    "value": 60.0,
 | 
						|
                                    "suffix": "None"
 | 
						|
                                  }
 | 
						|
                                }
 | 
						|
                              ],
 | 
						|
                              "callee": {
 | 
						|
                                "end": 1744,
 | 
						|
                                "name": "toRadians",
 | 
						|
                                "start": 1735,
 | 
						|
                                "type": "Identifier"
 | 
						|
                              },
 | 
						|
                              "end": 1748,
 | 
						|
                              "start": 1735,
 | 
						|
                              "type": "CallExpression",
 | 
						|
                              "type": "CallExpression"
 | 
						|
                            }
 | 
						|
                          ],
 | 
						|
                          "callee": {
 | 
						|
                            "end": 1734,
 | 
						|
                            "name": "sin",
 | 
						|
                            "start": 1731,
 | 
						|
                            "type": "Identifier"
 | 
						|
                          },
 | 
						|
                          "end": 1749,
 | 
						|
                          "start": 1731,
 | 
						|
                          "type": "CallExpression",
 | 
						|
                          "type": "CallExpression"
 | 
						|
                        },
 | 
						|
                        "start": 1723,
 | 
						|
                        "type": "BinaryExpression",
 | 
						|
                        "type": "BinaryExpression"
 | 
						|
                      }
 | 
						|
                    ],
 | 
						|
                    "end": 1756,
 | 
						|
                    "start": 1642,
 | 
						|
                    "type": "ArrayExpression",
 | 
						|
                    "type": "ArrayExpression"
 | 
						|
                  },
 | 
						|
                  {
 | 
						|
                    "end": 1759,
 | 
						|
                    "start": 1758,
 | 
						|
                    "type": "PipeSubstitution",
 | 
						|
                    "type": "PipeSubstitution"
 | 
						|
                  }
 | 
						|
                ],
 | 
						|
                "callee": {
 | 
						|
                  "end": 1641,
 | 
						|
                  "name": "startProfileAt",
 | 
						|
                  "start": 1627,
 | 
						|
                  "type": "Identifier"
 | 
						|
                },
 | 
						|
                "end": 1760,
 | 
						|
                "start": 1627,
 | 
						|
                "type": "CallExpression",
 | 
						|
                "type": "CallExpression"
 | 
						|
              },
 | 
						|
              {
 | 
						|
                "arguments": [
 | 
						|
                  {
 | 
						|
                    "end": 1855,
 | 
						|
                    "properties": [
 | 
						|
                      {
 | 
						|
                        "end": 1792,
 | 
						|
                        "key": {
 | 
						|
                          "end": 1787,
 | 
						|
                          "name": "angleEnd",
 | 
						|
                          "start": 1779,
 | 
						|
                          "type": "Identifier"
 | 
						|
                        },
 | 
						|
                        "start": 1779,
 | 
						|
                        "type": "ObjectProperty",
 | 
						|
                        "value": {
 | 
						|
                          "end": 1792,
 | 
						|
                          "raw": "60",
 | 
						|
                          "start": 1790,
 | 
						|
                          "type": "Literal",
 | 
						|
                          "type": "Literal",
 | 
						|
                          "value": {
 | 
						|
                            "value": 60.0,
 | 
						|
                            "suffix": "None"
 | 
						|
                          }
 | 
						|
                        }
 | 
						|
                      },
 | 
						|
                      {
 | 
						|
                        "end": 1817,
 | 
						|
                        "key": {
 | 
						|
                          "end": 1811,
 | 
						|
                          "name": "angleStart",
 | 
						|
                          "start": 1801,
 | 
						|
                          "type": "Identifier"
 | 
						|
                        },
 | 
						|
                        "start": 1801,
 | 
						|
                        "type": "ObjectProperty",
 | 
						|
                        "value": {
 | 
						|
                          "end": 1817,
 | 
						|
                          "raw": "120",
 | 
						|
                          "start": 1814,
 | 
						|
                          "type": "Literal",
 | 
						|
                          "type": "Literal",
 | 
						|
                          "value": {
 | 
						|
                            "value": 120.0,
 | 
						|
                            "suffix": "None"
 | 
						|
                          }
 | 
						|
                        }
 | 
						|
                      },
 | 
						|
                      {
 | 
						|
                        "end": 1848,
 | 
						|
                        "key": {
 | 
						|
                          "end": 1832,
 | 
						|
                          "name": "radius",
 | 
						|
                          "start": 1826,
 | 
						|
                          "type": "Identifier"
 | 
						|
                        },
 | 
						|
                        "start": 1826,
 | 
						|
                        "type": "ObjectProperty",
 | 
						|
                        "value": {
 | 
						|
                          "end": 1848,
 | 
						|
                          "left": {
 | 
						|
                            "end": 1844,
 | 
						|
                            "name": "sphereDia",
 | 
						|
                            "start": 1835,
 | 
						|
                            "type": "Identifier",
 | 
						|
                            "type": "Identifier"
 | 
						|
                          },
 | 
						|
                          "operator": "/",
 | 
						|
                          "right": {
 | 
						|
                            "end": 1848,
 | 
						|
                            "raw": "2",
 | 
						|
                            "start": 1847,
 | 
						|
                            "type": "Literal",
 | 
						|
                            "type": "Literal",
 | 
						|
                            "value": {
 | 
						|
                              "value": 2.0,
 | 
						|
                              "suffix": "None"
 | 
						|
                            }
 | 
						|
                          },
 | 
						|
                          "start": 1835,
 | 
						|
                          "type": "BinaryExpression",
 | 
						|
                          "type": "BinaryExpression"
 | 
						|
                        }
 | 
						|
                      }
 | 
						|
                    ],
 | 
						|
                    "start": 1770,
 | 
						|
                    "type": "ObjectExpression",
 | 
						|
                    "type": "ObjectExpression"
 | 
						|
                  },
 | 
						|
                  {
 | 
						|
                    "end": 1858,
 | 
						|
                    "start": 1857,
 | 
						|
                    "type": "PipeSubstitution",
 | 
						|
                    "type": "PipeSubstitution"
 | 
						|
                  }
 | 
						|
                ],
 | 
						|
                "callee": {
 | 
						|
                  "end": 1769,
 | 
						|
                  "name": "arc",
 | 
						|
                  "start": 1766,
 | 
						|
                  "type": "Identifier"
 | 
						|
                },
 | 
						|
                "end": 1859,
 | 
						|
                "start": 1766,
 | 
						|
                "type": "CallExpression",
 | 
						|
                "type": "CallExpression"
 | 
						|
              },
 | 
						|
              {
 | 
						|
                "arguments": [
 | 
						|
                  {
 | 
						|
                    "type": "LabeledArg",
 | 
						|
                    "label": {
 | 
						|
                      "end": 1873,
 | 
						|
                      "name": "end",
 | 
						|
                      "start": 1870,
 | 
						|
                      "type": "Identifier"
 | 
						|
                    },
 | 
						|
                    "arg": {
 | 
						|
                      "elements": [
 | 
						|
                        {
 | 
						|
                          "end": 1878,
 | 
						|
                          "raw": "0",
 | 
						|
                          "start": 1877,
 | 
						|
                          "type": "Literal",
 | 
						|
                          "type": "Literal",
 | 
						|
                          "value": {
 | 
						|
                            "value": 0.0,
 | 
						|
                            "suffix": "None"
 | 
						|
                          }
 | 
						|
                        },
 | 
						|
                        {
 | 
						|
                          "end": 1894,
 | 
						|
                          "name": "chainThickness",
 | 
						|
                          "start": 1880,
 | 
						|
                          "type": "Identifier",
 | 
						|
                          "type": "Identifier"
 | 
						|
                        }
 | 
						|
                      ],
 | 
						|
                      "end": 1895,
 | 
						|
                      "start": 1876,
 | 
						|
                      "type": "ArrayExpression",
 | 
						|
                      "type": "ArrayExpression"
 | 
						|
                    }
 | 
						|
                  }
 | 
						|
                ],
 | 
						|
                "callee": {
 | 
						|
                  "end": 1869,
 | 
						|
                  "name": "line",
 | 
						|
                  "start": 1865,
 | 
						|
                  "type": "Identifier"
 | 
						|
                },
 | 
						|
                "end": 1896,
 | 
						|
                "start": 1865,
 | 
						|
                "type": "CallExpressionKw",
 | 
						|
                "type": "CallExpressionKw",
 | 
						|
                "unlabeled": null
 | 
						|
              },
 | 
						|
              {
 | 
						|
                "arguments": [
 | 
						|
                  {
 | 
						|
                    "type": "LabeledArg",
 | 
						|
                    "label": {
 | 
						|
                      "end": 1910,
 | 
						|
                      "name": "end",
 | 
						|
                      "start": 1907,
 | 
						|
                      "type": "Identifier"
 | 
						|
                    },
 | 
						|
                    "arg": {
 | 
						|
                      "elements": [
 | 
						|
                        {
 | 
						|
                          "argument": {
 | 
						|
                            "end": 1925,
 | 
						|
                            "name": "chainWidth",
 | 
						|
                            "start": 1915,
 | 
						|
                            "type": "Identifier",
 | 
						|
                            "type": "Identifier"
 | 
						|
                          },
 | 
						|
                          "end": 1925,
 | 
						|
                          "operator": "-",
 | 
						|
                          "start": 1914,
 | 
						|
                          "type": "UnaryExpression",
 | 
						|
                          "type": "UnaryExpression"
 | 
						|
                        },
 | 
						|
                        {
 | 
						|
                          "end": 1928,
 | 
						|
                          "raw": "0",
 | 
						|
                          "start": 1927,
 | 
						|
                          "type": "Literal",
 | 
						|
                          "type": "Literal",
 | 
						|
                          "value": {
 | 
						|
                            "value": 0.0,
 | 
						|
                            "suffix": "None"
 | 
						|
                          }
 | 
						|
                        }
 | 
						|
                      ],
 | 
						|
                      "end": 1929,
 | 
						|
                      "start": 1913,
 | 
						|
                      "type": "ArrayExpression",
 | 
						|
                      "type": "ArrayExpression"
 | 
						|
                    }
 | 
						|
                  }
 | 
						|
                ],
 | 
						|
                "callee": {
 | 
						|
                  "end": 1906,
 | 
						|
                  "name": "line",
 | 
						|
                  "start": 1902,
 | 
						|
                  "type": "Identifier"
 | 
						|
                },
 | 
						|
                "end": 1930,
 | 
						|
                "start": 1902,
 | 
						|
                "type": "CallExpressionKw",
 | 
						|
                "type": "CallExpressionKw",
 | 
						|
                "unlabeled": null
 | 
						|
              },
 | 
						|
              {
 | 
						|
                "arguments": [],
 | 
						|
                "callee": {
 | 
						|
                  "end": 1941,
 | 
						|
                  "name": "close",
 | 
						|
                  "start": 1936,
 | 
						|
                  "type": "Identifier"
 | 
						|
                },
 | 
						|
                "end": 1943,
 | 
						|
                "start": 1936,
 | 
						|
                "type": "CallExpression",
 | 
						|
                "type": "CallExpression"
 | 
						|
              }
 | 
						|
            ],
 | 
						|
            "end": 1972,
 | 
						|
            "nonCodeMeta": {
 | 
						|
              "nonCodeNodes": {
 | 
						|
                "5": [
 | 
						|
                  {
 | 
						|
                    "end": 1972,
 | 
						|
                    "start": 1943,
 | 
						|
                    "type": "NonCodeNode",
 | 
						|
                    "value": {
 | 
						|
                      "type": "newLineBlockComment",
 | 
						|
                      "value": "Revolve the chain sketch",
 | 
						|
                      "style": "line"
 | 
						|
                    }
 | 
						|
                  }
 | 
						|
                ]
 | 
						|
              },
 | 
						|
              "startNodes": []
 | 
						|
            },
 | 
						|
            "start": 1602,
 | 
						|
            "type": "PipeExpression",
 | 
						|
            "type": "PipeExpression"
 | 
						|
          },
 | 
						|
          "start": 1588,
 | 
						|
          "type": "VariableDeclarator"
 | 
						|
        },
 | 
						|
        "end": 1972,
 | 
						|
        "kind": "const",
 | 
						|
        "start": 1588,
 | 
						|
        "type": "VariableDeclaration",
 | 
						|
        "type": "VariableDeclaration"
 | 
						|
      },
 | 
						|
      {
 | 
						|
        "declaration": {
 | 
						|
          "end": 2245,
 | 
						|
          "id": {
 | 
						|
            "end": 1982,
 | 
						|
            "name": "chainHead",
 | 
						|
            "start": 1973,
 | 
						|
            "type": "Identifier"
 | 
						|
          },
 | 
						|
          "init": {
 | 
						|
            "body": [
 | 
						|
              {
 | 
						|
                "arguments": [
 | 
						|
                  {
 | 
						|
                    "end": 2007,
 | 
						|
                    "properties": [
 | 
						|
                      {
 | 
						|
                        "end": 2005,
 | 
						|
                        "key": {
 | 
						|
                          "end": 1999,
 | 
						|
                          "name": "axis",
 | 
						|
                          "start": 1995,
 | 
						|
                          "type": "Identifier"
 | 
						|
                        },
 | 
						|
                        "start": 1995,
 | 
						|
                        "type": "ObjectProperty",
 | 
						|
                        "value": {
 | 
						|
                          "end": 2005,
 | 
						|
                          "raw": "\"X\"",
 | 
						|
                          "start": 2002,
 | 
						|
                          "type": "Literal",
 | 
						|
                          "type": "Literal",
 | 
						|
                          "value": "X"
 | 
						|
                        }
 | 
						|
                      }
 | 
						|
                    ],
 | 
						|
                    "start": 1993,
 | 
						|
                    "type": "ObjectExpression",
 | 
						|
                    "type": "ObjectExpression"
 | 
						|
                  },
 | 
						|
                  {
 | 
						|
                    "end": 2020,
 | 
						|
                    "name": "chainSketch",
 | 
						|
                    "start": 2009,
 | 
						|
                    "type": "Identifier",
 | 
						|
                    "type": "Identifier"
 | 
						|
                  }
 | 
						|
                ],
 | 
						|
                "callee": {
 | 
						|
                  "end": 1992,
 | 
						|
                  "name": "revolve",
 | 
						|
                  "start": 1985,
 | 
						|
                  "type": "Identifier"
 | 
						|
                },
 | 
						|
                "end": 2021,
 | 
						|
                "start": 1985,
 | 
						|
                "type": "CallExpression",
 | 
						|
                "type": "CallExpression"
 | 
						|
              },
 | 
						|
              {
 | 
						|
                "arguments": [
 | 
						|
                  {
 | 
						|
                    "type": "LabeledArg",
 | 
						|
                    "label": {
 | 
						|
                      "end": 2063,
 | 
						|
                      "name": "arcDegrees",
 | 
						|
                      "start": 2053,
 | 
						|
                      "type": "Identifier"
 | 
						|
                    },
 | 
						|
                    "arg": {
 | 
						|
                      "end": 2069,
 | 
						|
                      "raw": "360",
 | 
						|
                      "start": 2066,
 | 
						|
                      "type": "Literal",
 | 
						|
                      "type": "Literal",
 | 
						|
                      "value": {
 | 
						|
                        "value": 360.0,
 | 
						|
                        "suffix": "None"
 | 
						|
                      }
 | 
						|
                    }
 | 
						|
                  },
 | 
						|
                  {
 | 
						|
                    "type": "LabeledArg",
 | 
						|
                    "label": {
 | 
						|
                      "end": 2082,
 | 
						|
                      "name": "axis",
 | 
						|
                      "start": 2078,
 | 
						|
                      "type": "Identifier"
 | 
						|
                    },
 | 
						|
                    "arg": {
 | 
						|
                      "elements": [
 | 
						|
                        {
 | 
						|
                          "end": 2087,
 | 
						|
                          "raw": "0",
 | 
						|
                          "start": 2086,
 | 
						|
                          "type": "Literal",
 | 
						|
                          "type": "Literal",
 | 
						|
                          "value": {
 | 
						|
                            "value": 0.0,
 | 
						|
                            "suffix": "None"
 | 
						|
                          }
 | 
						|
                        },
 | 
						|
                        {
 | 
						|
                          "end": 2090,
 | 
						|
                          "raw": "0",
 | 
						|
                          "start": 2089,
 | 
						|
                          "type": "Literal",
 | 
						|
                          "type": "Literal",
 | 
						|
                          "value": {
 | 
						|
                            "value": 0.0,
 | 
						|
                            "suffix": "None"
 | 
						|
                          }
 | 
						|
                        },
 | 
						|
                        {
 | 
						|
                          "end": 2093,
 | 
						|
                          "raw": "1",
 | 
						|
                          "start": 2092,
 | 
						|
                          "type": "Literal",
 | 
						|
                          "type": "Literal",
 | 
						|
                          "value": {
 | 
						|
                            "value": 1.0,
 | 
						|
                            "suffix": "None"
 | 
						|
                          }
 | 
						|
                        }
 | 
						|
                      ],
 | 
						|
                      "end": 2094,
 | 
						|
                      "start": 2085,
 | 
						|
                      "type": "ArrayExpression",
 | 
						|
                      "type": "ArrayExpression"
 | 
						|
                    }
 | 
						|
                  },
 | 
						|
                  {
 | 
						|
                    "type": "LabeledArg",
 | 
						|
                    "label": {
 | 
						|
                      "end": 2109,
 | 
						|
                      "name": "center",
 | 
						|
                      "start": 2103,
 | 
						|
                      "type": "Identifier"
 | 
						|
                    },
 | 
						|
                    "arg": {
 | 
						|
                      "elements": [
 | 
						|
                        {
 | 
						|
                          "end": 2114,
 | 
						|
                          "raw": "0",
 | 
						|
                          "start": 2113,
 | 
						|
                          "type": "Literal",
 | 
						|
                          "type": "Literal",
 | 
						|
                          "value": {
 | 
						|
                            "value": 0.0,
 | 
						|
                            "suffix": "None"
 | 
						|
                          }
 | 
						|
                        },
 | 
						|
                        {
 | 
						|
                          "end": 2117,
 | 
						|
                          "raw": "0",
 | 
						|
                          "start": 2116,
 | 
						|
                          "type": "Literal",
 | 
						|
                          "type": "Literal",
 | 
						|
                          "value": {
 | 
						|
                            "value": 0.0,
 | 
						|
                            "suffix": "None"
 | 
						|
                          }
 | 
						|
                        },
 | 
						|
                        {
 | 
						|
                          "end": 2120,
 | 
						|
                          "raw": "0",
 | 
						|
                          "start": 2119,
 | 
						|
                          "type": "Literal",
 | 
						|
                          "type": "Literal",
 | 
						|
                          "value": {
 | 
						|
                            "value": 0.0,
 | 
						|
                            "suffix": "None"
 | 
						|
                          }
 | 
						|
                        }
 | 
						|
                      ],
 | 
						|
                      "end": 2121,
 | 
						|
                      "start": 2112,
 | 
						|
                      "type": "ArrayExpression",
 | 
						|
                      "type": "ArrayExpression"
 | 
						|
                    }
 | 
						|
                  },
 | 
						|
                  {
 | 
						|
                    "type": "LabeledArg",
 | 
						|
                    "label": {
 | 
						|
                      "end": 2139,
 | 
						|
                      "name": "instances",
 | 
						|
                      "start": 2130,
 | 
						|
                      "type": "Identifier"
 | 
						|
                    },
 | 
						|
                    "arg": {
 | 
						|
                      "end": 2148,
 | 
						|
                      "name": "nBalls",
 | 
						|
                      "start": 2142,
 | 
						|
                      "type": "Identifier",
 | 
						|
                      "type": "Identifier"
 | 
						|
                    }
 | 
						|
                  },
 | 
						|
                  {
 | 
						|
                    "type": "LabeledArg",
 | 
						|
                    "label": {
 | 
						|
                      "end": 2173,
 | 
						|
                      "name": "rotateDuplicates",
 | 
						|
                      "start": 2157,
 | 
						|
                      "type": "Identifier"
 | 
						|
                    },
 | 
						|
                    "arg": {
 | 
						|
                      "end": 2180,
 | 
						|
                      "raw": "true",
 | 
						|
                      "start": 2176,
 | 
						|
                      "type": "Literal",
 | 
						|
                      "type": "Literal",
 | 
						|
                      "value": true
 | 
						|
                    }
 | 
						|
                  }
 | 
						|
                ],
 | 
						|
                "callee": {
 | 
						|
                  "end": 2044,
 | 
						|
                  "name": "patternCircular3d",
 | 
						|
                  "start": 2027,
 | 
						|
                  "type": "Identifier"
 | 
						|
                },
 | 
						|
                "end": 2187,
 | 
						|
                "start": 2027,
 | 
						|
                "type": "CallExpressionKw",
 | 
						|
                "type": "CallExpressionKw",
 | 
						|
                "unlabeled": null
 | 
						|
              }
 | 
						|
            ],
 | 
						|
            "end": 2245,
 | 
						|
            "nonCodeMeta": {
 | 
						|
              "nonCodeNodes": {
 | 
						|
                "1": [
 | 
						|
                  {
 | 
						|
                    "end": 2245,
 | 
						|
                    "start": 2187,
 | 
						|
                    "type": "NonCodeNode",
 | 
						|
                    "value": {
 | 
						|
                      "type": "newLineBlockComment",
 | 
						|
                      "value": "Create the sketch for the links in between the chains",
 | 
						|
                      "style": "line"
 | 
						|
                    }
 | 
						|
                  }
 | 
						|
                ]
 | 
						|
              },
 | 
						|
              "startNodes": []
 | 
						|
            },
 | 
						|
            "start": 1985,
 | 
						|
            "type": "PipeExpression",
 | 
						|
            "type": "PipeExpression"
 | 
						|
          },
 | 
						|
          "start": 1973,
 | 
						|
          "type": "VariableDeclarator"
 | 
						|
        },
 | 
						|
        "end": 2245,
 | 
						|
        "kind": "const",
 | 
						|
        "start": 1973,
 | 
						|
        "type": "VariableDeclaration",
 | 
						|
        "type": "VariableDeclaration"
 | 
						|
      },
 | 
						|
      {
 | 
						|
        "declaration": {
 | 
						|
          "end": 2453,
 | 
						|
          "id": {
 | 
						|
            "end": 2256,
 | 
						|
            "name": "linkSketch",
 | 
						|
            "start": 2246,
 | 
						|
            "type": "Identifier"
 | 
						|
          },
 | 
						|
          "init": {
 | 
						|
            "body": [
 | 
						|
              {
 | 
						|
                "arguments": [
 | 
						|
                  {
 | 
						|
                    "end": 2277,
 | 
						|
                    "raw": "\"XZ\"",
 | 
						|
                    "start": 2273,
 | 
						|
                    "type": "Literal",
 | 
						|
                    "type": "Literal",
 | 
						|
                    "value": "XZ"
 | 
						|
                  }
 | 
						|
                ],
 | 
						|
                "callee": {
 | 
						|
                  "end": 2272,
 | 
						|
                  "name": "startSketchOn",
 | 
						|
                  "start": 2259,
 | 
						|
                  "type": "Identifier"
 | 
						|
                },
 | 
						|
                "end": 2278,
 | 
						|
                "start": 2259,
 | 
						|
                "type": "CallExpression",
 | 
						|
                "type": "CallExpression"
 | 
						|
              },
 | 
						|
              {
 | 
						|
                "arguments": [
 | 
						|
                  {
 | 
						|
                    "type": "LabeledArg",
 | 
						|
                    "label": {
 | 
						|
                      "end": 2305,
 | 
						|
                      "name": "center",
 | 
						|
                      "start": 2299,
 | 
						|
                      "type": "Identifier"
 | 
						|
                    },
 | 
						|
                    "arg": {
 | 
						|
                      "elements": [
 | 
						|
                        {
 | 
						|
                          "end": 2363,
 | 
						|
                          "left": {
 | 
						|
                            "end": 2347,
 | 
						|
                            "left": {
 | 
						|
                              "end": 2331,
 | 
						|
                              "left": {
 | 
						|
                                "end": 2327,
 | 
						|
                                "name": "shaftDia",
 | 
						|
                                "start": 2319,
 | 
						|
                                "type": "Identifier",
 | 
						|
                                "type": "Identifier"
 | 
						|
                              },
 | 
						|
                              "operator": "/",
 | 
						|
                              "right": {
 | 
						|
                                "end": 2331,
 | 
						|
                                "raw": "2",
 | 
						|
                                "start": 2330,
 | 
						|
                                "type": "Literal",
 | 
						|
                                "type": "Literal",
 | 
						|
                                "value": {
 | 
						|
                                  "value": 2.0,
 | 
						|
                                  "suffix": "None"
 | 
						|
                                }
 | 
						|
                              },
 | 
						|
                              "start": 2319,
 | 
						|
                              "type": "BinaryExpression",
 | 
						|
                              "type": "BinaryExpression"
 | 
						|
                            },
 | 
						|
                            "operator": "+",
 | 
						|
                            "right": {
 | 
						|
                              "end": 2347,
 | 
						|
                              "name": "wallThickness",
 | 
						|
                              "start": 2334,
 | 
						|
                              "type": "Identifier",
 | 
						|
                              "type": "Identifier"
 | 
						|
                            },
 | 
						|
                            "start": 2319,
 | 
						|
                            "type": "BinaryExpression",
 | 
						|
                            "type": "BinaryExpression"
 | 
						|
                          },
 | 
						|
                          "operator": "+",
 | 
						|
                          "right": {
 | 
						|
                            "end": 2363,
 | 
						|
                            "left": {
 | 
						|
                              "end": 2359,
 | 
						|
                              "name": "sphereDia",
 | 
						|
                              "start": 2350,
 | 
						|
                              "type": "Identifier",
 | 
						|
                              "type": "Identifier"
 | 
						|
                            },
 | 
						|
                            "operator": "/",
 | 
						|
                            "right": {
 | 
						|
                              "end": 2363,
 | 
						|
                              "raw": "2",
 | 
						|
                              "start": 2362,
 | 
						|
                              "type": "Literal",
 | 
						|
                              "type": "Literal",
 | 
						|
                              "value": {
 | 
						|
                                "value": 2.0,
 | 
						|
                                "suffix": "None"
 | 
						|
                              }
 | 
						|
                            },
 | 
						|
                            "start": 2350,
 | 
						|
                            "type": "BinaryExpression",
 | 
						|
                            "type": "BinaryExpression"
 | 
						|
                          },
 | 
						|
                          "start": 2319,
 | 
						|
                          "type": "BinaryExpression",
 | 
						|
                          "type": "BinaryExpression"
 | 
						|
                        },
 | 
						|
                        {
 | 
						|
                          "end": 2375,
 | 
						|
                          "raw": "0",
 | 
						|
                          "start": 2374,
 | 
						|
                          "type": "Literal",
 | 
						|
                          "type": "Literal",
 | 
						|
                          "value": {
 | 
						|
                            "value": 0.0,
 | 
						|
                            "suffix": "None"
 | 
						|
                          }
 | 
						|
                        }
 | 
						|
                      ],
 | 
						|
                      "end": 2384,
 | 
						|
                      "start": 2308,
 | 
						|
                      "type": "ArrayExpression",
 | 
						|
                      "type": "ArrayExpression"
 | 
						|
                    }
 | 
						|
                  },
 | 
						|
                  {
 | 
						|
                    "type": "LabeledArg",
 | 
						|
                    "label": {
 | 
						|
                      "end": 2399,
 | 
						|
                      "name": "radius",
 | 
						|
                      "start": 2393,
 | 
						|
                      "type": "Identifier"
 | 
						|
                    },
 | 
						|
                    "arg": {
 | 
						|
                      "end": 2418,
 | 
						|
                      "left": {
 | 
						|
                        "end": 2414,
 | 
						|
                        "name": "linkDiameter",
 | 
						|
                        "start": 2402,
 | 
						|
                        "type": "Identifier",
 | 
						|
                        "type": "Identifier"
 | 
						|
                      },
 | 
						|
                      "operator": "/",
 | 
						|
                      "right": {
 | 
						|
                        "end": 2418,
 | 
						|
                        "raw": "2",
 | 
						|
                        "start": 2417,
 | 
						|
                        "type": "Literal",
 | 
						|
                        "type": "Literal",
 | 
						|
                        "value": {
 | 
						|
                          "value": 2.0,
 | 
						|
                          "suffix": "None"
 | 
						|
                        }
 | 
						|
                      },
 | 
						|
                      "start": 2402,
 | 
						|
                      "type": "BinaryExpression",
 | 
						|
                      "type": "BinaryExpression"
 | 
						|
                    }
 | 
						|
                  }
 | 
						|
                ],
 | 
						|
                "callee": {
 | 
						|
                  "end": 2290,
 | 
						|
                  "name": "circle",
 | 
						|
                  "start": 2284,
 | 
						|
                  "type": "Identifier"
 | 
						|
                },
 | 
						|
                "end": 2425,
 | 
						|
                "start": 2284,
 | 
						|
                "type": "CallExpressionKw",
 | 
						|
                "type": "CallExpressionKw",
 | 
						|
                "unlabeled": null
 | 
						|
              }
 | 
						|
            ],
 | 
						|
            "end": 2453,
 | 
						|
            "nonCodeMeta": {
 | 
						|
              "nonCodeNodes": {
 | 
						|
                "1": [
 | 
						|
                  {
 | 
						|
                    "end": 2453,
 | 
						|
                    "start": 2425,
 | 
						|
                    "type": "NonCodeNode",
 | 
						|
                    "value": {
 | 
						|
                      "type": "newLineBlockComment",
 | 
						|
                      "value": "Revolve the link sketch",
 | 
						|
                      "style": "line"
 | 
						|
                    }
 | 
						|
                  }
 | 
						|
                ]
 | 
						|
              },
 | 
						|
              "startNodes": []
 | 
						|
            },
 | 
						|
            "start": 2259,
 | 
						|
            "type": "PipeExpression",
 | 
						|
            "type": "PipeExpression"
 | 
						|
          },
 | 
						|
          "start": 2246,
 | 
						|
          "type": "VariableDeclarator"
 | 
						|
        },
 | 
						|
        "end": 2453,
 | 
						|
        "kind": "const",
 | 
						|
        "start": 2246,
 | 
						|
        "type": "VariableDeclaration",
 | 
						|
        "type": "VariableDeclaration"
 | 
						|
      },
 | 
						|
      {
 | 
						|
        "declaration": {
 | 
						|
          "end": 2735,
 | 
						|
          "id": {
 | 
						|
            "end": 2465,
 | 
						|
            "name": "linkRevolve",
 | 
						|
            "start": 2454,
 | 
						|
            "type": "Identifier"
 | 
						|
          },
 | 
						|
          "init": {
 | 
						|
            "body": [
 | 
						|
              {
 | 
						|
                "arguments": [
 | 
						|
                  {
 | 
						|
                    "end": 2512,
 | 
						|
                    "properties": [
 | 
						|
                      {
 | 
						|
                        "end": 2488,
 | 
						|
                        "key": {
 | 
						|
                          "end": 2482,
 | 
						|
                          "name": "axis",
 | 
						|
                          "start": 2478,
 | 
						|
                          "type": "Identifier"
 | 
						|
                        },
 | 
						|
                        "start": 2478,
 | 
						|
                        "type": "ObjectProperty",
 | 
						|
                        "value": {
 | 
						|
                          "end": 2488,
 | 
						|
                          "raw": "'Y'",
 | 
						|
                          "start": 2485,
 | 
						|
                          "type": "Literal",
 | 
						|
                          "type": "Literal",
 | 
						|
                          "value": "Y"
 | 
						|
                        }
 | 
						|
                      },
 | 
						|
                      {
 | 
						|
                        "end": 2510,
 | 
						|
                        "key": {
 | 
						|
                          "end": 2495,
 | 
						|
                          "name": "angle",
 | 
						|
                          "start": 2490,
 | 
						|
                          "type": "Identifier"
 | 
						|
                        },
 | 
						|
                        "start": 2490,
 | 
						|
                        "type": "ObjectProperty",
 | 
						|
                        "value": {
 | 
						|
                          "end": 2510,
 | 
						|
                          "left": {
 | 
						|
                            "end": 2501,
 | 
						|
                            "raw": "360",
 | 
						|
                            "start": 2498,
 | 
						|
                            "type": "Literal",
 | 
						|
                            "type": "Literal",
 | 
						|
                            "value": {
 | 
						|
                              "value": 360.0,
 | 
						|
                              "suffix": "None"
 | 
						|
                            }
 | 
						|
                          },
 | 
						|
                          "operator": "/",
 | 
						|
                          "right": {
 | 
						|
                            "end": 2510,
 | 
						|
                            "name": "nBalls",
 | 
						|
                            "start": 2504,
 | 
						|
                            "type": "Identifier",
 | 
						|
                            "type": "Identifier"
 | 
						|
                          },
 | 
						|
                          "start": 2498,
 | 
						|
                          "type": "BinaryExpression",
 | 
						|
                          "type": "BinaryExpression"
 | 
						|
                        }
 | 
						|
                      }
 | 
						|
                    ],
 | 
						|
                    "start": 2476,
 | 
						|
                    "type": "ObjectExpression",
 | 
						|
                    "type": "ObjectExpression"
 | 
						|
                  },
 | 
						|
                  {
 | 
						|
                    "end": 2524,
 | 
						|
                    "name": "linkSketch",
 | 
						|
                    "start": 2514,
 | 
						|
                    "type": "Identifier",
 | 
						|
                    "type": "Identifier"
 | 
						|
                  }
 | 
						|
                ],
 | 
						|
                "callee": {
 | 
						|
                  "end": 2475,
 | 
						|
                  "name": "revolve",
 | 
						|
                  "start": 2468,
 | 
						|
                  "type": "Identifier"
 | 
						|
                },
 | 
						|
                "end": 2525,
 | 
						|
                "start": 2468,
 | 
						|
                "type": "CallExpression",
 | 
						|
                "type": "CallExpression"
 | 
						|
              },
 | 
						|
              {
 | 
						|
                "arguments": [
 | 
						|
                  {
 | 
						|
                    "type": "LabeledArg",
 | 
						|
                    "label": {
 | 
						|
                      "end": 2567,
 | 
						|
                      "name": "arcDegrees",
 | 
						|
                      "start": 2557,
 | 
						|
                      "type": "Identifier"
 | 
						|
                    },
 | 
						|
                    "arg": {
 | 
						|
                      "end": 2573,
 | 
						|
                      "raw": "360",
 | 
						|
                      "start": 2570,
 | 
						|
                      "type": "Literal",
 | 
						|
                      "type": "Literal",
 | 
						|
                      "value": {
 | 
						|
                        "value": 360.0,
 | 
						|
                        "suffix": "None"
 | 
						|
                      }
 | 
						|
                    }
 | 
						|
                  },
 | 
						|
                  {
 | 
						|
                    "type": "LabeledArg",
 | 
						|
                    "label": {
 | 
						|
                      "end": 2586,
 | 
						|
                      "name": "axis",
 | 
						|
                      "start": 2582,
 | 
						|
                      "type": "Identifier"
 | 
						|
                    },
 | 
						|
                    "arg": {
 | 
						|
                      "elements": [
 | 
						|
                        {
 | 
						|
                          "end": 2591,
 | 
						|
                          "raw": "0",
 | 
						|
                          "start": 2590,
 | 
						|
                          "type": "Literal",
 | 
						|
                          "type": "Literal",
 | 
						|
                          "value": {
 | 
						|
                            "value": 0.0,
 | 
						|
                            "suffix": "None"
 | 
						|
                          }
 | 
						|
                        },
 | 
						|
                        {
 | 
						|
                          "end": 2594,
 | 
						|
                          "raw": "0",
 | 
						|
                          "start": 2593,
 | 
						|
                          "type": "Literal",
 | 
						|
                          "type": "Literal",
 | 
						|
                          "value": {
 | 
						|
                            "value": 0.0,
 | 
						|
                            "suffix": "None"
 | 
						|
                          }
 | 
						|
                        },
 | 
						|
                        {
 | 
						|
                          "end": 2597,
 | 
						|
                          "raw": "1",
 | 
						|
                          "start": 2596,
 | 
						|
                          "type": "Literal",
 | 
						|
                          "type": "Literal",
 | 
						|
                          "value": {
 | 
						|
                            "value": 1.0,
 | 
						|
                            "suffix": "None"
 | 
						|
                          }
 | 
						|
                        }
 | 
						|
                      ],
 | 
						|
                      "end": 2598,
 | 
						|
                      "start": 2589,
 | 
						|
                      "type": "ArrayExpression",
 | 
						|
                      "type": "ArrayExpression"
 | 
						|
                    }
 | 
						|
                  },
 | 
						|
                  {
 | 
						|
                    "type": "LabeledArg",
 | 
						|
                    "label": {
 | 
						|
                      "end": 2613,
 | 
						|
                      "name": "center",
 | 
						|
                      "start": 2607,
 | 
						|
                      "type": "Identifier"
 | 
						|
                    },
 | 
						|
                    "arg": {
 | 
						|
                      "elements": [
 | 
						|
                        {
 | 
						|
                          "end": 2618,
 | 
						|
                          "raw": "0",
 | 
						|
                          "start": 2617,
 | 
						|
                          "type": "Literal",
 | 
						|
                          "type": "Literal",
 | 
						|
                          "value": {
 | 
						|
                            "value": 0.0,
 | 
						|
                            "suffix": "None"
 | 
						|
                          }
 | 
						|
                        },
 | 
						|
                        {
 | 
						|
                          "end": 2621,
 | 
						|
                          "raw": "0",
 | 
						|
                          "start": 2620,
 | 
						|
                          "type": "Literal",
 | 
						|
                          "type": "Literal",
 | 
						|
                          "value": {
 | 
						|
                            "value": 0.0,
 | 
						|
                            "suffix": "None"
 | 
						|
                          }
 | 
						|
                        },
 | 
						|
                        {
 | 
						|
                          "end": 2624,
 | 
						|
                          "raw": "0",
 | 
						|
                          "start": 2623,
 | 
						|
                          "type": "Literal",
 | 
						|
                          "type": "Literal",
 | 
						|
                          "value": {
 | 
						|
                            "value": 0.0,
 | 
						|
                            "suffix": "None"
 | 
						|
                          }
 | 
						|
                        }
 | 
						|
                      ],
 | 
						|
                      "end": 2625,
 | 
						|
                      "start": 2616,
 | 
						|
                      "type": "ArrayExpression",
 | 
						|
                      "type": "ArrayExpression"
 | 
						|
                    }
 | 
						|
                  },
 | 
						|
                  {
 | 
						|
                    "type": "LabeledArg",
 | 
						|
                    "label": {
 | 
						|
                      "end": 2643,
 | 
						|
                      "name": "instances",
 | 
						|
                      "start": 2634,
 | 
						|
                      "type": "Identifier"
 | 
						|
                    },
 | 
						|
                    "arg": {
 | 
						|
                      "end": 2652,
 | 
						|
                      "name": "nBalls",
 | 
						|
                      "start": 2646,
 | 
						|
                      "type": "Identifier",
 | 
						|
                      "type": "Identifier"
 | 
						|
                    }
 | 
						|
                  },
 | 
						|
                  {
 | 
						|
                    "type": "LabeledArg",
 | 
						|
                    "label": {
 | 
						|
                      "end": 2677,
 | 
						|
                      "name": "rotateDuplicates",
 | 
						|
                      "start": 2661,
 | 
						|
                      "type": "Identifier"
 | 
						|
                    },
 | 
						|
                    "arg": {
 | 
						|
                      "end": 2684,
 | 
						|
                      "raw": "true",
 | 
						|
                      "start": 2680,
 | 
						|
                      "type": "Literal",
 | 
						|
                      "type": "Literal",
 | 
						|
                      "value": true
 | 
						|
                    }
 | 
						|
                  }
 | 
						|
                ],
 | 
						|
                "callee": {
 | 
						|
                  "end": 2548,
 | 
						|
                  "name": "patternCircular3d",
 | 
						|
                  "start": 2531,
 | 
						|
                  "type": "Identifier"
 | 
						|
                },
 | 
						|
                "end": 2691,
 | 
						|
                "start": 2531,
 | 
						|
                "type": "CallExpressionKw",
 | 
						|
                "type": "CallExpressionKw",
 | 
						|
                "unlabeled": null
 | 
						|
              }
 | 
						|
            ],
 | 
						|
            "end": 2735,
 | 
						|
            "nonCodeMeta": {
 | 
						|
              "nonCodeNodes": {
 | 
						|
                "1": [
 | 
						|
                  {
 | 
						|
                    "end": 2735,
 | 
						|
                    "start": 2691,
 | 
						|
                    "type": "NonCodeNode",
 | 
						|
                    "value": {
 | 
						|
                      "type": "newLineBlockComment",
 | 
						|
                      "value": "Create the sketch for the outside walls",
 | 
						|
                      "style": "line"
 | 
						|
                    }
 | 
						|
                  }
 | 
						|
                ]
 | 
						|
              },
 | 
						|
              "startNodes": []
 | 
						|
            },
 | 
						|
            "start": 2468,
 | 
						|
            "type": "PipeExpression",
 | 
						|
            "type": "PipeExpression"
 | 
						|
          },
 | 
						|
          "start": 2454,
 | 
						|
          "type": "VariableDeclarator"
 | 
						|
        },
 | 
						|
        "end": 2735,
 | 
						|
        "kind": "const",
 | 
						|
        "start": 2454,
 | 
						|
        "type": "VariableDeclaration",
 | 
						|
        "type": "VariableDeclaration"
 | 
						|
      },
 | 
						|
      {
 | 
						|
        "declaration": {
 | 
						|
          "end": 3010,
 | 
						|
          "id": {
 | 
						|
            "end": 2753,
 | 
						|
            "name": "outsideWallSketch",
 | 
						|
            "start": 2736,
 | 
						|
            "type": "Identifier"
 | 
						|
          },
 | 
						|
          "init": {
 | 
						|
            "body": [
 | 
						|
              {
 | 
						|
                "arguments": [
 | 
						|
                  {
 | 
						|
                    "arguments": [
 | 
						|
                      {
 | 
						|
                        "type": "LabeledArg",
 | 
						|
                        "label": {
 | 
						|
                          "end": 2794,
 | 
						|
                          "name": "offset",
 | 
						|
                          "start": 2788,
 | 
						|
                          "type": "Identifier"
 | 
						|
                        },
 | 
						|
                        "arg": {
 | 
						|
                          "end": 2818,
 | 
						|
                          "left": {
 | 
						|
                            "argument": {
 | 
						|
                              "end": 2814,
 | 
						|
                              "name": "overallThickness",
 | 
						|
                              "start": 2798,
 | 
						|
                              "type": "Identifier",
 | 
						|
                              "type": "Identifier"
 | 
						|
                            },
 | 
						|
                            "end": 2814,
 | 
						|
                            "operator": "-",
 | 
						|
                            "start": 2797,
 | 
						|
                            "type": "UnaryExpression",
 | 
						|
                            "type": "UnaryExpression"
 | 
						|
                          },
 | 
						|
                          "operator": "/",
 | 
						|
                          "right": {
 | 
						|
                            "end": 2818,
 | 
						|
                            "raw": "2",
 | 
						|
                            "start": 2817,
 | 
						|
                            "type": "Literal",
 | 
						|
                            "type": "Literal",
 | 
						|
                            "value": {
 | 
						|
                              "value": 2.0,
 | 
						|
                              "suffix": "None"
 | 
						|
                            }
 | 
						|
                          },
 | 
						|
                          "start": 2797,
 | 
						|
                          "type": "BinaryExpression",
 | 
						|
                          "type": "BinaryExpression"
 | 
						|
                        }
 | 
						|
                      }
 | 
						|
                    ],
 | 
						|
                    "callee": {
 | 
						|
                      "end": 2781,
 | 
						|
                      "name": "offsetPlane",
 | 
						|
                      "start": 2770,
 | 
						|
                      "type": "Identifier"
 | 
						|
                    },
 | 
						|
                    "end": 2819,
 | 
						|
                    "start": 2770,
 | 
						|
                    "type": "CallExpressionKw",
 | 
						|
                    "type": "CallExpressionKw",
 | 
						|
                    "unlabeled": {
 | 
						|
                      "end": 2786,
 | 
						|
                      "raw": "\"XY\"",
 | 
						|
                      "start": 2782,
 | 
						|
                      "type": "Literal",
 | 
						|
                      "type": "Literal",
 | 
						|
                      "value": "XY"
 | 
						|
                    }
 | 
						|
                  }
 | 
						|
                ],
 | 
						|
                "callee": {
 | 
						|
                  "end": 2769,
 | 
						|
                  "name": "startSketchOn",
 | 
						|
                  "start": 2756,
 | 
						|
                  "type": "Identifier"
 | 
						|
                },
 | 
						|
                "end": 2820,
 | 
						|
                "start": 2756,
 | 
						|
                "type": "CallExpression",
 | 
						|
                "type": "CallExpression"
 | 
						|
              },
 | 
						|
              {
 | 
						|
                "arguments": [
 | 
						|
                  {
 | 
						|
                    "type": "LabeledArg",
 | 
						|
                    "label": {
 | 
						|
                      "end": 2847,
 | 
						|
                      "name": "center",
 | 
						|
                      "start": 2841,
 | 
						|
                      "type": "Identifier"
 | 
						|
                    },
 | 
						|
                    "arg": {
 | 
						|
                      "elements": [
 | 
						|
                        {
 | 
						|
                          "end": 2852,
 | 
						|
                          "raw": "0",
 | 
						|
                          "start": 2851,
 | 
						|
                          "type": "Literal",
 | 
						|
                          "type": "Literal",
 | 
						|
                          "value": {
 | 
						|
                            "value": 0.0,
 | 
						|
                            "suffix": "None"
 | 
						|
                          }
 | 
						|
                        },
 | 
						|
                        {
 | 
						|
                          "end": 2855,
 | 
						|
                          "raw": "0",
 | 
						|
                          "start": 2854,
 | 
						|
                          "type": "Literal",
 | 
						|
                          "type": "Literal",
 | 
						|
                          "value": {
 | 
						|
                            "value": 0.0,
 | 
						|
                            "suffix": "None"
 | 
						|
                          }
 | 
						|
                        }
 | 
						|
                      ],
 | 
						|
                      "end": 2856,
 | 
						|
                      "start": 2850,
 | 
						|
                      "type": "ArrayExpression",
 | 
						|
                      "type": "ArrayExpression"
 | 
						|
                    }
 | 
						|
                  },
 | 
						|
                  {
 | 
						|
                    "type": "LabeledArg",
 | 
						|
                    "label": {
 | 
						|
                      "end": 2871,
 | 
						|
                      "name": "radius",
 | 
						|
                      "start": 2865,
 | 
						|
                      "type": "Identifier"
 | 
						|
                    },
 | 
						|
                    "arg": {
 | 
						|
                      "end": 2893,
 | 
						|
                      "left": {
 | 
						|
                        "end": 2889,
 | 
						|
                        "name": "outsideDiameter",
 | 
						|
                        "start": 2874,
 | 
						|
                        "type": "Identifier",
 | 
						|
                        "type": "Identifier"
 | 
						|
                      },
 | 
						|
                      "operator": "/",
 | 
						|
                      "right": {
 | 
						|
                        "end": 2893,
 | 
						|
                        "raw": "2",
 | 
						|
                        "start": 2892,
 | 
						|
                        "type": "Literal",
 | 
						|
                        "type": "Literal",
 | 
						|
                        "value": {
 | 
						|
                          "value": 2.0,
 | 
						|
                          "suffix": "None"
 | 
						|
                        }
 | 
						|
                      },
 | 
						|
                      "start": 2874,
 | 
						|
                      "type": "BinaryExpression",
 | 
						|
                      "type": "BinaryExpression"
 | 
						|
                    }
 | 
						|
                  }
 | 
						|
                ],
 | 
						|
                "callee": {
 | 
						|
                  "end": 2832,
 | 
						|
                  "name": "circle",
 | 
						|
                  "start": 2826,
 | 
						|
                  "type": "Identifier"
 | 
						|
                },
 | 
						|
                "end": 2900,
 | 
						|
                "start": 2826,
 | 
						|
                "type": "CallExpressionKw",
 | 
						|
                "type": "CallExpressionKw",
 | 
						|
                "unlabeled": null
 | 
						|
              },
 | 
						|
              {
 | 
						|
                "arguments": [
 | 
						|
                  {
 | 
						|
                    "arguments": [
 | 
						|
                      {
 | 
						|
                        "type": "LabeledArg",
 | 
						|
                        "label": {
 | 
						|
                          "end": 2932,
 | 
						|
                          "name": "center",
 | 
						|
                          "start": 2926,
 | 
						|
                          "type": "Identifier"
 | 
						|
                        },
 | 
						|
                        "arg": {
 | 
						|
                          "elements": [
 | 
						|
                            {
 | 
						|
                              "end": 2937,
 | 
						|
                              "raw": "0",
 | 
						|
                              "start": 2936,
 | 
						|
                              "type": "Literal",
 | 
						|
                              "type": "Literal",
 | 
						|
                              "value": {
 | 
						|
                                "value": 0.0,
 | 
						|
                                "suffix": "None"
 | 
						|
                              }
 | 
						|
                            },
 | 
						|
                            {
 | 
						|
                              "end": 2940,
 | 
						|
                              "raw": "0",
 | 
						|
                              "start": 2939,
 | 
						|
                              "type": "Literal",
 | 
						|
                              "type": "Literal",
 | 
						|
                              "value": {
 | 
						|
                                "value": 0.0,
 | 
						|
                                "suffix": "None"
 | 
						|
                              }
 | 
						|
                            }
 | 
						|
                          ],
 | 
						|
                          "end": 2941,
 | 
						|
                          "start": 2935,
 | 
						|
                          "type": "ArrayExpression",
 | 
						|
                          "type": "ArrayExpression"
 | 
						|
                        }
 | 
						|
                      },
 | 
						|
                      {
 | 
						|
                        "type": "LabeledArg",
 | 
						|
                        "label": {
 | 
						|
                          "end": 2956,
 | 
						|
                          "name": "radius",
 | 
						|
                          "start": 2950,
 | 
						|
                          "type": "Identifier"
 | 
						|
                        },
 | 
						|
                        "arg": {
 | 
						|
                          "end": 2999,
 | 
						|
                          "left": {
 | 
						|
                            "end": 2987,
 | 
						|
                            "left": {
 | 
						|
                              "end": 2971,
 | 
						|
                              "left": {
 | 
						|
                                "end": 2967,
 | 
						|
                                "name": "shaftDia",
 | 
						|
                                "start": 2959,
 | 
						|
                                "type": "Identifier",
 | 
						|
                                "type": "Identifier"
 | 
						|
                              },
 | 
						|
                              "operator": "/",
 | 
						|
                              "right": {
 | 
						|
                                "end": 2971,
 | 
						|
                                "raw": "2",
 | 
						|
                                "start": 2970,
 | 
						|
                                "type": "Literal",
 | 
						|
                                "type": "Literal",
 | 
						|
                                "value": {
 | 
						|
                                  "value": 2.0,
 | 
						|
                                  "suffix": "None"
 | 
						|
                                }
 | 
						|
                              },
 | 
						|
                              "start": 2959,
 | 
						|
                              "type": "BinaryExpression",
 | 
						|
                              "type": "BinaryExpression"
 | 
						|
                            },
 | 
						|
                            "operator": "+",
 | 
						|
                            "right": {
 | 
						|
                              "end": 2987,
 | 
						|
                              "name": "wallThickness",
 | 
						|
                              "start": 2974,
 | 
						|
                              "type": "Identifier",
 | 
						|
                              "type": "Identifier"
 | 
						|
                            },
 | 
						|
                            "start": 2959,
 | 
						|
                            "type": "BinaryExpression",
 | 
						|
                            "type": "BinaryExpression"
 | 
						|
                          },
 | 
						|
                          "operator": "+",
 | 
						|
                          "right": {
 | 
						|
                            "end": 2999,
 | 
						|
                            "name": "sphereDia",
 | 
						|
                            "start": 2990,
 | 
						|
                            "type": "Identifier",
 | 
						|
                            "type": "Identifier"
 | 
						|
                          },
 | 
						|
                          "start": 2959,
 | 
						|
                          "type": "BinaryExpression",
 | 
						|
                          "type": "BinaryExpression"
 | 
						|
                        }
 | 
						|
                      }
 | 
						|
                    ],
 | 
						|
                    "callee": {
 | 
						|
                      "end": 2917,
 | 
						|
                      "name": "circle",
 | 
						|
                      "start": 2911,
 | 
						|
                      "type": "Identifier"
 | 
						|
                    },
 | 
						|
                    "end": 3006,
 | 
						|
                    "start": 2911,
 | 
						|
                    "type": "CallExpressionKw",
 | 
						|
                    "type": "CallExpressionKw",
 | 
						|
                    "unlabeled": null
 | 
						|
                  },
 | 
						|
                  {
 | 
						|
                    "end": 3009,
 | 
						|
                    "start": 3008,
 | 
						|
                    "type": "PipeSubstitution",
 | 
						|
                    "type": "PipeSubstitution"
 | 
						|
                  }
 | 
						|
                ],
 | 
						|
                "callee": {
 | 
						|
                  "end": 2910,
 | 
						|
                  "name": "hole",
 | 
						|
                  "start": 2906,
 | 
						|
                  "type": "Identifier"
 | 
						|
                },
 | 
						|
                "end": 3010,
 | 
						|
                "start": 2906,
 | 
						|
                "type": "CallExpression",
 | 
						|
                "type": "CallExpression"
 | 
						|
              }
 | 
						|
            ],
 | 
						|
            "end": 3010,
 | 
						|
            "start": 2756,
 | 
						|
            "type": "PipeExpression",
 | 
						|
            "type": "PipeExpression"
 | 
						|
          },
 | 
						|
          "start": 2736,
 | 
						|
          "type": "VariableDeclarator"
 | 
						|
        },
 | 
						|
        "end": 3010,
 | 
						|
        "kind": "const",
 | 
						|
        "start": 2736,
 | 
						|
        "type": "VariableDeclaration",
 | 
						|
        "type": "VariableDeclaration"
 | 
						|
      },
 | 
						|
      {
 | 
						|
        "declaration": {
 | 
						|
          "end": 3079,
 | 
						|
          "id": {
 | 
						|
            "end": 3023,
 | 
						|
            "name": "outsideWall",
 | 
						|
            "start": 3012,
 | 
						|
            "type": "Identifier"
 | 
						|
          },
 | 
						|
          "init": {
 | 
						|
            "arguments": [
 | 
						|
              {
 | 
						|
                "type": "LabeledArg",
 | 
						|
                "label": {
 | 
						|
                  "end": 3059,
 | 
						|
                  "name": "length",
 | 
						|
                  "start": 3053,
 | 
						|
                  "type": "Identifier"
 | 
						|
                },
 | 
						|
                "arg": {
 | 
						|
                  "end": 3078,
 | 
						|
                  "name": "overallThickness",
 | 
						|
                  "start": 3062,
 | 
						|
                  "type": "Identifier",
 | 
						|
                  "type": "Identifier"
 | 
						|
                }
 | 
						|
              }
 | 
						|
            ],
 | 
						|
            "callee": {
 | 
						|
              "end": 3033,
 | 
						|
              "name": "extrude",
 | 
						|
              "start": 3026,
 | 
						|
              "type": "Identifier"
 | 
						|
            },
 | 
						|
            "end": 3079,
 | 
						|
            "start": 3026,
 | 
						|
            "type": "CallExpressionKw",
 | 
						|
            "type": "CallExpressionKw",
 | 
						|
            "unlabeled": {
 | 
						|
              "end": 3051,
 | 
						|
              "name": "outsideWallSketch",
 | 
						|
              "start": 3034,
 | 
						|
              "type": "Identifier",
 | 
						|
              "type": "Identifier"
 | 
						|
            }
 | 
						|
          },
 | 
						|
          "start": 3012,
 | 
						|
          "type": "VariableDeclarator"
 | 
						|
        },
 | 
						|
        "end": 3079,
 | 
						|
        "kind": "const",
 | 
						|
        "start": 3012,
 | 
						|
        "type": "VariableDeclaration",
 | 
						|
        "type": "VariableDeclaration"
 | 
						|
      }
 | 
						|
    ],
 | 
						|
    "end": 3120,
 | 
						|
    "innerAttrs": [
 | 
						|
      {
 | 
						|
        "end": 295,
 | 
						|
        "name": {
 | 
						|
          "end": 271,
 | 
						|
          "name": "settings",
 | 
						|
          "start": 263,
 | 
						|
          "type": "Identifier"
 | 
						|
        },
 | 
						|
        "properties": [
 | 
						|
          {
 | 
						|
            "end": 294,
 | 
						|
            "key": {
 | 
						|
              "end": 289,
 | 
						|
              "name": "defaultLengthUnit",
 | 
						|
              "start": 272,
 | 
						|
              "type": "Identifier"
 | 
						|
            },
 | 
						|
            "start": 272,
 | 
						|
            "type": "ObjectProperty",
 | 
						|
            "value": {
 | 
						|
              "end": 294,
 | 
						|
              "name": "in",
 | 
						|
              "start": 292,
 | 
						|
              "type": "Identifier",
 | 
						|
              "type": "Identifier"
 | 
						|
            }
 | 
						|
          }
 | 
						|
        ],
 | 
						|
        "start": 262,
 | 
						|
        "type": "Annotation"
 | 
						|
      }
 | 
						|
    ],
 | 
						|
    "nonCodeMeta": {
 | 
						|
      "nonCodeNodes": {
 | 
						|
        "9": [
 | 
						|
          {
 | 
						|
            "end": 643,
 | 
						|
            "start": 607,
 | 
						|
            "type": "NonCodeNode",
 | 
						|
            "value": {
 | 
						|
              "type": "newLineBlockComment",
 | 
						|
              "value": "Sketch the inside bearing piece",
 | 
						|
              "style": "line"
 | 
						|
            }
 | 
						|
          }
 | 
						|
        ],
 | 
						|
        "11": [
 | 
						|
          {
 | 
						|
            "end": 1043,
 | 
						|
            "start": 1001,
 | 
						|
            "type": "NonCodeNode",
 | 
						|
            "value": {
 | 
						|
              "type": "newLineBlockComment",
 | 
						|
              "value": "Create the sketch of one of the balls",
 | 
						|
              "style": "line"
 | 
						|
            }
 | 
						|
          }
 | 
						|
        ],
 | 
						|
        "18": [
 | 
						|
          {
 | 
						|
            "end": 3012,
 | 
						|
            "start": 3010,
 | 
						|
            "type": "NonCodeNode",
 | 
						|
            "value": {
 | 
						|
              "type": "newLine"
 | 
						|
            }
 | 
						|
          }
 | 
						|
        ],
 | 
						|
        "19": [
 | 
						|
          {
 | 
						|
            "end": 3119,
 | 
						|
            "start": 3079,
 | 
						|
            "type": "NonCodeNode",
 | 
						|
            "value": {
 | 
						|
              "type": "newLineBlockComment",
 | 
						|
              "value": "https://www.mcmaster.com/60355K185/",
 | 
						|
              "style": "line"
 | 
						|
            }
 | 
						|
          }
 | 
						|
        ]
 | 
						|
      },
 | 
						|
      "startNodes": [
 | 
						|
        {
 | 
						|
          "end": 15,
 | 
						|
          "start": 0,
 | 
						|
          "type": "NonCodeNode",
 | 
						|
          "value": {
 | 
						|
            "type": "blockComment",
 | 
						|
            "value": "Ball Bearing",
 | 
						|
            "style": "line"
 | 
						|
          }
 | 
						|
        },
 | 
						|
        {
 | 
						|
          "end": 247,
 | 
						|
          "start": 16,
 | 
						|
          "type": "NonCodeNode",
 | 
						|
          "value": {
 | 
						|
            "type": "blockComment",
 | 
						|
            "value": "A ball bearing is a type of rolling-element bearing that uses balls to maintain the separation between the bearing races. The primary purpose of a ball bearing is to reduce rotational friction and support radial and axial loads.",
 | 
						|
            "style": "line"
 | 
						|
          }
 | 
						|
        },
 | 
						|
        {
 | 
						|
          "end": 249,
 | 
						|
          "start": 247,
 | 
						|
          "type": "NonCodeNode",
 | 
						|
          "value": {
 | 
						|
            "type": "newLine"
 | 
						|
          }
 | 
						|
        },
 | 
						|
        {
 | 
						|
          "end": 261,
 | 
						|
          "start": 249,
 | 
						|
          "type": "NonCodeNode",
 | 
						|
          "value": {
 | 
						|
            "type": "blockComment",
 | 
						|
            "value": "Set units",
 | 
						|
            "style": "line"
 | 
						|
          }
 | 
						|
        },
 | 
						|
        {
 | 
						|
          "end": 297,
 | 
						|
          "start": 295,
 | 
						|
          "type": "NonCodeNode",
 | 
						|
          "value": {
 | 
						|
            "type": "newLine"
 | 
						|
          }
 | 
						|
        },
 | 
						|
        {
 | 
						|
          "end": 384,
 | 
						|
          "start": 297,
 | 
						|
          "type": "NonCodeNode",
 | 
						|
          "value": {
 | 
						|
            "type": "blockComment",
 | 
						|
            "value": "Define constants like ball diameter, inside diamter, overhange length, and thickness",
 | 
						|
            "style": "line"
 | 
						|
          }
 | 
						|
        }
 | 
						|
      ]
 | 
						|
    },
 | 
						|
    "start": 0
 | 
						|
  }
 | 
						|
}
 |