From 4640f1a3ad546fdbd39a40b14a849dd257d600e8 Mon Sep 17 00:00:00 2001 From: Nicholas Boone Date: Tue, 13 May 2025 17:11:50 -0400 Subject: [PATCH] Teaching t2c how to counterbore, countersink, and counterdrill (#6833) * Teaching t2c how to counterbore, countersink, and counterdrill * Delete public/kcl-samples/parametric-bearing-pillow-block directory * Update mounting-wire.kcl * new artifiacts Signed-off-by: Jess Frazelle * Update kcl-samples simulation test output * Update kcl-samples simulation test output * updates Signed-off-by: Jess Frazelle * updates Signed-off-by: Jess Frazelle * updates Signed-off-by: Jess Frazelle --------- Signed-off-by: Jess Frazelle Co-authored-by: Jess Frazelle Co-authored-by: Jess Frazelle Co-authored-by: github-actions[bot] --- public/kcl-samples/README.md | 10 +- .../counterdrilled-weldment/main.kcl | 120 + public/kcl-samples/countersunk-plate/main.kcl | 50 + public/kcl-samples/cpu-cooler/fan-housing.kcl | 153 + public/kcl-samples/cpu-cooler/fan.kcl | 89 + public/kcl-samples/cpu-cooler/heat-sink.kcl | 171 + public/kcl-samples/cpu-cooler/main.kcl | 51 + public/kcl-samples/cpu-cooler/motor.kcl | 21 + .../kcl-samples/cpu-cooler/mounting-wire.kcl | 79 + public/kcl-samples/cpu-cooler/parameters.kcl | 13 + .../cpu-cooler/removable-sticker.kcl | 28 + public/kcl-samples/manifest.json | 48 +- .../parametric-bearing-pillow-block/main.kcl | 51 - .../pillow-block-bearing/ball-bearing.kcl | 101 + .../pillow-block-bearing/block.kcl | 56 + .../kcl-samples/pillow-block-bearing/main.kcl | 14 + .../pillow-block-bearing/parameters.kcl | 18 + .../screenshots/counterdrilled-weldment.png | Bin 0 -> 95742 bytes .../screenshots/countersunk-plate.png | Bin 0 -> 58687 bytes public/kcl-samples/screenshots/cpu-cooler.png | Bin 0 -> 115423 bytes .../screenshots/pillow-block-bearing.png | Bin 0 -> 78506 bytes .../kcl-samples/screenshots/walkie-talkie.png | Bin 59527 -> 68874 bytes .../artifact_commands.snap | 3599 +++ .../artifact_graph_flowchart.snap | 2 +- .../artifact_graph_flowchart.snap.md | 565 + .../counterdrilled-weldment/ast.snap | 5454 +++++ .../counterdrilled-weldment/ops.snap | 1841 ++ .../program_memory.snap | 1060 + .../rendered_model.png | Bin 0 -> 95742 bytes .../artifact_commands.snap | 2265 +- .../artifact_graph_flowchart.snap | 6 + .../artifact_graph_flowchart.snap.md | 208 + .../ast.snap | 3844 ++-- .../ops.snap | 387 +- .../countersunk-plate/program_memory.snap | 446 + .../countersunk-plate/rendered_model.png | Bin 0 -> 58687 bytes .../cpu-cooler/artifact_commands.snap | 18029 ++++++++++++++++ .../cpu-cooler/artifact_graph_flowchart.snap | 6 + .../artifact_graph_flowchart.snap.md | 1497 ++ .../tests/kcl_samples/cpu-cooler/ast.snap | 1355 ++ .../tests/kcl_samples/cpu-cooler/ops.snap | 955 + .../cpu-cooler/program_memory.snap | 125 + .../kcl_samples/cpu-cooler/rendered_model.png | Bin 0 -> 115423 bytes .../artifact_graph_flowchart.snap.md | 162 - .../exported_step.step | 1564 -- .../program_memory.snap | 2820 --- .../rendered_model.png | Bin 70875 -> 0 bytes .../artifact_commands.snap | 4307 ++++ .../artifact_graph_flowchart.snap | 6 + .../artifact_graph_flowchart.snap.md | 613 + .../kcl_samples/pillow-block-bearing/ast.snap | 193 + .../kcl_samples/pillow-block-bearing/ops.snap | 42 + .../pillow-block-bearing/program_memory.snap | 170 + .../pillow-block-bearing/rendered_model.png | Bin 0 -> 78506 bytes .../artifact_graph_flowchart.snap.md | 4 +- 55 files changed, 44464 insertions(+), 8134 deletions(-) create mode 100644 public/kcl-samples/counterdrilled-weldment/main.kcl create mode 100644 public/kcl-samples/countersunk-plate/main.kcl create mode 100644 public/kcl-samples/cpu-cooler/fan-housing.kcl create mode 100644 public/kcl-samples/cpu-cooler/fan.kcl create mode 100644 public/kcl-samples/cpu-cooler/heat-sink.kcl create mode 100644 public/kcl-samples/cpu-cooler/main.kcl create mode 100644 public/kcl-samples/cpu-cooler/motor.kcl create mode 100644 public/kcl-samples/cpu-cooler/mounting-wire.kcl create mode 100644 public/kcl-samples/cpu-cooler/parameters.kcl create mode 100644 public/kcl-samples/cpu-cooler/removable-sticker.kcl delete mode 100644 public/kcl-samples/parametric-bearing-pillow-block/main.kcl create mode 100644 public/kcl-samples/pillow-block-bearing/ball-bearing.kcl create mode 100644 public/kcl-samples/pillow-block-bearing/block.kcl create mode 100644 public/kcl-samples/pillow-block-bearing/main.kcl create mode 100644 public/kcl-samples/pillow-block-bearing/parameters.kcl create mode 100644 public/kcl-samples/screenshots/counterdrilled-weldment.png create mode 100644 public/kcl-samples/screenshots/countersunk-plate.png create mode 100644 public/kcl-samples/screenshots/cpu-cooler.png create mode 100644 public/kcl-samples/screenshots/pillow-block-bearing.png create mode 100644 rust/kcl-lib/tests/kcl_samples/counterdrilled-weldment/artifact_commands.snap rename rust/kcl-lib/tests/kcl_samples/{parametric-bearing-pillow-block => counterdrilled-weldment}/artifact_graph_flowchart.snap (53%) create mode 100644 rust/kcl-lib/tests/kcl_samples/counterdrilled-weldment/artifact_graph_flowchart.snap.md create mode 100644 rust/kcl-lib/tests/kcl_samples/counterdrilled-weldment/ast.snap create mode 100644 rust/kcl-lib/tests/kcl_samples/counterdrilled-weldment/ops.snap create mode 100644 rust/kcl-lib/tests/kcl_samples/counterdrilled-weldment/program_memory.snap create mode 100644 rust/kcl-lib/tests/kcl_samples/counterdrilled-weldment/rendered_model.png rename rust/kcl-lib/tests/kcl_samples/{parametric-bearing-pillow-block => countersunk-plate}/artifact_commands.snap (59%) create mode 100644 rust/kcl-lib/tests/kcl_samples/countersunk-plate/artifact_graph_flowchart.snap create mode 100644 rust/kcl-lib/tests/kcl_samples/countersunk-plate/artifact_graph_flowchart.snap.md rename rust/kcl-lib/tests/kcl_samples/{parametric-bearing-pillow-block => countersunk-plate}/ast.snap (59%) rename rust/kcl-lib/tests/kcl_samples/{parametric-bearing-pillow-block => countersunk-plate}/ops.snap (50%) create mode 100644 rust/kcl-lib/tests/kcl_samples/countersunk-plate/program_memory.snap create mode 100644 rust/kcl-lib/tests/kcl_samples/countersunk-plate/rendered_model.png create mode 100644 rust/kcl-lib/tests/kcl_samples/cpu-cooler/artifact_commands.snap create mode 100644 rust/kcl-lib/tests/kcl_samples/cpu-cooler/artifact_graph_flowchart.snap create mode 100644 rust/kcl-lib/tests/kcl_samples/cpu-cooler/artifact_graph_flowchart.snap.md create mode 100644 rust/kcl-lib/tests/kcl_samples/cpu-cooler/ast.snap create mode 100644 rust/kcl-lib/tests/kcl_samples/cpu-cooler/ops.snap create mode 100644 rust/kcl-lib/tests/kcl_samples/cpu-cooler/program_memory.snap create mode 100644 rust/kcl-lib/tests/kcl_samples/cpu-cooler/rendered_model.png delete mode 100644 rust/kcl-lib/tests/kcl_samples/parametric-bearing-pillow-block/artifact_graph_flowchart.snap.md delete mode 100644 rust/kcl-lib/tests/kcl_samples/parametric-bearing-pillow-block/exported_step.step delete mode 100644 rust/kcl-lib/tests/kcl_samples/parametric-bearing-pillow-block/program_memory.snap delete mode 100644 rust/kcl-lib/tests/kcl_samples/parametric-bearing-pillow-block/rendered_model.png create mode 100644 rust/kcl-lib/tests/kcl_samples/pillow-block-bearing/artifact_commands.snap create mode 100644 rust/kcl-lib/tests/kcl_samples/pillow-block-bearing/artifact_graph_flowchart.snap create mode 100644 rust/kcl-lib/tests/kcl_samples/pillow-block-bearing/artifact_graph_flowchart.snap.md create mode 100644 rust/kcl-lib/tests/kcl_samples/pillow-block-bearing/ast.snap create mode 100644 rust/kcl-lib/tests/kcl_samples/pillow-block-bearing/ops.snap create mode 100644 rust/kcl-lib/tests/kcl_samples/pillow-block-bearing/program_memory.snap create mode 100644 rust/kcl-lib/tests/kcl_samples/pillow-block-bearing/rendered_model.png diff --git a/public/kcl-samples/README.md b/public/kcl-samples/README.md index 852045308..e211fcf01 100644 --- a/public/kcl-samples/README.md +++ b/public/kcl-samples/README.md @@ -39,6 +39,12 @@ When you submit a PR to add or modify KCL samples, images will be generated and [![car-wheel-assembly](screenshots/car-wheel-assembly.png)](car-wheel-assembly/main.kcl) #### [color-cube](color-cube/main.kcl) ([screenshot](screenshots/color-cube.png)) [![color-cube](screenshots/color-cube.png)](color-cube/main.kcl) +#### [counterdrilled-weldment](counterdrilled-weldment/main.kcl) ([screenshot](screenshots/counterdrilled-weldment.png)) +[![counterdrilled-weldment](screenshots/counterdrilled-weldment.png)](counterdrilled-weldment/main.kcl) +#### [countersunk-plate](countersunk-plate/main.kcl) ([screenshot](screenshots/countersunk-plate.png)) +[![countersunk-plate](screenshots/countersunk-plate.png)](countersunk-plate/main.kcl) +#### [cpu-cooler](cpu-cooler/main.kcl) ([screenshot](screenshots/cpu-cooler.png)) +[![cpu-cooler](screenshots/cpu-cooler.png)](cpu-cooler/main.kcl) #### [cycloidal-gear](cycloidal-gear/main.kcl) ([screenshot](screenshots/cycloidal-gear.png)) [![cycloidal-gear](screenshots/cycloidal-gear.png)](cycloidal-gear/main.kcl) #### [dodecahedron](dodecahedron/main.kcl) ([screenshot](screenshots/dodecahedron.png)) @@ -89,8 +95,8 @@ When you submit a PR to add or modify KCL samples, images will be generated and [![mounting-plate](screenshots/mounting-plate.png)](mounting-plate/main.kcl) #### [multi-axis-robot](multi-axis-robot/main.kcl) ([screenshot](screenshots/multi-axis-robot.png)) [![multi-axis-robot](screenshots/multi-axis-robot.png)](multi-axis-robot/main.kcl) -#### [parametric-bearing-pillow-block](parametric-bearing-pillow-block/main.kcl) ([screenshot](screenshots/parametric-bearing-pillow-block.png)) -[![parametric-bearing-pillow-block](screenshots/parametric-bearing-pillow-block.png)](parametric-bearing-pillow-block/main.kcl) +#### [pillow-block-bearing](pillow-block-bearing/main.kcl) ([screenshot](screenshots/pillow-block-bearing.png)) +[![pillow-block-bearing](screenshots/pillow-block-bearing.png)](pillow-block-bearing/main.kcl) #### [pipe](pipe/main.kcl) ([screenshot](screenshots/pipe.png)) [![pipe](screenshots/pipe.png)](pipe/main.kcl) #### [pipe-flange-assembly](pipe-flange-assembly/main.kcl) ([screenshot](screenshots/pipe-flange-assembly.png)) diff --git a/public/kcl-samples/counterdrilled-weldment/main.kcl b/public/kcl-samples/counterdrilled-weldment/main.kcl new file mode 100644 index 000000000..a4dd5cc1b --- /dev/null +++ b/public/kcl-samples/counterdrilled-weldment/main.kcl @@ -0,0 +1,120 @@ +// Counterdrilled Weldment +// A metal weldment consisting of a counterdrilled plate, a centrally mounted housing tube, and four structural support fins. + +// Set units +@settings(defaultLengthUnit = in) + +// Define parameters +boltSpacingX = 5 +boltSpacingY = 3 +boltDiameter = 1 / 4 +counterdrillDiameter = 7 / 16 +counterdrillDepth = 3 / 16 +tubeInnerDiameter = 1 + 1 / 4 +tubeThickness = 0.115 +tubeHeight = 2 +stockThickness = .5 + +// Calculate the dimensions of the block using the specified bolt spacing. The size of the block can be defined by adding a multiple of the counterdrill diameter to the bolt spacing +blockLength = boltSpacingX + boltDiameter * 6 +blockWidth = boltSpacingY + boltDiameter * 6 + +// Draw the base plate +plateSketch = startSketchOn(XY) + |> startProfile(at = [-blockLength / 2, -blockWidth / 2]) + |> angledLine(angle = 0, length = blockLength, tag = $rectangleSegmentA001) + |> angledLine(angle = segAng(rectangleSegmentA001) + 90, length = blockWidth, tag = $rectangleSegmentB001) + |> angledLine(angle = segAng(rectangleSegmentA001), length = -segLen(rectangleSegmentA001), tag = $rectangleSegmentC001) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)], tag = $rectangleSegmentD001) + |> close() + |> subtract2d(tool = circle(center = [0, 0], radius = tubeInnerDiameter / 2)) +plateBody = extrude(plateSketch, length = stockThickness) + |> chamfer( + length = boltDiameter * 2, + tags = [ + getNextAdjacentEdge(rectangleSegmentB001), + getNextAdjacentEdge(rectangleSegmentA001), + getNextAdjacentEdge(rectangleSegmentC001), + getNextAdjacentEdge(rectangleSegmentD001) + ], + ) + +// Define hole positions +holePositions = [ + [-boltSpacingX / 2, -boltSpacingY / 2], + [-boltSpacingX / 2, boltSpacingY / 2], + [boltSpacingX / 2, -boltSpacingY / 2], + [boltSpacingX / 2, boltSpacingY / 2] +] + +// Function to create a counterdrilled hole +fn counterdrill(@holePosition) { + cbdrill = startSketchOn(plateBody, face = END) + |> circle(center = holePosition, radius = counterdrillDiameter / 2) + |> extrude(length = -counterdrillDepth) + cbBolt = startSketchOn(cbdrill, face = START) + |> circle(center = holePosition, radius = boltDiameter / 2, tag = $hole01) + |> extrude(length = -stockThickness + counterdrillDepth) + // Use a chamfer to create a 90-degree counterdrill edge + |> chamfer(length = (counterdrillDiameter - boltDiameter) / 2 * sqrt(2), tags = [hole01]) + return { } +} + +// Place a counterdrilled hole at each bolt hole position +map(holePositions, f = counterdrill) + +// Drill a small pin hole in the side of the tube +pinhole = startSketchOn(YZ) + |> circle(center = [0, 2.2], radius = 0.125) + |> extrude(length = -10) + +// Model the central tube and subtract the pin hole +centralTube = startSketchOn(offsetPlane(XY, offset = stockThickness)) + |> circle(center = [0, 0], radius = tubeInnerDiameter / 2 + tubeThickness) + |> subtract2d(tool = circle(center = [0, 0], radius = tubeInnerDiameter / 2)) + |> extrude(length = tubeHeight) + |> subtract(tools = [pinhole]) + +// Create a function to create a fin which spans from the central tube to the bolt hole +fn fin(@i) { + diagPlane = { + origin = [0.0, 0.0, 0.0], + xAxis = [ + boltSpacingX / 2 * i, + boltSpacingY / 2, + 0.0 + ], + yAxis = [0.0, 0.0, 1.0] + } + + finSketch = startSketchOn(diagPlane) + |> startProfile(at = [ + tubeInnerDiameter / 2 + tubeThickness, + stockThickness + ]) + |> xLine(endAbsolute = sqrt((boltSpacingX / 2) ^ 2 + (boltSpacingY / 2) ^ 2) - counterdrillDiameter) + |> yLine(length = 0.15) + |> line(endAbsolute = [ + profileStartX(%) + 0.15, + stockThickness + tubeHeight * .8 + ]) + |> xLine(length = -0.15) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close() + |> extrude(length = tubeThickness, symmetric = true) + + // Use a circular pattern to create an identical fin on the opposite side + otherFin = patternCircular3d( + finSketch, + instances = 2, + axis = [0, 0, 1], + center = [0, 0, 0], + arcDegrees = 360, + rotateDuplicates = true, + ) + return { } +} + +// Place a pair of support fins along each diagonal axis of the bolt pattern +fin(1) +fin(-1) diff --git a/public/kcl-samples/countersunk-plate/main.kcl b/public/kcl-samples/countersunk-plate/main.kcl new file mode 100644 index 000000000..d42061e37 --- /dev/null +++ b/public/kcl-samples/countersunk-plate/main.kcl @@ -0,0 +1,50 @@ +// Plate with countersunk holes +// A small mounting plate with a countersunk hole at each end + +// Set units +@settings(defaultLengthUnit = in) + +// Define parameters +boltSpacing = 5 +boltDiameter = 1 / 4 +centerHoleDiameter = 1 + 3 / 4 +plateThickness = 0.375 + +// Check that the plate is thick enough to countersink a hole +// assertGreaterThan(plateThickness, boltDiameter, "This plate is not thick enough for the necessary countersink dimensions") + +// A bit of math to calculate the tangent line between the two diameters +r1 = centerHoleDiameter / 2 * 1.5 + .35 +r2 = boltDiameter * 2 + .25 +d = boltSpacing / 2 +tangentAngle = asin((r1 - r2) / d) +tangentLength = (r1 - r2) / tan(tangentAngle) + +plateBody = startSketchOn(XY) + // Use polar coordinates to start the sketch at the tangent point of the larger radius + |> startProfile(at = polar(angle = 90 - tangentAngle, length = r1)) + |> angledLine(angle = -tangentAngle, length = tangentLength) + |> tangentialArc(radius = r2, angle = (tangentAngle - 90) * 2) + |> angledLine(angle = tangentAngle, length = -tangentLength) + |> tangentialArc(radius = r1, angle = -tangentAngle * 2) + |> angledLine(angle = -tangentAngle, length = -tangentLength) + |> tangentialArc(radius = r2, angle = (tangentAngle - 90) * 2) + |> angledLine(angle = tangentAngle, length = tangentLength) + |> tangentialArc(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close() + |> subtract2d(tool = circle(center = [0, 0], radius = centerHoleDiameter / 2 * 1.5)) + |> extrude(%, length = plateThickness) + +// Function to create a countersunk hole +fn countersink(@holePosition) { + startSketchOn(plateBody, face = END) + |> circle(center = [holePosition, 0], radius = boltDiameter / 2, tag = $hole01) + |> extrude(length = -plateThickness) + // Use a chamfer to create a 90-degree countersink + |> chamfer(length = boltDiameter, tags = [hole01]) + return { } +} + +// Place a countersunk hole at each bolt hole position +countersink(-boltSpacing / 2) +countersink(boltSpacing / 2) diff --git a/public/kcl-samples/cpu-cooler/fan-housing.kcl b/public/kcl-samples/cpu-cooler/fan-housing.kcl new file mode 100644 index 000000000..812a733a4 --- /dev/null +++ b/public/kcl-samples/cpu-cooler/fan-housing.kcl @@ -0,0 +1,153 @@ +// Fan Housing +// The plastic housing that contains the fan and the motor + +// Set units +@settings(defaultLengthUnit = mm) + +// Import parameters +import * from "parameters.kcl" + +// Model the housing which holds the motor, the fan, and the mounting provisions +// Bottom mounting face +bottomFaceSketch = startSketchOn(YZ) + |> startProfile(at = [-fanSize / 2, -fanSize / 2]) + |> angledLine(angle = 0, length = fanSize, tag = $rectangleSegmentA001) + |> angledLine(angle = segAng(rectangleSegmentA001) + 90, length = fanSize, tag = $rectangleSegmentB001) + |> angledLine(angle = segAng(rectangleSegmentA001), length = -segLen(rectangleSegmentA001), tag = $rectangleSegmentC001) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)], tag = $rectangleSegmentD001) + |> close() + |> subtract2d(tool = circle(center = [0, 0], radius = 4)) + |> subtract2d(tool = circle( + center = [ + mountingHoleSpacing / 2, + mountingHoleSpacing / 2 + ], + radius = mountingHoleSize / 2, + )) + |> subtract2d(tool = circle( + center = [ + -mountingHoleSpacing / 2, + mountingHoleSpacing / 2 + ], + radius = mountingHoleSize / 2, + )) + |> subtract2d(tool = circle( + center = [ + mountingHoleSpacing / 2, + -mountingHoleSpacing / 2 + ], + radius = mountingHoleSize / 2, + )) + |> subtract2d(tool = circle( + center = [ + -mountingHoleSpacing / 2, + -mountingHoleSpacing / 2 + ], + radius = mountingHoleSize / 2, + )) + |> extrude(length = 4) + +// Add large openings to the bottom face to allow airflow through the fan +airflowPattern = startSketchOn(bottomFaceSketch, face = END) + |> startProfile(at = [fanSize * 7 / 25, -fanSize * 9 / 25]) + |> angledLine(angle = 140, length = fanSize * 12 / 25, tag = $seg01) + |> tangentialArc(radius = fanSize * 1 / 50, angle = 90) + |> angledLine(angle = -130, length = fanSize * 8 / 25) + |> tangentialArc(radius = fanSize * 1 / 50, angle = 90) + |> angledLine(angle = segAng(seg01) + 180, length = fanSize * 2 / 25) + |> tangentialArc(radius = fanSize * 8 / 25, angle = 40) + |> xLine(length = fanSize * 3 / 25) + |> tangentialArc(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close() + |> patternCircular2d( + instances = 4, + center = [0, 0], + arcDegrees = 360, + rotateDuplicates = true, + ) + |> extrude(length = -4) + +// Create the middle segment of the fan housing body +housingMiddleLength = fanSize / 3 +housingMiddleRadius = fanSize / 3 - 1 +bodyMiddle = startSketchOn(bottomFaceSketch, face = END) + |> startProfile(at = [ + housingMiddleLength / 2, + -housingMiddleLength / 2 - housingMiddleRadius + ]) + |> tangentialArc(radius = housingMiddleRadius, angle = 90) + |> yLine(length = housingMiddleLength) + |> tangentialArc(radius = housingMiddleRadius, angle = 90) + |> xLine(length = -housingMiddleLength) + |> tangentialArc(radius = housingMiddleRadius, angle = 90) + |> yLine(length = -housingMiddleLength) + |> tangentialArc(radius = housingMiddleRadius, angle = 90) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> extrude(length = fanHeight - 4 - 4) + +// Cut a hole in the body to accommodate the fan +bodyFanHole = startSketchOn(bodyMiddle, face = END) + |> circle(center = [0, 0], radius = fanSize * 23 / 50) + |> extrude(length = -(fanHeight - 4 - 4)) + +// Top mounting face. Cut a hole in the face to accommodate the fan +topFaceSketch = startSketchOn(bodyMiddle, face = END) +topHoles = startProfile(topFaceSketch, at = [-fanSize / 2, -fanSize / 2]) + |> angledLine(angle = 0, length = fanSize, tag = $rectangleSegmentA002) + |> angledLine(angle = segAng(rectangleSegmentA002) + 90, length = fanSize, tag = $rectangleSegmentB002) + |> angledLine(angle = segAng(rectangleSegmentA002), length = -segLen(rectangleSegmentA002), tag = $rectangleSegmentC002) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)], tag = $rectangleSegmentD002) + |> close() + |> subtract2d(tool = circle(center = [0, 0], radius = fanSize * 23 / 50)) + |> subtract2d(tool = circle( + center = [ + mountingHoleSpacing / 2, + mountingHoleSpacing / 2 + ], + radius = mountingHoleSize / 2, + )) + |> subtract2d(tool = circle( + center = [ + -mountingHoleSpacing / 2, + mountingHoleSpacing / 2 + ], + radius = mountingHoleSize / 2, + )) + |> subtract2d(tool = circle( + center = [ + mountingHoleSpacing / 2, + -mountingHoleSpacing / 2 + ], + radius = mountingHoleSize / 2, + )) + |> subtract2d(tool = circle( + center = [ + -mountingHoleSpacing / 2, + -mountingHoleSpacing / 2 + ], + radius = mountingHoleSize / 2, + )) + |> extrude(length = 4) + +// Create a housing for the electric motor to sit +motorHousing = startSketchOn(bottomFaceSketch, face = END) + |> circle(center = [0, 0], radius = 11.2) + |> extrude(length = 16) + +startSketchOn(motorHousing, face = END) + |> circle(center = [0, 0], radius = 10) + |> extrude(length = -16) + |> appearance(color = "#a55e2c") + |> fillet( + radius = abs(fanSize - mountingHoleSpacing) / 2, + tags = [ + getNextAdjacentEdge(rectangleSegmentA001), + getNextAdjacentEdge(rectangleSegmentB001), + getNextAdjacentEdge(rectangleSegmentC001), + getNextAdjacentEdge(rectangleSegmentD001), + getNextAdjacentEdge(rectangleSegmentA002), + getNextAdjacentEdge(rectangleSegmentB002), + getNextAdjacentEdge(rectangleSegmentC002), + getNextAdjacentEdge(rectangleSegmentD002) + ], + ) diff --git a/public/kcl-samples/cpu-cooler/fan.kcl b/public/kcl-samples/cpu-cooler/fan.kcl new file mode 100644 index 000000000..50b5bdd13 --- /dev/null +++ b/public/kcl-samples/cpu-cooler/fan.kcl @@ -0,0 +1,89 @@ +// Fan +// Spinning axial fan that moves airflow + +// Set units +@settings(defaultLengthUnit = mm) + +// Import parameters +import * from "parameters.kcl" + +// Model the center of the fan +fanCenter = startSketchOn(XY) + |> startProfile(at = [fanHeight, 0]) + |> yLine(endAbsolute = -15 + 1.5) + |> tangentialArc(radius = 1.5, angle = -90) + |> xLine(endAbsolute = 4.5) + |> yLine(endAbsolute = -13) + |> xLine(endAbsolute = profileStartX(%) - 5) + |> tangentialArc(radius = 1, angle = 90) + |> yLine(endAbsolute = -1) + |> xLine(length = 2) + |> yLine(length = -0.15) + |> line(endAbsolute = [ + profileStartX(%) - 1.4, + profileStartY(%) - 1 + ]) + |> yLine(endAbsolute = profileStartY(%)) + |> xLine(endAbsolute = profileStartX(%)) + |> close() + |> revolve(axis = { + direction = [1.0, 0.0], + origin = [0.0, 0.0] + }) + +// Create a function for a lofted fan blade cross section that rotates about the center hub of the fan +fn fanBlade(offsetHeight, startAngle) { + fanBlade = startSketchOn(offsetPlane(YZ, offset = offsetHeight)) + |> startProfile(at = [ + 15 * cos(startAngle), + 15 * sin(startAngle) + ]) + |> arc(angleStart = startAngle, angleEnd = startAngle + 14, radius = 15) + |> arc( + endAbsolute = [ + fanSize * 22 / 50 * cos(startAngle - 20), + fanSize * 22 / 50 * sin(startAngle - 20) + ], + interiorAbsolute = [ + fanSize * 11 / 50 * cos(startAngle + 3), + fanSize * 11 / 50 * sin(startAngle + 3) + ], + ) + |> arc( + endAbsolute = [ + fanSize * 22 / 50 * cos(startAngle - 24), + fanSize * 22 / 50 * sin(startAngle - 24) + ], + interiorAbsolute = [ + fanSize * 22 / 50 * cos(startAngle - 22), + fanSize * 22 / 50 * sin(startAngle - 22) + ], + ) + |> arc( + endAbsolute = [profileStartX(%), profileStartY(%)], + interiorAbsolute = [ + fanSize * 11 / 50 * cos(startAngle - 5), + fanSize * 11 / 50 * sin(startAngle - 5) + ], + ) + |> close() + return fanBlade +} + +// Loft the fan blade cross sections into a single blade, then pattern them about the fan center +crossSections = [ + fanBlade(offsetHeight = 4.5, startAngle = 50), + fanBlade(offsetHeight = (fanHeight - 2 - 4) / 2, startAngle = 30), + fanBlade(offsetHeight = fanHeight - 2, startAngle = 0) +] +bladeLoft = loft(crossSections) + |> patternCircular3d( + instances = 9, + axis = [1, 0, 0], + center = [0, 0, 0], + arcDegrees = 360, + rotateDuplicates = true, + ) + +[fanCenter, bladeLoft] + |> appearance(color = "#110803") diff --git a/public/kcl-samples/cpu-cooler/heat-sink.kcl b/public/kcl-samples/cpu-cooler/heat-sink.kcl new file mode 100644 index 000000000..71f0846e0 --- /dev/null +++ b/public/kcl-samples/cpu-cooler/heat-sink.kcl @@ -0,0 +1,171 @@ +// Heat Sink +// Conductive metal device made from brazed tubes and fins + +// Set units +@settings(defaultLengthUnit = mm) + +// Import parameters +import * from "parameters.kcl" + +// Draw the sweep path for the outermost tubes +endTubePath = startSketchOn(offsetPlane(YZ, offset = -20)) + |> startProfile(at = [fanSize / 4, fanSize + 38]) + |> yLine(endAbsolute = bendRadius + 10, tag = $seg01) + |> tangentialArc(radius = bendRadius, angle = -90) + |> xLine(endAbsolute = 0, tag = $seg02) + |> xLine(length = -segLen(seg02)) + |> tangentialArc(radius = bendRadius, angle = -90) + |> yLine(length = segLen(seg01)) + +// Sweep and translate the outermost tube on each end +endTube = startSketchOn(offsetPlane(XY, offset = fanSize + 38)) + |> circle(center = [-20, fanSize / 4], radius = 3) + |> subtract2d(tool = circle(center = [-20, fanSize / 4], radius = 2.5)) + |> sweep(path = endTubePath) + |> patternCircular3d( + %, + instances = 2, + axis = [0, 0, 1], + center = [0, 0, 0], + arcDegrees = 360, + rotateDuplicates = false, + ) + +// Draw the sweep path for the 4 interior tubes +centerTubePath = startSketchOn(offsetPlane(YZ, offset = -4)) + |> startProfile(at = [fanSize / 2.67, fanSize + 38]) + |> yLine(endAbsolute = bendRadius + 15 + 10) + |> tangentialArc(radius = bendRadius, angle = -45) + |> angledLine(angle = -135, lengthY = 15) + |> tangentialArc(radius = bendRadius, angle = -45) + |> xLine(endAbsolute = 0, tag = $seg03) + |> xLine(length = -segLen(seg03)) + |> tangentialArc(radius = bendRadius, angle = -155) + |> tangentialArc(radius = bendRadius, angle = 65) + |> yLine(endAbsolute = fanSize + 38) + +// Draw the profile and sweep the 4 interior tubes +centerTube = startSketchOn(offsetPlane(XY, offset = fanSize + 38)) + |> circle(center = [-4, fanSize / 2.67], radius = 3) + |> subtract2d(tool = circle(center = [-4, fanSize / 2.67], radius = 2.5)) + |> sweep(path = centerTubePath) + |> patternCircular3d( + %, + instances = 2, + axis = [0, 0, 1], + center = [-4 * 2, 0, 0], + arcDegrees = 360, + rotateDuplicates = true, + ) + |> patternLinear3d( + %, + instances = 2, + distance = 4 * 4, + axis = [1, 0, 0], + ) + +// Draw a heat fin with built-in clips to secure the mounting wire. Pattern the fin upwards by the height of the fan +heatFins = startSketchOn(offsetPlane(XY, offset = 45)) + |> startProfile(at = [0, -fanSize / 2]) + |> xLine(length = 9) + |> angledLine(angle = -60, length = 2.5, tag = $seg04) + |> xLine(length = 0.75) + |> arc(interiorAbsolute = [lastSegX(%) + 1, lastSegY(%) + 1.2], endAbsolute = [lastSegX(%) + 2, lastSegY(%)]) + |> xLine(length = 0.75) + |> angledLine(angle = 60, length = segLen(seg04)) + |> xLine(endAbsolute = heatSinkDepth / 2 - 3) + |> tangentialArc(angle = 90, radius = 3) + |> yLine(endAbsolute = 0) + |> mirror2d(axis = X) + |> mirror2d(axis = Y) + |> close() + |> extrude(length = 1) + |> patternLinear3d( + %, + instances = 31, + distance = (fanSize - 10) / 30, + axis = [0, 0, 1], + ) + +// Create the mounting base for the CPU cooler. The base should consist of two pieces that secure around each of the tubes at the bottom +coolerBase = startSketchOn(-XZ) +baseLower = startProfile(coolerBase, at = [0, 10]) + |> xLine(length = -0.9) + |> arc(angleStart = 0, angleEnd = -180, radius = 3.1) + |> xLine(length = -1.8) + |> arc(angleStart = 0, angleEnd = -180, radius = 3) + |> xLine(length = -1.8) + |> arc(angleStart = 0, angleEnd = -180, radius = 3) + |> xLine(length = -1.8) + |> xLine(length = -2) + |> yLine(length = -10) + |> xLine(endAbsolute = 0) + |> mirror2d(axis = Y) + |> extrude(length = 2 * segLen(seg02), symmetric = true) + +baseUpper = startProfile(coolerBase, at = [0, 10]) + |> xLine(length = -0.9) + |> arc(angleStart = 0, angleEnd = 180, radius = 3.1) + |> xLine(length = -1.8) + |> arc(angleStart = 0, angleEnd = 180, radius = 3) + |> xLine(length = -1.8) + |> arc(angleStart = 0, angleEnd = 180, radius = 3) + |> xLine(length = -1.8) + |> xLine(length = -1) + |> yLine(length = 4) + |> tangentialArc(angle = -90, radius = 2) + |> xLine(endAbsolute = 0) + |> mirror2d(axis = Y) + |> extrude(length = 2 * segLen(seg02) * 3 / 4, symmetric = true) + +// Create a flexible mounting bracket to secure the heat sink to the motherboard once adhered +mountingBracket = startSketchOn(XZ) + |> startProfile(at = [-10, 16]) + |> xLine(length = -20) + |> tangentialArc(angle = 20, radius = bendRadius) + |> angledLine(angle = -160, length = 14, tag = $seg09) + |> tangentialArc(angle = -30, radius = bendRadius + sheetThickness) + |> angledLine(angle = 170, length = 21.5, tag = $seg04Q) + |> angledLine(angle = 170 - 90, length = sheetThickness, tag = $seg08) + |> angledLine(angle = segAng(seg04Q) + 180, length = segLen(seg04Q), tag = $seg05E) + |> tangentialArc(angle = 30, radius = bendRadius) + |> angledLine(angle = segAng(seg09) + 180, length = segLen(seg09)) + |> tangentialArc(angle = -20, radius = bendRadius + sheetThickness) + |> xLine(endAbsolute = profileStartX(%)) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)], tag = $seg07) + |> close() + |> extrude( + length = 16, + symmetric = true, + tagEnd = $capEnd001, + tagStart = $capStart001, + ) + |> fillet( + radius = 2, + tags = [ + getCommonEdge(faces = [seg07, capEnd001]), + getCommonEdge(faces = [seg08, capEnd001]), + getCommonEdge(faces = [seg08, capStart001]), + getCommonEdge(faces = [seg07, capStart001]) + ], + ) + +// Create a clearance hole in the bracket for an M3 screw and countersink the hole +thruHole = startSketchOn(mountingBracket, face = seg05E) + |> circle(center = [70, 0], radius = 3.4 / 2, tag = $seg06E) + |> extrude(length = -sheetThickness) + |> chamfer( + length = sheetThickness * 0.75, + tags = [ + getCommonEdge(faces = [seg05E, seg06E]) + ], + ) + + // Duplicate the bracket to the other side of the heat sink base + |> patternCircular3d( + instances = 2, + axis = [0, 0, 1], + center = [0, 0, 0], + arcDegrees = 360, + rotateDuplicates = true, + ) diff --git a/public/kcl-samples/cpu-cooler/main.kcl b/public/kcl-samples/cpu-cooler/main.kcl new file mode 100644 index 000000000..ffc9a1b6c --- /dev/null +++ b/public/kcl-samples/cpu-cooler/main.kcl @@ -0,0 +1,51 @@ +// CPU Cooler +// A CPU cooler is a device designed to dissipate heat generated by the CPU of a computer. They consist of a brazed heat sink made from aluminum or copper alloys, and one or two axial fans to move airflow across the heat sink. + +// Set units +@settings(defaultLengthUnit = mm) + +// Import all parts and parameters into assembly file +import * from "parameters.kcl" +import "fan-housing.kcl" as fanHousing +import "motor.kcl" as motor +import "fan.kcl" as fan +import "heat-sink.kcl" as heatSink +import "mounting-wire.kcl" as mountingWire +import "removable-sticker.kcl" as removableSticker + +// Produce the model for each imported part +heatSink + +fn translatePart(part) { + part + |> translate(x = heatSinkDepth / 2, z = 40 + fanSize / 2) + |> patternLinear3d( + %, + instances = 2, + distance = heatSinkDepth + fanHeight, + axis = [-1, 0, 0], + ) + return { } +} +translatePart(part = fanHousing) +translatePart(part = motor) +translatePart(part = fan) + +mountingWire + |> patternCircular3d( + %, + instances = 2, + axis = [0, 1, 0], + center = [0, 0, 40 + fanSize / 2], + arcDegrees = 360, + rotateDuplicates = true, + ) + |> patternCircular3d( + %, + instances = 2, + axis = [0, 0, 1], + center = [0, 0, 0], + arcDegrees = 360, + rotateDuplicates = true, + ) +removableSticker diff --git a/public/kcl-samples/cpu-cooler/motor.kcl b/public/kcl-samples/cpu-cooler/motor.kcl new file mode 100644 index 000000000..009041324 --- /dev/null +++ b/public/kcl-samples/cpu-cooler/motor.kcl @@ -0,0 +1,21 @@ +// Motor +// A small electric motor to power the fan + +// Set Units +@settings(defaultLengthUnit = mm) + +// Import Parameters +import * from "parameters.kcl" + +// Model the motor body and stem +startPlane = offsetPlane(YZ, offset = 4) +motorBody = startSketchOn(startPlane) + |> circle(center = [0, 0], radius = 10, tag = $seg04) + |> extrude(length = 17) + |> fillet(radius = 2, tags = [getOppositeEdge(seg04), seg04]) + |> appearance(color = "#021b55") +motorStem = startSketchOn(offsetPlane(YZ, offset = 21)) + |> circle(center = [0, 0], radius = 1) + |> extrude(length = 3.8) + |> appearance(color = "#cbcccd") +[motorBody, motorStem] diff --git a/public/kcl-samples/cpu-cooler/mounting-wire.kcl b/public/kcl-samples/cpu-cooler/mounting-wire.kcl new file mode 100644 index 000000000..2302efe62 --- /dev/null +++ b/public/kcl-samples/cpu-cooler/mounting-wire.kcl @@ -0,0 +1,79 @@ +// Mounting Wire +// The flexible metal wire used to clip the fans onto the heat sink + +// Set units +@settings(defaultLengthUnit = mm) + +// Import parameters +import * from "parameters.kcl" + +// Draw the XZ component of the mounting wire path +upperArm = startSketchOn(offsetPlane(XZ, offset = fanSize / 2 + 2)) + |> startProfile(at = [-12, 40 + fanSize / 2]) + |> yLine(length = 7) + |> tangentialArc(radius = 2, angle = 90) + |> xLine(length = -9) + |> tangentialArc(radius = 2, angle = -90) + |> yLine(length = 14) + |> tangentialArc(radius = 2, angle = 90) + |> xLine(length = -9) + |> tangentialArc(radius = 2, angle = -80) + |> angledLine(angle = 100, endAbsoluteY = 40 + fanSize / 2 + mountingHoleSpacing / 2 - 1.5) + |> tangentialArc(radius = 2, angle = 80, tag = $seg07) + +// Draw the XZ component of the mounting wire path +lowerArm = startSketchOn(offsetPlane(XZ, offset = fanSize / 2 + 2)) + |> startProfile(at = [-12, 40 + fanSize / 2]) + |> yLine(length = -7) + |> tangentialArc(radius = 2, angle = -90) + |> xLine(length = -9) + |> tangentialArc(radius = 2, angle = 90) + |> yLine(length = -14) + |> tangentialArc(radius = 2, angle = -90) + |> xLine(length = -9) + |> tangentialArc(radius = 2, angle = 80) + |> angledLine(angle = -100, endAbsoluteY = 40 + fanSize / 2 - (mountingHoleSpacing / 2) + 1.5) + |> tangentialArc(radius = 2, angle = -80, tag = $seg08) + +// Create the profile of the mounting wire and sweep along the XZ path +wireProfile = startSketchOn(offsetPlane(XY, offset = 40 + fanSize / 2)) +sweepUpperArm = circle(wireProfile, center = [-12, -fanSize / 2 - 2], radius = 1) + |> sweep(%, path = upperArm) + +sweepLowerArm = circle(wireProfile, center = [-12, -fanSize / 2 - 2], radius = 1) + |> sweep(%, path = lowerArm) + +// Draw the XY components of the mounting wire path +upperHook = startSketchOn(offsetPlane(XY, offset = segEndY(seg07))) + |> startProfile(at = [segEndX(seg07), -fanSize / 2 - 2]) + |> xLine(endAbsolute = -heatSinkDepth / 2 - fanHeight) + |> tangentialArc(radius = 2, angle = -90) + |> yLine(endAbsolute = -mountingHoleSpacing / 2 - 2) + |> tangentialArc(radius = 2, angle = -90) + |> xLine(length = fanHeight / 3) + +// Draw the XY components of the mounting wire path +lowerHook = startSketchOn(offsetPlane(XY, offset = segEndY(seg08))) + |> startProfile(at = [segEndX(seg07), -fanSize / 2 - 2]) + |> xLine(endAbsolute = -heatSinkDepth / 2 - fanHeight) + |> tangentialArc(radius = 2, angle = -90) + |> yLine(endAbsolute = -mountingHoleSpacing / 2 - 2) + |> tangentialArc(radius = 2, angle = -90) + |> xLine(length = fanHeight / 3) + +// Sweep the wire profile around the hook-shaped segments of the mounting wire +hookProfile = startSketchOn(offsetPlane(YZ, offset = segEndX(seg07))) +sweepUpperHook = circle(hookProfile, center = [-fanSize / 2 - 2, segEndY(seg07)], radius = 1) + |> sweep(%, path = upperHook) + +sweepLowerHook = circle(hookProfile, center = [-fanSize / 2 - 2, segEndY(seg08)], radius = 1) + |> sweep(%, path = lowerHook) + +// Union each piece of the wire into a single continuous sweep +[ + sweepLowerArm, + sweepLowerHook, + sweepUpperArm, + sweepUpperHook + ] + |> appearance(color = "#0d0d0d") diff --git a/public/kcl-samples/cpu-cooler/parameters.kcl b/public/kcl-samples/cpu-cooler/parameters.kcl new file mode 100644 index 000000000..71fdbd1c0 --- /dev/null +++ b/public/kcl-samples/cpu-cooler/parameters.kcl @@ -0,0 +1,13 @@ +// Global parameters for the CPU cooler + +// Set units +@settings(defaultLengthUnit = mm) + +// Define Parameters +export fanSize = 120 +export fanHeight = 25 +export mountingHoleSpacing = 105 +export mountingHoleSize = 4.5 +export bendRadius = 15 +export sheetThickness = 2.125 +export heatSinkDepth = 55 diff --git a/public/kcl-samples/cpu-cooler/removable-sticker.kcl b/public/kcl-samples/cpu-cooler/removable-sticker.kcl new file mode 100644 index 000000000..cad9d4705 --- /dev/null +++ b/public/kcl-samples/cpu-cooler/removable-sticker.kcl @@ -0,0 +1,28 @@ +// Removable Sticker +// Protective sticker to be removed before adhering the heat sink to the CPU + +// Set units +@settings(defaultLengthUnit = mm) + +// Import parameters +import * from "parameters.kcl" + +// Create a simple body to represent the removable warning sticker. Brightly color the sticker so that the user will not forget to remove it before installing the device +removableSticker = startSketchOn(-XY) + |> startProfile(at = [-12, -12]) + |> angledLine(angle = 0, length = 24, tag = $rectangleSegmentA001) + |> angledLine(angle = segAng(rectangleSegmentA001) + 90, length = 24, tag = $rectangleSegmentB001) + |> angledLine(angle = segAng(rectangleSegmentA001), length = -segLen(rectangleSegmentA001), tag = $rectangleSegmentC001) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)], tag = $rectangleSegmentD001) + |> close() + |> extrude(length = .3) + |> appearance(color = "#021b55") + |> chamfer( + length = 3, + tags = [ + getNextAdjacentEdge(rectangleSegmentA001), + getNextAdjacentEdge(rectangleSegmentB001), + getNextAdjacentEdge(rectangleSegmentC001), + getNextAdjacentEdge(rectangleSegmentD001) + ], + ) diff --git a/public/kcl-samples/manifest.json b/public/kcl-samples/manifest.json index 48843d8e1..3d8aa375d 100644 --- a/public/kcl-samples/manifest.json +++ b/public/kcl-samples/manifest.json @@ -90,6 +90,43 @@ "main.kcl" ] }, + { + "file": "main.kcl", + "pathFromProjectDirectoryToFirstFile": "counterdrilled-weldment/main.kcl", + "multipleFiles": false, + "title": "Counterdrilled Weldment", + "description": "A metal weldment consisting of a counterdrilled plate, a centrally mounted housing tube, and four structural support fins.", + "files": [ + "main.kcl" + ] + }, + { + "file": "main.kcl", + "pathFromProjectDirectoryToFirstFile": "countersunk-plate/main.kcl", + "multipleFiles": false, + "title": "Plate with countersunk holes", + "description": "A small mounting plate with a countersunk hole at each end", + "files": [ + "main.kcl" + ] + }, + { + "file": "main.kcl", + "pathFromProjectDirectoryToFirstFile": "cpu-cooler/main.kcl", + "multipleFiles": true, + "title": "CPU Cooler", + "description": "A CPU cooler is a device designed to dissipate heat generated by the CPU of a computer. They consist of a brazed heat sink made from aluminum or copper alloys, and one or two axial fans to move airflow across the heat sink.", + "files": [ + "fan-housing.kcl", + "fan.kcl", + "heat-sink.kcl", + "main.kcl", + "motor.kcl", + "mounting-wire.kcl", + "parameters.kcl", + "removable-sticker.kcl" + ] + }, { "file": "main.kcl", "pathFromProjectDirectoryToFirstFile": "cycloidal-gear/main.kcl", @@ -347,12 +384,15 @@ }, { "file": "main.kcl", - "pathFromProjectDirectoryToFirstFile": "parametric-bearing-pillow-block/main.kcl", - "multipleFiles": false, - "title": "Parametric Bearing Pillow Block", + "pathFromProjectDirectoryToFirstFile": "pillow-block-bearing/main.kcl", + "multipleFiles": true, + "title": "Pillow Block Bearing", "description": "A bearing pillow block, also known as a plummer block or pillow block bearing, is a pedestal used to provide support for a rotating shaft with the help of compatible bearings and various accessories. Housing a bearing, the pillow block provides a secure and stable foundation that allows the shaft to rotate smoothly within its machinery setup. These components are essential in a wide range of mechanical systems and machinery, playing a key role in reducing friction and supporting radial and axial loads.", "files": [ - "main.kcl" + "ball-bearing.kcl", + "block.kcl", + "main.kcl", + "parameters.kcl" ] }, { diff --git a/public/kcl-samples/parametric-bearing-pillow-block/main.kcl b/public/kcl-samples/parametric-bearing-pillow-block/main.kcl deleted file mode 100644 index 3f0211864..000000000 --- a/public/kcl-samples/parametric-bearing-pillow-block/main.kcl +++ /dev/null @@ -1,51 +0,0 @@ -// Parametric Bearing Pillow Block -// A bearing pillow block, also known as a plummer block or pillow block bearing, is a pedestal used to provide support for a rotating shaft with the help of compatible bearings and various accessories. Housing a bearing, the pillow block provides a secure and stable foundation that allows the shaft to rotate smoothly within its machinery setup. These components are essential in a wide range of mechanical systems and machinery, playing a key role in reducing friction and supporting radial and axial loads. - -// Set units -@settings(defaultLengthUnit = in, kclVersion = 1.0) - -// Define parameters -length = 6 -width = 4 -height = 1 -cbDepth = .25 -cbDia = .7 -holeDia = .375 -padding = 1.5 -bearingDia = 3 - -// Sketch the block body -body = startSketchOn(XY) - |> startProfile(at = [-width / 2, -length / 2]) - |> line(endAbsolute = [width / 2, -length / 2]) - |> line(endAbsolute = [width / 2, length / 2]) - |> line(endAbsolute = [-width / 2, length / 2]) - |> close() - |> extrude(length = height) -counterBoreHoles = startSketchOn(body, face = END) - |> circle( - center = [ - -(width / 2 - (padding / 2)), - -(length / 2 - (padding / 2)) - ], - radius = cbDia / 2, - ) - |> patternLinear2d(instances = 2, distance = length - padding, axis = [0, 1]) - |> patternLinear2d(instances = 2, distance = width - padding, axis = [1, 0]) - |> extrude(%, length = -cbDepth) - -boltHoles = startSketchOn(body, face = START) - |> circle( - center = [ - -(width / 2 - (padding / 2)), - -(length / 2 - (padding / 2)) - ], - radius = holeDia / 2, - ) - |> patternLinear2d(instances = 2, distance = length - padding, axis = [0, 1]) - |> patternLinear2d(instances = 2, distance = width - padding, axis = [1, 0]) - |> extrude(length = -height + cbDepth) - -centerHole = startSketchOn(body, face = END) - |> circle(center = [0, 0], radius = bearingDia / 2) - |> extrude(length = -height) diff --git a/public/kcl-samples/pillow-block-bearing/ball-bearing.kcl b/public/kcl-samples/pillow-block-bearing/ball-bearing.kcl new file mode 100644 index 000000000..595110211 --- /dev/null +++ b/public/kcl-samples/pillow-block-bearing/ball-bearing.kcl @@ -0,0 +1,101 @@ +// Pillow Block Bearing +// The ball bearing for the pillow block bearing assembly + +// Set units +@settings(defaultLengthUnit = in) + +// Import Parameters +import * from "parameters.kcl" + +// Create the sketch of one of the balls. The ball diameter is sized as a fraction of the difference between inner and outer radius of the bearing +ballsSketch = startSketchOn(offsetPlane(XY, offset = stockThickness / 2)) + |> startProfile(at = [bearingBoreDiameter / 2 + 0.1, 0.001]) + |> arc(angleEnd = 0, angleStart = 180, radius = sphereDia / 2) + |> close() + +// Revolve the ball to make a sphere and pattern around the inside wall +balls = revolve(ballsSketch, axis = X) + |> patternCircular3d( + arcDegrees = 360, + axis = [0, 0, 1], + center = [0, 0, 0], + instances = 16, + rotateDuplicates = true, + ) + +// Create the sketch for the chain around the balls +chainSketch = startSketchOn(offsetPlane(XY, offset = stockThickness / 2)) + |> startProfile(at = [ + bearingBoreDiameter / 2 + 0.1 + sphereDia / 2 - (chainWidth / 2), + 0.125 * sin(60deg) + ]) + |> arc(angleEnd = 60, angleStart = 120, radius = sphereDia / 2) + |> line(end = [0, chainThickness]) + |> line(end = [-chainWidth, 0]) + |> close() + +// Revolve the chain sketch +chainHead = revolve(chainSketch, axis = X) + |> patternCircular3d( + arcDegrees = 360, + axis = [0, 0, 1], + center = [0, 0, 0], + instances = 16, + rotateDuplicates = true, + ) + +// Create the sketch for the links in between the chains +linkSketch = startSketchOn(XZ) + |> circle( + center = [ + bearingBoreDiameter / 2 + 0.1 + sphereDia / 2, + stockThickness / 2 + ], + radius = linkDiameter / 2, + ) + +// Create the walls of the bearing +bearingBody = startSketchOn(XZ) +bearingUpper = startProfile( + bearingBody, + at = [ + bearingOuterDiameter / 2 - .07, + stockThickness + ], + ) + |> angledLine(angle = -91, length = 0.05) + |> xLine(length = -(bearingOuterDiameter / 2 - (bearingBoreDiameter / 2)) + .145) + |> yLine(endAbsolute = 0.105) + |> xLine(length = -0.025) + |> angledLine(angle = 91, endAbsoluteY = profileStartY(%)) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close() + |> revolve(angle = 360, axis = Y) + |> appearance(%, color = "#121212") + +bearingLower = startProfile(bearingBody, at = [bearingBoreDiameter / 2, 0.025]) + |> xLine(length = 0.05) + |> angledLine(angle = 75, length = 0.04, tag = $seg01) + |> xLine(length = 0.05) + |> angledLine(angle = -75, length = segLen(seg01)) + |> xLine(endAbsolute = bearingOuterDiameter / 2) + |> yLine(length = stockThickness) + |> xLine(length = -0.07) + |> angledLine(angle = -91, endAbsoluteY = profileStartY(%) + .075) + |> xLine(endAbsolute = profileStartX(%) + .05) + |> angledLine(angle = 91, endAbsoluteY = stockThickness * 1.25) + |> xLine(endAbsolute = profileStartX(%)) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close() + |> revolve(angle = 360, axis = Y) + |> appearance(%, color = "#f0f0f0") + +// Revolve the link sketch +revolve(linkSketch, axis = Y, angle = 360 / 16) + |> patternCircular3d( + arcDegrees = 360, + axis = [0, 0, 1], + center = [0, 0, 0], + instances = 16, + rotateDuplicates = true, + ) diff --git a/public/kcl-samples/pillow-block-bearing/block.kcl b/public/kcl-samples/pillow-block-bearing/block.kcl new file mode 100644 index 000000000..5c7874af1 --- /dev/null +++ b/public/kcl-samples/pillow-block-bearing/block.kcl @@ -0,0 +1,56 @@ +// Pillow Block Bearing +// The machined block for the pillow block bearing assembly. The block is dimensioned using the bolt pattern spacing, and each bolt hole includes a counterbore + +// Set units +@settings(defaultLengthUnit = in) + +// Import Parameters +import * from "parameters.kcl" + +// Calculate the dimensions of the block using the specified bolt spacing. The size of the block can be defined by adding a multiple of the counterbore diameter to the bolt spacing +blockLength = boltSpacingX + counterboreDiameter + boltDiameter +blockWidth = boltSpacingY + counterboreDiameter + boltDiameter + +// Draw the base plate +plateSketch = startSketchOn(XY) + |> startProfile(at = [-blockLength / 2, -blockWidth / 2]) + |> angledLine(angle = 0, length = blockLength, tag = $rectangleSegmentA001) + |> angledLine(angle = segAng(rectangleSegmentA001) + 90, length = blockWidth, tag = $rectangleSegmentB001) + |> angledLine(angle = segAng(rectangleSegmentA001), length = -segLen(rectangleSegmentA001), tag = $rectangleSegmentC001) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)], tag = $rectangleSegmentD001) + |> close() + |> subtract2d(tool = circle(center = [0, 0], radius = bearingOuterDiameter / 2)) +plateBody = extrude(plateSketch, length = stockThickness) + |> appearance(%, color = "#1e62eb") + |> fillet( + radius = boltDiameter * 1 / 3, + tags = [ + getNextAdjacentEdge(rectangleSegmentB001), + getNextAdjacentEdge(rectangleSegmentA001), + getNextAdjacentEdge(rectangleSegmentC001), + getNextAdjacentEdge(rectangleSegmentD001) + ], + ) + +// Define hole positions +holePositions = [ + [-boltSpacingX / 2, -boltSpacingY / 2], + [-boltSpacingX / 2, boltSpacingY / 2], + [boltSpacingX / 2, -boltSpacingY / 2], + [boltSpacingX / 2, boltSpacingY / 2] +] + +// Function to create a counterbored hole +fn counterbore(@holePosition) { + cbBore = startSketchOn(plateBody, face = END) + |> circle(center = holePosition, radius = counterboreDiameter / 2) + |> extrude(length = -counterboreDepth) + cbBolt = startSketchOn(cbBore, face = START) + |> circle(center = holePosition, radius = boltDiameter / 2, tag = $hole01) + |> extrude(length = -stockThickness + counterboreDepth) + + return { } +} + +// Place a counterbored hole at each bolt hole position +map(holePositions, f = counterbore) diff --git a/public/kcl-samples/pillow-block-bearing/main.kcl b/public/kcl-samples/pillow-block-bearing/main.kcl new file mode 100644 index 000000000..affaac609 --- /dev/null +++ b/public/kcl-samples/pillow-block-bearing/main.kcl @@ -0,0 +1,14 @@ +// Pillow Block Bearing +// A bearing pillow block, also known as a plummer block or pillow block bearing, is a pedestal used to provide support for a rotating shaft with the help of compatible bearings and various accessories. Housing a bearing, the pillow block provides a secure and stable foundation that allows the shaft to rotate smoothly within its machinery setup. These components are essential in a wide range of mechanical systems and machinery, playing a key role in reducing friction and supporting radial and axial loads. + +// Set units +@settings(defaultLengthUnit = in) + +// Import parts and parameters +import * from "parameters.kcl" +import "ball-bearing.kcl" as ballBearing +import "block.kcl" as block + +// Render each part +ballBearing +block diff --git a/public/kcl-samples/pillow-block-bearing/parameters.kcl b/public/kcl-samples/pillow-block-bearing/parameters.kcl new file mode 100644 index 000000000..44ec45c6e --- /dev/null +++ b/public/kcl-samples/pillow-block-bearing/parameters.kcl @@ -0,0 +1,18 @@ +// Global parameters for the pillow block bearing + +// Set units +@settings(defaultLengthUnit = in) + +// Export parameters +export boltSpacingX = 5 +export boltSpacingY = 3 +export boltDiameter = 3 / 8 +export counterboreDiameter = 3 / 4 +export counterboreDepth = 3 / 16 +export stockThickness = .5 +export bearingBoreDiameter = 1 + 3 / 4 +export bearingOuterDiameter = bearingBoreDiameter * 1.5 +export sphereDia = (bearingOuterDiameter - bearingBoreDiameter) / 4 +export chainWidth = sphereDia / 2 +export chainThickness = sphereDia / 8 +export linkDiameter = sphereDia / 4 diff --git a/public/kcl-samples/screenshots/counterdrilled-weldment.png b/public/kcl-samples/screenshots/counterdrilled-weldment.png new file mode 100644 index 0000000000000000000000000000000000000000..256866d43599231a37512477f62f89c644e9867a GIT binary patch literal 95742 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 Io_h8F0RKJ}F#rGn literal 0 HcmV?d00001 diff --git a/public/kcl-samples/screenshots/countersunk-plate.png b/public/kcl-samples/screenshots/countersunk-plate.png new file mode 100644 index 0000000000000000000000000000000000000000..fe1ad16c13c2bbacea23f3c851fb5083017b452a GIT binary patch literal 58687 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

0#c@y3Q?^$l*r7^!55 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

*zaay>ynG&#Q-q#yI_$ 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≦5JaJIZwmKUX3*C4y^p9EQyb33*;>di~% zq5Y0S{Tp^b;szQ1)sBdYni4Z#g!>sL&IUS%RmfE(yX`R3-|IvmR9o5 z!yRsySb^dep+Re3B5INonFrc~)P+n3cE66-dURZWlvt1TUvYnJ=zK3!^R26OW|@Vi zsq4VfW~8DuXWnJGz>*UgPQFg$Vep01YP&LxZ0oKJiD+BYLq@Rf!Gyl6DoIBFMPZo; zMTb2~>t->5xX*JYHvyMSj2HvU`KC$%d|oXBrm4;>=gybl^T52!LitdX3LVS5Q}erV z^UKG1`X`v^zO!Y2T7$oCQ94PXpNvc^}d;t~z%ck}y62e ITju%~iog~0 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 A#Q*>R literal 59527 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[757, 811, 0]"] + 30["Segment
[817, 889, 0]"] + 31["Segment
[895, 998, 0]"] + 32["Segment
[1004, 1121, 0]"] + 33["Segment
[1127, 1212, 0]"] + 34["Segment
[1218, 1225, 0]"] + 64[Solid2d] + end + subgraph path16 [Path] + 16["Path
[1249, 1304, 0]"] + 35["Segment
[1249, 1304, 0]"] + 73[Solid2d] + end + subgraph path17 [Path] + 17["Path
[1995, 2059, 0]"] + 37["Segment
[1995, 2059, 0]"] + 61[Solid2d] + end + subgraph path18 [Path] + 18["Path
[1995, 2059, 0]"] + 38["Segment
[1995, 2059, 0]"] + 62[Solid2d] + end + subgraph path19 [Path] + 19["Path
[1995, 2059, 0]"] + 36["Segment
[1995, 2059, 0]"] + 67[Solid2d] + end + subgraph path20 [Path] + 20["Path
[1995, 2059, 0]"] + 39["Segment
[1995, 2059, 0]"] + 72[Solid2d] + end + subgraph path21 [Path] + 21["Path
[2159, 2230, 0]"] + 43["Segment
[2159, 2230, 0]"] + 60[Solid2d] + end + subgraph path22 [Path] + 22["Path
[2159, 2230, 0]"] + 42["Segment
[2159, 2230, 0]"] + 63[Solid2d] + end + subgraph path23 [Path] + 23["Path
[2159, 2230, 0]"] + 41["Segment
[2159, 2230, 0]"] + 65[Solid2d] + end + subgraph path24 [Path] + 24["Path
[2159, 2230, 0]"] + 40["Segment
[2159, 2230, 0]"] + 68[Solid2d] + end + subgraph path25 [Path] + 25["Path
[2643, 2684, 0]"] + 44["Segment
[2643, 2684, 0]"] + 70[Solid2d] + end + subgraph path26 [Path] + 26["Path
[2840, 2911, 0]"] + 45["Segment
[2840, 2911, 0]"] + 71[Solid2d] + end + subgraph path27 [Path] + 27["Path
[2935, 2990, 0]"] + 46["Segment
[2935, 2990, 0]"] + 69[Solid2d] + end + subgraph path28 [Path] + 28["Path
[3369, 3470, 0]"] + 47["Segment
[3478, 3575, 0]"] + 49["Segment
[3583, 3603, 0]"] + 52["Segment
[3611, 3717, 0]"] + 54["Segment
[3725, 3746, 0]"] + 56["Segment
[3754, 3810, 0]"] + 57["Segment
[3818, 3825, 0]"] + 59[Solid2d] + end + subgraph path29 [Path] + 29["Path
[3369, 3470, 0]"] + 48["Segment
[3478, 3575, 0]"] + 50["Segment
[3583, 3603, 0]"] + 51["Segment
[3611, 3717, 0]"] + 53["Segment
[3725, 3746, 0]"] + 55["Segment
[3754, 3810, 0]"] + 58["Segment
[3818, 3825, 0]"] + 66[Solid2d] + end + 1["Plane
[734, 751, 0]"] + 2["Plane
[2620, 2637, 0]"] + 3["Plane
[2793, 2833, 0]"] + 4["Plane
[3337, 3361, 0]"] + 5["Plane
[3337, 3361, 0]"] + 6["StartSketchOnPlane
[2779, 2834, 0]"] + 7["StartSketchOnFace
[2115, 2151, 0]"] + 8["StartSketchOnFace
[1951, 1987, 0]"] + 9["StartSketchOnFace
[2115, 2151, 0]"] + 10["StartSketchOnFace
[2115, 2151, 0]"] + 11["StartSketchOnFace
[2115, 2151, 0]"] + 12["StartSketchOnFace
[1951, 1987, 0]"] + 13["StartSketchOnFace
[1951, 1987, 0]"] + 14["StartSketchOnFace
[1951, 1987, 0]"] + 74["Sweep Extrusion
[1318, 1363, 0]"] + 75["Sweep Extrusion
[2067, 2103, 0]"] + 76["Sweep Extrusion
[2067, 2103, 0]"] + 77["Sweep Extrusion
[2067, 2103, 0]"] + 78["Sweep Extrusion
[2067, 2103, 0]"] + 79["Sweep Extrusion
[2238, 2291, 0]"] + 80["Sweep Extrusion
[2238, 2291, 0]"] + 81["Sweep Extrusion
[2238, 2291, 0]"] + 82["Sweep Extrusion
[2238, 2291, 0]"] + 83["Sweep Extrusion
[2690, 2711, 0]"] + 84["Sweep Extrusion
[2997, 3025, 0]"] + 85["Sweep Extrusion
[3833, 3882, 0]"] + 86["Sweep Extrusion
[3833, 3882, 0]"] + 87["CompositeSolid Subtract
[3031, 3058, 0]"] + 88[Wall] + 89[Wall] + 90[Wall] + 91[Wall] + 92[Wall] + 93[Wall] + 94[Wall] + 95[Wall] + 96[Wall] + 97[Wall] + 98[Wall] + 99[Wall] + 100[Wall] + 101[Wall] + 102[Wall] + 103[Wall] + 104[Wall] + 105[Wall] + 106[Wall] + 107[Wall] + 108[Wall] + 109[Wall] + 110[Wall] + 111[Wall] + 112["Cap Start"] + 113["Cap Start"] + 114["Cap Start"] + 115["Cap Start"] + 116["Cap Start"] + 117["Cap Start"] + 118["Cap Start"] + 119["Cap Start"] + 120["Cap Start"] + 121["Cap End"] + 122["Cap End"] + 123["Cap End"] + 124["Cap End"] + 125["Cap End"] + 126["SweepEdge Opposite"] + 127["SweepEdge Opposite"] + 128["SweepEdge Opposite"] + 129["SweepEdge Opposite"] + 130["SweepEdge Opposite"] + 131["SweepEdge Opposite"] + 132["SweepEdge Opposite"] + 133["SweepEdge Opposite"] + 134["SweepEdge Opposite"] + 135["SweepEdge Opposite"] + 136["SweepEdge Opposite"] + 137["SweepEdge Opposite"] + 138["SweepEdge Opposite"] + 139["SweepEdge Opposite"] + 140["SweepEdge Opposite"] + 141["SweepEdge Opposite"] + 142["SweepEdge Opposite"] + 143["SweepEdge Opposite"] + 144["SweepEdge Opposite"] + 145["SweepEdge Opposite"] + 146["SweepEdge Opposite"] + 147["SweepEdge Opposite"] + 148["SweepEdge Opposite"] + 149["SweepEdge Opposite"] + 150["SweepEdge Adjacent"] + 151["SweepEdge Adjacent"] + 152["SweepEdge Adjacent"] + 153["SweepEdge Adjacent"] + 154["SweepEdge Adjacent"] + 155["SweepEdge Adjacent"] + 156["SweepEdge Adjacent"] + 157["SweepEdge Adjacent"] + 158["SweepEdge Adjacent"] + 159["SweepEdge Adjacent"] + 160["SweepEdge Adjacent"] + 161["SweepEdge Adjacent"] + 162["SweepEdge Adjacent"] + 163["SweepEdge Adjacent"] + 164["SweepEdge Adjacent"] + 165["SweepEdge Adjacent"] + 166["SweepEdge Adjacent"] + 167["SweepEdge Adjacent"] + 168["SweepEdge Adjacent"] + 169["SweepEdge Adjacent"] + 170["SweepEdge Adjacent"] + 171["SweepEdge Adjacent"] + 172["SweepEdge Adjacent"] + 173["SweepEdge Adjacent"] + 174["EdgeCut Chamfer
[1369, 1651, 0]"] + 175["EdgeCut Chamfer
[1369, 1651, 0]"] + 176["EdgeCut Chamfer
[1369, 1651, 0]"] + 177["EdgeCut Chamfer
[1369, 1651, 0]"] + 178["EdgeCut Chamfer
[2360, 2446, 0]"] + 179["EdgeCut Chamfer
[2360, 2446, 0]"] + 180["EdgeCut Chamfer
[2360, 2446, 0]"] + 181["EdgeCut Chamfer
[2360, 2446, 0]"] + 1 --- 15 + 1 --- 16 + 2 --- 25 + 3 <--x 6 + 3 --- 26 + 3 --- 27 + 4 --- 29 + 5 --- 28 + 113 x--> 7 + 123 x--> 8 + 120 x--> 9 + 116 x--> 10 + 119 x--> 11 + 123 x--> 12 + 123 x--> 13 + 123 x--> 14 + 15 --- 30 + 15 --- 31 + 15 --- 32 + 15 --- 33 + 15 --- 34 + 15 --- 64 + 15 ---- 74 + 16 --- 35 + 16 --- 73 + 17 --- 37 + 17 --- 61 + 17 ---- 78 + 123 --- 17 + 18 --- 38 + 18 --- 62 + 18 ---- 76 + 123 --- 18 + 19 --- 36 + 19 --- 67 + 19 ---- 77 + 123 --- 19 + 20 --- 39 + 20 --- 72 + 20 ---- 75 + 123 --- 20 + 21 --- 43 + 21 --- 60 + 21 ---- 79 + 119 --- 21 + 22 --- 42 + 22 --- 63 + 22 ---- 82 + 120 --- 22 + 23 --- 41 + 23 --- 65 + 23 ---- 80 + 113 --- 23 + 24 --- 40 + 24 --- 68 + 24 ---- 81 + 116 --- 24 + 25 --- 44 + 25 --- 70 + 25 ---- 83 + 25 --- 87 + 26 --- 45 + 26 --- 71 + 26 ---- 84 + 26 --- 87 + 27 --- 46 + 27 --- 69 + 28 --- 47 + 28 --- 49 + 28 --- 52 + 28 --- 54 + 28 --- 56 + 28 --- 57 + 28 --- 59 + 28 ---- 85 + 29 --- 48 + 29 --- 50 + 29 --- 51 + 29 --- 53 + 29 --- 55 + 29 --- 58 + 29 --- 66 + 29 ---- 86 + 30 --- 110 + 30 x--> 115 + 30 --- 148 + 30 --- 170 + 31 --- 108 + 31 x--> 115 + 31 --- 145 + 31 --- 171 + 32 --- 107 + 32 x--> 115 + 32 --- 147 + 32 --- 169 + 33 --- 109 + 33 x--> 115 + 33 --- 146 + 33 --- 172 + 36 --- 99 + 36 x--> 123 + 36 --- 137 + 36 --- 161 + 37 --- 106 + 37 x--> 123 + 37 --- 144 + 37 --- 168 + 38 --- 98 + 38 x--> 123 + 38 --- 136 + 38 --- 160 + 39 --- 97 + 39 x--> 123 + 39 --- 135 + 39 --- 159 + 40 --- 105 + 40 x--> 116 + 40 --- 143 + 40 --- 167 + 40 --- 180 + 41 --- 89 + 41 x--> 113 + 41 --- 127 + 41 --- 151 + 41 --- 181 + 42 --- 111 + 42 x--> 120 + 42 --- 149 + 42 --- 173 + 42 --- 178 + 43 --- 88 + 43 x--> 119 + 43 --- 126 + 43 --- 150 + 43 --- 179 + 44 --- 90 + 44 x--> 122 + 44 --- 128 + 44 --- 152 + 45 --- 91 + 45 x--> 112 + 45 --- 129 + 45 --- 153 + 47 --- 92 + 47 x--> 118 + 47 --- 131 + 47 --- 158 + 48 --- 104 + 48 x--> 117 + 48 --- 139 + 48 --- 164 + 49 --- 93 + 49 x--> 118 + 49 --- 133 + 49 --- 157 + 50 --- 103 + 50 x--> 117 + 50 --- 141 + 50 --- 162 + 51 --- 100 + 51 x--> 117 + 51 --- 142 + 51 --- 163 + 52 --- 94 + 52 x--> 118 + 52 --- 134 + 52 --- 156 + 53 --- 102 + 53 x--> 117 + 53 --- 138 + 53 --- 166 + 54 --- 95 + 54 x--> 118 + 54 --- 132 + 54 --- 154 + 55 --- 101 + 55 x--> 117 + 55 --- 140 + 55 --- 165 + 56 --- 96 + 56 x--> 118 + 56 --- 130 + 56 --- 155 + 74 --- 107 + 74 --- 108 + 74 --- 109 + 74 --- 110 + 74 --- 115 + 74 --- 123 + 74 --- 145 + 74 --- 146 + 74 --- 147 + 74 --- 148 + 74 --- 169 + 74 --- 170 + 74 --- 171 + 74 --- 172 + 75 --- 97 + 75 --- 120 + 75 --- 135 + 75 --- 159 + 76 --- 98 + 76 --- 119 + 76 --- 136 + 76 --- 160 + 77 --- 99 + 77 --- 116 + 77 --- 137 + 77 --- 161 + 78 --- 106 + 78 --- 113 + 78 --- 144 + 78 --- 168 + 79 --- 88 + 79 --- 126 + 79 --- 150 + 80 --- 89 + 80 --- 127 + 80 --- 151 + 81 --- 105 + 81 --- 143 + 81 --- 167 + 82 --- 111 + 82 --- 149 + 82 --- 173 + 83 --- 90 + 83 --- 114 + 83 --- 122 + 83 --- 128 + 83 --- 152 + 84 --- 91 + 84 --- 112 + 84 --- 121 + 84 --- 129 + 84 --- 153 + 85 --- 92 + 85 --- 93 + 85 --- 94 + 85 --- 95 + 85 --- 96 + 85 --- 118 + 85 --- 125 + 85 --- 130 + 85 --- 131 + 85 --- 132 + 85 --- 133 + 85 --- 134 + 85 --- 154 + 85 --- 155 + 85 --- 156 + 85 --- 157 + 85 --- 158 + 86 --- 100 + 86 --- 101 + 86 --- 102 + 86 --- 103 + 86 --- 104 + 86 --- 117 + 86 --- 124 + 86 --- 138 + 86 --- 139 + 86 --- 140 + 86 --- 141 + 86 --- 142 + 86 --- 162 + 86 --- 163 + 86 --- 164 + 86 --- 165 + 86 --- 166 + 126 <--x 88 + 150 <--x 88 + 127 <--x 89 + 151 <--x 89 + 128 <--x 90 + 152 <--x 90 + 129 <--x 91 + 153 <--x 91 + 131 <--x 92 + 155 <--x 92 + 158 <--x 92 + 133 <--x 93 + 157 <--x 93 + 158 <--x 93 + 134 <--x 94 + 156 <--x 94 + 157 <--x 94 + 132 <--x 95 + 154 <--x 95 + 156 <--x 95 + 130 <--x 96 + 154 <--x 96 + 155 <--x 96 + 135 <--x 97 + 159 <--x 97 + 136 <--x 98 + 160 <--x 98 + 137 <--x 99 + 161 <--x 99 + 142 <--x 100 + 162 <--x 100 + 163 <--x 100 + 140 <--x 101 + 165 <--x 101 + 166 <--x 101 + 138 <--x 102 + 163 <--x 102 + 166 <--x 102 + 141 <--x 103 + 162 <--x 103 + 164 <--x 103 + 139 <--x 104 + 164 <--x 104 + 165 <--x 104 + 143 <--x 105 + 167 <--x 105 + 144 <--x 106 + 168 <--x 106 + 147 <--x 107 + 145 <--x 108 + 146 <--x 109 + 148 <--x 110 + 149 <--x 111 + 173 <--x 111 + 144 <--x 113 + 128 <--x 114 + 126 <--x 115 + 127 <--x 115 + 143 <--x 115 + 149 <--x 115 + 137 <--x 116 + 136 <--x 119 + 135 <--x 120 + 129 <--x 121 + 145 <--x 123 + 146 <--x 123 + 147 <--x 123 + 148 <--x 123 + 138 <--x 124 + 139 <--x 124 + 140 <--x 124 + 141 <--x 124 + 142 <--x 124 + 130 <--x 125 + 131 <--x 125 + 132 <--x 125 + 133 <--x 125 + 134 <--x 125 + 169 <--x 175 + 170 <--x 174 + 171 <--x 177 + 172 <--x 176 +``` diff --git a/rust/kcl-lib/tests/kcl_samples/counterdrilled-weldment/ast.snap b/rust/kcl-lib/tests/kcl_samples/counterdrilled-weldment/ast.snap new file mode 100644 index 000000000..8d89235fb --- /dev/null +++ b/rust/kcl-lib/tests/kcl_samples/counterdrilled-weldment/ast.snap @@ -0,0 +1,5454 @@ +--- +source: kcl-lib/src/simulation_tests.rs +description: Result of parsing counterdrilled-weldment.kcl +--- +{ + "Ok": { + "body": [ + { + "commentStart": 0, + "declaration": { + "commentStart": 0, + "end": 0, + "id": { + "commentStart": 0, + "end": 0, + "name": "boltSpacingX", + "start": 0, + "type": "Identifier" + }, + "init": { + "commentStart": 0, + "end": 0, + "raw": "5", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 5.0, + "suffix": "None" + } + }, + "start": 0, + "type": "VariableDeclarator" + }, + "end": 0, + "kind": "const", + "preComments": [ + "// Define parameters" + ], + "start": 0, + "type": "VariableDeclaration", + "type": "VariableDeclaration" + }, + { + "commentStart": 0, + "declaration": { + "commentStart": 0, + "end": 0, + "id": { + "commentStart": 0, + "end": 0, + "name": "boltSpacingY", + "start": 0, + "type": "Identifier" + }, + "init": { + "commentStart": 0, + "end": 0, + "raw": "3", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 3.0, + "suffix": "None" + } + }, + "start": 0, + "type": "VariableDeclarator" + }, + "end": 0, + "kind": "const", + "start": 0, + "type": "VariableDeclaration", + "type": "VariableDeclaration" + }, + { + "commentStart": 0, + "declaration": { + "commentStart": 0, + "end": 0, + "id": { + "commentStart": 0, + "end": 0, + "name": "boltDiameter", + "start": 0, + "type": "Identifier" + }, + "init": { + "commentStart": 0, + "end": 0, + "left": { + "commentStart": 0, + "end": 0, + "raw": "1", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 1.0, + "suffix": "None" + } + }, + "operator": "/", + "right": { + "commentStart": 0, + "end": 0, + "raw": "4", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 4.0, + "suffix": "None" + } + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + }, + "start": 0, + "type": "VariableDeclarator" + }, + "end": 0, + "kind": "const", + "start": 0, + "type": "VariableDeclaration", + "type": "VariableDeclaration" + }, + { + "commentStart": 0, + "declaration": { + "commentStart": 0, + "end": 0, + "id": { + "commentStart": 0, + "end": 0, + "name": "counterdrillDiameter", + "start": 0, + "type": "Identifier" + }, + "init": { + "commentStart": 0, + "end": 0, + "left": { + "commentStart": 0, + "end": 0, + "raw": "7", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 7.0, + "suffix": "None" + } + }, + "operator": "/", + "right": { + "commentStart": 0, + "end": 0, + "raw": "16", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 16.0, + "suffix": "None" + } + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + }, + "start": 0, + "type": "VariableDeclarator" + }, + "end": 0, + "kind": "const", + "start": 0, + "type": "VariableDeclaration", + "type": "VariableDeclaration" + }, + { + "commentStart": 0, + "declaration": { + "commentStart": 0, + "end": 0, + "id": { + "commentStart": 0, + "end": 0, + "name": "counterdrillDepth", + "start": 0, + "type": "Identifier" + }, + "init": { + "commentStart": 0, + "end": 0, + "left": { + "commentStart": 0, + "end": 0, + "raw": "3", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 3.0, + "suffix": "None" + } + }, + "operator": "/", + "right": { + "commentStart": 0, + "end": 0, + "raw": "16", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 16.0, + "suffix": "None" + } + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + }, + "start": 0, + "type": "VariableDeclarator" + }, + "end": 0, + "kind": "const", + "start": 0, + "type": "VariableDeclaration", + "type": "VariableDeclaration" + }, + { + "commentStart": 0, + "declaration": { + "commentStart": 0, + "end": 0, + "id": { + "commentStart": 0, + "end": 0, + "name": "tubeInnerDiameter", + "start": 0, + "type": "Identifier" + }, + "init": { + "commentStart": 0, + "end": 0, + "left": { + "commentStart": 0, + "end": 0, + "raw": "1", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 1.0, + "suffix": "None" + } + }, + "operator": "+", + "right": { + "commentStart": 0, + "end": 0, + "left": { + "commentStart": 0, + "end": 0, + "raw": "1", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 1.0, + "suffix": "None" + } + }, + "operator": "/", + "right": { + "commentStart": 0, + "end": 0, + "raw": "4", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 4.0, + "suffix": "None" + } + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + }, + "start": 0, + "type": "VariableDeclarator" + }, + "end": 0, + "kind": "const", + "start": 0, + "type": "VariableDeclaration", + "type": "VariableDeclaration" + }, + { + "commentStart": 0, + "declaration": { + "commentStart": 0, + "end": 0, + "id": { + "commentStart": 0, + "end": 0, + "name": "tubeThickness", + "start": 0, + "type": "Identifier" + }, + "init": { + "commentStart": 0, + "end": 0, + "raw": "0.115", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 0.115, + "suffix": "None" + } + }, + "start": 0, + "type": "VariableDeclarator" + }, + "end": 0, + "kind": "const", + "start": 0, + "type": "VariableDeclaration", + "type": "VariableDeclaration" + }, + { + "commentStart": 0, + "declaration": { + "commentStart": 0, + "end": 0, + "id": { + "commentStart": 0, + "end": 0, + "name": "tubeHeight", + "start": 0, + "type": "Identifier" + }, + "init": { + "commentStart": 0, + "end": 0, + "raw": "2", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 2.0, + "suffix": "None" + } + }, + "start": 0, + "type": "VariableDeclarator" + }, + "end": 0, + "kind": "const", + "start": 0, + "type": "VariableDeclaration", + "type": "VariableDeclaration" + }, + { + "commentStart": 0, + "declaration": { + "commentStart": 0, + "end": 0, + "id": { + "commentStart": 0, + "end": 0, + "name": "stockThickness", + "start": 0, + "type": "Identifier" + }, + "init": { + "commentStart": 0, + "end": 0, + "raw": ".5", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 0.5, + "suffix": "None" + } + }, + "start": 0, + "type": "VariableDeclarator" + }, + "end": 0, + "kind": "const", + "start": 0, + "type": "VariableDeclaration", + "type": "VariableDeclaration" + }, + { + "commentStart": 0, + "declaration": { + "commentStart": 0, + "end": 0, + "id": { + "commentStart": 0, + "end": 0, + "name": "blockLength", + "start": 0, + "type": "Identifier" + }, + "init": { + "commentStart": 0, + "end": 0, + "left": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "boltSpacingX", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "operator": "+", + "right": { + "commentStart": 0, + "end": 0, + "left": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "boltDiameter", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "operator": "*", + "right": { + "commentStart": 0, + "end": 0, + "raw": "6", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 6.0, + "suffix": "None" + } + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + }, + "start": 0, + "type": "VariableDeclarator" + }, + "end": 0, + "kind": "const", + "preComments": [ + "", + "", + "// Calculate the dimensions of the block using the specified bolt spacing. The size of the block can be defined by adding a multiple of the counterdrill diameter to the bolt spacing" + ], + "start": 0, + "type": "VariableDeclaration", + "type": "VariableDeclaration" + }, + { + "commentStart": 0, + "declaration": { + "commentStart": 0, + "end": 0, + "id": { + "commentStart": 0, + "end": 0, + "name": "blockWidth", + "start": 0, + "type": "Identifier" + }, + "init": { + "commentStart": 0, + "end": 0, + "left": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "boltSpacingY", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "operator": "+", + "right": { + "commentStart": 0, + "end": 0, + "left": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "boltDiameter", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "operator": "*", + "right": { + "commentStart": 0, + "end": 0, + "raw": "6", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 6.0, + "suffix": "None" + } + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + }, + "start": 0, + "type": "VariableDeclarator" + }, + "end": 0, + "kind": "const", + "start": 0, + "type": "VariableDeclaration", + "type": "VariableDeclaration" + }, + { + "commentStart": 0, + "declaration": { + "commentStart": 0, + "end": 0, + "id": { + "commentStart": 0, + "end": 0, + "name": "plateSketch", + "start": 0, + "type": "Identifier" + }, + "init": { + "body": [ + { + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "startSketchOn", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "XY", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + } + }, + { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "at", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "elements": [ + { + "commentStart": 0, + "end": 0, + "left": { + "argument": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "blockLength", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "operator": "-", + "start": 0, + "type": "UnaryExpression", + "type": "UnaryExpression" + }, + "operator": "/", + "right": { + "commentStart": 0, + "end": 0, + "raw": "2", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 2.0, + "suffix": "None" + } + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + }, + { + "commentStart": 0, + "end": 0, + "left": { + "argument": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "blockWidth", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "operator": "-", + "start": 0, + "type": "UnaryExpression", + "type": "UnaryExpression" + }, + "operator": "/", + "right": { + "commentStart": 0, + "end": 0, + "raw": "2", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 2.0, + "suffix": "None" + } + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + } + ], + "end": 0, + "start": 0, + "type": "ArrayExpression", + "type": "ArrayExpression" + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "startProfile", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": null + }, + { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "angle", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "end": 0, + "raw": "0", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 0.0, + "suffix": "None" + } + } + }, + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "length", + "start": 0, + "type": "Identifier" + }, + "arg": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "blockLength", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + } + }, + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "tag", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "end": 0, + "start": 0, + "type": "TagDeclarator", + "type": "TagDeclarator", + "value": "rectangleSegmentA001" + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "angledLine", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": null + }, + { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "angle", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "end": 0, + "left": { + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "segAng", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "rectangleSegmentA001", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + } + }, + "operator": "+", + "right": { + "commentStart": 0, + "end": 0, + "raw": "90", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 90.0, + "suffix": "None" + } + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + } + }, + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "length", + "start": 0, + "type": "Identifier" + }, + "arg": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "blockWidth", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + } + }, + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "tag", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "end": 0, + "start": 0, + "type": "TagDeclarator", + "type": "TagDeclarator", + "value": "rectangleSegmentB001" + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "angledLine", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": null + }, + { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "angle", + "start": 0, + "type": "Identifier" + }, + "arg": { + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "segAng", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "rectangleSegmentA001", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + } + } + }, + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "length", + "start": 0, + "type": "Identifier" + }, + "arg": { + "argument": { + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "segLen", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "rectangleSegmentA001", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + } + }, + "commentStart": 0, + "end": 0, + "operator": "-", + "start": 0, + "type": "UnaryExpression", + "type": "UnaryExpression" + } + }, + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "tag", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "end": 0, + "start": 0, + "type": "TagDeclarator", + "type": "TagDeclarator", + "value": "rectangleSegmentC001" + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "angledLine", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": null + }, + { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "endAbsolute", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "elements": [ + { + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "profileStartX", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": { + "commentStart": 0, + "end": 0, + "start": 0, + "type": "PipeSubstitution", + "type": "PipeSubstitution" + } + }, + { + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "profileStartY", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": { + "commentStart": 0, + "end": 0, + "start": 0, + "type": "PipeSubstitution", + "type": "PipeSubstitution" + } + } + ], + "end": 0, + "start": 0, + "type": "ArrayExpression", + "type": "ArrayExpression" + } + }, + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "tag", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "end": 0, + "start": 0, + "type": "TagDeclarator", + "type": "TagDeclarator", + "value": "rectangleSegmentD001" + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "line", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": null + }, + { + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "close", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": null + }, + { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "tool", + "start": 0, + "type": "Identifier" + }, + "arg": { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "center", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "elements": [ + { + "commentStart": 0, + "end": 0, + "raw": "0", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 0.0, + "suffix": "None" + } + }, + { + "commentStart": 0, + "end": 0, + "raw": "0", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 0.0, + "suffix": "None" + } + } + ], + "end": 0, + "start": 0, + "type": "ArrayExpression", + "type": "ArrayExpression" + } + }, + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "radius", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "end": 0, + "left": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "tubeInnerDiameter", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "operator": "/", + "right": { + "commentStart": 0, + "end": 0, + "raw": "2", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 2.0, + "suffix": "None" + } + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "circle", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": null + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "subtract2d", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": null + } + ], + "commentStart": 0, + "end": 0, + "start": 0, + "type": "PipeExpression", + "type": "PipeExpression" + }, + "start": 0, + "type": "VariableDeclarator" + }, + "end": 0, + "kind": "const", + "preComments": [ + "", + "", + "// Draw the base plate" + ], + "start": 0, + "type": "VariableDeclaration", + "type": "VariableDeclaration" + }, + { + "commentStart": 0, + "declaration": { + "commentStart": 0, + "end": 0, + "id": { + "commentStart": 0, + "end": 0, + "name": "plateBody", + "start": 0, + "type": "Identifier" + }, + "init": { + "body": [ + { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "length", + "start": 0, + "type": "Identifier" + }, + "arg": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "stockThickness", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "extrude", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "plateSketch", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + } + }, + { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "length", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "end": 0, + "left": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "boltDiameter", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "operator": "*", + "right": { + "commentStart": 0, + "end": 0, + "raw": "2", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 2.0, + "suffix": "None" + } + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + } + }, + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "tags", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "elements": [ + { + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "getNextAdjacentEdge", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "rectangleSegmentB001", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + } + }, + { + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "getNextAdjacentEdge", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "rectangleSegmentA001", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + } + }, + { + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "getNextAdjacentEdge", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "rectangleSegmentC001", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + } + }, + { + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "getNextAdjacentEdge", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "rectangleSegmentD001", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + } + } + ], + "end": 0, + "start": 0, + "type": "ArrayExpression", + "type": "ArrayExpression" + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "chamfer", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": null + } + ], + "commentStart": 0, + "end": 0, + "nonCodeMeta": { + "nonCodeNodes": { + "1": [ + { + "commentStart": 0, + "end": 0, + "start": 0, + "type": "NonCodeNode", + "value": { + "type": "newLineBlockComment", + "value": "Define hole positions", + "style": "line" + } + } + ] + }, + "startNodes": [] + }, + "start": 0, + "type": "PipeExpression", + "type": "PipeExpression" + }, + "start": 0, + "type": "VariableDeclarator" + }, + "end": 0, + "kind": "const", + "start": 0, + "type": "VariableDeclaration", + "type": "VariableDeclaration" + }, + { + "commentStart": 0, + "declaration": { + "commentStart": 0, + "end": 0, + "id": { + "commentStart": 0, + "end": 0, + "name": "holePositions", + "start": 0, + "type": "Identifier" + }, + "init": { + "commentStart": 0, + "elements": [ + { + "commentStart": 0, + "elements": [ + { + "commentStart": 0, + "end": 0, + "left": { + "argument": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "boltSpacingX", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "operator": "-", + "start": 0, + "type": "UnaryExpression", + "type": "UnaryExpression" + }, + "operator": "/", + "right": { + "commentStart": 0, + "end": 0, + "raw": "2", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 2.0, + "suffix": "None" + } + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + }, + { + "commentStart": 0, + "end": 0, + "left": { + "argument": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "boltSpacingY", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "operator": "-", + "start": 0, + "type": "UnaryExpression", + "type": "UnaryExpression" + }, + "operator": "/", + "right": { + "commentStart": 0, + "end": 0, + "raw": "2", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 2.0, + "suffix": "None" + } + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + } + ], + "end": 0, + "start": 0, + "type": "ArrayExpression", + "type": "ArrayExpression" + }, + { + "commentStart": 0, + "elements": [ + { + "commentStart": 0, + "end": 0, + "left": { + "argument": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "boltSpacingX", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "operator": "-", + "start": 0, + "type": "UnaryExpression", + "type": "UnaryExpression" + }, + "operator": "/", + "right": { + "commentStart": 0, + "end": 0, + "raw": "2", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 2.0, + "suffix": "None" + } + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + }, + { + "commentStart": 0, + "end": 0, + "left": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "boltSpacingY", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "operator": "/", + "right": { + "commentStart": 0, + "end": 0, + "raw": "2", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 2.0, + "suffix": "None" + } + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + } + ], + "end": 0, + "start": 0, + "type": "ArrayExpression", + "type": "ArrayExpression" + }, + { + "commentStart": 0, + "elements": [ + { + "commentStart": 0, + "end": 0, + "left": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "boltSpacingX", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "operator": "/", + "right": { + "commentStart": 0, + "end": 0, + "raw": "2", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 2.0, + "suffix": "None" + } + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + }, + { + "commentStart": 0, + "end": 0, + "left": { + "argument": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "boltSpacingY", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "operator": "-", + "start": 0, + "type": "UnaryExpression", + "type": "UnaryExpression" + }, + "operator": "/", + "right": { + "commentStart": 0, + "end": 0, + "raw": "2", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 2.0, + "suffix": "None" + } + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + } + ], + "end": 0, + "start": 0, + "type": "ArrayExpression", + "type": "ArrayExpression" + }, + { + "commentStart": 0, + "elements": [ + { + "commentStart": 0, + "end": 0, + "left": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "boltSpacingX", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "operator": "/", + "right": { + "commentStart": 0, + "end": 0, + "raw": "2", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 2.0, + "suffix": "None" + } + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + }, + { + "commentStart": 0, + "end": 0, + "left": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "boltSpacingY", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "operator": "/", + "right": { + "commentStart": 0, + "end": 0, + "raw": "2", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 2.0, + "suffix": "None" + } + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + } + ], + "end": 0, + "start": 0, + "type": "ArrayExpression", + "type": "ArrayExpression" + } + ], + "end": 0, + "start": 0, + "type": "ArrayExpression", + "type": "ArrayExpression" + }, + "start": 0, + "type": "VariableDeclarator" + }, + "end": 0, + "kind": "const", + "start": 0, + "type": "VariableDeclaration", + "type": "VariableDeclaration" + }, + { + "commentStart": 0, + "declaration": { + "commentStart": 0, + "end": 0, + "id": { + "commentStart": 0, + "end": 0, + "name": "counterdrill", + "start": 0, + "type": "Identifier" + }, + "init": { + "body": { + "body": [ + { + "commentStart": 0, + "declaration": { + "commentStart": 0, + "end": 0, + "id": { + "commentStart": 0, + "end": 0, + "name": "cbdrill", + "start": 0, + "type": "Identifier" + }, + "init": { + "body": [ + { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "face", + "start": 0, + "type": "Identifier" + }, + "arg": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "END", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "startSketchOn", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "plateBody", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + } + }, + { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "center", + "start": 0, + "type": "Identifier" + }, + "arg": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "holePosition", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + } + }, + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "radius", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "end": 0, + "left": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "counterdrillDiameter", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "operator": "/", + "right": { + "commentStart": 0, + "end": 0, + "raw": "2", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 2.0, + "suffix": "None" + } + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "circle", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": null + }, + { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "length", + "start": 0, + "type": "Identifier" + }, + "arg": { + "argument": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "counterdrillDepth", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "operator": "-", + "start": 0, + "type": "UnaryExpression", + "type": "UnaryExpression" + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "extrude", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": null + } + ], + "commentStart": 0, + "end": 0, + "start": 0, + "type": "PipeExpression", + "type": "PipeExpression" + }, + "start": 0, + "type": "VariableDeclarator" + }, + "end": 0, + "kind": "const", + "start": 0, + "type": "VariableDeclaration", + "type": "VariableDeclaration" + }, + { + "commentStart": 0, + "declaration": { + "commentStart": 0, + "end": 0, + "id": { + "commentStart": 0, + "end": 0, + "name": "cbBolt", + "start": 0, + "type": "Identifier" + }, + "init": { + "body": [ + { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "face", + "start": 0, + "type": "Identifier" + }, + "arg": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "START", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "startSketchOn", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "cbdrill", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + } + }, + { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "center", + "start": 0, + "type": "Identifier" + }, + "arg": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "holePosition", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + } + }, + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "radius", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "end": 0, + "left": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "boltDiameter", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "operator": "/", + "right": { + "commentStart": 0, + "end": 0, + "raw": "2", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 2.0, + "suffix": "None" + } + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + } + }, + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "tag", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "end": 0, + "start": 0, + "type": "TagDeclarator", + "type": "TagDeclarator", + "value": "hole01" + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "circle", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": null + }, + { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "length", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "end": 0, + "left": { + "argument": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "stockThickness", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "operator": "-", + "start": 0, + "type": "UnaryExpression", + "type": "UnaryExpression" + }, + "operator": "+", + "right": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "counterdrillDepth", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "extrude", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": null + }, + { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "length", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "end": 0, + "left": { + "commentStart": 0, + "end": 0, + "left": { + "commentStart": 0, + "end": 0, + "left": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "counterdrillDiameter", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "operator": "-", + "right": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "boltDiameter", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + }, + "operator": "/", + "right": { + "commentStart": 0, + "end": 0, + "raw": "2", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 2.0, + "suffix": "None" + } + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + }, + "operator": "*", + "right": { + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "sqrt", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": { + "commentStart": 0, + "end": 0, + "raw": "2", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 2.0, + "suffix": "None" + } + } + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + } + }, + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "tags", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "elements": [ + { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "hole01", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + } + ], + "end": 0, + "start": 0, + "type": "ArrayExpression", + "type": "ArrayExpression" + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "chamfer", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": null + } + ], + "commentStart": 0, + "end": 0, + "nonCodeMeta": { + "nonCodeNodes": { + "2": [ + { + "commentStart": 0, + "end": 0, + "start": 0, + "type": "NonCodeNode", + "value": { + "type": "blockComment", + "value": "Use a chamfer to create a 90-degree counterdrill edge", + "style": "line" + } + } + ] + }, + "startNodes": [] + }, + "start": 0, + "type": "PipeExpression", + "type": "PipeExpression" + }, + "start": 0, + "type": "VariableDeclarator" + }, + "end": 0, + "kind": "const", + "start": 0, + "type": "VariableDeclaration", + "type": "VariableDeclaration" + }, + { + "argument": { + "commentStart": 0, + "end": 0, + "properties": [], + "start": 0, + "type": "ObjectExpression", + "type": "ObjectExpression" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "ReturnStatement", + "type": "ReturnStatement" + } + ], + "commentStart": 0, + "end": 0, + "start": 0 + }, + "commentStart": 0, + "end": 0, + "params": [ + { + "type": "Parameter", + "identifier": { + "commentStart": 0, + "end": 0, + "name": "holePosition", + "start": 0, + "type": "Identifier" + }, + "labeled": false + } + ], + "start": 0, + "type": "FunctionExpression", + "type": "FunctionExpression" + }, + "start": 0, + "type": "VariableDeclarator" + }, + "end": 0, + "kind": "fn", + "preComments": [ + "", + "", + "// Function to create a counterdrilled hole" + ], + "start": 0, + "type": "VariableDeclaration", + "type": "VariableDeclaration" + }, + { + "commentStart": 0, + "end": 0, + "expression": { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "f", + "start": 0, + "type": "Identifier" + }, + "arg": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "counterdrill", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "map", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "holePositions", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + } + }, + "preComments": [ + "", + "", + "// Place a counterdrilled hole at each bolt hole position" + ], + "start": 0, + "type": "ExpressionStatement", + "type": "ExpressionStatement" + }, + { + "commentStart": 0, + "declaration": { + "commentStart": 0, + "end": 0, + "id": { + "commentStart": 0, + "end": 0, + "name": "pinhole", + "start": 0, + "type": "Identifier" + }, + "init": { + "body": [ + { + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "startSketchOn", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "YZ", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + } + }, + { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "center", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "elements": [ + { + "commentStart": 0, + "end": 0, + "raw": "0", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 0.0, + "suffix": "None" + } + }, + { + "commentStart": 0, + "end": 0, + "raw": "2.2", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 2.2, + "suffix": "None" + } + } + ], + "end": 0, + "start": 0, + "type": "ArrayExpression", + "type": "ArrayExpression" + } + }, + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "radius", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "end": 0, + "raw": "0.125", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 0.125, + "suffix": "None" + } + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "circle", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": null + }, + { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "length", + "start": 0, + "type": "Identifier" + }, + "arg": { + "argument": { + "commentStart": 0, + "end": 0, + "raw": "10", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 10.0, + "suffix": "None" + } + }, + "commentStart": 0, + "end": 0, + "operator": "-", + "start": 0, + "type": "UnaryExpression", + "type": "UnaryExpression" + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "extrude", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": null + } + ], + "commentStart": 0, + "end": 0, + "nonCodeMeta": { + "nonCodeNodes": { + "2": [ + { + "commentStart": 0, + "end": 0, + "start": 0, + "type": "NonCodeNode", + "value": { + "type": "newLineBlockComment", + "value": "Model the central tube and subtract the pin hole", + "style": "line" + } + } + ] + }, + "startNodes": [] + }, + "start": 0, + "type": "PipeExpression", + "type": "PipeExpression" + }, + "start": 0, + "type": "VariableDeclarator" + }, + "end": 0, + "kind": "const", + "preComments": [ + "", + "", + "// Drill a small pin hole in the side of the tube" + ], + "start": 0, + "type": "VariableDeclaration", + "type": "VariableDeclaration" + }, + { + "commentStart": 0, + "declaration": { + "commentStart": 0, + "end": 0, + "id": { + "commentStart": 0, + "end": 0, + "name": "centralTube", + "start": 0, + "type": "Identifier" + }, + "init": { + "body": [ + { + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "startSketchOn", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "offset", + "start": 0, + "type": "Identifier" + }, + "arg": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "stockThickness", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "offsetPlane", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "XY", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + } + } + }, + { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "center", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "elements": [ + { + "commentStart": 0, + "end": 0, + "raw": "0", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 0.0, + "suffix": "None" + } + }, + { + "commentStart": 0, + "end": 0, + "raw": "0", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 0.0, + "suffix": "None" + } + } + ], + "end": 0, + "start": 0, + "type": "ArrayExpression", + "type": "ArrayExpression" + } + }, + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "radius", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "end": 0, + "left": { + "commentStart": 0, + "end": 0, + "left": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "tubeInnerDiameter", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "operator": "/", + "right": { + "commentStart": 0, + "end": 0, + "raw": "2", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 2.0, + "suffix": "None" + } + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + }, + "operator": "+", + "right": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "tubeThickness", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "circle", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": null + }, + { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "tool", + "start": 0, + "type": "Identifier" + }, + "arg": { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "center", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "elements": [ + { + "commentStart": 0, + "end": 0, + "raw": "0", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 0.0, + "suffix": "None" + } + }, + { + "commentStart": 0, + "end": 0, + "raw": "0", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 0.0, + "suffix": "None" + } + } + ], + "end": 0, + "start": 0, + "type": "ArrayExpression", + "type": "ArrayExpression" + } + }, + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "radius", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "end": 0, + "left": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "tubeInnerDiameter", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "operator": "/", + "right": { + "commentStart": 0, + "end": 0, + "raw": "2", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 2.0, + "suffix": "None" + } + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "circle", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": null + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "subtract2d", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": null + }, + { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "length", + "start": 0, + "type": "Identifier" + }, + "arg": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "tubeHeight", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "extrude", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": null + }, + { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "tools", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "elements": [ + { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "pinhole", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + } + ], + "end": 0, + "start": 0, + "type": "ArrayExpression", + "type": "ArrayExpression" + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "subtract", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": null + } + ], + "commentStart": 0, + "end": 0, + "nonCodeMeta": { + "nonCodeNodes": { + "4": [ + { + "commentStart": 0, + "end": 0, + "start": 0, + "type": "NonCodeNode", + "value": { + "type": "newLineBlockComment", + "value": "Create a function to create a fin which spans from the central tube to the bolt hole", + "style": "line" + } + } + ] + }, + "startNodes": [] + }, + "start": 0, + "type": "PipeExpression", + "type": "PipeExpression" + }, + "start": 0, + "type": "VariableDeclarator" + }, + "end": 0, + "kind": "const", + "start": 0, + "type": "VariableDeclaration", + "type": "VariableDeclaration" + }, + { + "commentStart": 0, + "declaration": { + "commentStart": 0, + "end": 0, + "id": { + "commentStart": 0, + "end": 0, + "name": "fin", + "start": 0, + "type": "Identifier" + }, + "init": { + "body": { + "body": [ + { + "commentStart": 0, + "declaration": { + "commentStart": 0, + "end": 0, + "id": { + "commentStart": 0, + "end": 0, + "name": "diagPlane", + "start": 0, + "type": "Identifier" + }, + "init": { + "commentStart": 0, + "end": 0, + "properties": [ + { + "commentStart": 0, + "end": 0, + "key": { + "commentStart": 0, + "end": 0, + "name": "origin", + "start": 0, + "type": "Identifier" + }, + "start": 0, + "type": "ObjectProperty", + "value": { + "commentStart": 0, + "elements": [ + { + "commentStart": 0, + "end": 0, + "raw": "0.0", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 0.0, + "suffix": "None" + } + }, + { + "commentStart": 0, + "end": 0, + "raw": "0.0", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 0.0, + "suffix": "None" + } + }, + { + "commentStart": 0, + "end": 0, + "raw": "0.0", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 0.0, + "suffix": "None" + } + } + ], + "end": 0, + "start": 0, + "type": "ArrayExpression", + "type": "ArrayExpression" + } + }, + { + "commentStart": 0, + "end": 0, + "key": { + "commentStart": 0, + "end": 0, + "name": "xAxis", + "start": 0, + "type": "Identifier" + }, + "start": 0, + "type": "ObjectProperty", + "value": { + "commentStart": 0, + "elements": [ + { + "commentStart": 0, + "end": 0, + "left": { + "commentStart": 0, + "end": 0, + "left": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "boltSpacingX", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "operator": "/", + "right": { + "commentStart": 0, + "end": 0, + "raw": "2", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 2.0, + "suffix": "None" + } + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + }, + "operator": "*", + "right": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "i", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + }, + { + "commentStart": 0, + "end": 0, + "left": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "boltSpacingY", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "operator": "/", + "right": { + "commentStart": 0, + "end": 0, + "raw": "2", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 2.0, + "suffix": "None" + } + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + }, + { + "commentStart": 0, + "end": 0, + "raw": "0.0", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 0.0, + "suffix": "None" + } + } + ], + "end": 0, + "start": 0, + "type": "ArrayExpression", + "type": "ArrayExpression" + } + }, + { + "commentStart": 0, + "end": 0, + "key": { + "commentStart": 0, + "end": 0, + "name": "yAxis", + "start": 0, + "type": "Identifier" + }, + "start": 0, + "type": "ObjectProperty", + "value": { + "commentStart": 0, + "elements": [ + { + "commentStart": 0, + "end": 0, + "raw": "0.0", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 0.0, + "suffix": "None" + } + }, + { + "commentStart": 0, + "end": 0, + "raw": "0.0", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 0.0, + "suffix": "None" + } + }, + { + "commentStart": 0, + "end": 0, + "raw": "1.0", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 1.0, + "suffix": "None" + } + } + ], + "end": 0, + "start": 0, + "type": "ArrayExpression", + "type": "ArrayExpression" + } + } + ], + "start": 0, + "type": "ObjectExpression", + "type": "ObjectExpression" + }, + "start": 0, + "type": "VariableDeclarator" + }, + "end": 0, + "kind": "const", + "start": 0, + "type": "VariableDeclaration", + "type": "VariableDeclaration" + }, + { + "commentStart": 0, + "declaration": { + "commentStart": 0, + "end": 0, + "id": { + "commentStart": 0, + "end": 0, + "name": "finSketch", + "start": 0, + "type": "Identifier" + }, + "init": { + "body": [ + { + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "startSketchOn", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "diagPlane", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + } + }, + { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "at", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "elements": [ + { + "commentStart": 0, + "end": 0, + "left": { + "commentStart": 0, + "end": 0, + "left": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "tubeInnerDiameter", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "operator": "/", + "right": { + "commentStart": 0, + "end": 0, + "raw": "2", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 2.0, + "suffix": "None" + } + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + }, + "operator": "+", + "right": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "tubeThickness", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + }, + { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "stockThickness", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + } + ], + "end": 0, + "start": 0, + "type": "ArrayExpression", + "type": "ArrayExpression" + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "startProfile", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": null + }, + { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "endAbsolute", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "end": 0, + "left": { + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "sqrt", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": { + "commentStart": 0, + "end": 0, + "left": { + "commentStart": 0, + "end": 0, + "left": { + "commentStart": 0, + "end": 0, + "left": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "boltSpacingX", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "operator": "/", + "right": { + "commentStart": 0, + "end": 0, + "raw": "2", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 2.0, + "suffix": "None" + } + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + }, + "operator": "^", + "right": { + "commentStart": 0, + "end": 0, + "raw": "2", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 2.0, + "suffix": "None" + } + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + }, + "operator": "+", + "right": { + "commentStart": 0, + "end": 0, + "left": { + "commentStart": 0, + "end": 0, + "left": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "boltSpacingY", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "operator": "/", + "right": { + "commentStart": 0, + "end": 0, + "raw": "2", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 2.0, + "suffix": "None" + } + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + }, + "operator": "^", + "right": { + "commentStart": 0, + "end": 0, + "raw": "2", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 2.0, + "suffix": "None" + } + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + } + }, + "operator": "-", + "right": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "counterdrillDiameter", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "xLine", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": null + }, + { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "length", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "end": 0, + "raw": "0.15", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 0.15, + "suffix": "None" + } + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "yLine", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": null + }, + { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "endAbsolute", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "elements": [ + { + "commentStart": 0, + "end": 0, + "left": { + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "profileStartX", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": { + "commentStart": 0, + "end": 0, + "start": 0, + "type": "PipeSubstitution", + "type": "PipeSubstitution" + } + }, + "operator": "+", + "right": { + "commentStart": 0, + "end": 0, + "raw": "0.15", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 0.15, + "suffix": "None" + } + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + }, + { + "commentStart": 0, + "end": 0, + "left": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "stockThickness", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "operator": "+", + "right": { + "commentStart": 0, + "end": 0, + "left": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "tubeHeight", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "operator": "*", + "right": { + "commentStart": 0, + "end": 0, + "raw": ".8", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 0.8, + "suffix": "None" + } + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + } + ], + "end": 0, + "start": 0, + "type": "ArrayExpression", + "type": "ArrayExpression" + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "line", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": null + }, + { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "length", + "start": 0, + "type": "Identifier" + }, + "arg": { + "argument": { + "commentStart": 0, + "end": 0, + "raw": "0.15", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 0.15, + "suffix": "None" + } + }, + "commentStart": 0, + "end": 0, + "operator": "-", + "start": 0, + "type": "UnaryExpression", + "type": "UnaryExpression" + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "xLine", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": null + }, + { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "endAbsolute", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "elements": [ + { + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "profileStartX", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": { + "commentStart": 0, + "end": 0, + "start": 0, + "type": "PipeSubstitution", + "type": "PipeSubstitution" + } + }, + { + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "profileStartY", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": { + "commentStart": 0, + "end": 0, + "start": 0, + "type": "PipeSubstitution", + "type": "PipeSubstitution" + } + } + ], + "end": 0, + "start": 0, + "type": "ArrayExpression", + "type": "ArrayExpression" + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "line", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": null + }, + { + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "close", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": null + }, + { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "length", + "start": 0, + "type": "Identifier" + }, + "arg": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "tubeThickness", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + } + }, + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "symmetric", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "end": 0, + "raw": "true", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": true + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "extrude", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": null + } + ], + "commentStart": 0, + "end": 0, + "nonCodeMeta": { + "nonCodeNodes": { + "8": [ + { + "commentStart": 0, + "end": 0, + "start": 0, + "type": "NonCodeNode", + "value": { + "type": "newLineBlockComment", + "value": "Use a circular pattern to create an identical fin on the opposite side", + "style": "line" + } + } + ] + }, + "startNodes": [] + }, + "start": 0, + "type": "PipeExpression", + "type": "PipeExpression" + }, + "start": 0, + "type": "VariableDeclarator" + }, + "end": 0, + "kind": "const", + "start": 0, + "type": "VariableDeclaration", + "type": "VariableDeclaration" + }, + { + "commentStart": 0, + "declaration": { + "commentStart": 0, + "end": 0, + "id": { + "commentStart": 0, + "end": 0, + "name": "otherFin", + "start": 0, + "type": "Identifier" + }, + "init": { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "instances", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "end": 0, + "raw": "2", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 2.0, + "suffix": "None" + } + } + }, + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "axis", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "elements": [ + { + "commentStart": 0, + "end": 0, + "raw": "0", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 0.0, + "suffix": "None" + } + }, + { + "commentStart": 0, + "end": 0, + "raw": "0", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 0.0, + "suffix": "None" + } + }, + { + "commentStart": 0, + "end": 0, + "raw": "1", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 1.0, + "suffix": "None" + } + } + ], + "end": 0, + "start": 0, + "type": "ArrayExpression", + "type": "ArrayExpression" + } + }, + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "center", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "elements": [ + { + "commentStart": 0, + "end": 0, + "raw": "0", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 0.0, + "suffix": "None" + } + }, + { + "commentStart": 0, + "end": 0, + "raw": "0", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 0.0, + "suffix": "None" + } + }, + { + "commentStart": 0, + "end": 0, + "raw": "0", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 0.0, + "suffix": "None" + } + } + ], + "end": 0, + "start": 0, + "type": "ArrayExpression", + "type": "ArrayExpression" + } + }, + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "arcDegrees", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "end": 0, + "raw": "360", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 360.0, + "suffix": "None" + } + } + }, + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "rotateDuplicates", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "end": 0, + "raw": "true", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": true + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "patternCircular3d", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "finSketch", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + } + }, + "start": 0, + "type": "VariableDeclarator" + }, + "end": 0, + "kind": "const", + "start": 0, + "type": "VariableDeclaration", + "type": "VariableDeclaration" + }, + { + "argument": { + "commentStart": 0, + "end": 0, + "properties": [], + "start": 0, + "type": "ObjectExpression", + "type": "ObjectExpression" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "ReturnStatement", + "type": "ReturnStatement" + } + ], + "commentStart": 0, + "end": 0, + "nonCodeMeta": { + "nonCodeNodes": { + "0": [ + { + "commentStart": 0, + "end": 0, + "start": 0, + "type": "NonCodeNode", + "value": { + "type": "newLine" + } + } + ] + }, + "startNodes": [] + }, + "start": 0 + }, + "commentStart": 0, + "end": 0, + "params": [ + { + "type": "Parameter", + "identifier": { + "commentStart": 0, + "end": 0, + "name": "i", + "start": 0, + "type": "Identifier" + }, + "labeled": false + } + ], + "start": 0, + "type": "FunctionExpression", + "type": "FunctionExpression" + }, + "start": 0, + "type": "VariableDeclarator" + }, + "end": 0, + "kind": "fn", + "start": 0, + "type": "VariableDeclaration", + "type": "VariableDeclaration" + }, + { + "commentStart": 0, + "end": 0, + "expression": { + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "fin", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": { + "commentStart": 0, + "end": 0, + "raw": "1", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 1.0, + "suffix": "None" + } + } + }, + "preComments": [ + "", + "", + "// Place a pair of support fins along each diagonal axis of the bolt pattern" + ], + "start": 0, + "type": "ExpressionStatement", + "type": "ExpressionStatement" + }, + { + "commentStart": 0, + "end": 0, + "expression": { + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "fin", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": { + "argument": { + "commentStart": 0, + "end": 0, + "raw": "1", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 1.0, + "suffix": "None" + } + }, + "commentStart": 0, + "end": 0, + "operator": "-", + "start": 0, + "type": "UnaryExpression", + "type": "UnaryExpression" + } + }, + "start": 0, + "type": "ExpressionStatement", + "type": "ExpressionStatement" + } + ], + "commentStart": 0, + "end": 0, + "innerAttrs": [ + { + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "settings", + "start": 0, + "type": "Identifier" + }, + "preComments": [ + "// Counterdrilled Weldment", + "// A metal weldment consisting of a counterdrilled plate, a centrally mounted housing tube, and four structural support fins.", + "", + "", + "// Set units" + ], + "properties": [ + { + "commentStart": 0, + "end": 0, + "key": { + "commentStart": 0, + "end": 0, + "name": "defaultLengthUnit", + "start": 0, + "type": "Identifier" + }, + "start": 0, + "type": "ObjectProperty", + "value": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "in", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + } + } + ], + "start": 0, + "type": "Annotation" + } + ], + "nonCodeMeta": { + "nonCodeNodes": {}, + "startNodes": [ + { + "commentStart": 0, + "end": 0, + "start": 0, + "type": "NonCodeNode", + "value": { + "type": "newLine" + } + } + ] + }, + "start": 0 + } +} diff --git a/rust/kcl-lib/tests/kcl_samples/counterdrilled-weldment/ops.snap b/rust/kcl-lib/tests/kcl_samples/counterdrilled-weldment/ops.snap new file mode 100644 index 000000000..d8ff7aff9 --- /dev/null +++ b/rust/kcl-lib/tests/kcl_samples/counterdrilled-weldment/ops.snap @@ -0,0 +1,1841 @@ +--- +source: kcl-lib/src/simulation_tests.rs +description: Operations executed counterdrilled-weldment.kcl +--- +[ + { + "labeledArgs": {}, + "name": "startSketchOn", + "sourceRange": [], + "type": "StdLibCall", + "unlabeledArg": { + "value": { + "type": "Plane", + "artifact_id": "[uuid]" + }, + "sourceRange": [] + } + }, + { + "labeledArgs": { + "tool": { + "value": { + "type": "Sketch", + "value": { + "artifactId": "[uuid]" + } + }, + "sourceRange": [] + } + }, + "name": "subtract2d", + "sourceRange": [], + "type": "StdLibCall", + "unlabeledArg": { + "value": { + "type": "Sketch", + "value": { + "artifactId": "[uuid]" + } + }, + "sourceRange": [] + } + }, + { + "labeledArgs": { + "length": { + "value": { + "type": "Number", + "value": 0.5, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + "sourceRange": [] + } + }, + "name": "extrude", + "sourceRange": [], + "type": "StdLibCall", + "unlabeledArg": { + "value": { + "type": "Sketch", + "value": { + "artifactId": "[uuid]" + } + }, + "sourceRange": [] + } + }, + { + "type": "KclStdLibCall", + "name": "chamfer", + "unlabeledArg": { + "value": { + "type": "Solid", + "value": { + "artifactId": "[uuid]" + } + }, + "sourceRange": [] + }, + "labeledArgs": { + "length": { + "value": { + "type": "Number", + "value": 0.5, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + "sourceRange": [] + }, + "tags": { + "value": { + "type": "Array", + "value": [ + { + "type": "Uuid", + "value": "[uuid]" + }, + { + "type": "Uuid", + "value": "[uuid]" + }, + { + "type": "Uuid", + "value": "[uuid]" + }, + { + "type": "Uuid", + "value": "[uuid]" + } + ] + }, + "sourceRange": [] + } + }, + "sourceRange": [] + }, + { + "labeledArgs": { + "face": { + "value": { + "type": "String", + "value": "end" + }, + "sourceRange": [] + } + }, + "name": "startSketchOn", + "sourceRange": [], + "type": "StdLibCall", + "unlabeledArg": { + "value": { + "type": "Solid", + "value": { + "artifactId": "[uuid]" + } + }, + "sourceRange": [] + } + }, + { + "labeledArgs": { + "face": { + "value": { + "type": "String", + "value": "end" + }, + "sourceRange": [] + } + }, + "name": "startSketchOn", + "sourceRange": [], + "type": "StdLibCall", + "unlabeledArg": { + "value": { + "type": "Solid", + "value": { + "artifactId": "[uuid]" + } + }, + "sourceRange": [] + } + }, + { + "labeledArgs": { + "face": { + "value": { + "type": "String", + "value": "end" + }, + "sourceRange": [] + } + }, + "name": "startSketchOn", + "sourceRange": [], + "type": "StdLibCall", + "unlabeledArg": { + "value": { + "type": "Solid", + "value": { + "artifactId": "[uuid]" + } + }, + "sourceRange": [] + } + }, + { + "labeledArgs": { + "face": { + "value": { + "type": "String", + "value": "end" + }, + "sourceRange": [] + } + }, + "name": "startSketchOn", + "sourceRange": [], + "type": "StdLibCall", + "unlabeledArg": { + "value": { + "type": "Solid", + "value": { + "artifactId": "[uuid]" + } + }, + "sourceRange": [] + } + }, + { + "labeledArgs": { + "length": { + "value": { + "type": "Number", + "value": -0.1875, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + "sourceRange": [] + } + }, + "name": "extrude", + "sourceRange": [], + "type": "StdLibCall", + "unlabeledArg": { + "value": { + "type": "Sketch", + "value": { + "artifactId": "[uuid]" + } + }, + "sourceRange": [] + } + }, + { + "labeledArgs": { + "length": { + "value": { + "type": "Number", + "value": -0.1875, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + "sourceRange": [] + } + }, + "name": "extrude", + "sourceRange": [], + "type": "StdLibCall", + "unlabeledArg": { + "value": { + "type": "Sketch", + "value": { + "artifactId": "[uuid]" + } + }, + "sourceRange": [] + } + }, + { + "labeledArgs": { + "length": { + "value": { + "type": "Number", + "value": -0.1875, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + "sourceRange": [] + } + }, + "name": "extrude", + "sourceRange": [], + "type": "StdLibCall", + "unlabeledArg": { + "value": { + "type": "Sketch", + "value": { + "artifactId": "[uuid]" + } + }, + "sourceRange": [] + } + }, + { + "labeledArgs": { + "length": { + "value": { + "type": "Number", + "value": -0.1875, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + "sourceRange": [] + } + }, + "name": "extrude", + "sourceRange": [], + "type": "StdLibCall", + "unlabeledArg": { + "value": { + "type": "Sketch", + "value": { + "artifactId": "[uuid]" + } + }, + "sourceRange": [] + } + }, + { + "labeledArgs": { + "face": { + "value": { + "type": "String", + "value": "start" + }, + "sourceRange": [] + } + }, + "name": "startSketchOn", + "sourceRange": [], + "type": "StdLibCall", + "unlabeledArg": { + "value": { + "type": "Solid", + "value": { + "artifactId": "[uuid]" + } + }, + "sourceRange": [] + } + }, + { + "labeledArgs": { + "face": { + "value": { + "type": "String", + "value": "start" + }, + "sourceRange": [] + } + }, + "name": "startSketchOn", + "sourceRange": [], + "type": "StdLibCall", + "unlabeledArg": { + "value": { + "type": "Solid", + "value": { + "artifactId": "[uuid]" + } + }, + "sourceRange": [] + } + }, + { + "labeledArgs": { + "face": { + "value": { + "type": "String", + "value": "start" + }, + "sourceRange": [] + } + }, + "name": "startSketchOn", + "sourceRange": [], + "type": "StdLibCall", + "unlabeledArg": { + "value": { + "type": "Solid", + "value": { + "artifactId": "[uuid]" + } + }, + "sourceRange": [] + } + }, + { + "labeledArgs": { + "face": { + "value": { + "type": "String", + "value": "start" + }, + "sourceRange": [] + } + }, + "name": "startSketchOn", + "sourceRange": [], + "type": "StdLibCall", + "unlabeledArg": { + "value": { + "type": "Solid", + "value": { + "artifactId": "[uuid]" + } + }, + "sourceRange": [] + } + }, + { + "labeledArgs": { + "length": { + "value": { + "type": "Number", + "value": -0.3125, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + "sourceRange": [] + } + }, + "name": "extrude", + "sourceRange": [], + "type": "StdLibCall", + "unlabeledArg": { + "value": { + "type": "Sketch", + "value": { + "artifactId": "[uuid]" + } + }, + "sourceRange": [] + } + }, + { + "labeledArgs": { + "length": { + "value": { + "type": "Number", + "value": -0.3125, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + "sourceRange": [] + } + }, + "name": "extrude", + "sourceRange": [], + "type": "StdLibCall", + "unlabeledArg": { + "value": { + "type": "Sketch", + "value": { + "artifactId": "[uuid]" + } + }, + "sourceRange": [] + } + }, + { + "labeledArgs": { + "length": { + "value": { + "type": "Number", + "value": -0.3125, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + "sourceRange": [] + } + }, + "name": "extrude", + "sourceRange": [], + "type": "StdLibCall", + "unlabeledArg": { + "value": { + "type": "Sketch", + "value": { + "artifactId": "[uuid]" + } + }, + "sourceRange": [] + } + }, + { + "labeledArgs": { + "length": { + "value": { + "type": "Number", + "value": -0.3125, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + "sourceRange": [] + } + }, + "name": "extrude", + "sourceRange": [], + "type": "StdLibCall", + "unlabeledArg": { + "value": { + "type": "Sketch", + "value": { + "artifactId": "[uuid]" + } + }, + "sourceRange": [] + } + }, + { + "type": "KclStdLibCall", + "name": "chamfer", + "unlabeledArg": { + "value": { + "type": "Solid", + "value": { + "artifactId": "[uuid]" + } + }, + "sourceRange": [] + }, + "labeledArgs": { + "length": { + "value": { + "type": "Number", + "value": 0.13258252147247768, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + "sourceRange": [] + }, + "tags": { + "value": { + "type": "Array", + "value": [ + { + "type": "TagIdentifier", + "value": "hole01", + "artifact_id": "[uuid]" + } + ] + }, + "sourceRange": [] + } + }, + "sourceRange": [] + }, + { + "type": "KclStdLibCall", + "name": "chamfer", + "unlabeledArg": { + "value": { + "type": "Solid", + "value": { + "artifactId": "[uuid]" + } + }, + "sourceRange": [] + }, + "labeledArgs": { + "length": { + "value": { + "type": "Number", + "value": 0.13258252147247768, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + "sourceRange": [] + }, + "tags": { + "value": { + "type": "Array", + "value": [ + { + "type": "TagIdentifier", + "value": "hole01", + "artifact_id": "[uuid]" + } + ] + }, + "sourceRange": [] + } + }, + "sourceRange": [] + }, + { + "type": "KclStdLibCall", + "name": "chamfer", + "unlabeledArg": { + "value": { + "type": "Solid", + "value": { + "artifactId": "[uuid]" + } + }, + "sourceRange": [] + }, + "labeledArgs": { + "length": { + "value": { + "type": "Number", + "value": 0.13258252147247768, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + "sourceRange": [] + }, + "tags": { + "value": { + "type": "Array", + "value": [ + { + "type": "TagIdentifier", + "value": "hole01", + "artifact_id": "[uuid]" + } + ] + }, + "sourceRange": [] + } + }, + "sourceRange": [] + }, + { + "type": "KclStdLibCall", + "name": "chamfer", + "unlabeledArg": { + "value": { + "type": "Solid", + "value": { + "artifactId": "[uuid]" + } + }, + "sourceRange": [] + }, + "labeledArgs": { + "length": { + "value": { + "type": "Number", + "value": 0.13258252147247768, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + "sourceRange": [] + }, + "tags": { + "value": { + "type": "Array", + "value": [ + { + "type": "TagIdentifier", + "value": "hole01", + "artifact_id": "[uuid]" + } + ] + }, + "sourceRange": [] + } + }, + "sourceRange": [] + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": null, + "functionSourceRange": [], + "unlabeledArg": { + "value": { + "type": "Array", + "value": [ + { + "type": "Number", + "value": -2.5, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + { + "type": "Number", + "value": -1.5, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + } + ] + }, + "sourceRange": [] + }, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": null, + "functionSourceRange": [], + "unlabeledArg": { + "value": { + "type": "Array", + "value": [ + { + "type": "Number", + "value": -2.5, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + { + "type": "Number", + "value": 1.5, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + } + ] + }, + "sourceRange": [] + }, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": null, + "functionSourceRange": [], + "unlabeledArg": { + "value": { + "type": "Array", + "value": [ + { + "type": "Number", + "value": 2.5, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + { + "type": "Number", + "value": -1.5, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + } + ] + }, + "sourceRange": [] + }, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": null, + "functionSourceRange": [], + "unlabeledArg": { + "value": { + "type": "Array", + "value": [ + { + "type": "Number", + "value": 2.5, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + { + "type": "Number", + "value": 1.5, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + } + ] + }, + "sourceRange": [] + }, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "labeledArgs": {}, + "name": "startSketchOn", + "sourceRange": [], + "type": "StdLibCall", + "unlabeledArg": { + "value": { + "type": "Plane", + "artifact_id": "[uuid]" + }, + "sourceRange": [] + } + }, + { + "labeledArgs": { + "length": { + "value": { + "type": "Number", + "value": -10.0, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + "sourceRange": [] + } + }, + "name": "extrude", + "sourceRange": [], + "type": "StdLibCall", + "unlabeledArg": { + "value": { + "type": "Sketch", + "value": { + "artifactId": "[uuid]" + } + }, + "sourceRange": [] + } + }, + { + "labeledArgs": {}, + "name": "startSketchOn", + "sourceRange": [], + "type": "StdLibCall", + "unlabeledArg": { + "value": { + "type": "Plane", + "artifact_id": "[uuid]" + }, + "sourceRange": [] + } + }, + { + "type": "KclStdLibCall", + "name": "offsetPlane", + "unlabeledArg": { + "value": { + "type": "Plane", + "artifact_id": "[uuid]" + }, + "sourceRange": [] + }, + "labeledArgs": { + "offset": { + "value": { + "type": "Number", + "value": 0.5, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + "sourceRange": [] + } + }, + "sourceRange": [] + }, + { + "labeledArgs": { + "tool": { + "value": { + "type": "Sketch", + "value": { + "artifactId": "[uuid]" + } + }, + "sourceRange": [] + } + }, + "name": "subtract2d", + "sourceRange": [], + "type": "StdLibCall", + "unlabeledArg": { + "value": { + "type": "Sketch", + "value": { + "artifactId": "[uuid]" + } + }, + "sourceRange": [] + } + }, + { + "labeledArgs": { + "length": { + "value": { + "type": "Number", + "value": 2.0, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + "sourceRange": [] + } + }, + "name": "extrude", + "sourceRange": [], + "type": "StdLibCall", + "unlabeledArg": { + "value": { + "type": "Sketch", + "value": { + "artifactId": "[uuid]" + } + }, + "sourceRange": [] + } + }, + { + "labeledArgs": { + "tools": { + "value": { + "type": "Array", + "value": [ + { + "type": "Solid", + "value": { + "artifactId": "[uuid]" + } + } + ] + }, + "sourceRange": [] + } + }, + "name": "subtract", + "sourceRange": [], + "type": "StdLibCall", + "unlabeledArg": { + "value": { + "type": "Solid", + "value": { + "artifactId": "[uuid]" + } + }, + "sourceRange": [] + } + }, + { + "labeledArgs": {}, + "name": "startSketchOn", + "sourceRange": [], + "type": "StdLibCall", + "unlabeledArg": { + "value": { + "type": "Object", + "value": { + "origin": { + "type": "Array", + "value": [ + { + "type": "Number", + "value": 0.0, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + { + "type": "Number", + "value": 0.0, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + { + "type": "Number", + "value": 0.0, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + } + ] + }, + "xAxis": { + "type": "Array", + "value": [ + { + "type": "Number", + "value": 2.5, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + { + "type": "Number", + "value": 1.5, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + { + "type": "Number", + "value": 0.0, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + } + ] + }, + "yAxis": { + "type": "Array", + "value": [ + { + "type": "Number", + "value": 0.0, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + { + "type": "Number", + "value": 0.0, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + { + "type": "Number", + "value": 1.0, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + } + ] + } + } + }, + "sourceRange": [] + } + }, + { + "labeledArgs": {}, + "name": "startSketchOn", + "sourceRange": [], + "type": "StdLibCall", + "unlabeledArg": { + "value": { + "type": "Object", + "value": { + "origin": { + "type": "Array", + "value": [ + { + "type": "Number", + "value": 0.0, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + { + "type": "Number", + "value": 0.0, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + { + "type": "Number", + "value": 0.0, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + } + ] + }, + "xAxis": { + "type": "Array", + "value": [ + { + "type": "Number", + "value": -2.5, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + { + "type": "Number", + "value": 1.5, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + { + "type": "Number", + "value": 0.0, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + } + ] + }, + "yAxis": { + "type": "Array", + "value": [ + { + "type": "Number", + "value": 0.0, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + { + "type": "Number", + "value": 0.0, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + { + "type": "Number", + "value": 1.0, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + } + ] + } + } + }, + "sourceRange": [] + } + }, + { + "labeledArgs": { + "length": { + "value": { + "type": "Number", + "value": 0.115, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + "sourceRange": [] + }, + "symmetric": { + "value": { + "type": "Bool", + "value": true + }, + "sourceRange": [] + } + }, + "name": "extrude", + "sourceRange": [], + "type": "StdLibCall", + "unlabeledArg": { + "value": { + "type": "Sketch", + "value": { + "artifactId": "[uuid]" + } + }, + "sourceRange": [] + } + }, + { + "labeledArgs": { + "length": { + "value": { + "type": "Number", + "value": 0.115, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + "sourceRange": [] + }, + "symmetric": { + "value": { + "type": "Bool", + "value": true + }, + "sourceRange": [] + } + }, + "name": "extrude", + "sourceRange": [], + "type": "StdLibCall", + "unlabeledArg": { + "value": { + "type": "Sketch", + "value": { + "artifactId": "[uuid]" + } + }, + "sourceRange": [] + } + }, + { + "labeledArgs": { + "arcDegrees": { + "value": { + "type": "Number", + "value": 360.0, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + "sourceRange": [] + }, + "axis": { + "value": { + "type": "Array", + "value": [ + { + "type": "Number", + "value": 0.0, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + { + "type": "Number", + "value": 0.0, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + { + "type": "Number", + "value": 1.0, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + } + ] + }, + "sourceRange": [] + }, + "center": { + "value": { + "type": "Array", + "value": [ + { + "type": "Number", + "value": 0.0, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + { + "type": "Number", + "value": 0.0, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + { + "type": "Number", + "value": 0.0, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + } + ] + }, + "sourceRange": [] + }, + "instances": { + "value": { + "type": "Number", + "value": 2.0, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + "sourceRange": [] + }, + "rotateDuplicates": { + "value": { + "type": "Bool", + "value": true + }, + "sourceRange": [] + } + }, + "name": "patternCircular3d", + "sourceRange": [], + "type": "StdLibCall", + "unlabeledArg": { + "value": { + "type": "Solid", + "value": { + "artifactId": "[uuid]" + } + }, + "sourceRange": [] + } + }, + { + "labeledArgs": { + "arcDegrees": { + "value": { + "type": "Number", + "value": 360.0, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + "sourceRange": [] + }, + "axis": { + "value": { + "type": "Array", + "value": [ + { + "type": "Number", + "value": 0.0, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + { + "type": "Number", + "value": 0.0, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + { + "type": "Number", + "value": 1.0, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + } + ] + }, + "sourceRange": [] + }, + "center": { + "value": { + "type": "Array", + "value": [ + { + "type": "Number", + "value": 0.0, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + { + "type": "Number", + "value": 0.0, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + { + "type": "Number", + "value": 0.0, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + } + ] + }, + "sourceRange": [] + }, + "instances": { + "value": { + "type": "Number", + "value": 2.0, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + "sourceRange": [] + }, + "rotateDuplicates": { + "value": { + "type": "Bool", + "value": true + }, + "sourceRange": [] + } + }, + "name": "patternCircular3d", + "sourceRange": [], + "type": "StdLibCall", + "unlabeledArg": { + "value": { + "type": "Solid", + "value": { + "artifactId": "[uuid]" + } + }, + "sourceRange": [] + } + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "fin", + "functionSourceRange": [], + "unlabeledArg": { + "value": { + "type": "Number", + "value": 1.0, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + "sourceRange": [] + }, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "fin", + "functionSourceRange": [], + "unlabeledArg": { + "value": { + "type": "Number", + "value": -1.0, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + "sourceRange": [] + }, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupEnd" + } +] diff --git a/rust/kcl-lib/tests/kcl_samples/counterdrilled-weldment/program_memory.snap b/rust/kcl-lib/tests/kcl_samples/counterdrilled-weldment/program_memory.snap new file mode 100644 index 000000000..6fbedb474 --- /dev/null +++ b/rust/kcl-lib/tests/kcl_samples/counterdrilled-weldment/program_memory.snap @@ -0,0 +1,1060 @@ +--- +source: kcl-lib/src/simulation_tests.rs +description: Variables in memory after executing counterdrilled-weldment.kcl +--- +{ + "blockLength": { + "type": "Number", + "value": 6.5, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + "blockWidth": { + "type": "Number", + "value": 4.5, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + "boltDiameter": { + "type": "Number", + "value": 0.25, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + "boltSpacingX": { + "type": "Number", + "value": 5.0, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + "boltSpacingY": { + "type": "Number", + "value": 3.0, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + "centralTube": { + "type": "Solid", + "value": { + "type": "Solid", + "id": "[uuid]", + "artifactId": "[uuid]", + "value": [ + { + "faceId": "[uuid]", + "id": "[uuid]", + "sourceRange": [], + "tag": null, + "type": "extrudeArc" + } + ], + "sketch": { + "type": "Sketch", + "id": "[uuid]", + "paths": [ + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "ccw": true, + "center": [ + 0.0, + 0.0 + ], + "from": [ + 0.74, + 0.0 + ], + "radius": 0.74, + "tag": null, + "to": [ + 0.74, + 0.0 + ], + "type": "Circle", + "units": { + "type": "Inches" + } + } + ], + "on": { + "artifactId": "[uuid]", + "id": "[uuid]", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 12.7, + "units": { + "type": "Mm" + } + }, + "type": "plane", + "value": "Custom", + "xAxis": { + "x": 1.0, + "y": 0.0, + "z": 0.0, + "units": { + "type": "Unknown" + } + }, + "yAxis": { + "x": 0.0, + "y": 1.0, + "z": 0.0, + "units": { + "type": "Unknown" + } + } + }, + "start": { + "from": [ + 0.74, + 0.0 + ], + "to": [ + 0.74, + 0.0 + ], + "units": { + "type": "Inches" + }, + "tag": null, + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + } + }, + "artifactId": "[uuid]", + "originalId": "[uuid]", + "units": { + "type": "Inches" + } + }, + "height": 2.0, + "startCapId": "[uuid]", + "endCapId": "[uuid]", + "units": { + "type": "Inches" + }, + "sectional": false + } + }, + "counterdrill": { + "type": "Function", + "value": null + }, + "counterdrillDepth": { + "type": "Number", + "value": 0.1875, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + "counterdrillDiameter": { + "type": "Number", + "value": 0.4375, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + "fin": { + "type": "Function", + "value": null + }, + "holePositions": { + "type": "HomArray", + "value": [ + { + "type": "HomArray", + "value": [ + { + "type": "Number", + "value": -2.5, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + { + "type": "Number", + "value": -1.5, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + } + ] + }, + { + "type": "HomArray", + "value": [ + { + "type": "Number", + "value": -2.5, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + { + "type": "Number", + "value": 1.5, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + } + ] + }, + { + "type": "HomArray", + "value": [ + { + "type": "Number", + "value": 2.5, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + { + "type": "Number", + "value": -1.5, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + } + ] + }, + { + "type": "HomArray", + "value": [ + { + "type": "Number", + "value": 2.5, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + { + "type": "Number", + "value": 1.5, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + } + ] + } + ] + }, + "pinhole": { + "type": "Solid", + "value": { + "type": "Solid", + "id": "[uuid]", + "artifactId": "[uuid]", + "value": [ + { + "faceId": "[uuid]", + "id": "[uuid]", + "sourceRange": [], + "tag": null, + "type": "extrudeArc" + } + ], + "sketch": { + "type": "Sketch", + "id": "[uuid]", + "paths": [ + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "ccw": true, + "center": [ + 0.0, + 2.2 + ], + "from": [ + 0.125, + 2.2 + ], + "radius": 0.125, + "tag": null, + "to": [ + 0.125, + 2.2 + ], + "type": "Circle", + "units": { + "type": "Inches" + } + } + ], + "on": { + "artifactId": "[uuid]", + "id": "[uuid]", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "units": { + "type": "Mm" + } + }, + "type": "plane", + "value": "YZ", + "xAxis": { + "x": 0.0, + "y": 1.0, + "z": 0.0, + "units": { + "type": "Unknown" + } + }, + "yAxis": { + "x": 0.0, + "y": 0.0, + "z": 1.0, + "units": { + "type": "Unknown" + } + } + }, + "start": { + "from": [ + 0.125, + 2.2 + ], + "to": [ + 0.125, + 2.2 + ], + "units": { + "type": "Inches" + }, + "tag": null, + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + } + }, + "artifactId": "[uuid]", + "originalId": "[uuid]", + "units": { + "type": "Inches" + } + }, + "height": -10.0, + "startCapId": "[uuid]", + "endCapId": "[uuid]", + "units": { + "type": "Inches" + }, + "sectional": false + } + }, + "plateBody": { + "type": "Solid", + "value": { + "type": "Solid", + "id": "[uuid]", + "artifactId": "[uuid]", + "value": [ + { + "faceId": "[uuid]", + "id": "[uuid]", + "sourceRange": [], + "tag": { + "commentStart": 867, + "end": 888, + "start": 867, + "type": "TagDeclarator", + "value": "rectangleSegmentA001" + }, + "type": "extrudePlane" + }, + { + "faceId": "[uuid]", + "id": "[uuid]", + "sourceRange": [], + "tag": { + "commentStart": 976, + "end": 997, + "start": 976, + "type": "TagDeclarator", + "value": "rectangleSegmentB001" + }, + "type": "extrudePlane" + }, + { + "faceId": "[uuid]", + "id": "[uuid]", + "sourceRange": [], + "tag": { + "commentStart": 1099, + "end": 1120, + "start": 1099, + "type": "TagDeclarator", + "value": "rectangleSegmentC001" + }, + "type": "extrudePlane" + }, + { + "faceId": "[uuid]", + "id": "[uuid]", + "sourceRange": [], + "tag": { + "commentStart": 1190, + "end": 1211, + "start": 1190, + "type": "TagDeclarator", + "value": "rectangleSegmentD001" + }, + "type": "extrudePlane" + } + ], + "sketch": { + "type": "Sketch", + "id": "[uuid]", + "paths": [ + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -3.25, + -2.25 + ], + "tag": { + "commentStart": 867, + "end": 888, + "start": 867, + "type": "TagDeclarator", + "value": "rectangleSegmentA001" + }, + "to": [ + 3.25, + -2.25 + ], + "type": "ToPoint", + "units": { + "type": "Inches" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 3.25, + -2.25 + ], + "tag": { + "commentStart": 976, + "end": 997, + "start": 976, + "type": "TagDeclarator", + "value": "rectangleSegmentB001" + }, + "to": [ + 3.25, + 2.25 + ], + "type": "ToPoint", + "units": { + "type": "Inches" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 3.25, + 2.25 + ], + "tag": { + "commentStart": 1099, + "end": 1120, + "start": 1099, + "type": "TagDeclarator", + "value": "rectangleSegmentC001" + }, + "to": [ + -3.25, + 2.25 + ], + "type": "ToPoint", + "units": { + "type": "Inches" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -3.25, + 2.25 + ], + "tag": { + "commentStart": 1190, + "end": 1211, + "start": 1190, + "type": "TagDeclarator", + "value": "rectangleSegmentD001" + }, + "to": [ + -3.25, + -2.25 + ], + "type": "ToPoint", + "units": { + "type": "Inches" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -3.25, + -2.25 + ], + "tag": null, + "to": [ + -3.25, + -2.25 + ], + "type": "ToPoint", + "units": { + "type": "Inches" + } + } + ], + "on": { + "artifactId": "[uuid]", + "id": "[uuid]", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "units": { + "type": "Mm" + } + }, + "type": "plane", + "value": "XY", + "xAxis": { + "x": 1.0, + "y": 0.0, + "z": 0.0, + "units": { + "type": "Unknown" + } + }, + "yAxis": { + "x": 0.0, + "y": 1.0, + "z": 0.0, + "units": { + "type": "Unknown" + } + } + }, + "start": { + "from": [ + -3.25, + -2.25 + ], + "to": [ + -3.25, + -2.25 + ], + "units": { + "type": "Inches" + }, + "tag": null, + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + } + }, + "tags": { + "rectangleSegmentA001": { + "type": "TagIdentifier", + "value": "rectangleSegmentA001" + }, + "rectangleSegmentB001": { + "type": "TagIdentifier", + "value": "rectangleSegmentB001" + }, + "rectangleSegmentC001": { + "type": "TagIdentifier", + "value": "rectangleSegmentC001" + }, + "rectangleSegmentD001": { + "type": "TagIdentifier", + "value": "rectangleSegmentD001" + } + }, + "artifactId": "[uuid]", + "originalId": "[uuid]", + "units": { + "type": "Inches" + } + }, + "height": 0.5, + "startCapId": "[uuid]", + "endCapId": "[uuid]", + "edgeCuts": [ + { + "type": "chamfer", + "id": "[uuid]", + "length": { + "n": 0.5, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + "edgeId": "[uuid]", + "tag": null + }, + { + "type": "chamfer", + "id": "[uuid]", + "length": { + "n": 0.5, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + "edgeId": "[uuid]", + "tag": null + }, + { + "type": "chamfer", + "id": "[uuid]", + "length": { + "n": 0.5, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + "edgeId": "[uuid]", + "tag": null + }, + { + "type": "chamfer", + "id": "[uuid]", + "length": { + "n": 0.5, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + "edgeId": "[uuid]", + "tag": null + } + ], + "units": { + "type": "Inches" + }, + "sectional": false + } + }, + "plateSketch": { + "type": "Sketch", + "value": { + "type": "Sketch", + "id": "[uuid]", + "paths": [ + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -3.25, + -2.25 + ], + "tag": { + "commentStart": 867, + "end": 888, + "start": 867, + "type": "TagDeclarator", + "value": "rectangleSegmentA001" + }, + "to": [ + 3.25, + -2.25 + ], + "type": "ToPoint", + "units": { + "type": "Inches" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 3.25, + -2.25 + ], + "tag": { + "commentStart": 976, + "end": 997, + "start": 976, + "type": "TagDeclarator", + "value": "rectangleSegmentB001" + }, + "to": [ + 3.25, + 2.25 + ], + "type": "ToPoint", + "units": { + "type": "Inches" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 3.25, + 2.25 + ], + "tag": { + "commentStart": 1099, + "end": 1120, + "start": 1099, + "type": "TagDeclarator", + "value": "rectangleSegmentC001" + }, + "to": [ + -3.25, + 2.25 + ], + "type": "ToPoint", + "units": { + "type": "Inches" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -3.25, + 2.25 + ], + "tag": { + "commentStart": 1190, + "end": 1211, + "start": 1190, + "type": "TagDeclarator", + "value": "rectangleSegmentD001" + }, + "to": [ + -3.25, + -2.25 + ], + "type": "ToPoint", + "units": { + "type": "Inches" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -3.25, + -2.25 + ], + "tag": null, + "to": [ + -3.25, + -2.25 + ], + "type": "ToPoint", + "units": { + "type": "Inches" + } + } + ], + "on": { + "artifactId": "[uuid]", + "id": "[uuid]", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "units": { + "type": "Mm" + } + }, + "type": "plane", + "value": "XY", + "xAxis": { + "x": 1.0, + "y": 0.0, + "z": 0.0, + "units": { + "type": "Unknown" + } + }, + "yAxis": { + "x": 0.0, + "y": 1.0, + "z": 0.0, + "units": { + "type": "Unknown" + } + } + }, + "start": { + "from": [ + -3.25, + -2.25 + ], + "to": [ + -3.25, + -2.25 + ], + "units": { + "type": "Inches" + }, + "tag": null, + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + } + }, + "tags": { + "rectangleSegmentA001": { + "type": "TagIdentifier", + "value": "rectangleSegmentA001" + }, + "rectangleSegmentB001": { + "type": "TagIdentifier", + "value": "rectangleSegmentB001" + }, + "rectangleSegmentC001": { + "type": "TagIdentifier", + "value": "rectangleSegmentC001" + }, + "rectangleSegmentD001": { + "type": "TagIdentifier", + "value": "rectangleSegmentD001" + } + }, + "artifactId": "[uuid]", + "originalId": "[uuid]", + "units": { + "type": "Inches" + } + } + }, + "rectangleSegmentA001": { + "type": "TagIdentifier", + "type": "TagIdentifier", + "value": "rectangleSegmentA001" + }, + "rectangleSegmentB001": { + "type": "TagIdentifier", + "type": "TagIdentifier", + "value": "rectangleSegmentB001" + }, + "rectangleSegmentC001": { + "type": "TagIdentifier", + "type": "TagIdentifier", + "value": "rectangleSegmentC001" + }, + "rectangleSegmentD001": { + "type": "TagIdentifier", + "type": "TagIdentifier", + "value": "rectangleSegmentD001" + }, + "stockThickness": { + "type": "Number", + "value": 0.5, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + "tubeHeight": { + "type": "Number", + "value": 2.0, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + "tubeInnerDiameter": { + "type": "Number", + "value": 1.25, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + "tubeThickness": { + "type": "Number", + "value": 0.115, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + } +} diff --git a/rust/kcl-lib/tests/kcl_samples/counterdrilled-weldment/rendered_model.png b/rust/kcl-lib/tests/kcl_samples/counterdrilled-weldment/rendered_model.png new file mode 100644 index 0000000000000000000000000000000000000000..256866d43599231a37512477f62f89c644e9867a GIT binary patch literal 95742 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 Io_h8F0RKJ}F#rGn literal 0 HcmV?d00001 diff --git a/rust/kcl-lib/tests/kcl_samples/parametric-bearing-pillow-block/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/countersunk-plate/artifact_commands.snap similarity index 59% rename from rust/kcl-lib/tests/kcl_samples/parametric-bearing-pillow-block/artifact_commands.snap rename to rust/kcl-lib/tests/kcl_samples/countersunk-plate/artifact_commands.snap index 0a36e376f..cf2a377db 100644 --- a/rust/kcl-lib/tests/kcl_samples/parametric-bearing-pillow-block/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/countersunk-plate/artifact_commands.snap @@ -1,6 +1,6 @@ --- source: kcl-lib/src/simulation_tests.rs -description: Artifact commands parametric-bearing-pillow-block.kcl +description: Artifact commands countersunk-plate.kcl --- [ { @@ -77,8 +77,8 @@ description: Artifact commands parametric-bearing-pillow-block.kcl "type": "move_path_pen", "path": "[uuid]", "to": { - "x": -50.8, - "y": -76.19999999999999, + "x": 15.413037500000007, + "y": 39.314119998717935, "z": 0.0 } } @@ -106,11 +106,27 @@ description: Artifact commands parametric-bearing-pillow-block.kcl "segment": { "type": "line", "end": { - "x": 50.8, - "y": -76.2, + "x": 55.0402, + "y": -21.5784, "z": 0.0 }, - "relative": false + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "tangential_arc", + "radius": 19.049999999999997, + "offset": { + "unit": "degrees", + "value": -137.1848345922876 + } } } }, @@ -123,11 +139,27 @@ description: Artifact commands parametric-bearing-pillow-block.kcl "segment": { "type": "line", "end": { - "x": 50.8, - "y": 76.2, + "x": -55.0402, + "y": -21.5784, "z": 0.0 }, - "relative": false + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "tangential_arc", + "radius": 42.2275, + "offset": { + "unit": "degrees", + "value": -42.81516540771243 + } } } }, @@ -140,14 +172,90 @@ description: Artifact commands parametric-bearing-pillow-block.kcl "segment": { "type": "line", "end": { - "x": -50.8, - "y": 76.2, + "x": -55.0402, + "y": 21.5784, "z": 0.0 }, - "relative": false + "relative": true } } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "tangential_arc", + "radius": 19.049999999999997, + "offset": { + "unit": "degrees", + "value": -137.1848345922876 + } + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 55.0402, + "y": 21.5784, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "tangential_arc_to", + "to": { + "x": 30.8261, + "y": -0.0, + "z": 0.0 + }, + "angle_snap_increment": null + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid2d_add_hole", + "object_id": "[uuid]", + "hole_id": "[uuid]" + } + }, { "cmdId": "[uuid]", "range": [], @@ -172,1385 +280,6 @@ description: Artifact commands parametric-bearing-pillow-block.kcl } } }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "extrude", - "target": "[uuid]", - "distance": 25.4, - "faces": null, - "opposite": "None" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "object_bring_to_front", - "object_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "sketch_mode_disable" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_all_edge_faces", - "object_id": "[uuid]", - "edge_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_all_edge_faces", - "object_id": "[uuid]", - "edge_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_all_edge_faces", - "object_id": "[uuid]", - "edge_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_all_edge_faces", - "object_id": "[uuid]", - "edge_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_all_edge_faces", - "object_id": "[uuid]", - "edge_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_all_edge_faces", - "object_id": "[uuid]", - "edge_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_all_edge_faces", - "object_id": "[uuid]", - "edge_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_all_edge_faces", - "object_id": "[uuid]", - "edge_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_all_edge_faces", - "object_id": "[uuid]", - "edge_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_all_edge_faces", - "object_id": "[uuid]", - "edge_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_all_edge_faces", - "object_id": "[uuid]", - "edge_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_all_edge_faces", - "object_id": "[uuid]", - "edge_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_extrusion_face_info", - "object_id": "[uuid]", - "edge_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_next_adjacent_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "face_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_next_adjacent_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "face_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_next_adjacent_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "face_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_next_adjacent_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "face_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_opposite_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "face_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_opposite_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "face_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_opposite_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "face_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_opposite_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "face_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "close_path", - "path_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "enable_sketch_mode", - "entity_id": "[uuid]", - "ortho": false, - "animated": false, - "adjust_camera": false, - "planar_normal": null - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "extend_path", - "path": "[uuid]", - "segment": { - "type": "arc", - "center": { - "x": -31.75, - "y": -57.15 - }, - "radius": 8.889999999999999, - "start": { - "unit": "degrees", - "value": 0.0 - }, - "end": { - "unit": "degrees", - "value": 360.0 - }, - "relative": false - } - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "move_path_pen", - "path": "[uuid]", - "to": { - "x": -22.86, - "y": -57.15, - "z": 0.0 - } - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "sketch_mode_disable" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "start_path" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "entity_linear_pattern_transform", - "entity_id": "[uuid]", - "transform": [], - "transforms": [ - [ - { - "translate": { - "x": 0.0, - "y": 114.3, - "z": 0.0 - }, - "scale": { - "x": 1.0, - "y": 1.0, - "z": 1.0 - }, - "rotation": { - "axis": { - "x": 0.0, - "y": 0.0, - "z": 1.0 - }, - "angle": { - "unit": "degrees", - "value": 0.0 - }, - "origin": { - "type": "local" - } - }, - "replicate": true - } - ] - ] - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "entity_linear_pattern_transform", - "entity_id": "[uuid]", - "transform": [], - "transforms": [ - [ - { - "translate": { - "x": 63.5, - "y": 0.0, - "z": 0.0 - }, - "scale": { - "x": 1.0, - "y": 1.0, - "z": 1.0 - }, - "rotation": { - "axis": { - "x": 0.0, - "y": 0.0, - "z": 1.0 - }, - "angle": { - "unit": "degrees", - "value": 0.0 - }, - "origin": { - "type": "local" - } - }, - "replicate": true - } - ] - ] - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "entity_linear_pattern_transform", - "entity_id": "[uuid]", - "transform": [], - "transforms": [ - [ - { - "translate": { - "x": 63.5, - "y": 0.0, - "z": 0.0 - }, - "scale": { - "x": 1.0, - "y": 1.0, - "z": 1.0 - }, - "rotation": { - "axis": { - "x": 0.0, - "y": 0.0, - "z": 1.0 - }, - "angle": { - "unit": "degrees", - "value": 0.0 - }, - "origin": { - "type": "local" - } - }, - "replicate": true - } - ] - ] - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "enable_sketch_mode", - "entity_id": "[uuid]", - "ortho": false, - "animated": false, - "adjust_camera": false, - "planar_normal": null - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "enable_sketch_mode", - "entity_id": "[uuid]", - "ortho": false, - "animated": false, - "adjust_camera": false, - "planar_normal": null - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "enable_sketch_mode", - "entity_id": "[uuid]", - "ortho": false, - "animated": false, - "adjust_camera": false, - "planar_normal": null - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "enable_sketch_mode", - "entity_id": "[uuid]", - "ortho": false, - "animated": false, - "adjust_camera": false, - "planar_normal": null - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "extrude", - "target": "[uuid]", - "distance": -6.35, - "faces": null, - "opposite": "None" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "extrude", - "target": "[uuid]", - "distance": -6.35, - "faces": null, - "opposite": "None" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "extrude", - "target": "[uuid]", - "distance": -6.35, - "faces": null, - "opposite": "None" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "extrude", - "target": "[uuid]", - "distance": -6.35, - "faces": null, - "opposite": "None" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "object_bring_to_front", - "object_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "object_bring_to_front", - "object_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "object_bring_to_front", - "object_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "object_bring_to_front", - "object_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "sketch_mode_disable" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "sketch_mode_disable" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "sketch_mode_disable" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "sketch_mode_disable" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_all_edge_faces", - "object_id": "[uuid]", - "edge_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_all_edge_faces", - "object_id": "[uuid]", - "edge_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_all_edge_faces", - "object_id": "[uuid]", - "edge_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_all_edge_faces", - "object_id": "[uuid]", - "edge_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_all_edge_faces", - "object_id": "[uuid]", - "edge_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_all_edge_faces", - "object_id": "[uuid]", - "edge_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_all_edge_faces", - "object_id": "[uuid]", - "edge_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_all_edge_faces", - "object_id": "[uuid]", - "edge_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_all_edge_faces", - "object_id": "[uuid]", - "edge_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_all_edge_faces", - "object_id": "[uuid]", - "edge_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_all_edge_faces", - "object_id": "[uuid]", - "edge_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_all_edge_faces", - "object_id": "[uuid]", - "edge_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_extrusion_face_info", - "object_id": "[uuid]", - "edge_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_extrusion_face_info", - "object_id": "[uuid]", - "edge_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_extrusion_face_info", - "object_id": "[uuid]", - "edge_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_extrusion_face_info", - "object_id": "[uuid]", - "edge_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_next_adjacent_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "face_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_next_adjacent_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "face_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_next_adjacent_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "face_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_next_adjacent_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "face_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_opposite_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "face_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_opposite_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "face_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_opposite_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "face_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_opposite_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "face_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "close_path", - "path_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "enable_sketch_mode", - "entity_id": "[uuid]", - "ortho": false, - "animated": false, - "adjust_camera": false, - "planar_normal": null - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "extend_path", - "path": "[uuid]", - "segment": { - "type": "arc", - "center": { - "x": -31.75, - "y": -57.15 - }, - "radius": 4.762499999999999, - "start": { - "unit": "degrees", - "value": 0.0 - }, - "end": { - "unit": "degrees", - "value": 360.0 - }, - "relative": false - } - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "move_path_pen", - "path": "[uuid]", - "to": { - "x": -26.987499999999997, - "y": -57.15, - "z": 0.0 - } - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "sketch_mode_disable" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "start_path" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "entity_linear_pattern_transform", - "entity_id": "[uuid]", - "transform": [], - "transforms": [ - [ - { - "translate": { - "x": 0.0, - "y": 114.3, - "z": 0.0 - }, - "scale": { - "x": 1.0, - "y": 1.0, - "z": 1.0 - }, - "rotation": { - "axis": { - "x": 0.0, - "y": 0.0, - "z": 1.0 - }, - "angle": { - "unit": "degrees", - "value": 0.0 - }, - "origin": { - "type": "local" - } - }, - "replicate": true - } - ] - ] - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "entity_linear_pattern_transform", - "entity_id": "[uuid]", - "transform": [], - "transforms": [ - [ - { - "translate": { - "x": 63.5, - "y": 0.0, - "z": 0.0 - }, - "scale": { - "x": 1.0, - "y": 1.0, - "z": 1.0 - }, - "rotation": { - "axis": { - "x": 0.0, - "y": 0.0, - "z": 1.0 - }, - "angle": { - "unit": "degrees", - "value": 0.0 - }, - "origin": { - "type": "local" - } - }, - "replicate": true - } - ] - ] - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "entity_linear_pattern_transform", - "entity_id": "[uuid]", - "transform": [], - "transforms": [ - [ - { - "translate": { - "x": 63.5, - "y": 0.0, - "z": 0.0 - }, - "scale": { - "x": 1.0, - "y": 1.0, - "z": 1.0 - }, - "rotation": { - "axis": { - "x": 0.0, - "y": 0.0, - "z": 1.0 - }, - "angle": { - "unit": "degrees", - "value": 0.0 - }, - "origin": { - "type": "local" - } - }, - "replicate": true - } - ] - ] - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "enable_sketch_mode", - "entity_id": "[uuid]", - "ortho": false, - "animated": false, - "adjust_camera": false, - "planar_normal": null - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "enable_sketch_mode", - "entity_id": "[uuid]", - "ortho": false, - "animated": false, - "adjust_camera": false, - "planar_normal": null - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "enable_sketch_mode", - "entity_id": "[uuid]", - "ortho": false, - "animated": false, - "adjust_camera": false, - "planar_normal": null - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "enable_sketch_mode", - "entity_id": "[uuid]", - "ortho": false, - "animated": false, - "adjust_camera": false, - "planar_normal": null - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "extrude", - "target": "[uuid]", - "distance": -19.049999999999997, - "faces": null, - "opposite": "None" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "extrude", - "target": "[uuid]", - "distance": -19.049999999999997, - "faces": null, - "opposite": "None" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "extrude", - "target": "[uuid]", - "distance": -19.049999999999997, - "faces": null, - "opposite": "None" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "extrude", - "target": "[uuid]", - "distance": -19.049999999999997, - "faces": null, - "opposite": "None" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "object_bring_to_front", - "object_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "object_bring_to_front", - "object_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "object_bring_to_front", - "object_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "object_bring_to_front", - "object_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "sketch_mode_disable" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "sketch_mode_disable" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "sketch_mode_disable" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "sketch_mode_disable" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_all_edge_faces", - "object_id": "[uuid]", - "edge_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_all_edge_faces", - "object_id": "[uuid]", - "edge_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_all_edge_faces", - "object_id": "[uuid]", - "edge_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_all_edge_faces", - "object_id": "[uuid]", - "edge_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_all_edge_faces", - "object_id": "[uuid]", - "edge_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_all_edge_faces", - "object_id": "[uuid]", - "edge_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_all_edge_faces", - "object_id": "[uuid]", - "edge_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_all_edge_faces", - "object_id": "[uuid]", - "edge_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_all_edge_faces", - "object_id": "[uuid]", - "edge_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_all_edge_faces", - "object_id": "[uuid]", - "edge_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_all_edge_faces", - "object_id": "[uuid]", - "edge_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_all_edge_faces", - "object_id": "[uuid]", - "edge_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_extrusion_face_info", - "object_id": "[uuid]", - "edge_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_extrusion_face_info", - "object_id": "[uuid]", - "edge_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_extrusion_face_info", - "object_id": "[uuid]", - "edge_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_extrusion_face_info", - "object_id": "[uuid]", - "edge_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_next_adjacent_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "face_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_next_adjacent_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "face_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_next_adjacent_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "face_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_next_adjacent_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "face_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_opposite_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "face_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_opposite_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "face_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_opposite_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "face_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_opposite_edge", - "object_id": "[uuid]", - "edge_id": "[uuid]", - "face_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "close_path", - "path_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "enable_sketch_mode", - "entity_id": "[uuid]", - "ortho": false, - "animated": false, - "adjust_camera": false, - "planar_normal": null - } - }, { "cmdId": "[uuid]", "range": [], @@ -1563,7 +292,7 @@ description: Artifact commands parametric-bearing-pillow-block.kcl "x": 0.0, "y": 0.0 }, - "radius": 38.099999999999994, + "radius": 33.3375, "start": { "unit": "degrees", "value": 0.0 @@ -1583,7 +312,7 @@ description: Artifact commands parametric-bearing-pillow-block.kcl "type": "move_path_pen", "path": "[uuid]", "to": { - "x": 38.099999999999994, + "x": 33.3375, "y": 0.0, "z": 0.0 } @@ -1612,7 +341,11 @@ description: Artifact commands parametric-bearing-pillow-block.kcl "ortho": false, "animated": false, "adjust_camera": false, - "planar_normal": null + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } } }, { @@ -1621,7 +354,7 @@ description: Artifact commands parametric-bearing-pillow-block.kcl "command": { "type": "extrude", "target": "[uuid]", - "distance": -25.4, + "distance": 9.524999999999999, "faces": null, "opposite": "None" } @@ -1668,6 +401,222 @@ description: Artifact commands parametric-bearing-pillow-block.kcl "edge_id": "[uuid]" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, { "cmdId": "[uuid]", "range": [], @@ -1687,6 +636,86 @@ description: Artifact commands parametric-bearing-pillow-block.kcl "face_id": "[uuid]" } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, { "cmdId": "[uuid]", "range": [], @@ -1696,5 +725,451 @@ description: Artifact commands parametric-bearing-pillow-block.kcl "edge_id": "[uuid]", "face_id": "[uuid]" } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": null + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": null + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "arc", + "center": { + "x": -63.5, + "y": 0.0 + }, + "radius": 3.175, + "start": { + "unit": "degrees", + "value": 0.0 + }, + "end": { + "unit": "degrees", + "value": 360.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "arc", + "center": { + "x": 63.5, + "y": 0.0 + }, + "radius": 3.175, + "start": { + "unit": "degrees", + "value": 0.0 + }, + "end": { + "unit": "degrees", + "value": 360.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": -60.324999999999996, + "y": 0.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 66.675, + "y": 0.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": null + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": null + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": -9.524999999999999, + "faces": null, + "opposite": "None" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": -9.524999999999999, + "faces": null, + "opposite": "None" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_fillet_edge", + "object_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]" + ], + "radius": 6.35, + "tolerance": 0.0000001, + "cut_type": "chamfer", + "strategy": "automatic", + "extra_face_ids": [] + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_fillet_edge", + "object_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]" + ], + "radius": 6.35, + "tolerance": 0.0000001, + "cut_type": "chamfer", + "strategy": "automatic", + "extra_face_ids": [] + } } ] diff --git a/rust/kcl-lib/tests/kcl_samples/countersunk-plate/artifact_graph_flowchart.snap b/rust/kcl-lib/tests/kcl_samples/countersunk-plate/artifact_graph_flowchart.snap new file mode 100644 index 000000000..9b5fbe055 --- /dev/null +++ b/rust/kcl-lib/tests/kcl_samples/countersunk-plate/artifact_graph_flowchart.snap @@ -0,0 +1,6 @@ +--- +source: kcl-lib/src/simulation_tests.rs +description: Artifact graph flowchart countersunk-plate.kcl +extension: md +snapshot_kind: binary +--- diff --git a/rust/kcl-lib/tests/kcl_samples/countersunk-plate/artifact_graph_flowchart.snap.md b/rust/kcl-lib/tests/kcl_samples/countersunk-plate/artifact_graph_flowchart.snap.md new file mode 100644 index 000000000..9126d39df --- /dev/null +++ b/rust/kcl-lib/tests/kcl_samples/countersunk-plate/artifact_graph_flowchart.snap.md @@ -0,0 +1,208 @@ +```mermaid +flowchart LR + subgraph path4 [Path] + 4["Path
[812, 876, 0]"] + 8["Segment
[882, 939, 0]"] + 9["Segment
[945, 1004, 0]"] + 10["Segment
[1010, 1067, 0]"] + 11["Segment
[1073, 1126, 0]"] + 12["Segment
[1132, 1190, 0]"] + 13["Segment
[1196, 1255, 0]"] + 14["Segment
[1261, 1317, 0]"] + 15["Segment
[1323, 1388, 0]"] + 16["Segment
[1394, 1401, 0]"] + 23[Solid2d] + end + subgraph path5 [Path] + 5["Path
[1425, 1487, 0]"] + 17["Segment
[1425, 1487, 0]"] + 20[Solid2d] + end + subgraph path6 [Path] + 6["Path
[1650, 1726, 0]"] + 18["Segment
[1650, 1726, 0]"] + 21[Solid2d] + end + subgraph path7 [Path] + 7["Path
[1650, 1726, 0]"] + 19["Segment
[1650, 1726, 0]"] + 22[Solid2d] + end + 1["Plane
[700, 717, 0]"] + 2["StartSketchOnFace
[1606, 1642, 0]"] + 3["StartSketchOnFace
[1606, 1642, 0]"] + 24["Sweep Extrusion
[1494, 1529, 0]"] + 25["Sweep Extrusion
[1734, 1767, 0]"] + 26["Sweep Extrusion
[1734, 1767, 0]"] + 27[Wall] + 28[Wall] + 29[Wall] + 30[Wall] + 31[Wall] + 32[Wall] + 33[Wall] + 34[Wall] + 35[Wall] + 36[Wall] + 37["Cap Start"] + 38["Cap End"] + 39["SweepEdge Opposite"] + 40["SweepEdge Opposite"] + 41["SweepEdge Opposite"] + 42["SweepEdge Opposite"] + 43["SweepEdge Opposite"] + 44["SweepEdge Opposite"] + 45["SweepEdge Opposite"] + 46["SweepEdge Opposite"] + 47["SweepEdge Opposite"] + 48["SweepEdge Opposite"] + 49["SweepEdge Adjacent"] + 50["SweepEdge Adjacent"] + 51["SweepEdge Adjacent"] + 52["SweepEdge Adjacent"] + 53["SweepEdge Adjacent"] + 54["SweepEdge Adjacent"] + 55["SweepEdge Adjacent"] + 56["SweepEdge Adjacent"] + 57["SweepEdge Adjacent"] + 58["SweepEdge Adjacent"] + 59["EdgeCut Chamfer
[1830, 1877, 0]"] + 60["EdgeCut Chamfer
[1830, 1877, 0]"] + 1 --- 4 + 1 --- 5 + 38 x--> 2 + 38 x--> 3 + 4 --- 8 + 4 --- 9 + 4 --- 10 + 4 --- 11 + 4 --- 12 + 4 --- 13 + 4 --- 14 + 4 --- 15 + 4 --- 16 + 4 --- 23 + 4 ---- 24 + 5 --- 17 + 5 --- 20 + 6 --- 18 + 6 --- 21 + 6 ---- 25 + 38 --- 6 + 7 --- 19 + 7 --- 22 + 7 ---- 26 + 38 --- 7 + 8 --- 33 + 8 x--> 37 + 8 --- 41 + 8 --- 53 + 9 --- 30 + 9 x--> 37 + 9 --- 43 + 9 --- 54 + 10 --- 29 + 10 x--> 37 + 10 --- 46 + 10 --- 49 + 11 --- 31 + 11 x--> 37 + 11 --- 40 + 11 --- 55 + 12 --- 28 + 12 x--> 37 + 12 --- 45 + 12 --- 50 + 13 --- 27 + 13 x--> 37 + 13 --- 42 + 13 --- 52 + 14 --- 32 + 14 x--> 37 + 14 --- 39 + 14 --- 56 + 15 --- 34 + 15 x--> 37 + 15 --- 44 + 15 --- 51 + 18 --- 35 + 18 x--> 38 + 18 --- 47 + 18 --- 57 + 18 --- 59 + 19 --- 36 + 19 x--> 38 + 19 --- 48 + 19 --- 58 + 19 --- 60 + 24 --- 27 + 24 --- 28 + 24 --- 29 + 24 --- 30 + 24 --- 31 + 24 --- 32 + 24 --- 33 + 24 --- 34 + 24 --- 37 + 24 --- 38 + 24 --- 39 + 24 --- 40 + 24 --- 41 + 24 --- 42 + 24 --- 43 + 24 --- 44 + 24 --- 45 + 24 --- 46 + 24 --- 49 + 24 --- 50 + 24 --- 51 + 24 --- 52 + 24 --- 53 + 24 --- 54 + 24 --- 55 + 24 --- 56 + 25 --- 35 + 25 --- 47 + 25 --- 57 + 26 --- 36 + 26 --- 48 + 26 --- 58 + 42 <--x 27 + 50 <--x 27 + 52 <--x 27 + 45 <--x 28 + 50 <--x 28 + 55 <--x 28 + 46 <--x 29 + 49 <--x 29 + 54 <--x 29 + 43 <--x 30 + 53 <--x 30 + 54 <--x 30 + 40 <--x 31 + 49 <--x 31 + 55 <--x 31 + 39 <--x 32 + 52 <--x 32 + 56 <--x 32 + 41 <--x 33 + 51 <--x 33 + 53 <--x 33 + 44 <--x 34 + 51 <--x 34 + 56 <--x 34 + 47 <--x 35 + 57 <--x 35 + 48 <--x 36 + 58 <--x 36 + 47 <--x 37 + 48 <--x 37 + 39 <--x 38 + 40 <--x 38 + 41 <--x 38 + 42 <--x 38 + 43 <--x 38 + 44 <--x 38 + 45 <--x 38 + 46 <--x 38 +``` diff --git a/rust/kcl-lib/tests/kcl_samples/parametric-bearing-pillow-block/ast.snap b/rust/kcl-lib/tests/kcl_samples/countersunk-plate/ast.snap similarity index 59% rename from rust/kcl-lib/tests/kcl_samples/parametric-bearing-pillow-block/ast.snap rename to rust/kcl-lib/tests/kcl_samples/countersunk-plate/ast.snap index 4ddae27c1..075238f8f 100644 --- a/rust/kcl-lib/tests/kcl_samples/parametric-bearing-pillow-block/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/countersunk-plate/ast.snap @@ -1,6 +1,6 @@ --- source: kcl-lib/src/simulation_tests.rs -description: Result of parsing parametric-bearing-pillow-block.kcl +description: Result of parsing countersunk-plate.kcl --- { "Ok": { @@ -13,19 +13,19 @@ description: Result of parsing parametric-bearing-pillow-block.kcl "id": { "commentStart": 0, "end": 0, - "name": "length", + "name": "boltSpacing", "start": 0, "type": "Identifier" }, "init": { "commentStart": 0, "end": 0, - "raw": "6", + "raw": "5", "start": 0, "type": "Literal", "type": "Literal", "value": { - "value": 6.0, + "value": 5.0, "suffix": "None" } }, @@ -49,21 +49,41 @@ description: Result of parsing parametric-bearing-pillow-block.kcl "id": { "commentStart": 0, "end": 0, - "name": "width", + "name": "boltDiameter", "start": 0, "type": "Identifier" }, "init": { "commentStart": 0, "end": 0, - "raw": "4", + "left": { + "commentStart": 0, + "end": 0, + "raw": "1", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 1.0, + "suffix": "None" + } + }, + "operator": "/", + "right": { + "commentStart": 0, + "end": 0, + "raw": "4", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 4.0, + "suffix": "None" + } + }, "start": 0, - "type": "Literal", - "type": "Literal", - "value": { - "value": 4.0, - "suffix": "None" - } + "type": "BinaryExpression", + "type": "BinaryExpression" }, "start": 0, "type": "VariableDeclarator" @@ -82,21 +102,61 @@ description: Result of parsing parametric-bearing-pillow-block.kcl "id": { "commentStart": 0, "end": 0, - "name": "height", + "name": "centerHoleDiameter", "start": 0, "type": "Identifier" }, "init": { "commentStart": 0, "end": 0, - "raw": "1", + "left": { + "commentStart": 0, + "end": 0, + "raw": "1", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 1.0, + "suffix": "None" + } + }, + "operator": "+", + "right": { + "commentStart": 0, + "end": 0, + "left": { + "commentStart": 0, + "end": 0, + "raw": "3", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 3.0, + "suffix": "None" + } + }, + "operator": "/", + "right": { + "commentStart": 0, + "end": 0, + "raw": "4", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 4.0, + "suffix": "None" + } + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + }, "start": 0, - "type": "Literal", - "type": "Literal", - "value": { - "value": 1.0, - "suffix": "None" - } + "type": "BinaryExpression", + "type": "BinaryExpression" }, "start": 0, "type": "VariableDeclarator" @@ -115,80 +175,14 @@ description: Result of parsing parametric-bearing-pillow-block.kcl "id": { "commentStart": 0, "end": 0, - "name": "cbDepth", + "name": "plateThickness", "start": 0, "type": "Identifier" }, "init": { "commentStart": 0, "end": 0, - "raw": ".25", - "start": 0, - "type": "Literal", - "type": "Literal", - "value": { - "value": 0.25, - "suffix": "None" - } - }, - "start": 0, - "type": "VariableDeclarator" - }, - "end": 0, - "kind": "const", - "start": 0, - "type": "VariableDeclaration", - "type": "VariableDeclaration" - }, - { - "commentStart": 0, - "declaration": { - "commentStart": 0, - "end": 0, - "id": { - "commentStart": 0, - "end": 0, - "name": "cbDia", - "start": 0, - "type": "Identifier" - }, - "init": { - "commentStart": 0, - "end": 0, - "raw": ".7", - "start": 0, - "type": "Literal", - "type": "Literal", - "value": { - "value": 0.7, - "suffix": "None" - } - }, - "start": 0, - "type": "VariableDeclarator" - }, - "end": 0, - "kind": "const", - "start": 0, - "type": "VariableDeclaration", - "type": "VariableDeclaration" - }, - { - "commentStart": 0, - "declaration": { - "commentStart": 0, - "end": 0, - "id": { - "commentStart": 0, - "end": 0, - "name": "holeDia", - "start": 0, - "type": "Identifier" - }, - "init": { - "commentStart": 0, - "end": 0, - "raw": ".375", + "raw": "0.375", "start": 0, "type": "Literal", "type": "Literal", @@ -214,20 +208,334 @@ description: Result of parsing parametric-bearing-pillow-block.kcl "id": { "commentStart": 0, "end": 0, - "name": "padding", + "name": "r1", "start": 0, "type": "Identifier" }, "init": { "commentStart": 0, "end": 0, - "raw": "1.5", + "left": { + "commentStart": 0, + "end": 0, + "left": { + "commentStart": 0, + "end": 0, + "left": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "centerHoleDiameter", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "operator": "/", + "right": { + "commentStart": 0, + "end": 0, + "raw": "2", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 2.0, + "suffix": "None" + } + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + }, + "operator": "*", + "right": { + "commentStart": 0, + "end": 0, + "raw": "1.5", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 1.5, + "suffix": "None" + } + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + }, + "operator": "+", + "right": { + "commentStart": 0, + "end": 0, + "raw": ".35", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 0.35, + "suffix": "None" + } + }, "start": 0, - "type": "Literal", - "type": "Literal", - "value": { - "value": 1.5, - "suffix": "None" + "type": "BinaryExpression", + "type": "BinaryExpression" + }, + "start": 0, + "type": "VariableDeclarator" + }, + "end": 0, + "kind": "const", + "preComments": [ + "", + "", + "// Check that the plate is thick enough to countersink a hole", + "// assertGreaterThan(plateThickness, boltDiameter, \"This plate is not thick enough for the necessary countersink dimensions\")", + "", + "", + "// A bit of math to calculate the tangent line between the two diameters" + ], + "start": 0, + "type": "VariableDeclaration", + "type": "VariableDeclaration" + }, + { + "commentStart": 0, + "declaration": { + "commentStart": 0, + "end": 0, + "id": { + "commentStart": 0, + "end": 0, + "name": "r2", + "start": 0, + "type": "Identifier" + }, + "init": { + "commentStart": 0, + "end": 0, + "left": { + "commentStart": 0, + "end": 0, + "left": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "boltDiameter", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "operator": "*", + "right": { + "commentStart": 0, + "end": 0, + "raw": "2", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 2.0, + "suffix": "None" + } + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + }, + "operator": "+", + "right": { + "commentStart": 0, + "end": 0, + "raw": ".25", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 0.25, + "suffix": "None" + } + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + }, + "start": 0, + "type": "VariableDeclarator" + }, + "end": 0, + "kind": "const", + "start": 0, + "type": "VariableDeclaration", + "type": "VariableDeclaration" + }, + { + "commentStart": 0, + "declaration": { + "commentStart": 0, + "end": 0, + "id": { + "commentStart": 0, + "end": 0, + "name": "d", + "start": 0, + "type": "Identifier" + }, + "init": { + "commentStart": 0, + "end": 0, + "left": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "boltSpacing", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "operator": "/", + "right": { + "commentStart": 0, + "end": 0, + "raw": "2", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 2.0, + "suffix": "None" + } + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + }, + "start": 0, + "type": "VariableDeclarator" + }, + "end": 0, + "kind": "const", + "start": 0, + "type": "VariableDeclaration", + "type": "VariableDeclaration" + }, + { + "commentStart": 0, + "declaration": { + "commentStart": 0, + "end": 0, + "id": { + "commentStart": 0, + "end": 0, + "name": "tangentAngle", + "start": 0, + "type": "Identifier" + }, + "init": { + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "asin", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": { + "commentStart": 0, + "end": 0, + "left": { + "commentStart": 0, + "end": 0, + "left": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "r1", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "operator": "-", + "right": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "r2", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + }, + "operator": "/", + "right": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "d", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" } }, "start": 0, @@ -247,21 +555,95 @@ description: Result of parsing parametric-bearing-pillow-block.kcl "id": { "commentStart": 0, "end": 0, - "name": "bearingDia", + "name": "tangentLength", "start": 0, "type": "Identifier" }, "init": { "commentStart": 0, "end": 0, - "raw": "3", + "left": { + "commentStart": 0, + "end": 0, + "left": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "r1", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "operator": "-", + "right": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "r2", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + }, + "operator": "/", + "right": { + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "tan", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "tangentAngle", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + } + }, "start": 0, - "type": "Literal", - "type": "Literal", - "value": { - "value": 3.0, - "suffix": "None" - } + "type": "BinaryExpression", + "type": "BinaryExpression" }, "start": 0, "type": "VariableDeclarator" @@ -280,7 +662,7 @@ description: Result of parsing parametric-bearing-pillow-block.kcl "id": { "commentStart": 0, "end": 0, - "name": "body", + "name": "plateBody", "start": 0, "type": "Identifier" }, @@ -336,20 +718,40 @@ description: Result of parsing parametric-bearing-pillow-block.kcl "type": "Identifier" }, "arg": { - "commentStart": 0, - "elements": [ + "arguments": [ { - "commentStart": 0, - "end": 0, - "left": { - "argument": { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "angle", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "end": 0, + "left": { + "commentStart": 0, + "end": 0, + "raw": "90", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 90.0, + "suffix": "None" + } + }, + "operator": "-", + "right": { "abs_path": false, "commentStart": 0, "end": 0, "name": { "commentStart": 0, "end": 0, - "name": "width", + "name": "tangentAngle", "start": 0, "type": "Identifier" }, @@ -358,79 +760,59 @@ description: Result of parsing parametric-bearing-pillow-block.kcl "type": "Name", "type": "Name" }, - "commentStart": 0, - "end": 0, - "operator": "-", "start": 0, - "type": "UnaryExpression", - "type": "UnaryExpression" - }, - "operator": "/", - "right": { - "commentStart": 0, - "end": 0, - "raw": "2", - "start": 0, - "type": "Literal", - "type": "Literal", - "value": { - "value": 2.0, - "suffix": "None" - } - }, - "start": 0, - "type": "BinaryExpression", - "type": "BinaryExpression" + "type": "BinaryExpression", + "type": "BinaryExpression" + } }, { - "commentStart": 0, - "end": 0, - "left": { - "argument": { - "abs_path": false, + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "length", + "start": 0, + "type": "Identifier" + }, + "arg": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { "commentStart": 0, "end": 0, - "name": { - "commentStart": 0, - "end": 0, - "name": "length", - "start": 0, - "type": "Identifier" - }, - "path": [], + "name": "r1", "start": 0, - "type": "Name", - "type": "Name" + "type": "Identifier" }, - "commentStart": 0, - "end": 0, - "operator": "-", + "path": [], "start": 0, - "type": "UnaryExpression", - "type": "UnaryExpression" - }, - "operator": "/", - "right": { - "commentStart": 0, - "end": 0, - "raw": "2", - "start": 0, - "type": "Literal", - "type": "Literal", - "value": { - "value": 2.0, - "suffix": "None" - } - }, - "start": 0, - "type": "BinaryExpression", - "type": "BinaryExpression" + "type": "Name", + "type": "Name" + } } ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "polar", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, "end": 0, "start": 0, - "type": "ArrayExpression", - "type": "ArrayExpression" + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": null } } ], @@ -463,98 +845,59 @@ description: Result of parsing parametric-bearing-pillow-block.kcl "label": { "commentStart": 0, "end": 0, - "name": "endAbsolute", + "name": "angle", "start": 0, "type": "Identifier" }, "arg": { - "commentStart": 0, - "elements": [ - { + "argument": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { "commentStart": 0, "end": 0, - "left": { - "abs_path": false, - "commentStart": 0, - "end": 0, - "name": { - "commentStart": 0, - "end": 0, - "name": "width", - "start": 0, - "type": "Identifier" - }, - "path": [], - "start": 0, - "type": "Name", - "type": "Name" - }, - "operator": "/", - "right": { - "commentStart": 0, - "end": 0, - "raw": "2", - "start": 0, - "type": "Literal", - "type": "Literal", - "value": { - "value": 2.0, - "suffix": "None" - } - }, + "name": "tangentAngle", "start": 0, - "type": "BinaryExpression", - "type": "BinaryExpression" + "type": "Identifier" }, - { - "commentStart": 0, - "end": 0, - "left": { - "argument": { - "abs_path": false, - "commentStart": 0, - "end": 0, - "name": { - "commentStart": 0, - "end": 0, - "name": "length", - "start": 0, - "type": "Identifier" - }, - "path": [], - "start": 0, - "type": "Name", - "type": "Name" - }, - "commentStart": 0, - "end": 0, - "operator": "-", - "start": 0, - "type": "UnaryExpression", - "type": "UnaryExpression" - }, - "operator": "/", - "right": { - "commentStart": 0, - "end": 0, - "raw": "2", - "start": 0, - "type": "Literal", - "type": "Literal", - "value": { - "value": 2.0, - "suffix": "None" - } - }, - "start": 0, - "type": "BinaryExpression", - "type": "BinaryExpression" - } - ], + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "commentStart": 0, "end": 0, + "operator": "-", "start": 0, - "type": "ArrayExpression", - "type": "ArrayExpression" + "type": "UnaryExpression", + "type": "UnaryExpression" + } + }, + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "length", + "start": 0, + "type": "Identifier" + }, + "arg": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "tangentLength", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" } } ], @@ -565,7 +908,601 @@ description: Result of parsing parametric-bearing-pillow-block.kcl "name": { "commentStart": 0, "end": 0, - "name": "line", + "name": "angledLine", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": null + }, + { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "radius", + "start": 0, + "type": "Identifier" + }, + "arg": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "r2", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + } + }, + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "angle", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "end": 0, + "left": { + "commentStart": 0, + "end": 0, + "left": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "tangentAngle", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "operator": "-", + "right": { + "commentStart": 0, + "end": 0, + "raw": "90", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 90.0, + "suffix": "None" + } + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + }, + "operator": "*", + "right": { + "commentStart": 0, + "end": 0, + "raw": "2", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 2.0, + "suffix": "None" + } + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "tangentialArc", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": null + }, + { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "angle", + "start": 0, + "type": "Identifier" + }, + "arg": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "tangentAngle", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + } + }, + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "length", + "start": 0, + "type": "Identifier" + }, + "arg": { + "argument": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "tangentLength", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "operator": "-", + "start": 0, + "type": "UnaryExpression", + "type": "UnaryExpression" + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "angledLine", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": null + }, + { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "radius", + "start": 0, + "type": "Identifier" + }, + "arg": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "r1", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + } + }, + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "angle", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "end": 0, + "left": { + "argument": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "tangentAngle", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "operator": "-", + "start": 0, + "type": "UnaryExpression", + "type": "UnaryExpression" + }, + "operator": "*", + "right": { + "commentStart": 0, + "end": 0, + "raw": "2", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 2.0, + "suffix": "None" + } + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "tangentialArc", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": null + }, + { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "angle", + "start": 0, + "type": "Identifier" + }, + "arg": { + "argument": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "tangentAngle", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "operator": "-", + "start": 0, + "type": "UnaryExpression", + "type": "UnaryExpression" + } + }, + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "length", + "start": 0, + "type": "Identifier" + }, + "arg": { + "argument": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "tangentLength", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "operator": "-", + "start": 0, + "type": "UnaryExpression", + "type": "UnaryExpression" + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "angledLine", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": null + }, + { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "radius", + "start": 0, + "type": "Identifier" + }, + "arg": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "r2", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + } + }, + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "angle", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "end": 0, + "left": { + "commentStart": 0, + "end": 0, + "left": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "tangentAngle", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "operator": "-", + "right": { + "commentStart": 0, + "end": 0, + "raw": "90", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 90.0, + "suffix": "None" + } + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + }, + "operator": "*", + "right": { + "commentStart": 0, + "end": 0, + "raw": "2", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 2.0, + "suffix": "None" + } + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "tangentialArc", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": null + }, + { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "angle", + "start": 0, + "type": "Identifier" + }, + "arg": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "tangentAngle", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + } + }, + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "length", + "start": 0, + "type": "Identifier" + }, + "arg": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "tangentLength", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "angledLine", "start": 0, "type": "Identifier" }, @@ -595,76 +1532,62 @@ description: Result of parsing parametric-bearing-pillow-block.kcl "commentStart": 0, "elements": [ { - "commentStart": 0, - "end": 0, - "left": { + "callee": { "abs_path": false, "commentStart": 0, "end": 0, "name": { "commentStart": 0, "end": 0, - "name": "width", + "name": "profileStartX", "start": 0, "type": "Identifier" }, "path": [], "start": 0, - "type": "Name", "type": "Name" }, - "operator": "/", - "right": { + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": { "commentStart": 0, "end": 0, - "raw": "2", "start": 0, - "type": "Literal", - "type": "Literal", - "value": { - "value": 2.0, - "suffix": "None" - } - }, - "start": 0, - "type": "BinaryExpression", - "type": "BinaryExpression" + "type": "PipeSubstitution", + "type": "PipeSubstitution" + } }, { - "commentStart": 0, - "end": 0, - "left": { + "callee": { "abs_path": false, "commentStart": 0, "end": 0, "name": { "commentStart": 0, "end": 0, - "name": "length", + "name": "profileStartY", "start": 0, "type": "Identifier" }, "path": [], "start": 0, - "type": "Name", "type": "Name" }, - "operator": "/", - "right": { + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": { "commentStart": 0, "end": 0, - "raw": "2", "start": 0, - "type": "Literal", - "type": "Literal", - "value": { - "value": 2.0, - "suffix": "None" - } - }, - "start": 0, - "type": "BinaryExpression", - "type": "BinaryExpression" + "type": "PipeSubstitution", + "type": "PipeSubstitution" + } } ], "end": 0, @@ -681,131 +1604,7 @@ description: Result of parsing parametric-bearing-pillow-block.kcl "name": { "commentStart": 0, "end": 0, - "name": "line", - "start": 0, - "type": "Identifier" - }, - "path": [], - "start": 0, - "type": "Name" - }, - "commentStart": 0, - "end": 0, - "start": 0, - "type": "CallExpressionKw", - "type": "CallExpressionKw", - "unlabeled": null - }, - { - "arguments": [ - { - "type": "LabeledArg", - "label": { - "commentStart": 0, - "end": 0, - "name": "endAbsolute", - "start": 0, - "type": "Identifier" - }, - "arg": { - "commentStart": 0, - "elements": [ - { - "commentStart": 0, - "end": 0, - "left": { - "argument": { - "abs_path": false, - "commentStart": 0, - "end": 0, - "name": { - "commentStart": 0, - "end": 0, - "name": "width", - "start": 0, - "type": "Identifier" - }, - "path": [], - "start": 0, - "type": "Name", - "type": "Name" - }, - "commentStart": 0, - "end": 0, - "operator": "-", - "start": 0, - "type": "UnaryExpression", - "type": "UnaryExpression" - }, - "operator": "/", - "right": { - "commentStart": 0, - "end": 0, - "raw": "2", - "start": 0, - "type": "Literal", - "type": "Literal", - "value": { - "value": 2.0, - "suffix": "None" - } - }, - "start": 0, - "type": "BinaryExpression", - "type": "BinaryExpression" - }, - { - "commentStart": 0, - "end": 0, - "left": { - "abs_path": false, - "commentStart": 0, - "end": 0, - "name": { - "commentStart": 0, - "end": 0, - "name": "length", - "start": 0, - "type": "Identifier" - }, - "path": [], - "start": 0, - "type": "Name", - "type": "Name" - }, - "operator": "/", - "right": { - "commentStart": 0, - "end": 0, - "raw": "2", - "start": 0, - "type": "Literal", - "type": "Literal", - "value": { - "value": 2.0, - "suffix": "None" - } - }, - "start": 0, - "type": "BinaryExpression", - "type": "BinaryExpression" - } - ], - "end": 0, - "start": 0, - "type": "ArrayExpression", - "type": "ArrayExpression" - } - } - ], - "callee": { - "abs_path": false, - "commentStart": 0, - "end": 0, - "name": { - "commentStart": 0, - "end": 0, - "name": "line", + "name": "tangentialArc", "start": 0, "type": "Identifier" }, @@ -850,167 +1649,65 @@ description: Result of parsing parametric-bearing-pillow-block.kcl "label": { "commentStart": 0, "end": 0, - "name": "length", + "name": "tool", "start": 0, "type": "Identifier" }, "arg": { - "abs_path": false, - "commentStart": 0, - "end": 0, - "name": { - "commentStart": 0, - "end": 0, - "name": "height", - "start": 0, - "type": "Identifier" - }, - "path": [], - "start": 0, - "type": "Name", - "type": "Name" - } - } - ], - "callee": { - "abs_path": false, - "commentStart": 0, - "end": 0, - "name": { - "commentStart": 0, - "end": 0, - "name": "extrude", - "start": 0, - "type": "Identifier" - }, - "path": [], - "start": 0, - "type": "Name" - }, - "commentStart": 0, - "end": 0, - "start": 0, - "type": "CallExpressionKw", - "type": "CallExpressionKw", - "unlabeled": null - } - ], - "commentStart": 0, - "end": 0, - "start": 0, - "type": "PipeExpression", - "type": "PipeExpression" - }, - "start": 0, - "type": "VariableDeclarator" - }, - "end": 0, - "kind": "const", - "preComments": [ - "", - "", - "// Sketch the block body" - ], - "start": 0, - "type": "VariableDeclaration", - "type": "VariableDeclaration" - }, - { - "commentStart": 0, - "declaration": { - "commentStart": 0, - "end": 0, - "id": { - "commentStart": 0, - "end": 0, - "name": "counterBoreHoles", - "start": 0, - "type": "Identifier" - }, - "init": { - "body": [ - { - "arguments": [ - { - "type": "LabeledArg", - "label": { - "commentStart": 0, - "end": 0, - "name": "face", - "start": 0, - "type": "Identifier" - }, - "arg": { - "abs_path": false, - "commentStart": 0, - "end": 0, - "name": { - "commentStart": 0, - "end": 0, - "name": "END", - "start": 0, - "type": "Identifier" - }, - "path": [], - "start": 0, - "type": "Name", - "type": "Name" - } - } - ], - "callee": { - "abs_path": false, - "commentStart": 0, - "end": 0, - "name": { - "commentStart": 0, - "end": 0, - "name": "startSketchOn", - "start": 0, - "type": "Identifier" - }, - "path": [], - "start": 0, - "type": "Name" - }, - "commentStart": 0, - "end": 0, - "start": 0, - "type": "CallExpressionKw", - "type": "CallExpressionKw", - "unlabeled": { - "abs_path": false, - "commentStart": 0, - "end": 0, - "name": { - "commentStart": 0, - "end": 0, - "name": "body", - "start": 0, - "type": "Identifier" - }, - "path": [], - "start": 0, - "type": "Name", - "type": "Name" - } - }, - { - "arguments": [ - { - "type": "LabeledArg", - "label": { - "commentStart": 0, - "end": 0, - "name": "center", - "start": 0, - "type": "Identifier" - }, - "arg": { - "commentStart": 0, - "elements": [ + "arguments": [ { - "argument": { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "center", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "elements": [ + { + "commentStart": 0, + "end": 0, + "raw": "0", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 0.0, + "suffix": "None" + } + }, + { + "commentStart": 0, + "end": 0, + "raw": "0", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 0.0, + "suffix": "None" + } + } + ], + "end": 0, + "start": 0, + "type": "ArrayExpression", + "type": "ArrayExpression" + } + }, + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "radius", + "start": 0, + "type": "Identifier" + }, + "arg": { "commentStart": 0, "end": 0, "left": { @@ -1023,7 +1720,7 @@ description: Result of parsing parametric-bearing-pillow-block.kcl "name": { "commentStart": 0, "end": 0, - "name": "width", + "name": "centerHoleDiameter", "start": 0, "type": "Identifier" }, @@ -1049,193 +1746,46 @@ description: Result of parsing parametric-bearing-pillow-block.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, - "operator": "-", + "operator": "*", "right": { "commentStart": 0, "end": 0, - "left": { - "abs_path": false, - "commentStart": 0, - "end": 0, - "name": { - "commentStart": 0, - "end": 0, - "name": "padding", - "start": 0, - "type": "Identifier" - }, - "path": [], - "start": 0, - "type": "Name", - "type": "Name" - }, - "operator": "/", - "right": { - "commentStart": 0, - "end": 0, - "raw": "2", - "start": 0, - "type": "Literal", - "type": "Literal", - "value": { - "value": 2.0, - "suffix": "None" - } - }, + "raw": "1.5", "start": 0, - "type": "BinaryExpression", - "type": "BinaryExpression" + "type": "Literal", + "type": "Literal", + "value": { + "value": 1.5, + "suffix": "None" + } }, "start": 0, "type": "BinaryExpression", "type": "BinaryExpression" - }, - "commentStart": 0, - "end": 0, - "operator": "-", - "start": 0, - "type": "UnaryExpression", - "type": "UnaryExpression" - }, - { - "argument": { - "commentStart": 0, - "end": 0, - "left": { - "commentStart": 0, - "end": 0, - "left": { - "abs_path": false, - "commentStart": 0, - "end": 0, - "name": { - "commentStart": 0, - "end": 0, - "name": "length", - "start": 0, - "type": "Identifier" - }, - "path": [], - "start": 0, - "type": "Name", - "type": "Name" - }, - "operator": "/", - "right": { - "commentStart": 0, - "end": 0, - "raw": "2", - "start": 0, - "type": "Literal", - "type": "Literal", - "value": { - "value": 2.0, - "suffix": "None" - } - }, - "start": 0, - "type": "BinaryExpression", - "type": "BinaryExpression" - }, - "operator": "-", - "right": { - "commentStart": 0, - "end": 0, - "left": { - "abs_path": false, - "commentStart": 0, - "end": 0, - "name": { - "commentStart": 0, - "end": 0, - "name": "padding", - "start": 0, - "type": "Identifier" - }, - "path": [], - "start": 0, - "type": "Name", - "type": "Name" - }, - "operator": "/", - "right": { - "commentStart": 0, - "end": 0, - "raw": "2", - "start": 0, - "type": "Literal", - "type": "Literal", - "value": { - "value": 2.0, - "suffix": "None" - } - }, - "start": 0, - "type": "BinaryExpression", - "type": "BinaryExpression" - }, - "start": 0, - "type": "BinaryExpression", - "type": "BinaryExpression" - }, - "commentStart": 0, - "end": 0, - "operator": "-", - "start": 0, - "type": "UnaryExpression", - "type": "UnaryExpression" + } } ], - "end": 0, - "start": 0, - "type": "ArrayExpression", - "type": "ArrayExpression" - } - }, - { - "type": "LabeledArg", - "label": { - "commentStart": 0, - "end": 0, - "name": "radius", - "start": 0, - "type": "Identifier" - }, - "arg": { - "commentStart": 0, - "end": 0, - "left": { + "callee": { "abs_path": false, "commentStart": 0, "end": 0, "name": { "commentStart": 0, "end": 0, - "name": "cbDia", + "name": "circle", "start": 0, "type": "Identifier" }, "path": [], "start": 0, - "type": "Name", "type": "Name" }, - "operator": "/", - "right": { - "commentStart": 0, - "end": 0, - "raw": "2", - "start": 0, - "type": "Literal", - "type": "Literal", - "value": { - "value": 2.0, - "suffix": "None" - } - }, + "commentStart": 0, + "end": 0, "start": 0, - "type": "BinaryExpression", - "type": "BinaryExpression" + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": null } } ], @@ -1246,287 +1796,7 @@ description: Result of parsing parametric-bearing-pillow-block.kcl "name": { "commentStart": 0, "end": 0, - "name": "circle", - "start": 0, - "type": "Identifier" - }, - "path": [], - "start": 0, - "type": "Name" - }, - "commentStart": 0, - "end": 0, - "start": 0, - "type": "CallExpressionKw", - "type": "CallExpressionKw", - "unlabeled": null - }, - { - "arguments": [ - { - "type": "LabeledArg", - "label": { - "commentStart": 0, - "end": 0, - "name": "instances", - "start": 0, - "type": "Identifier" - }, - "arg": { - "commentStart": 0, - "end": 0, - "raw": "2", - "start": 0, - "type": "Literal", - "type": "Literal", - "value": { - "value": 2.0, - "suffix": "None" - } - } - }, - { - "type": "LabeledArg", - "label": { - "commentStart": 0, - "end": 0, - "name": "distance", - "start": 0, - "type": "Identifier" - }, - "arg": { - "commentStart": 0, - "end": 0, - "left": { - "abs_path": false, - "commentStart": 0, - "end": 0, - "name": { - "commentStart": 0, - "end": 0, - "name": "length", - "start": 0, - "type": "Identifier" - }, - "path": [], - "start": 0, - "type": "Name", - "type": "Name" - }, - "operator": "-", - "right": { - "abs_path": false, - "commentStart": 0, - "end": 0, - "name": { - "commentStart": 0, - "end": 0, - "name": "padding", - "start": 0, - "type": "Identifier" - }, - "path": [], - "start": 0, - "type": "Name", - "type": "Name" - }, - "start": 0, - "type": "BinaryExpression", - "type": "BinaryExpression" - } - }, - { - "type": "LabeledArg", - "label": { - "commentStart": 0, - "end": 0, - "name": "axis", - "start": 0, - "type": "Identifier" - }, - "arg": { - "commentStart": 0, - "elements": [ - { - "commentStart": 0, - "end": 0, - "raw": "0", - "start": 0, - "type": "Literal", - "type": "Literal", - "value": { - "value": 0.0, - "suffix": "None" - } - }, - { - "commentStart": 0, - "end": 0, - "raw": "1", - "start": 0, - "type": "Literal", - "type": "Literal", - "value": { - "value": 1.0, - "suffix": "None" - } - } - ], - "end": 0, - "start": 0, - "type": "ArrayExpression", - "type": "ArrayExpression" - } - } - ], - "callee": { - "abs_path": false, - "commentStart": 0, - "end": 0, - "name": { - "commentStart": 0, - "end": 0, - "name": "patternLinear2d", - "start": 0, - "type": "Identifier" - }, - "path": [], - "start": 0, - "type": "Name" - }, - "commentStart": 0, - "end": 0, - "start": 0, - "type": "CallExpressionKw", - "type": "CallExpressionKw", - "unlabeled": null - }, - { - "arguments": [ - { - "type": "LabeledArg", - "label": { - "commentStart": 0, - "end": 0, - "name": "instances", - "start": 0, - "type": "Identifier" - }, - "arg": { - "commentStart": 0, - "end": 0, - "raw": "2", - "start": 0, - "type": "Literal", - "type": "Literal", - "value": { - "value": 2.0, - "suffix": "None" - } - } - }, - { - "type": "LabeledArg", - "label": { - "commentStart": 0, - "end": 0, - "name": "distance", - "start": 0, - "type": "Identifier" - }, - "arg": { - "commentStart": 0, - "end": 0, - "left": { - "abs_path": false, - "commentStart": 0, - "end": 0, - "name": { - "commentStart": 0, - "end": 0, - "name": "width", - "start": 0, - "type": "Identifier" - }, - "path": [], - "start": 0, - "type": "Name", - "type": "Name" - }, - "operator": "-", - "right": { - "abs_path": false, - "commentStart": 0, - "end": 0, - "name": { - "commentStart": 0, - "end": 0, - "name": "padding", - "start": 0, - "type": "Identifier" - }, - "path": [], - "start": 0, - "type": "Name", - "type": "Name" - }, - "start": 0, - "type": "BinaryExpression", - "type": "BinaryExpression" - } - }, - { - "type": "LabeledArg", - "label": { - "commentStart": 0, - "end": 0, - "name": "axis", - "start": 0, - "type": "Identifier" - }, - "arg": { - "commentStart": 0, - "elements": [ - { - "commentStart": 0, - "end": 0, - "raw": "1", - "start": 0, - "type": "Literal", - "type": "Literal", - "value": { - "value": 1.0, - "suffix": "None" - } - }, - { - "commentStart": 0, - "end": 0, - "raw": "0", - "start": 0, - "type": "Literal", - "type": "Literal", - "value": { - "value": 0.0, - "suffix": "None" - } - } - ], - "end": 0, - "start": 0, - "type": "ArrayExpression", - "type": "ArrayExpression" - } - } - ], - "callee": { - "abs_path": false, - "commentStart": 0, - "end": 0, - "name": { - "commentStart": 0, - "end": 0, - "name": "patternLinear2d", + "name": "subtract2d", "start": 0, "type": "Identifier" }, @@ -1553,28 +1823,20 @@ description: Result of parsing parametric-bearing-pillow-block.kcl "type": "Identifier" }, "arg": { - "argument": { - "abs_path": false, - "commentStart": 0, - "end": 0, - "name": { - "commentStart": 0, - "end": 0, - "name": "cbDepth", - "start": 0, - "type": "Identifier" - }, - "path": [], - "start": 0, - "type": "Name", - "type": "Name" - }, + "abs_path": false, "commentStart": 0, "end": 0, - "operator": "-", + "name": { + "commentStart": 0, + "end": 0, + "name": "plateThickness", + "start": 0, + "type": "Identifier" + }, + "path": [], "start": 0, - "type": "UnaryExpression", - "type": "UnaryExpression" + "type": "Name", + "type": "Name" } } ], @@ -1609,6 +1871,37 @@ description: Result of parsing parametric-bearing-pillow-block.kcl ], "commentStart": 0, "end": 0, + "nonCodeMeta": { + "nonCodeNodes": { + "0": [ + { + "commentStart": 0, + "end": 0, + "start": 0, + "type": "NonCodeNode", + "value": { + "type": "blockComment", + "value": "Use polar coordinates to start the sketch at the tangent point of the larger radius", + "style": "line" + } + } + ], + "12": [ + { + "commentStart": 0, + "end": 0, + "start": 0, + "type": "NonCodeNode", + "value": { + "type": "newLineBlockComment", + "value": "Function to create a countersunk hole", + "style": "line" + } + } + ] + }, + "startNodes": [] + }, "start": 0, "type": "PipeExpression", "type": "PipeExpression" @@ -1630,647 +1923,75 @@ description: Result of parsing parametric-bearing-pillow-block.kcl "id": { "commentStart": 0, "end": 0, - "name": "boltHoles", + "name": "countersink", "start": 0, "type": "Identifier" }, "init": { - "body": [ - { - "arguments": [ - { - "type": "LabeledArg", - "label": { - "commentStart": 0, - "end": 0, - "name": "face", - "start": 0, - "type": "Identifier" - }, - "arg": { - "abs_path": false, - "commentStart": 0, - "end": 0, - "name": { - "commentStart": 0, - "end": 0, - "name": "START", - "start": 0, - "type": "Identifier" - }, - "path": [], - "start": 0, - "type": "Name", - "type": "Name" - } - } - ], - "callee": { - "abs_path": false, + "body": { + "body": [ + { "commentStart": 0, "end": 0, - "name": { - "commentStart": 0, - "end": 0, - "name": "startSketchOn", - "start": 0, - "type": "Identifier" - }, - "path": [], - "start": 0, - "type": "Name" - }, - "commentStart": 0, - "end": 0, - "start": 0, - "type": "CallExpressionKw", - "type": "CallExpressionKw", - "unlabeled": { - "abs_path": false, - "commentStart": 0, - "end": 0, - "name": { - "commentStart": 0, - "end": 0, - "name": "body", - "start": 0, - "type": "Identifier" - }, - "path": [], - "start": 0, - "type": "Name", - "type": "Name" - } - }, - { - "arguments": [ - { - "type": "LabeledArg", - "label": { - "commentStart": 0, - "end": 0, - "name": "center", - "start": 0, - "type": "Identifier" - }, - "arg": { - "commentStart": 0, - "elements": [ - { - "argument": { - "commentStart": 0, - "end": 0, - "left": { + "expression": { + "body": [ + { + "arguments": [ + { + "type": "LabeledArg", + "label": { "commentStart": 0, "end": 0, - "left": { - "abs_path": false, - "commentStart": 0, - "end": 0, - "name": { - "commentStart": 0, - "end": 0, - "name": "width", - "start": 0, - "type": "Identifier" - }, - "path": [], - "start": 0, - "type": "Name", - "type": "Name" - }, - "operator": "/", - "right": { - "commentStart": 0, - "end": 0, - "raw": "2", - "start": 0, - "type": "Literal", - "type": "Literal", - "value": { - "value": 2.0, - "suffix": "None" - } - }, + "name": "face", "start": 0, - "type": "BinaryExpression", - "type": "BinaryExpression" + "type": "Identifier" }, - "operator": "-", - "right": { + "arg": { + "abs_path": false, "commentStart": 0, "end": 0, - "left": { - "abs_path": false, + "name": { "commentStart": 0, "end": 0, - "name": { - "commentStart": 0, - "end": 0, - "name": "padding", - "start": 0, - "type": "Identifier" - }, - "path": [], + "name": "END", "start": 0, - "type": "Name", - "type": "Name" - }, - "operator": "/", - "right": { - "commentStart": 0, - "end": 0, - "raw": "2", - "start": 0, - "type": "Literal", - "type": "Literal", - "value": { - "value": 2.0, - "suffix": "None" - } + "type": "Identifier" }, + "path": [], "start": 0, - "type": "BinaryExpression", - "type": "BinaryExpression" - }, - "start": 0, - "type": "BinaryExpression", - "type": "BinaryExpression" - }, - "commentStart": 0, - "end": 0, - "operator": "-", - "start": 0, - "type": "UnaryExpression", - "type": "UnaryExpression" - }, - { - "argument": { - "commentStart": 0, - "end": 0, - "left": { - "commentStart": 0, - "end": 0, - "left": { - "abs_path": false, - "commentStart": 0, - "end": 0, - "name": { - "commentStart": 0, - "end": 0, - "name": "length", - "start": 0, - "type": "Identifier" - }, - "path": [], - "start": 0, - "type": "Name", - "type": "Name" - }, - "operator": "/", - "right": { - "commentStart": 0, - "end": 0, - "raw": "2", - "start": 0, - "type": "Literal", - "type": "Literal", - "value": { - "value": 2.0, - "suffix": "None" - } - }, - "start": 0, - "type": "BinaryExpression", - "type": "BinaryExpression" - }, - "operator": "-", - "right": { - "commentStart": 0, - "end": 0, - "left": { - "abs_path": false, - "commentStart": 0, - "end": 0, - "name": { - "commentStart": 0, - "end": 0, - "name": "padding", - "start": 0, - "type": "Identifier" - }, - "path": [], - "start": 0, - "type": "Name", - "type": "Name" - }, - "operator": "/", - "right": { - "commentStart": 0, - "end": 0, - "raw": "2", - "start": 0, - "type": "Literal", - "type": "Literal", - "value": { - "value": 2.0, - "suffix": "None" - } - }, - "start": 0, - "type": "BinaryExpression", - "type": "BinaryExpression" - }, - "start": 0, - "type": "BinaryExpression", - "type": "BinaryExpression" - }, - "commentStart": 0, - "end": 0, - "operator": "-", - "start": 0, - "type": "UnaryExpression", - "type": "UnaryExpression" - } - ], - "end": 0, - "start": 0, - "type": "ArrayExpression", - "type": "ArrayExpression" - } - }, - { - "type": "LabeledArg", - "label": { - "commentStart": 0, - "end": 0, - "name": "radius", - "start": 0, - "type": "Identifier" - }, - "arg": { - "commentStart": 0, - "end": 0, - "left": { - "abs_path": false, - "commentStart": 0, - "end": 0, - "name": { - "commentStart": 0, - "end": 0, - "name": "holeDia", - "start": 0, - "type": "Identifier" - }, - "path": [], - "start": 0, - "type": "Name", - "type": "Name" - }, - "operator": "/", - "right": { - "commentStart": 0, - "end": 0, - "raw": "2", - "start": 0, - "type": "Literal", - "type": "Literal", - "value": { - "value": 2.0, - "suffix": "None" - } - }, - "start": 0, - "type": "BinaryExpression", - "type": "BinaryExpression" - } - } - ], - "callee": { - "abs_path": false, - "commentStart": 0, - "end": 0, - "name": { - "commentStart": 0, - "end": 0, - "name": "circle", - "start": 0, - "type": "Identifier" - }, - "path": [], - "start": 0, - "type": "Name" - }, - "commentStart": 0, - "end": 0, - "start": 0, - "type": "CallExpressionKw", - "type": "CallExpressionKw", - "unlabeled": null - }, - { - "arguments": [ - { - "type": "LabeledArg", - "label": { - "commentStart": 0, - "end": 0, - "name": "instances", - "start": 0, - "type": "Identifier" - }, - "arg": { - "commentStart": 0, - "end": 0, - "raw": "2", - "start": 0, - "type": "Literal", - "type": "Literal", - "value": { - "value": 2.0, - "suffix": "None" - } - } - }, - { - "type": "LabeledArg", - "label": { - "commentStart": 0, - "end": 0, - "name": "distance", - "start": 0, - "type": "Identifier" - }, - "arg": { - "commentStart": 0, - "end": 0, - "left": { - "abs_path": false, - "commentStart": 0, - "end": 0, - "name": { - "commentStart": 0, - "end": 0, - "name": "length", - "start": 0, - "type": "Identifier" - }, - "path": [], - "start": 0, - "type": "Name", - "type": "Name" - }, - "operator": "-", - "right": { - "abs_path": false, - "commentStart": 0, - "end": 0, - "name": { - "commentStart": 0, - "end": 0, - "name": "padding", - "start": 0, - "type": "Identifier" - }, - "path": [], - "start": 0, - "type": "Name", - "type": "Name" - }, - "start": 0, - "type": "BinaryExpression", - "type": "BinaryExpression" - } - }, - { - "type": "LabeledArg", - "label": { - "commentStart": 0, - "end": 0, - "name": "axis", - "start": 0, - "type": "Identifier" - }, - "arg": { - "commentStart": 0, - "elements": [ - { - "commentStart": 0, - "end": 0, - "raw": "0", - "start": 0, - "type": "Literal", - "type": "Literal", - "value": { - "value": 0.0, - "suffix": "None" + "type": "Name", + "type": "Name" + } } - }, - { - "commentStart": 0, - "end": 0, - "raw": "1", - "start": 0, - "type": "Literal", - "type": "Literal", - "value": { - "value": 1.0, - "suffix": "None" - } - } - ], - "end": 0, - "start": 0, - "type": "ArrayExpression", - "type": "ArrayExpression" - } - } - ], - "callee": { - "abs_path": false, - "commentStart": 0, - "end": 0, - "name": { - "commentStart": 0, - "end": 0, - "name": "patternLinear2d", - "start": 0, - "type": "Identifier" - }, - "path": [], - "start": 0, - "type": "Name" - }, - "commentStart": 0, - "end": 0, - "start": 0, - "type": "CallExpressionKw", - "type": "CallExpressionKw", - "unlabeled": null - }, - { - "arguments": [ - { - "type": "LabeledArg", - "label": { - "commentStart": 0, - "end": 0, - "name": "instances", - "start": 0, - "type": "Identifier" - }, - "arg": { - "commentStart": 0, - "end": 0, - "raw": "2", - "start": 0, - "type": "Literal", - "type": "Literal", - "value": { - "value": 2.0, - "suffix": "None" - } - } - }, - { - "type": "LabeledArg", - "label": { - "commentStart": 0, - "end": 0, - "name": "distance", - "start": 0, - "type": "Identifier" - }, - "arg": { - "commentStart": 0, - "end": 0, - "left": { - "abs_path": false, - "commentStart": 0, - "end": 0, - "name": { - "commentStart": 0, - "end": 0, - "name": "width", - "start": 0, - "type": "Identifier" - }, - "path": [], - "start": 0, - "type": "Name", - "type": "Name" - }, - "operator": "-", - "right": { - "abs_path": false, - "commentStart": 0, - "end": 0, - "name": { - "commentStart": 0, - "end": 0, - "name": "padding", - "start": 0, - "type": "Identifier" - }, - "path": [], - "start": 0, - "type": "Name", - "type": "Name" - }, - "start": 0, - "type": "BinaryExpression", - "type": "BinaryExpression" - } - }, - { - "type": "LabeledArg", - "label": { - "commentStart": 0, - "end": 0, - "name": "axis", - "start": 0, - "type": "Identifier" - }, - "arg": { - "commentStart": 0, - "elements": [ - { - "commentStart": 0, - "end": 0, - "raw": "1", - "start": 0, - "type": "Literal", - "type": "Literal", - "value": { - "value": 1.0, - "suffix": "None" - } - }, - { - "commentStart": 0, - "end": 0, - "raw": "0", - "start": 0, - "type": "Literal", - "type": "Literal", - "value": { - "value": 0.0, - "suffix": "None" - } - } - ], - "end": 0, - "start": 0, - "type": "ArrayExpression", - "type": "ArrayExpression" - } - } - ], - "callee": { - "abs_path": false, - "commentStart": 0, - "end": 0, - "name": { - "commentStart": 0, - "end": 0, - "name": "patternLinear2d", - "start": 0, - "type": "Identifier" - }, - "path": [], - "start": 0, - "type": "Name" - }, - "commentStart": 0, - "end": 0, - "start": 0, - "type": "CallExpressionKw", - "type": "CallExpressionKw", - "unlabeled": null - }, - { - "arguments": [ - { - "type": "LabeledArg", - "label": { - "commentStart": 0, - "end": 0, - "name": "length", - "start": 0, - "type": "Identifier" - }, - "arg": { - "commentStart": 0, - "end": 0, - "left": { - "argument": { + ], + "callee": { "abs_path": false, "commentStart": 0, "end": 0, "name": { "commentStart": 0, "end": 0, - "name": "height", + "name": "startSketchOn", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "plateBody", "start": 0, "type": "Identifier" }, @@ -2278,343 +1999,508 @@ description: Result of parsing parametric-bearing-pillow-block.kcl "start": 0, "type": "Name", "type": "Name" - }, - "commentStart": 0, - "end": 0, - "operator": "-", - "start": 0, - "type": "UnaryExpression", - "type": "UnaryExpression" + } }, - "operator": "+", - "right": { - "abs_path": false, - "commentStart": 0, - "end": 0, - "name": { + { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "center", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "elements": [ + { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "holePosition", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + { + "commentStart": 0, + "end": 0, + "raw": "0", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 0.0, + "suffix": "None" + } + } + ], + "end": 0, + "start": 0, + "type": "ArrayExpression", + "type": "ArrayExpression" + } + }, + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "radius", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "end": 0, + "left": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "boltDiameter", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "operator": "/", + "right": { + "commentStart": 0, + "end": 0, + "raw": "2", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 2.0, + "suffix": "None" + } + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + } + }, + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "tag", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "end": 0, + "start": 0, + "type": "TagDeclarator", + "type": "TagDeclarator", + "value": "hole01" + } + } + ], + "callee": { + "abs_path": false, "commentStart": 0, "end": 0, - "name": "cbDepth", + "name": { + "commentStart": 0, + "end": 0, + "name": "circle", + "start": 0, + "type": "Identifier" + }, + "path": [], "start": 0, - "type": "Identifier" + "type": "Name" }, - "path": [], + "commentStart": 0, + "end": 0, "start": 0, - "type": "Name", - "type": "Name" + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": null }, - "start": 0, - "type": "BinaryExpression", - "type": "BinaryExpression" - } - } - ], - "callee": { - "abs_path": false, - "commentStart": 0, - "end": 0, - "name": { + { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "length", + "start": 0, + "type": "Identifier" + }, + "arg": { + "argument": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "plateThickness", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "operator": "-", + "start": 0, + "type": "UnaryExpression", + "type": "UnaryExpression" + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "extrude", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": null + }, + { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "length", + "start": 0, + "type": "Identifier" + }, + "arg": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "boltDiameter", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + } + }, + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "tags", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "elements": [ + { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "hole01", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + } + ], + "end": 0, + "start": 0, + "type": "ArrayExpression", + "type": "ArrayExpression" + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "chamfer", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": null + } + ], "commentStart": 0, "end": 0, - "name": "extrude", + "nonCodeMeta": { + "nonCodeNodes": { + "2": [ + { + "commentStart": 0, + "end": 0, + "start": 0, + "type": "NonCodeNode", + "value": { + "type": "blockComment", + "value": "Use a chamfer to create a 90-degree countersink", + "style": "line" + } + } + ] + }, + "startNodes": [] + }, "start": 0, - "type": "Identifier" + "type": "PipeExpression", + "type": "PipeExpression" }, - "path": [], "start": 0, - "type": "Name" + "type": "ExpressionStatement", + "type": "ExpressionStatement" }, - "commentStart": 0, - "end": 0, - "start": 0, - "type": "CallExpressionKw", - "type": "CallExpressionKw", - "unlabeled": null - } - ], + { + "argument": { + "commentStart": 0, + "end": 0, + "properties": [], + "start": 0, + "type": "ObjectExpression", + "type": "ObjectExpression" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "ReturnStatement", + "type": "ReturnStatement" + } + ], + "commentStart": 0, + "end": 0, + "start": 0 + }, "commentStart": 0, "end": 0, + "params": [ + { + "type": "Parameter", + "identifier": { + "commentStart": 0, + "end": 0, + "name": "holePosition", + "start": 0, + "type": "Identifier" + }, + "labeled": false + } + ], "start": 0, - "type": "PipeExpression", - "type": "PipeExpression" + "type": "FunctionExpression", + "type": "FunctionExpression" }, "start": 0, "type": "VariableDeclarator" }, "end": 0, - "kind": "const", + "kind": "fn", "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" }, { "commentStart": 0, - "declaration": { + "end": 0, + "expression": { + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "countersink", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, "commentStart": 0, "end": 0, - "id": { - "commentStart": 0, - "end": 0, - "name": "centerHole", - "start": 0, - "type": "Identifier" - }, - "init": { - "body": [ - { - "arguments": [ - { - "type": "LabeledArg", - "label": { - "commentStart": 0, - "end": 0, - "name": "face", - "start": 0, - "type": "Identifier" - }, - "arg": { - "abs_path": false, - "commentStart": 0, - "end": 0, - "name": { - "commentStart": 0, - "end": 0, - "name": "END", - "start": 0, - "type": "Identifier" - }, - "path": [], - "start": 0, - "type": "Name", - "type": "Name" - } - } - ], - "callee": { - "abs_path": false, - "commentStart": 0, - "end": 0, - "name": { - "commentStart": 0, - "end": 0, - "name": "startSketchOn", - "start": 0, - "type": "Identifier" - }, - "path": [], - "start": 0, - "type": "Name" - }, - "commentStart": 0, - "end": 0, - "start": 0, - "type": "CallExpressionKw", - "type": "CallExpressionKw", - "unlabeled": { - "abs_path": false, - "commentStart": 0, - "end": 0, - "name": { - "commentStart": 0, - "end": 0, - "name": "body", - "start": 0, - "type": "Identifier" - }, - "path": [], - "start": 0, - "type": "Name", - "type": "Name" - } - }, - { - "arguments": [ - { - "type": "LabeledArg", - "label": { - "commentStart": 0, - "end": 0, - "name": "center", - "start": 0, - "type": "Identifier" - }, - "arg": { - "commentStart": 0, - "elements": [ - { - "commentStart": 0, - "end": 0, - "raw": "0", - "start": 0, - "type": "Literal", - "type": "Literal", - "value": { - "value": 0.0, - "suffix": "None" - } - }, - { - "commentStart": 0, - "end": 0, - "raw": "0", - "start": 0, - "type": "Literal", - "type": "Literal", - "value": { - "value": 0.0, - "suffix": "None" - } - } - ], - "end": 0, - "start": 0, - "type": "ArrayExpression", - "type": "ArrayExpression" - } - }, - { - "type": "LabeledArg", - "label": { - "commentStart": 0, - "end": 0, - "name": "radius", - "start": 0, - "type": "Identifier" - }, - "arg": { - "commentStart": 0, - "end": 0, - "left": { - "abs_path": false, - "commentStart": 0, - "end": 0, - "name": { - "commentStart": 0, - "end": 0, - "name": "bearingDia", - "start": 0, - "type": "Identifier" - }, - "path": [], - "start": 0, - "type": "Name", - "type": "Name" - }, - "operator": "/", - "right": { - "commentStart": 0, - "end": 0, - "raw": "2", - "start": 0, - "type": "Literal", - "type": "Literal", - "value": { - "value": 2.0, - "suffix": "None" - } - }, - "start": 0, - "type": "BinaryExpression", - "type": "BinaryExpression" - } - } - ], - "callee": { - "abs_path": false, - "commentStart": 0, - "end": 0, - "name": { - "commentStart": 0, - "end": 0, - "name": "circle", - "start": 0, - "type": "Identifier" - }, - "path": [], - "start": 0, - "type": "Name" - }, - "commentStart": 0, - "end": 0, - "start": 0, - "type": "CallExpressionKw", - "type": "CallExpressionKw", - "unlabeled": null - }, - { - "arguments": [ - { - "type": "LabeledArg", - "label": { - "commentStart": 0, - "end": 0, - "name": "length", - "start": 0, - "type": "Identifier" - }, - "arg": { - "argument": { - "abs_path": false, - "commentStart": 0, - "end": 0, - "name": { - "commentStart": 0, - "end": 0, - "name": "height", - "start": 0, - "type": "Identifier" - }, - "path": [], - "start": 0, - "type": "Name", - "type": "Name" - }, - "commentStart": 0, - "end": 0, - "operator": "-", - "start": 0, - "type": "UnaryExpression", - "type": "UnaryExpression" - } - } - ], - "callee": { - "abs_path": false, - "commentStart": 0, - "end": 0, - "name": { - "commentStart": 0, - "end": 0, - "name": "extrude", - "start": 0, - "type": "Identifier" - }, - "path": [], - "start": 0, - "type": "Name" - }, - "commentStart": 0, - "end": 0, - "start": 0, - "type": "CallExpressionKw", - "type": "CallExpressionKw", - "unlabeled": null - } - ], - "commentStart": 0, - "end": 0, - "start": 0, - "type": "PipeExpression", - "type": "PipeExpression" - }, "start": 0, - "type": "VariableDeclarator" + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": { + "commentStart": 0, + "end": 0, + "left": { + "argument": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "boltSpacing", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "operator": "-", + "start": 0, + "type": "UnaryExpression", + "type": "UnaryExpression" + }, + "operator": "/", + "right": { + "commentStart": 0, + "end": 0, + "raw": "2", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 2.0, + "suffix": "None" + } + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + } }, - "end": 0, - "kind": "const", + "preComments": [ + "", + "", + "// Place a countersunk hole at each bolt hole position" + ], "start": 0, - "type": "VariableDeclaration", - "type": "VariableDeclaration" + "type": "ExpressionStatement", + "type": "ExpressionStatement" + }, + { + "commentStart": 0, + "end": 0, + "expression": { + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "countersink", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": { + "commentStart": 0, + "end": 0, + "left": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "boltSpacing", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "operator": "/", + "right": { + "commentStart": 0, + "end": 0, + "raw": "2", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 2.0, + "suffix": "None" + } + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + } + }, + "start": 0, + "type": "ExpressionStatement", + "type": "ExpressionStatement" } ], "commentStart": 0, @@ -2631,8 +2517,8 @@ description: Result of parsing parametric-bearing-pillow-block.kcl "type": "Identifier" }, "preComments": [ - "// Parametric Bearing Pillow Block", - "// A bearing pillow block, also known as a plummer block or pillow block bearing, is a pedestal used to provide support for a rotating shaft with the help of compatible bearings and various accessories. Housing a bearing, the pillow block provides a secure and stable foundation that allows the shaft to rotate smoothly within its machinery setup. These components are essential in a wide range of mechanical systems and machinery, playing a key role in reducing friction and supporting radial and axial loads.", + "// Plate with countersunk holes", + "// A small mounting plate with a countersunk hole at each end", "", "", "// Set units" @@ -2666,31 +2552,6 @@ description: Result of parsing parametric-bearing-pillow-block.kcl "type": "Name", "type": "Name" } - }, - { - "commentStart": 0, - "end": 0, - "key": { - "commentStart": 0, - "end": 0, - "name": "kclVersion", - "start": 0, - "type": "Identifier" - }, - "start": 0, - "type": "ObjectProperty", - "value": { - "commentStart": 0, - "end": 0, - "raw": "1.0", - "start": 0, - "type": "Literal", - "type": "Literal", - "value": { - "value": 1.0, - "suffix": "None" - } - } } ], "start": 0, @@ -2699,18 +2560,7 @@ description: Result of parsing parametric-bearing-pillow-block.kcl ], "nonCodeMeta": { "nonCodeNodes": { - "9": [ - { - "commentStart": 0, - "end": 0, - "start": 0, - "type": "NonCodeNode", - "value": { - "type": "newLine" - } - } - ], - "10": [ + "8": [ { "commentStart": 0, "end": 0, diff --git a/rust/kcl-lib/tests/kcl_samples/parametric-bearing-pillow-block/ops.snap b/rust/kcl-lib/tests/kcl_samples/countersunk-plate/ops.snap similarity index 50% rename from rust/kcl-lib/tests/kcl_samples/parametric-bearing-pillow-block/ops.snap rename to rust/kcl-lib/tests/kcl_samples/countersunk-plate/ops.snap index 9ccaa3ef3..4c57ab007 100644 --- a/rust/kcl-lib/tests/kcl_samples/parametric-bearing-pillow-block/ops.snap +++ b/rust/kcl-lib/tests/kcl_samples/countersunk-plate/ops.snap @@ -1,6 +1,6 @@ --- source: kcl-lib/src/simulation_tests.rs -description: Operations executed parametric-bearing-pillow-block.kcl +description: Operations executed countersunk-plate.kcl --- [ { @@ -16,12 +16,77 @@ description: Operations executed parametric-bearing-pillow-block.kcl "sourceRange": [] } }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "polar", + "functionSourceRange": [], + "unlabeledArg": null, + "labeledArgs": { + "angle": { + "value": { + "type": "Number", + "value": 1.1971635237196154, + "ty": { + "type": "Known", + "type": "Angle", + "type": "Radians" + } + }, + "sourceRange": [] + }, + "length": { + "value": { + "type": "Number", + "value": 1.6625, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + "sourceRange": [] + } + } + }, + "sourceRange": [] + }, + { + "labeledArgs": { + "tool": { + "value": { + "type": "Sketch", + "value": { + "artifactId": "[uuid]" + } + }, + "sourceRange": [] + } + }, + "name": "subtract2d", + "sourceRange": [], + "type": "StdLibCall", + "unlabeledArg": { + "value": { + "type": "Sketch", + "value": { + "artifactId": "[uuid]" + } + }, + "sourceRange": [] + } + }, { "labeledArgs": { "length": { "value": { "type": "Number", - "value": 1.0, + "value": 0.375, "ty": { "type": "Default", "len": { @@ -71,139 +136,6 @@ description: Operations executed parametric-bearing-pillow-block.kcl "sourceRange": [] } }, - { - "labeledArgs": { - "length": { - "value": { - "type": "Number", - "value": -0.25, - "ty": { - "type": "Default", - "len": { - "type": "Inches" - }, - "angle": { - "type": "Degrees" - } - } - }, - "sourceRange": [] - } - }, - "name": "extrude", - "sourceRange": [], - "type": "StdLibCall", - "unlabeledArg": { - "value": { - "type": "Array", - "value": [ - { - "type": "Sketch", - "value": { - "artifactId": "[uuid]" - } - }, - { - "type": "Sketch", - "value": { - "artifactId": "[uuid]" - } - }, - { - "type": "Sketch", - "value": { - "artifactId": "[uuid]" - } - }, - { - "type": "Sketch", - "value": { - "artifactId": "[uuid]" - } - } - ] - }, - "sourceRange": [] - } - }, - { - "labeledArgs": { - "face": { - "value": { - "type": "String", - "value": "start" - }, - "sourceRange": [] - } - }, - "name": "startSketchOn", - "sourceRange": [], - "type": "StdLibCall", - "unlabeledArg": { - "value": { - "type": "Solid", - "value": { - "artifactId": "[uuid]" - } - }, - "sourceRange": [] - } - }, - { - "labeledArgs": { - "length": { - "value": { - "type": "Number", - "value": -0.75, - "ty": { - "type": "Default", - "len": { - "type": "Inches" - }, - "angle": { - "type": "Degrees" - } - } - }, - "sourceRange": [] - } - }, - "name": "extrude", - "sourceRange": [], - "type": "StdLibCall", - "unlabeledArg": { - "value": { - "type": "Array", - "value": [ - { - "type": "Sketch", - "value": { - "artifactId": "[uuid]" - } - }, - { - "type": "Sketch", - "value": { - "artifactId": "[uuid]" - } - }, - { - "type": "Sketch", - "value": { - "artifactId": "[uuid]" - } - }, - { - "type": "Sketch", - "value": { - "artifactId": "[uuid]" - } - } - ] - }, - "sourceRange": [] - } - }, { "labeledArgs": { "face": { @@ -232,7 +164,7 @@ description: Operations executed parametric-bearing-pillow-block.kcl "length": { "value": { "type": "Number", - "value": -1.0, + "value": -0.375, "ty": { "type": "Default", "len": { @@ -258,5 +190,188 @@ description: Operations executed parametric-bearing-pillow-block.kcl }, "sourceRange": [] } + }, + { + "labeledArgs": { + "length": { + "value": { + "type": "Number", + "value": -0.375, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + "sourceRange": [] + } + }, + "name": "extrude", + "sourceRange": [], + "type": "StdLibCall", + "unlabeledArg": { + "value": { + "type": "Sketch", + "value": { + "artifactId": "[uuid]" + } + }, + "sourceRange": [] + } + }, + { + "type": "KclStdLibCall", + "name": "chamfer", + "unlabeledArg": { + "value": { + "type": "Solid", + "value": { + "artifactId": "[uuid]" + } + }, + "sourceRange": [] + }, + "labeledArgs": { + "length": { + "value": { + "type": "Number", + "value": 0.25, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + "sourceRange": [] + }, + "tags": { + "value": { + "type": "Array", + "value": [ + { + "type": "TagIdentifier", + "value": "hole01", + "artifact_id": "[uuid]" + } + ] + }, + "sourceRange": [] + } + }, + "sourceRange": [] + }, + { + "type": "KclStdLibCall", + "name": "chamfer", + "unlabeledArg": { + "value": { + "type": "Solid", + "value": { + "artifactId": "[uuid]" + } + }, + "sourceRange": [] + }, + "labeledArgs": { + "length": { + "value": { + "type": "Number", + "value": 0.25, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + "sourceRange": [] + }, + "tags": { + "value": { + "type": "Array", + "value": [ + { + "type": "TagIdentifier", + "value": "hole01", + "artifact_id": "[uuid]" + } + ] + }, + "sourceRange": [] + } + }, + "sourceRange": [] + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "countersink", + "functionSourceRange": [], + "unlabeledArg": { + "value": { + "type": "Number", + "value": -2.5, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + "sourceRange": [] + }, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "countersink", + "functionSourceRange": [], + "unlabeledArg": { + "value": { + "type": "Number", + "value": 2.5, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + "sourceRange": [] + }, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupEnd" } ] diff --git a/rust/kcl-lib/tests/kcl_samples/countersunk-plate/program_memory.snap b/rust/kcl-lib/tests/kcl_samples/countersunk-plate/program_memory.snap new file mode 100644 index 000000000..a19e650fc --- /dev/null +++ b/rust/kcl-lib/tests/kcl_samples/countersunk-plate/program_memory.snap @@ -0,0 +1,446 @@ +--- +source: kcl-lib/src/simulation_tests.rs +description: Variables in memory after executing countersunk-plate.kcl +--- +{ + "boltDiameter": { + "type": "Number", + "value": 0.25, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + "boltSpacing": { + "type": "Number", + "value": 5.0, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + "centerHoleDiameter": { + "type": "Number", + "value": 1.75, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + "countersink": { + "type": "Function", + "value": null + }, + "d": { + "type": "Number", + "value": 2.5, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + "plateBody": { + "type": "Solid", + "value": { + "type": "Solid", + "id": "[uuid]", + "artifactId": "[uuid]", + "value": [ + { + "faceId": "[uuid]", + "id": "[uuid]", + "sourceRange": [], + "tag": null, + "type": "extrudePlane" + }, + { + "faceId": "[uuid]", + "id": "[uuid]", + "sourceRange": [], + "tag": null, + "type": "extrudeArc" + }, + { + "faceId": "[uuid]", + "id": "[uuid]", + "sourceRange": [], + "tag": null, + "type": "extrudePlane" + }, + { + "faceId": "[uuid]", + "id": "[uuid]", + "sourceRange": [], + "tag": null, + "type": "extrudeArc" + }, + { + "faceId": "[uuid]", + "id": "[uuid]", + "sourceRange": [], + "tag": null, + "type": "extrudePlane" + }, + { + "faceId": "[uuid]", + "id": "[uuid]", + "sourceRange": [], + "tag": null, + "type": "extrudeArc" + }, + { + "faceId": "[uuid]", + "id": "[uuid]", + "sourceRange": [], + "tag": null, + "type": "extrudePlane" + }, + { + "faceId": "[uuid]", + "id": "[uuid]", + "sourceRange": [], + "tag": null, + "type": "extrudeArc" + } + ], + "sketch": { + "type": "Sketch", + "id": "[uuid]", + "paths": [ + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 0.6068, + 1.5478 + ], + "tag": null, + "to": [ + 2.7738, + 0.6983 + ], + "type": "ToPoint", + "units": { + "type": "Inches" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "ccw": false, + "center": [ + 2.5, + -0.0 + ], + "from": [ + 2.7738, + 0.6983 + ], + "tag": null, + "to": [ + 2.7737, + -0.6983 + ], + "type": "TangentialArc", + "units": { + "type": "Inches" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 2.7737, + -0.6983 + ], + "tag": null, + "to": [ + 0.6068, + -1.5478 + ], + "type": "ToPoint", + "units": { + "type": "Inches" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "ccw": false, + "center": [ + -0.0, + -0.0 + ], + "from": [ + 0.6068, + -1.5478 + ], + "tag": null, + "to": [ + -0.6068, + -1.5478 + ], + "type": "TangentialArc", + "units": { + "type": "Inches" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -0.6068, + -1.5478 + ], + "tag": null, + "to": [ + -2.7738, + -0.6983 + ], + "type": "ToPoint", + "units": { + "type": "Inches" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "ccw": false, + "center": [ + -2.5, + -0.0 + ], + "from": [ + -2.7738, + -0.6983 + ], + "tag": null, + "to": [ + -2.7738, + 0.6983 + ], + "type": "TangentialArc", + "units": { + "type": "Inches" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -2.7738, + 0.6983 + ], + "tag": null, + "to": [ + -0.6068, + 1.5478 + ], + "type": "ToPoint", + "units": { + "type": "Inches" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "ccw": false, + "center": [ + -0.0, + -0.0 + ], + "from": [ + -0.6068, + 1.5478 + ], + "tag": null, + "to": [ + 0.6068, + 1.5478 + ], + "type": "TangentialArcTo", + "units": { + "type": "Inches" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 0.6068, + 1.5478 + ], + "tag": null, + "to": [ + 0.6068, + 1.5478 + ], + "type": "ToPoint", + "units": { + "type": "Inches" + } + } + ], + "on": { + "artifactId": "[uuid]", + "id": "[uuid]", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "units": { + "type": "Mm" + } + }, + "type": "plane", + "value": "XY", + "xAxis": { + "x": 1.0, + "y": 0.0, + "z": 0.0, + "units": { + "type": "Unknown" + } + }, + "yAxis": { + "x": 0.0, + "y": 1.0, + "z": 0.0, + "units": { + "type": "Unknown" + } + } + }, + "start": { + "from": [ + 0.6068, + 1.5478 + ], + "to": [ + 0.6068, + 1.5478 + ], + "units": { + "type": "Inches" + }, + "tag": null, + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + } + }, + "artifactId": "[uuid]", + "originalId": "[uuid]", + "units": { + "type": "Inches" + } + }, + "height": 0.375, + "startCapId": "[uuid]", + "endCapId": "[uuid]", + "units": { + "type": "Inches" + }, + "sectional": false + } + }, + "plateThickness": { + "type": "Number", + "value": 0.375, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + "r1": { + "type": "Number", + "value": 1.6625, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + "r2": { + "type": "Number", + "value": 0.75, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + "tangentAngle": { + "type": "Number", + "value": 0.3736, + "ty": { + "type": "Known", + "type": "Angle", + "type": "Radians" + } + }, + "tangentLength": { + "type": "Number", + "value": 2.3275, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + } +} diff --git a/rust/kcl-lib/tests/kcl_samples/countersunk-plate/rendered_model.png b/rust/kcl-lib/tests/kcl_samples/countersunk-plate/rendered_model.png new file mode 100644 index 0000000000000000000000000000000000000000..fe1ad16c13c2bbacea23f3c851fb5083017b452a GIT binary patch literal 58687 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[323, 370, 2]"] + 65["Segment
[376, 444, 2]"] + 66["Segment
[450, 550, 2]"] + 67["Segment
[556, 673, 2]"] + 68["Segment
[679, 764, 2]"] + 69["Segment
[770, 777, 2]"] + 261[Solid2d] + end + subgraph path23 [Path] + 23["Path
[801, 836, 2]"] + 70["Segment
[801, 836, 2]"] + 242[Solid2d] + end + subgraph path24 [Path] + 24["Path
[861, 1008, 2]"] + 71["Segment
[861, 1008, 2]"] + 258[Solid2d] + end + subgraph path25 [Path] + 25["Path
[1033, 1181, 2]"] + 72["Segment
[1033, 1181, 2]"] + 250[Solid2d] + end + subgraph path26 [Path] + 26["Path
[1206, 1354, 2]"] + 73["Segment
[1206, 1354, 2]"] + 267[Solid2d] + end + subgraph path27 [Path] + 27["Path
[1379, 1528, 2]"] + 74["Segment
[1379, 1528, 2]"] + 245[Solid2d] + end + subgraph path28 [Path] + 28["Path
[1696, 1752, 2]"] + 75["Segment
[1758, 1823, 2]"] + 76["Segment
[1829, 1881, 2]"] + 77["Segment
[1887, 1938, 2]"] + 78["Segment
[1944, 1996, 2]"] + 79["Segment
[2002, 2068, 2]"] + 80["Segment
[2074, 2126, 2]"] + 81["Segment
[2132, 2164, 2]"] + 82["Segment
[2170, 2235, 2]"] + 83["Segment
[2241, 2248, 2]"] + 265[Solid2d] + end + subgraph path29 [Path] + 29["Path
[2597, 2710, 2]"] + 84["Segment
[2716, 2771, 2]"] + 85["Segment
[2777, 2812, 2]"] + 86["Segment
[2818, 2873, 2]"] + 87["Segment
[2879, 2915, 2]"] + 88["Segment
[2921, 2976, 2]"] + 89["Segment
[2982, 3018, 2]"] + 90["Segment
[3024, 3079, 2]"] + 91["Segment
[3085, 3141, 2]"] + end + subgraph path30 [Path] + 30["Path
[3290, 3341, 2]"] + 92["Segment
[3290, 3341, 2]"] + 263[Solid2d] + end + subgraph path31 [Path] + 31["Path
[3520, 3582, 2]"] + 93["Segment
[3588, 3656, 2]"] + 94["Segment
[3662, 3762, 2]"] + 95["Segment
[3768, 3885, 2]"] + 96["Segment
[3891, 3976, 2]"] + 97["Segment
[3982, 3989, 2]"] + 254[Solid2d] + end + subgraph path32 [Path] + 32["Path
[4013, 4064, 2]"] + 98["Segment
[4013, 4064, 2]"] + 247[Solid2d] + end + subgraph path33 [Path] + 33["Path
[4089, 4236, 2]"] + 99["Segment
[4089, 4236, 2]"] + 253[Solid2d] + end + subgraph path34 [Path] + 34["Path
[4261, 4409, 2]"] + 100["Segment
[4261, 4409, 2]"] + 262[Solid2d] + end + subgraph path35 [Path] + 35["Path
[4434, 4582, 2]"] + 101["Segment
[4434, 4582, 2]"] + 238[Solid2d] + end + subgraph path36 [Path] + 36["Path
[4607, 4756, 2]"] + 102["Segment
[4607, 4756, 2]"] + 266[Solid2d] + end + subgraph path37 [Path] + 37["Path
[4898, 4936, 2]"] + 103["Segment
[4898, 4936, 2]"] + 235[Solid2d] + end + subgraph path38 [Path] + 38["Path
[5009, 5045, 2]"] + 104["Segment
[5009, 5045, 2]"] + 264[Solid2d] + end + subgraph path39 [Path] + 39["Path
[271, 321, 3]"] + 105["Segment
[271, 321, 3]"] + 249[Solid2d] + end + subgraph path40 [Path] + 40["Path
[508, 543, 3]"] + 106["Segment
[508, 543, 3]"] + 237[Solid2d] + end + subgraph path41 [Path] + 41["Path
[216, 249, 4]"] + 107["Segment
[255, 285, 4]"] + 108["Segment
[291, 331, 4]"] + 109["Segment
[337, 361, 4]"] + 110["Segment
[367, 391, 4]"] + 111["Segment
[397, 438, 4]"] + 112["Segment
[444, 481, 4]"] + 113["Segment
[487, 510, 4]"] + 114["Segment
[516, 533, 4]"] + 115["Segment
[539, 560, 4]"] + 116["Segment
[566, 653, 4]"] + 117["Segment
[659, 696, 4]"] + 118["Segment
[702, 739, 4]"] + 119["Segment
[745, 752, 4]"] + 257[Solid2d] + end + subgraph path42 [Path] + 42["Path
[1059, 1149, 4]"] + 128["Segment
[2079, 2086, 4]"] + 234[Solid2d] + end + subgraph path43 [Path] + 43["Path
[1059, 1149, 4]"] + 120["Segment
[1157, 1226, 4]"] + 123["Segment
[1234, 1534, 4]"] + 124["Segment
[1542, 1844, 4]"] + 126["Segment
[1852, 2071, 4]"] + 129["Segment
[2079, 2086, 4]"] + 241[Solid2d] + end + subgraph path44 [Path] + 44["Path
[1059, 1149, 4]"] + 121["Segment
[1157, 1226, 4]"] + 122["Segment
[1234, 1534, 4]"] + 125["Segment
[1542, 1844, 4]"] + 127["Segment
[1852, 2071, 4]"] + 130["Segment
[2079, 2086, 4]"] + 251[Solid2d] + end + subgraph path45 [Path] + 45["Path
[285, 331, 5]"] + 131["Segment
[337, 387, 5]"] + 132["Segment
[393, 440, 5]"] + 133["Segment
[446, 482, 5]"] + 134["Segment
[488, 518, 5]"] + 135["Segment
[524, 571, 5]"] + 136["Segment
[577, 606, 5]"] + end + subgraph path46 [Path] + 46["Path
[731, 778, 5]"] + 137["Segment
[731, 778, 5]"] + 244[Solid2d] + end + subgraph path47 [Path] + 47["Path
[802, 851, 5]"] + 138["Segment
[802, 851, 5]"] + 246[Solid2d] + end + subgraph path48 [Path] + 48["Path
[1172, 1221, 5]"] + 139["Segment
[1227, 1268, 5]"] + 140["Segment
[1274, 1321, 5]"] + 141["Segment
[1327, 1365, 5]"] + 142["Segment
[1371, 1418, 5]"] + 143["Segment
[1424, 1460, 5]"] + 144["Segment
[1466, 1496, 5]"] + 145["Segment
[1502, 1550, 5]"] + 146["Segment
[1556, 1602, 5]"] + 147["Segment
[1608, 1641, 5]"] + end + subgraph path49 [Path] + 49["Path
[1766, 1815, 5]"] + 148["Segment
[1766, 1815, 5]"] + 256[Solid2d] + end + subgraph path50 [Path] + 50["Path
[1839, 1890, 5]"] + 149["Segment
[1839, 1890, 5]"] + 260[Solid2d] + end + subgraph path51 [Path] + 51["Path
[2392, 2428, 5]"] + 150["Segment
[2434, 2451, 5]"] + 151["Segment
[2457, 2508, 5]"] + 152["Segment
[2514, 2534, 5]"] + 153["Segment
[2540, 2646, 5]"] + 154["Segment
[2652, 2672, 5]"] + 155["Segment
[2678, 2724, 5]"] + 156["Segment
[2730, 2772, 5]"] + 157["Segment
[2778, 2815, 5]"] + 158["Segment
[2821, 2843, 5]"] + 159["Segment
[2897, 2904, 5]"] + 252[Solid2d] + end + subgraph path52 [Path] + 52["Path
[3238, 3276, 5]"] + 160["Segment
[3282, 3302, 5]"] + 161["Segment
[3308, 3358, 5]"] + 162["Segment
[3364, 3384, 5]"] + 163["Segment
[3390, 3438, 5]"] + 164["Segment
[3444, 3464, 5]"] + 165["Segment
[3470, 3518, 5]"] + 166["Segment
[3524, 3544, 5]"] + 167["Segment
[3550, 3568, 5]"] + 168["Segment
[3574, 3593, 5]"] + 169["Segment
[3599, 3621, 5]"] + end + subgraph path53 [Path] + 53["Path
[3718, 3756, 5]"] + 170["Segment
[3762, 3782, 5]"] + 171["Segment
[3788, 3837, 5]"] + 172["Segment
[3843, 3863, 5]"] + 173["Segment
[3869, 3916, 5]"] + 174["Segment
[3922, 3942, 5]"] + 175["Segment
[3948, 3995, 5]"] + 176["Segment
[4001, 4021, 5]"] + 177["Segment
[4027, 4045, 5]"] + 178["Segment
[4051, 4068, 5]"] + 179["Segment
[4074, 4112, 5]"] + 180["Segment
[4118, 4140, 5]"] + end + subgraph path54 [Path] + 54["Path
[4368, 4396, 5]"] + 181["Segment
[4402, 4421, 5]"] + 182["Segment
[4427, 4473, 5]"] + 183["Segment
[4479, 4530, 5]"] + 184["Segment
[4536, 4600, 5]"] + 185["Segment
[4606, 4659, 5]"] + 186["Segment
[4665, 4732, 5]"] + 187["Segment
[4738, 4818, 5]"] + 188["Segment
[4824, 4870, 5]"] + 189["Segment
[4876, 4939, 5]"] + 190["Segment
[4945, 5009, 5]"] + 191["Segment
[5015, 5052, 5]"] + 192["Segment
[5058, 5128, 5]"] + 193["Segment
[5134, 5141, 5]"] + 255[Solid2d] + end + subgraph path55 [Path] + 55["Path
[5690, 5747, 5]"] + 194["Segment
[5690, 5747, 5]"] + 240[Solid2d] + end + subgraph path56 [Path] + 56["Path
[311, 353, 6]"] + 195["Segment
[359, 376, 6]"] + 196["Segment
[382, 419, 6]"] + 197["Segment
[425, 443, 6]"] + 198["Segment
[449, 487, 6]"] + 199["Segment
[493, 511, 6]"] + 200["Segment
[517, 554, 6]"] + 201["Segment
[560, 578, 6]"] + 202["Segment
[584, 622, 6]"] + 203["Segment
[628, 716, 6]"] + 204["Segment
[722, 773, 6]"] + end + subgraph path57 [Path] + 57["Path
[899, 941, 6]"] + 205["Segment
[947, 965, 6]"] + 206["Segment
[971, 1009, 6]"] + 207["Segment
[1015, 1033, 6]"] + 208["Segment
[1039, 1076, 6]"] + 209["Segment
[1082, 1101, 6]"] + 210["Segment
[1107, 1145, 6]"] + 211["Segment
[1151, 1169, 6]"] + 212["Segment
[1175, 1212, 6]"] + 213["Segment
[1218, 1309, 6]"] + 214["Segment
[1315, 1367, 6]"] + end + subgraph path58 [Path] + 58["Path
[1528, 1593, 6]"] + 215["Segment
[1528, 1593, 6]"] + 243[Solid2d] + end + subgraph path59 [Path] + 59["Path
[1642, 1707, 6]"] + 216["Segment
[1642, 1707, 6]"] + 259[Solid2d] + end + subgraph path60 [Path] + 60["Path
[1865, 1918, 6]"] + 217["Segment
[1924, 1975, 6]"] + 218["Segment
[1981, 2019, 6]"] + 219["Segment
[2025, 2074, 6]"] + 220["Segment
[2080, 2118, 6]"] + 221["Segment
[2124, 2153, 6]"] + end + subgraph path61 [Path] + 61["Path
[2280, 2333, 6]"] + 222["Segment
[2339, 2390, 6]"] + 223["Segment
[2396, 2434, 6]"] + 224["Segment
[2440, 2489, 6]"] + 225["Segment
[2495, 2533, 6]"] + 226["Segment
[2539, 2568, 6]"] + end + subgraph path62 [Path] + 62["Path
[2736, 2812, 6]"] + 227["Segment
[2736, 2812, 6]"] + 239[Solid2d] + end + subgraph path63 [Path] + 63["Path
[2863, 2939, 6]"] + 228["Segment
[2863, 2939, 6]"] + 236[Solid2d] + end + subgraph path64 [Path] + 64["Path
[413, 442, 7]"] + 229["Segment
[448, 511, 7]"] + 230["Segment
[517, 612, 7]"] + 231["Segment
[618, 735, 7]"] + 232["Segment
[741, 826, 7]"] + 233["Segment
[832, 839, 7]"] + 248[Solid2d] + end + 1["Plane
[300, 317, 2]"] + 2["Plane
[200, 227, 3]"] + 3["Plane
[473, 501, 3]"] + 4["Plane
[193, 210, 4]"] + 5["Plane
[1012, 1050, 4]"] + 6["Plane
[1012, 1050, 4]"] + 7["Plane
[1012, 1050, 4]"] + 8["Plane
[249, 278, 5]"] + 9["Plane
[686, 724, 5]"] + 10["Plane
[1137, 1165, 5]"] + 11["Plane
[1721, 1759, 5]"] + 12["Plane
[2357, 2385, 5]"] + 13["Plane
[3207, 3225, 5]"] + 14["Plane
[4345, 4362, 5]"] + 15["Plane
[263, 304, 6]"] + 16["Plane
[851, 892, 6]"] + 17["Plane
[1468, 1510, 6]"] + 18["Plane
[1818, 1858, 6]"] + 19["Plane
[2233, 2273, 6]"] + 20["Plane
[2677, 2717, 6]"] + 21["Plane
[389, 407, 7]"] + 268["Sweep Extrusion
[1535, 1554, 2]"] + 269["Sweep Extrusion
[2388, 2408, 2]"] + 270["Sweep Extrusion
[2388, 2408, 2]"] + 271["Sweep Extrusion
[2388, 2408, 2]"] + 272["Sweep Extrusion
[2388, 2408, 2]"] + 273["Sweep Extrusion
[3147, 3182, 2]"] + 274["Sweep Extrusion
[3347, 3385, 2]"] + 275["Sweep Extrusion
[4763, 4782, 2]"] + 276["Sweep Extrusion
[4942, 4962, 2]"] + 277["Sweep Extrusion
[5051, 5072, 2]"] + 278["Sweep Extrusion
[327, 347, 3]"] + 279["Sweep Extrusion
[549, 570, 3]"] + 280["Sweep Revolve
[758, 840, 4]"] + 281["Sweep Loft
[2412, 2431, 4]"] + 282["Sweep Sweep
[858, 883, 5]"] + 283["Sweep Sweep
[1897, 1925, 5]"] + 284["Sweep Extrusion
[2910, 2929, 5]"] + 285["Sweep Extrusion
[3651, 3704, 5]"] + 286["Sweep Extrusion
[4170, 4231, 5]"] + 287["Sweep Extrusion
[5147, 5267, 5]"] + 288["Sweep Extrusion
[5753, 5786, 5]"] + 289["Sweep Sweep
[1599, 1624, 6]"] + 290["Sweep Sweep
[1713, 1738, 6]"] + 291["Sweep Sweep
[2818, 2844, 6]"] + 292["Sweep Sweep
[2945, 2971, 6]"] + 293["Sweep Extrusion
[845, 865, 7]"] + 294[Wall] + 295[Wall] + 296[Wall] + 297[Wall] + 298[Wall] + 299[Wall] + 300[Wall] + 301[Wall] + 302[Wall] + 303[Wall] + 304[Wall] + 305[Wall] + 306[Wall] + 307[Wall] + 308[Wall] + 309[Wall] + 310[Wall] + 311[Wall] + 312[Wall] + 313[Wall] + 314[Wall] + 315[Wall] + 316[Wall] + 317[Wall] + 318[Wall] + 319[Wall] + 320[Wall] + 321[Wall] + 322[Wall] + 323[Wall] + 324[Wall] + 325[Wall] + 326[Wall] + 327[Wall] + 328[Wall] + 329[Wall] + 330[Wall] + 331[Wall] + 332[Wall] + 333[Wall] + 334[Wall] + 335[Wall] + 336[Wall] + 337[Wall] + 338[Wall] + 339[Wall] + 340[Wall] + 341[Wall] + 342[Wall] + 343[Wall] + 344[Wall] + 345[Wall] + 346[Wall] + 347[Wall] + 348[Wall] + 349[Wall] + 350["Cap Start"] + 351["Cap Start"] + 352["Cap Start"] + 353["Cap Start"] + 354["Cap Start"] + 355["Cap Start"] + 356["Cap Start"] + 357["Cap Start"] + 358["Cap Start"] + 359["Cap Start"] + 360["Cap Start"] + 361["Cap Start"] + 362["Cap End"] + 363["Cap End"] + 364["Cap End"] + 365["Cap End"] + 366["Cap End"] + 367["Cap End"] + 368["Cap End"] + 369["Cap End"] + 370["Cap End"] + 371["Cap End"] + 372["Cap End"] + 373["Cap End"] + 374["Cap End"] + 375["Cap End"] + 376["Cap End"] + 377["Cap End"] + 378["SweepEdge Opposite"] + 379["SweepEdge Opposite"] + 380["SweepEdge Opposite"] + 381["SweepEdge Opposite"] + 382["SweepEdge Opposite"] + 383["SweepEdge Opposite"] + 384["SweepEdge Opposite"] + 385["SweepEdge Opposite"] + 386["SweepEdge Opposite"] + 387["SweepEdge Opposite"] + 388["SweepEdge Opposite"] + 389["SweepEdge Opposite"] + 390["SweepEdge Opposite"] + 391["SweepEdge Opposite"] + 392["SweepEdge Opposite"] + 393["SweepEdge Opposite"] + 394["SweepEdge Opposite"] + 395["SweepEdge Opposite"] + 396["SweepEdge Opposite"] + 397["SweepEdge Opposite"] + 398["SweepEdge Opposite"] + 399["SweepEdge Opposite"] + 400["SweepEdge Opposite"] + 401["SweepEdge Opposite"] + 402["SweepEdge Opposite"] + 403["SweepEdge Opposite"] + 404["SweepEdge Opposite"] + 405["SweepEdge Opposite"] + 406["SweepEdge Opposite"] + 407["SweepEdge Opposite"] + 408["SweepEdge Opposite"] + 409["SweepEdge Opposite"] + 410["SweepEdge Opposite"] + 411["SweepEdge Opposite"] + 412["SweepEdge Opposite"] + 413["SweepEdge Opposite"] + 414["SweepEdge Opposite"] + 415["SweepEdge Opposite"] + 416["SweepEdge Opposite"] + 417["SweepEdge Opposite"] + 418["SweepEdge Opposite"] + 419["SweepEdge Opposite"] + 420["SweepEdge Opposite"] + 421["SweepEdge Opposite"] + 422["SweepEdge Opposite"] + 423["SweepEdge Opposite"] + 424["SweepEdge Opposite"] + 425["SweepEdge Opposite"] + 426["SweepEdge Opposite"] + 427["SweepEdge Opposite"] + 428["SweepEdge Opposite"] + 429["SweepEdge Opposite"] + 430["SweepEdge Opposite"] + 431["SweepEdge Opposite"] + 432["SweepEdge Opposite"] + 433["SweepEdge Opposite"] + 434["SweepEdge Adjacent"] + 435["SweepEdge Adjacent"] + 436["SweepEdge Adjacent"] + 437["SweepEdge Adjacent"] + 438["SweepEdge Adjacent"] + 439["SweepEdge Adjacent"] + 440["SweepEdge Adjacent"] + 441["SweepEdge Adjacent"] + 442["SweepEdge Adjacent"] + 443["SweepEdge Adjacent"] + 444["SweepEdge Adjacent"] + 445["SweepEdge Adjacent"] + 446["SweepEdge Adjacent"] + 447["SweepEdge Adjacent"] + 448["SweepEdge Adjacent"] + 449["SweepEdge Adjacent"] + 450["SweepEdge Adjacent"] + 451["SweepEdge Adjacent"] + 452["SweepEdge Adjacent"] + 453["SweepEdge Adjacent"] + 454["SweepEdge Adjacent"] + 455["SweepEdge Adjacent"] + 456["SweepEdge Adjacent"] + 457["SweepEdge Adjacent"] + 458["SweepEdge Adjacent"] + 459["SweepEdge Adjacent"] + 460["SweepEdge Adjacent"] + 461["SweepEdge Adjacent"] + 462["SweepEdge Adjacent"] + 463["SweepEdge Adjacent"] + 464["SweepEdge Adjacent"] + 465["SweepEdge Adjacent"] + 466["SweepEdge Adjacent"] + 467["SweepEdge Adjacent"] + 468["SweepEdge Adjacent"] + 469["SweepEdge Adjacent"] + 470["SweepEdge Adjacent"] + 471["SweepEdge Adjacent"] + 472["SweepEdge Adjacent"] + 473["SweepEdge Adjacent"] + 474["SweepEdge Adjacent"] + 475["SweepEdge Adjacent"] + 476["SweepEdge Adjacent"] + 477["SweepEdge Adjacent"] + 478["SweepEdge Adjacent"] + 479["SweepEdge Adjacent"] + 480["SweepEdge Adjacent"] + 481["SweepEdge Adjacent"] + 482["SweepEdge Adjacent"] + 483["SweepEdge Adjacent"] + 484["SweepEdge Adjacent"] + 485["SweepEdge Adjacent"] + 486["SweepEdge Adjacent"] + 487["SweepEdge Adjacent"] + 488["SweepEdge Adjacent"] + 489["SweepEdge Adjacent"] + 490["EdgeCut Fillet
[5113, 5624, 2]"] + 491["EdgeCut Fillet
[5113, 5624, 2]"] + 492["EdgeCut Fillet
[5113, 5624, 2]"] + 493["EdgeCut Fillet
[5113, 5624, 2]"] + 494["EdgeCut Fillet
[5113, 5624, 2]"] + 495["EdgeCut Fillet
[5113, 5624, 2]"] + 496["EdgeCut Fillet
[5113, 5624, 2]"] + 497["EdgeCut Fillet
[5113, 5624, 2]"] + 498["EdgeCut Fillet
[353, 411, 3]"] + 499["EdgeCut Fillet
[353, 411, 3]"] + 500["EdgeCut Fillet
[5273, 5543, 5]"] + 501["EdgeCut Fillet
[5273, 5543, 5]"] + 502["EdgeCut Fillet
[5273, 5543, 5]"] + 503["EdgeCut Fillet
[5273, 5543, 5]"] + 504["EdgeCut Chamfer
[5792, 5921, 5]"] + 505["EdgeCut Chamfer
[906, 1173, 7]"] + 506["EdgeCut Chamfer
[906, 1173, 7]"] + 507["EdgeCut Chamfer
[906, 1173, 7]"] + 508["EdgeCut Chamfer
[906, 1173, 7]"] + 1 --- 22 + 1 --- 23 + 1 --- 24 + 1 --- 25 + 1 --- 26 + 1 --- 27 + 2 --- 39 + 3 --- 40 + 4 --- 41 + 5 --- 43 + 6 --- 44 + 7 --- 42 + 8 --- 45 + 9 --- 46 + 9 --- 47 + 10 --- 48 + 11 --- 49 + 11 --- 50 + 12 --- 51 + 13 --- 52 + 13 --- 53 + 14 --- 54 + 15 --- 56 + 16 --- 57 + 17 --- 58 + 17 --- 59 + 18 --- 60 + 19 --- 61 + 20 --- 62 + 20 --- 63 + 21 --- 64 + 22 --- 65 + 22 --- 66 + 22 --- 67 + 22 --- 68 + 22 --- 69 + 22 --- 261 + 22 ---- 268 + 23 --- 70 + 23 --- 242 + 24 --- 71 + 24 --- 258 + 25 --- 72 + 25 --- 250 + 26 --- 73 + 26 --- 267 + 27 --- 74 + 27 --- 245 + 28 --- 75 + 28 --- 76 + 28 --- 77 + 28 --- 78 + 28 --- 79 + 28 --- 80 + 28 --- 81 + 28 --- 82 + 28 --- 83 + 28 --- 265 + 28 ---- 271 + 370 --- 28 + 29 --- 84 + 29 --- 85 + 29 --- 86 + 29 --- 87 + 29 --- 88 + 29 --- 89 + 29 --- 90 + 29 --- 91 + 29 ---- 273 + 370 --- 29 + 30 --- 92 + 30 --- 263 + 30 ---- 274 + 365 --- 30 + 31 --- 93 + 31 --- 94 + 31 --- 95 + 31 --- 96 + 31 --- 97 + 31 --- 254 + 31 ---- 275 + 365 --- 31 + 32 --- 98 + 32 --- 247 + 365 --- 32 + 33 --- 99 + 33 --- 253 + 365 --- 33 + 34 --- 100 + 34 --- 262 + 365 --- 34 + 35 --- 101 + 35 --- 238 + 365 --- 35 + 36 --- 102 + 36 --- 266 + 365 --- 36 + 37 --- 103 + 37 --- 235 + 37 ---- 276 + 370 --- 37 + 38 --- 104 + 38 --- 264 + 38 ---- 277 + 366 --- 38 + 39 --- 105 + 39 --- 249 + 39 ---- 278 + 40 --- 106 + 40 --- 237 + 40 ---- 279 + 41 --- 107 + 41 --- 108 + 41 --- 109 + 41 --- 110 + 41 --- 111 + 41 --- 112 + 41 --- 113 + 41 --- 114 + 41 --- 115 + 41 --- 116 + 41 --- 117 + 41 --- 118 + 41 --- 119 + 41 --- 257 + 41 ---- 280 + 42 --- 128 + 42 --- 234 + 42 x---> 281 + 42 x--> 386 + 42 x--> 387 + 42 x--> 388 + 42 x--> 389 + 43 --- 120 + 43 --- 123 + 43 --- 124 + 43 --- 126 + 43 --- 129 + 43 --- 241 + 43 ---- 281 + 44 --- 121 + 44 --- 122 + 44 --- 125 + 44 --- 127 + 44 --- 130 + 44 --- 251 + 44 x---> 281 + 45 --- 131 + 45 --- 132 + 45 --- 133 + 45 --- 134 + 45 --- 135 + 45 --- 136 + 46 --- 137 + 46 --- 244 + 46 ---- 282 + 47 --- 138 + 47 --- 246 + 48 --- 139 + 48 --- 140 + 48 --- 141 + 48 --- 142 + 48 --- 143 + 48 --- 144 + 48 --- 145 + 48 --- 146 + 48 --- 147 + 49 --- 148 + 49 --- 256 + 49 ---- 283 + 50 --- 149 + 50 --- 260 + 51 --- 150 + 51 --- 151 + 51 --- 152 + 51 --- 153 + 51 --- 154 + 51 --- 155 + 51 --- 156 + 51 --- 157 + 51 --- 158 + 51 --- 159 + 51 --- 252 + 51 ---- 284 + 52 --- 160 + 52 --- 161 + 52 --- 162 + 52 --- 163 + 52 --- 164 + 52 --- 165 + 52 --- 166 + 52 --- 167 + 52 --- 168 + 52 --- 169 + 52 ---- 285 + 53 --- 170 + 53 --- 171 + 53 --- 172 + 53 --- 173 + 53 --- 174 + 53 --- 175 + 53 --- 176 + 53 --- 177 + 53 --- 178 + 53 --- 179 + 53 --- 180 + 53 ---- 286 + 54 --- 181 + 54 --- 182 + 54 --- 183 + 54 --- 184 + 54 --- 185 + 54 --- 186 + 54 --- 187 + 54 --- 188 + 54 --- 189 + 54 --- 190 + 54 --- 191 + 54 --- 192 + 54 --- 193 + 54 --- 255 + 54 ---- 287 + 55 --- 194 + 55 --- 240 + 55 ---- 288 + 331 --- 55 + 56 --- 195 + 56 --- 196 + 56 --- 197 + 56 --- 198 + 56 --- 199 + 56 --- 200 + 56 --- 201 + 56 --- 202 + 56 --- 203 + 56 --- 204 + 57 --- 205 + 57 --- 206 + 57 --- 207 + 57 --- 208 + 57 --- 209 + 57 --- 210 + 57 --- 211 + 57 --- 212 + 57 --- 213 + 57 --- 214 + 58 --- 215 + 58 --- 243 + 58 ---- 289 + 59 --- 216 + 59 --- 259 + 59 ---- 290 + 60 --- 217 + 60 --- 218 + 60 --- 219 + 60 --- 220 + 60 --- 221 + 61 --- 222 + 61 --- 223 + 61 --- 224 + 61 --- 225 + 61 --- 226 + 62 --- 227 + 62 --- 239 + 62 ---- 291 + 63 --- 228 + 63 --- 236 + 63 ---- 292 + 64 --- 229 + 64 --- 230 + 64 --- 231 + 64 --- 232 + 64 --- 233 + 64 --- 248 + 64 ---- 293 + 65 --- 298 + 65 x--> 358 + 65 --- 383 + 65 --- 441 + 66 --- 301 + 66 x--> 358 + 66 --- 385 + 66 --- 438 + 67 --- 300 + 67 x--> 358 + 67 --- 384 + 67 --- 440 + 68 --- 299 + 68 x--> 358 + 68 --- 382 + 68 --- 439 + 75 --- 320 + 75 x--> 370 + 75 --- 408 + 75 --- 460 + 76 --- 322 + 76 x--> 370 + 76 --- 402 + 76 --- 464 + 77 --- 319 + 77 x--> 370 + 77 --- 405 + 77 --- 459 + 78 --- 317 + 78 x--> 370 + 78 --- 407 + 78 --- 458 + 79 --- 318 + 79 x--> 370 + 79 --- 403 + 79 --- 457 + 80 --- 324 + 80 x--> 370 + 80 --- 404 + 80 --- 462 + 81 --- 323 + 81 x--> 370 + 81 --- 406 + 81 --- 461 + 82 --- 321 + 82 x--> 370 + 82 --- 401 + 82 --- 463 + 84 --- 314 + 84 x--> 370 + 84 --- 396 + 84 --- 449 + 85 --- 309 + 85 x--> 370 + 85 --- 399 + 85 --- 454 + 86 --- 316 + 86 x--> 370 + 86 --- 393 + 86 --- 456 + 87 --- 313 + 87 x--> 370 + 87 --- 395 + 87 --- 453 + 88 --- 311 + 88 x--> 370 + 88 --- 397 + 88 --- 450 + 89 --- 310 + 89 x--> 370 + 89 --- 394 + 89 --- 452 + 90 --- 312 + 90 x--> 370 + 90 --- 400 + 90 --- 455 + 91 --- 315 + 91 x--> 370 + 91 --- 398 + 91 --- 451 + 92 --- 306 + 92 x--> 365 + 92 --- 390 + 92 --- 446 + 93 --- 343 + 93 x--> 359 + 93 --- 428 + 93 --- 482 + 94 --- 342 + 94 x--> 359 + 94 --- 425 + 94 --- 481 + 95 --- 344 + 95 x--> 359 + 95 --- 426 + 95 --- 483 + 96 --- 341 + 96 x--> 359 + 96 --- 427 + 96 --- 484 + 103 --- 327 + 103 x--> 370 + 103 --- 411 + 103 --- 467 + 104 --- 294 + 104 x--> 366 + 104 --- 378 + 104 --- 434 + 105 --- 345 + 105 x--> 350 + 105 --- 429 + 105 --- 485 + 105 --- 498 + 106 --- 307 + 106 x--> 361 + 106 --- 391 + 106 --- 447 + 120 --- 304 + 120 x--> 373 + 120 --- 388 + 120 --- 442 + 123 --- 305 + 123 x--> 373 + 123 --- 386 + 123 --- 445 + 124 --- 302 + 124 x--> 373 + 124 --- 389 + 124 --- 444 + 126 --- 303 + 126 x--> 373 + 126 --- 387 + 126 --- 443 + 137 --- 308 + 137 x--> 351 + 137 --- 392 + 137 --- 448 + 148 --- 340 + 148 x--> 353 + 148 --- 424 + 148 --- 480 + 181 --- 328 + 181 x--> 355 + 181 --- 423 + 181 --- 477 + 182 --- 338 + 182 x--> 355 + 182 --- 421 + 182 --- 470 + 183 --- 335 + 183 x--> 355 + 183 --- 418 + 183 --- 468 + 184 --- 329 + 184 x--> 355 + 184 --- 420 + 184 --- 478 + 185 --- 337 + 185 x--> 355 + 185 --- 415 + 185 --- 474 + 186 --- 332 + 186 x--> 355 + 186 --- 422 + 186 --- 473 + 186 --- 501 + 187 --- 331 + 187 x--> 355 + 187 --- 413 + 187 --- 472 + 188 --- 336 + 188 x--> 355 + 188 --- 412 + 188 --- 479 + 189 --- 330 + 189 x--> 355 + 189 --- 416 + 189 --- 469 + 190 --- 334 + 190 x--> 355 + 190 --- 414 + 190 --- 476 + 191 --- 339 + 191 x--> 355 + 191 --- 419 + 191 --- 475 + 192 --- 333 + 192 x--> 355 + 192 --- 417 + 192 --- 471 + 192 --- 503 + 194 --- 295 + 194 x--> 331 + 194 --- 379 + 194 --- 435 + 194 --- 504 + 215 --- 325 + 215 x--> 375 + 215 --- 409 + 215 --- 465 + 216 --- 326 + 216 x--> 356 + 216 --- 410 + 216 --- 466 + 227 --- 296 + 227 x--> 368 + 227 --- 380 + 227 --- 436 + 228 --- 297 + 228 x--> 363 + 228 --- 381 + 228 --- 437 + 229 --- 349 + 229 x--> 360 + 229 --- 430 + 229 --- 488 + 230 --- 347 + 230 x--> 360 + 230 --- 432 + 230 --- 489 + 231 --- 346 + 231 x--> 360 + 231 --- 431 + 231 --- 487 + 232 --- 348 + 232 x--> 360 + 232 --- 433 + 232 --- 486 + 268 --- 298 + 268 --- 299 + 268 --- 300 + 268 --- 301 + 268 --- 358 + 268 --- 370 + 268 --- 382 + 268 --- 383 + 268 --- 384 + 268 --- 385 + 268 --- 438 + 268 --- 439 + 268 --- 440 + 268 --- 441 + 271 --- 317 + 271 --- 318 + 271 --- 319 + 271 --- 320 + 271 --- 321 + 271 --- 322 + 271 --- 323 + 271 --- 324 + 271 --- 401 + 271 --- 402 + 271 --- 403 + 271 --- 404 + 271 --- 405 + 271 --- 406 + 271 --- 407 + 271 --- 408 + 271 --- 457 + 271 --- 458 + 271 --- 459 + 271 --- 460 + 271 --- 461 + 271 --- 462 + 271 --- 463 + 271 --- 464 + 273 --- 309 + 273 --- 310 + 273 --- 311 + 273 --- 312 + 273 --- 313 + 273 --- 314 + 273 --- 315 + 273 --- 316 + 273 --- 365 + 273 --- 393 + 273 --- 394 + 273 --- 395 + 273 --- 396 + 273 --- 397 + 273 --- 398 + 273 --- 399 + 273 --- 400 + 273 --- 449 + 273 --- 450 + 273 --- 451 + 273 --- 452 + 273 --- 453 + 273 --- 454 + 273 --- 455 + 273 --- 456 + 274 --- 306 + 274 --- 390 + 274 --- 446 + 275 --- 341 + 275 --- 342 + 275 --- 343 + 275 --- 344 + 275 --- 359 + 275 --- 371 + 275 --- 425 + 275 --- 426 + 275 --- 427 + 275 --- 428 + 275 --- 481 + 275 --- 482 + 275 --- 483 + 275 --- 484 + 276 --- 327 + 276 --- 366 + 276 --- 411 + 276 --- 467 + 277 --- 294 + 277 --- 378 + 277 --- 434 + 278 --- 345 + 278 --- 350 + 278 --- 362 + 278 --- 429 + 278 --- 485 + 279 --- 307 + 279 --- 361 + 279 --- 377 + 279 --- 391 + 279 --- 447 + 281 --- 302 + 281 --- 303 + 281 --- 304 + 281 --- 305 + 281 --- 372 + 281 --- 373 + 281 --- 386 + 281 --- 387 + 281 --- 388 + 281 --- 389 + 281 --- 442 + 281 --- 443 + 281 --- 444 + 281 --- 445 + 282 --- 308 + 282 --- 351 + 282 --- 352 + 282 --- 392 + 282 --- 448 + 283 --- 340 + 283 --- 353 + 283 --- 354 + 283 --- 424 + 283 --- 480 + 287 --- 328 + 287 --- 329 + 287 --- 330 + 287 --- 331 + 287 --- 332 + 287 --- 333 + 287 --- 334 + 287 --- 335 + 287 --- 336 + 287 --- 337 + 287 --- 338 + 287 --- 339 + 287 --- 355 + 287 --- 367 + 287 --- 412 + 287 --- 413 + 287 --- 414 + 287 --- 415 + 287 --- 416 + 287 --- 417 + 287 --- 418 + 287 --- 419 + 287 --- 420 + 287 --- 421 + 287 --- 422 + 287 --- 423 + 287 --- 468 + 287 --- 469 + 287 --- 470 + 287 --- 471 + 287 --- 472 + 287 --- 473 + 287 --- 474 + 287 --- 475 + 287 --- 476 + 287 --- 477 + 287 --- 478 + 287 --- 479 + 288 --- 295 + 288 --- 379 + 288 --- 435 + 289 --- 325 + 289 --- 374 + 289 --- 375 + 289 --- 409 + 289 --- 465 + 290 --- 326 + 290 --- 356 + 290 --- 357 + 290 --- 410 + 290 --- 466 + 291 --- 296 + 291 --- 368 + 291 --- 369 + 291 --- 380 + 291 --- 436 + 292 --- 297 + 292 --- 363 + 292 --- 364 + 292 --- 381 + 292 --- 437 + 293 --- 346 + 293 --- 347 + 293 --- 348 + 293 --- 349 + 293 --- 360 + 293 --- 376 + 293 --- 430 + 293 --- 431 + 293 --- 432 + 293 --- 433 + 293 --- 486 + 293 --- 487 + 293 --- 488 + 293 --- 489 + 378 <--x 294 + 434 <--x 294 + 379 <--x 295 + 435 <--x 295 + 380 <--x 296 + 436 <--x 296 + 381 <--x 297 + 437 <--x 297 + 383 <--x 298 + 382 <--x 299 + 384 <--x 300 + 385 <--x 301 + 389 <--x 302 + 443 <--x 302 + 444 <--x 302 + 387 <--x 303 + 442 <--x 303 + 443 <--x 303 + 388 <--x 304 + 442 <--x 304 + 445 <--x 304 + 386 <--x 305 + 444 <--x 305 + 445 <--x 305 + 390 <--x 306 + 446 <--x 306 + 391 <--x 307 + 447 <--x 307 + 392 <--x 308 + 448 <--x 308 + 399 <--x 309 + 449 <--x 309 + 454 <--x 309 + 394 <--x 310 + 450 <--x 310 + 452 <--x 310 + 397 <--x 311 + 450 <--x 311 + 453 <--x 311 + 400 <--x 312 + 452 <--x 312 + 455 <--x 312 + 395 <--x 313 + 453 <--x 313 + 456 <--x 313 + 396 <--x 314 + 449 <--x 314 + 451 <--x 314 + 398 <--x 315 + 451 <--x 315 + 455 <--x 315 + 393 <--x 316 + 454 <--x 316 + 456 <--x 316 + 407 <--x 317 + 458 <--x 317 + 459 <--x 317 + 403 <--x 318 + 457 <--x 318 + 458 <--x 318 + 405 <--x 319 + 459 <--x 319 + 464 <--x 319 + 408 <--x 320 + 460 <--x 320 + 463 <--x 320 + 401 <--x 321 + 461 <--x 321 + 463 <--x 321 + 402 <--x 322 + 460 <--x 322 + 464 <--x 322 + 406 <--x 323 + 461 <--x 323 + 462 <--x 323 + 404 <--x 324 + 457 <--x 324 + 462 <--x 324 + 409 <--x 325 + 465 <--x 325 + 410 <--x 326 + 466 <--x 326 + 411 <--x 327 + 467 <--x 327 + 423 <--x 328 + 471 <--x 328 + 477 <--x 328 + 420 <--x 329 + 468 <--x 329 + 478 <--x 329 + 416 <--x 330 + 469 <--x 330 + 479 <--x 330 + 413 <--x 331 + 472 <--x 331 + 473 <--x 331 + 422 <--x 332 + 473 <--x 332 + 474 <--x 332 + 417 <--x 333 + 471 <--x 333 + 475 <--x 333 + 414 <--x 334 + 469 <--x 334 + 476 <--x 334 + 418 <--x 335 + 468 <--x 335 + 470 <--x 335 + 412 <--x 336 + 472 <--x 336 + 479 <--x 336 + 379 <--x 337 + 415 <--x 337 + 474 <--x 337 + 478 <--x 337 + 421 <--x 338 + 470 <--x 338 + 477 <--x 338 + 419 <--x 339 + 475 <--x 339 + 476 <--x 339 + 424 <--x 340 + 480 <--x 340 + 427 <--x 341 + 425 <--x 342 + 428 <--x 343 + 426 <--x 344 + 485 <--x 345 + 431 <--x 346 + 432 <--x 347 + 433 <--x 348 + 430 <--x 349 + 392 <--x 352 + 424 <--x 354 + 410 <--x 357 + 401 <--x 358 + 402 <--x 358 + 403 <--x 358 + 404 <--x 358 + 405 <--x 358 + 406 <--x 358 + 407 <--x 358 + 408 <--x 358 + 381 <--x 364 + 393 <--x 365 + 394 <--x 365 + 395 <--x 365 + 396 <--x 365 + 397 <--x 365 + 398 <--x 365 + 399 <--x 365 + 400 <--x 365 + 411 <--x 366 + 412 <--x 367 + 413 <--x 367 + 414 <--x 367 + 415 <--x 367 + 416 <--x 367 + 417 <--x 367 + 418 <--x 367 + 419 <--x 367 + 420 <--x 367 + 421 <--x 367 + 422 <--x 367 + 423 <--x 367 + 380 <--x 369 + 378 <--x 370 + 382 <--x 370 + 383 <--x 370 + 384 <--x 370 + 385 <--x 370 + 390 <--x 370 + 425 <--x 371 + 426 <--x 371 + 427 <--x 371 + 428 <--x 371 + 386 <--x 372 + 387 <--x 372 + 388 <--x 372 + 389 <--x 372 + 409 <--x 374 + 430 <--x 376 + 431 <--x 376 + 432 <--x 376 + 433 <--x 376 + 391 <--x 377 + 417 <--x 500 + 422 <--x 502 + 429 <--x 499 + 438 <--x 491 + 439 <--x 490 + 440 <--x 493 + 441 <--x 496 + 481 <--x 494 + 482 <--x 492 + 483 <--x 495 + 484 <--x 497 + 486 <--x 505 + 487 <--x 507 + 488 <--x 506 + 489 <--x 508 +``` diff --git a/rust/kcl-lib/tests/kcl_samples/cpu-cooler/ast.snap b/rust/kcl-lib/tests/kcl_samples/cpu-cooler/ast.snap new file mode 100644 index 000000000..695de80ed --- /dev/null +++ b/rust/kcl-lib/tests/kcl_samples/cpu-cooler/ast.snap @@ -0,0 +1,1355 @@ +--- +source: kcl-lib/src/simulation_tests.rs +description: Result of parsing cpu-cooler.kcl +--- +{ + "Ok": { + "body": [ + { + "commentStart": 0, + "end": 0, + "path": { + "type": "Kcl", + "filename": "parameters.kcl" + }, + "preComments": [ + "// Import all parts and parameters into assembly file" + ], + "selector": { + "commentStart": 0, + "end": 0, + "start": 0, + "type": "Glob" + }, + "start": 0, + "type": "ImportStatement", + "type": "ImportStatement" + }, + { + "commentStart": 0, + "end": 0, + "path": { + "type": "Kcl", + "filename": "fan-housing.kcl" + }, + "selector": { + "type": "None", + "alias": { + "commentStart": 0, + "end": 0, + "name": "fanHousing", + "start": 0, + "type": "Identifier" + } + }, + "start": 0, + "type": "ImportStatement", + "type": "ImportStatement" + }, + { + "commentStart": 0, + "end": 0, + "path": { + "type": "Kcl", + "filename": "motor.kcl" + }, + "selector": { + "type": "None", + "alias": { + "commentStart": 0, + "end": 0, + "name": "motor", + "start": 0, + "type": "Identifier" + } + }, + "start": 0, + "type": "ImportStatement", + "type": "ImportStatement" + }, + { + "commentStart": 0, + "end": 0, + "path": { + "type": "Kcl", + "filename": "fan.kcl" + }, + "selector": { + "type": "None", + "alias": { + "commentStart": 0, + "end": 0, + "name": "fan", + "start": 0, + "type": "Identifier" + } + }, + "start": 0, + "type": "ImportStatement", + "type": "ImportStatement" + }, + { + "commentStart": 0, + "end": 0, + "path": { + "type": "Kcl", + "filename": "heat-sink.kcl" + }, + "selector": { + "type": "None", + "alias": { + "commentStart": 0, + "end": 0, + "name": "heatSink", + "start": 0, + "type": "Identifier" + } + }, + "start": 0, + "type": "ImportStatement", + "type": "ImportStatement" + }, + { + "commentStart": 0, + "end": 0, + "path": { + "type": "Kcl", + "filename": "mounting-wire.kcl" + }, + "selector": { + "type": "None", + "alias": { + "commentStart": 0, + "end": 0, + "name": "mountingWire", + "start": 0, + "type": "Identifier" + } + }, + "start": 0, + "type": "ImportStatement", + "type": "ImportStatement" + }, + { + "commentStart": 0, + "end": 0, + "path": { + "type": "Kcl", + "filename": "removable-sticker.kcl" + }, + "selector": { + "type": "None", + "alias": { + "commentStart": 0, + "end": 0, + "name": "removableSticker", + "start": 0, + "type": "Identifier" + } + }, + "start": 0, + "type": "ImportStatement", + "type": "ImportStatement" + }, + { + "commentStart": 0, + "end": 0, + "expression": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "heatSink", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "preComments": [ + "", + "", + "// Produce the model for each imported part" + ], + "start": 0, + "type": "ExpressionStatement", + "type": "ExpressionStatement" + }, + { + "commentStart": 0, + "declaration": { + "commentStart": 0, + "end": 0, + "id": { + "commentStart": 0, + "end": 0, + "name": "translatePart", + "start": 0, + "type": "Identifier" + }, + "init": { + "body": { + "body": [ + { + "commentStart": 0, + "end": 0, + "expression": { + "body": [ + { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "part", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "x", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "end": 0, + "left": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "heatSinkDepth", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "operator": "/", + "right": { + "commentStart": 0, + "end": 0, + "raw": "2", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 2.0, + "suffix": "None" + } + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + } + }, + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "z", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "end": 0, + "left": { + "commentStart": 0, + "end": 0, + "raw": "40", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 40.0, + "suffix": "None" + } + }, + "operator": "+", + "right": { + "commentStart": 0, + "end": 0, + "left": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "fanSize", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "operator": "/", + "right": { + "commentStart": 0, + "end": 0, + "raw": "2", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 2.0, + "suffix": "None" + } + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "translate", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": null + }, + { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "instances", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "end": 0, + "raw": "2", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 2.0, + "suffix": "None" + } + } + }, + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "distance", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "end": 0, + "left": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "heatSinkDepth", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "operator": "+", + "right": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "fanHeight", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + } + }, + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "axis", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "elements": [ + { + "argument": { + "commentStart": 0, + "end": 0, + "raw": "1", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 1.0, + "suffix": "None" + } + }, + "commentStart": 0, + "end": 0, + "operator": "-", + "start": 0, + "type": "UnaryExpression", + "type": "UnaryExpression" + }, + { + "commentStart": 0, + "end": 0, + "raw": "0", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 0.0, + "suffix": "None" + } + }, + { + "commentStart": 0, + "end": 0, + "raw": "0", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 0.0, + "suffix": "None" + } + } + ], + "end": 0, + "start": 0, + "type": "ArrayExpression", + "type": "ArrayExpression" + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "patternLinear3d", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": { + "commentStart": 0, + "end": 0, + "start": 0, + "type": "PipeSubstitution", + "type": "PipeSubstitution" + } + } + ], + "commentStart": 0, + "end": 0, + "start": 0, + "type": "PipeExpression", + "type": "PipeExpression" + }, + "start": 0, + "type": "ExpressionStatement", + "type": "ExpressionStatement" + }, + { + "argument": { + "commentStart": 0, + "end": 0, + "properties": [], + "start": 0, + "type": "ObjectExpression", + "type": "ObjectExpression" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "ReturnStatement", + "type": "ReturnStatement" + } + ], + "commentStart": 0, + "end": 0, + "start": 0 + }, + "commentStart": 0, + "end": 0, + "params": [ + { + "type": "Parameter", + "identifier": { + "commentStart": 0, + "end": 0, + "name": "part", + "start": 0, + "type": "Identifier" + } + } + ], + "start": 0, + "type": "FunctionExpression", + "type": "FunctionExpression" + }, + "start": 0, + "type": "VariableDeclarator" + }, + "end": 0, + "kind": "fn", + "start": 0, + "type": "VariableDeclaration", + "type": "VariableDeclaration" + }, + { + "commentStart": 0, + "end": 0, + "expression": { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "part", + "start": 0, + "type": "Identifier" + }, + "arg": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "fanHousing", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "translatePart", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": null + }, + "start": 0, + "type": "ExpressionStatement", + "type": "ExpressionStatement" + }, + { + "commentStart": 0, + "end": 0, + "expression": { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "part", + "start": 0, + "type": "Identifier" + }, + "arg": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "motor", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "translatePart", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": null + }, + "start": 0, + "type": "ExpressionStatement", + "type": "ExpressionStatement" + }, + { + "commentStart": 0, + "end": 0, + "expression": { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "part", + "start": 0, + "type": "Identifier" + }, + "arg": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "fan", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "translatePart", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": null + }, + "start": 0, + "type": "ExpressionStatement", + "type": "ExpressionStatement" + }, + { + "commentStart": 0, + "end": 0, + "expression": { + "body": [ + { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "mountingWire", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "instances", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "end": 0, + "raw": "2", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 2.0, + "suffix": "None" + } + } + }, + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "axis", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "elements": [ + { + "commentStart": 0, + "end": 0, + "raw": "0", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 0.0, + "suffix": "None" + } + }, + { + "commentStart": 0, + "end": 0, + "raw": "1", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 1.0, + "suffix": "None" + } + }, + { + "commentStart": 0, + "end": 0, + "raw": "0", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 0.0, + "suffix": "None" + } + } + ], + "end": 0, + "start": 0, + "type": "ArrayExpression", + "type": "ArrayExpression" + } + }, + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "center", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "elements": [ + { + "commentStart": 0, + "end": 0, + "raw": "0", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 0.0, + "suffix": "None" + } + }, + { + "commentStart": 0, + "end": 0, + "raw": "0", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 0.0, + "suffix": "None" + } + }, + { + "commentStart": 0, + "end": 0, + "left": { + "commentStart": 0, + "end": 0, + "raw": "40", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 40.0, + "suffix": "None" + } + }, + "operator": "+", + "right": { + "commentStart": 0, + "end": 0, + "left": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "fanSize", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "operator": "/", + "right": { + "commentStart": 0, + "end": 0, + "raw": "2", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 2.0, + "suffix": "None" + } + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + } + ], + "end": 0, + "start": 0, + "type": "ArrayExpression", + "type": "ArrayExpression" + } + }, + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "arcDegrees", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "end": 0, + "raw": "360", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 360.0, + "suffix": "None" + } + } + }, + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "rotateDuplicates", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "end": 0, + "raw": "true", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": true + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "patternCircular3d", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": { + "commentStart": 0, + "end": 0, + "start": 0, + "type": "PipeSubstitution", + "type": "PipeSubstitution" + } + }, + { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "instances", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "end": 0, + "raw": "2", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 2.0, + "suffix": "None" + } + } + }, + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "axis", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "elements": [ + { + "commentStart": 0, + "end": 0, + "raw": "0", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 0.0, + "suffix": "None" + } + }, + { + "commentStart": 0, + "end": 0, + "raw": "0", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 0.0, + "suffix": "None" + } + }, + { + "commentStart": 0, + "end": 0, + "raw": "1", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 1.0, + "suffix": "None" + } + } + ], + "end": 0, + "start": 0, + "type": "ArrayExpression", + "type": "ArrayExpression" + } + }, + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "center", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "elements": [ + { + "commentStart": 0, + "end": 0, + "raw": "0", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 0.0, + "suffix": "None" + } + }, + { + "commentStart": 0, + "end": 0, + "raw": "0", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 0.0, + "suffix": "None" + } + }, + { + "commentStart": 0, + "end": 0, + "raw": "0", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 0.0, + "suffix": "None" + } + } + ], + "end": 0, + "start": 0, + "type": "ArrayExpression", + "type": "ArrayExpression" + } + }, + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "arcDegrees", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "end": 0, + "raw": "360", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 360.0, + "suffix": "None" + } + } + }, + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "rotateDuplicates", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "end": 0, + "raw": "true", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": true + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "patternCircular3d", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": { + "commentStart": 0, + "end": 0, + "start": 0, + "type": "PipeSubstitution", + "type": "PipeSubstitution" + } + } + ], + "commentStart": 0, + "end": 0, + "start": 0, + "type": "PipeExpression", + "type": "PipeExpression" + }, + "start": 0, + "type": "ExpressionStatement", + "type": "ExpressionStatement" + }, + { + "commentStart": 0, + "end": 0, + "expression": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "removableSticker", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "start": 0, + "type": "ExpressionStatement", + "type": "ExpressionStatement" + } + ], + "commentStart": 0, + "end": 0, + "innerAttrs": [ + { + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "settings", + "start": 0, + "type": "Identifier" + }, + "preComments": [ + "// CPU Cooler", + "// A CPU cooler is a device designed to dissipate heat generated by the CPU of a computer. They consist of a brazed heat sink made from aluminum or copper alloys, and one or two axial fans to move airflow across the heat sink.", + "", + "", + "// Set units" + ], + "properties": [ + { + "commentStart": 0, + "end": 0, + "key": { + "commentStart": 0, + "end": 0, + "name": "defaultLengthUnit", + "start": 0, + "type": "Identifier" + }, + "start": 0, + "type": "ObjectProperty", + "value": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "mm", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + } + } + ], + "start": 0, + "type": "Annotation" + } + ], + "nonCodeMeta": { + "nonCodeNodes": { + "7": [ + { + "commentStart": 0, + "end": 0, + "start": 0, + "type": "NonCodeNode", + "value": { + "type": "newLine" + } + } + ], + "11": [ + { + "commentStart": 0, + "end": 0, + "start": 0, + "type": "NonCodeNode", + "value": { + "type": "newLine" + } + } + ] + }, + "startNodes": [ + { + "commentStart": 0, + "end": 0, + "start": 0, + "type": "NonCodeNode", + "value": { + "type": "newLine" + } + } + ] + }, + "start": 0 + } +} diff --git a/rust/kcl-lib/tests/kcl_samples/cpu-cooler/ops.snap b/rust/kcl-lib/tests/kcl_samples/cpu-cooler/ops.snap new file mode 100644 index 000000000..8c42c3e8c --- /dev/null +++ b/rust/kcl-lib/tests/kcl_samples/cpu-cooler/ops.snap @@ -0,0 +1,955 @@ +--- +source: kcl-lib/src/simulation_tests.rs +description: Operations executed cpu-cooler.kcl +--- +[ + { + "type": "GroupBegin", + "group": { + "type": "ModuleInstance", + "name": "parameters.kcl", + "moduleId": 0 + }, + "sourceRange": [] + }, + { + "type": "GroupBegin", + "group": { + "type": "ModuleInstance", + "name": "fan-housing.kcl", + "moduleId": 0 + }, + "sourceRange": [] + }, + { + "type": "GroupBegin", + "group": { + "type": "ModuleInstance", + "name": "motor.kcl", + "moduleId": 0 + }, + "sourceRange": [] + }, + { + "type": "GroupBegin", + "group": { + "type": "ModuleInstance", + "name": "fan.kcl", + "moduleId": 0 + }, + "sourceRange": [] + }, + { + "type": "GroupBegin", + "group": { + "type": "ModuleInstance", + "name": "heat-sink.kcl", + "moduleId": 0 + }, + "sourceRange": [] + }, + { + "type": "GroupBegin", + "group": { + "type": "ModuleInstance", + "name": "mounting-wire.kcl", + "moduleId": 0 + }, + "sourceRange": [] + }, + { + "type": "GroupBegin", + "group": { + "type": "ModuleInstance", + "name": "removable-sticker.kcl", + "moduleId": 0 + }, + "sourceRange": [] + }, + { + "labeledArgs": { + "axis": { + "value": { + "type": "Array", + "value": [ + { + "type": "Number", + "value": -1.0, + "ty": { + "type": "Default", + "len": { + "type": "Mm" + }, + "angle": { + "type": "Degrees" + } + } + }, + { + "type": "Number", + "value": 0.0, + "ty": { + "type": "Default", + "len": { + "type": "Mm" + }, + "angle": { + "type": "Degrees" + } + } + }, + { + "type": "Number", + "value": 0.0, + "ty": { + "type": "Default", + "len": { + "type": "Mm" + }, + "angle": { + "type": "Degrees" + } + } + } + ] + }, + "sourceRange": [] + }, + "distance": { + "value": { + "type": "Number", + "value": 80.0, + "ty": { + "type": "Default", + "len": { + "type": "Mm" + }, + "angle": { + "type": "Degrees" + } + } + }, + "sourceRange": [] + }, + "instances": { + "value": { + "type": "Number", + "value": 2.0, + "ty": { + "type": "Default", + "len": { + "type": "Mm" + }, + "angle": { + "type": "Degrees" + } + } + }, + "sourceRange": [] + } + }, + "name": "patternLinear3d", + "sourceRange": [], + "type": "StdLibCall", + "unlabeledArg": { + "value": { + "type": "Solid", + "value": { + "artifactId": "[uuid]" + } + }, + "sourceRange": [] + } + }, + { + "labeledArgs": { + "axis": { + "value": { + "type": "Array", + "value": [ + { + "type": "Number", + "value": -1.0, + "ty": { + "type": "Default", + "len": { + "type": "Mm" + }, + "angle": { + "type": "Degrees" + } + } + }, + { + "type": "Number", + "value": 0.0, + "ty": { + "type": "Default", + "len": { + "type": "Mm" + }, + "angle": { + "type": "Degrees" + } + } + }, + { + "type": "Number", + "value": 0.0, + "ty": { + "type": "Default", + "len": { + "type": "Mm" + }, + "angle": { + "type": "Degrees" + } + } + } + ] + }, + "sourceRange": [] + }, + "distance": { + "value": { + "type": "Number", + "value": 80.0, + "ty": { + "type": "Default", + "len": { + "type": "Mm" + }, + "angle": { + "type": "Degrees" + } + } + }, + "sourceRange": [] + }, + "instances": { + "value": { + "type": "Number", + "value": 2.0, + "ty": { + "type": "Default", + "len": { + "type": "Mm" + }, + "angle": { + "type": "Degrees" + } + } + }, + "sourceRange": [] + } + }, + "name": "patternLinear3d", + "sourceRange": [], + "type": "StdLibCall", + "unlabeledArg": { + "value": { + "type": "Array", + "value": [ + { + "type": "Solid", + "value": { + "artifactId": "[uuid]" + } + }, + { + "type": "Solid", + "value": { + "artifactId": "[uuid]" + } + } + ] + }, + "sourceRange": [] + } + }, + { + "labeledArgs": { + "axis": { + "value": { + "type": "Array", + "value": [ + { + "type": "Number", + "value": -1.0, + "ty": { + "type": "Default", + "len": { + "type": "Mm" + }, + "angle": { + "type": "Degrees" + } + } + }, + { + "type": "Number", + "value": 0.0, + "ty": { + "type": "Default", + "len": { + "type": "Mm" + }, + "angle": { + "type": "Degrees" + } + } + }, + { + "type": "Number", + "value": 0.0, + "ty": { + "type": "Default", + "len": { + "type": "Mm" + }, + "angle": { + "type": "Degrees" + } + } + } + ] + }, + "sourceRange": [] + }, + "distance": { + "value": { + "type": "Number", + "value": 80.0, + "ty": { + "type": "Default", + "len": { + "type": "Mm" + }, + "angle": { + "type": "Degrees" + } + } + }, + "sourceRange": [] + }, + "instances": { + "value": { + "type": "Number", + "value": 2.0, + "ty": { + "type": "Default", + "len": { + "type": "Mm" + }, + "angle": { + "type": "Degrees" + } + } + }, + "sourceRange": [] + } + }, + "name": "patternLinear3d", + "sourceRange": [], + "type": "StdLibCall", + "unlabeledArg": { + "value": { + "type": "Array", + "value": [ + { + "type": "Solid", + "value": { + "artifactId": "[uuid]" + } + }, + { + "type": "Solid", + "value": { + "artifactId": "[uuid]" + } + }, + { + "type": "Solid", + "value": { + "artifactId": "[uuid]" + } + }, + { + "type": "Solid", + "value": { + "artifactId": "[uuid]" + } + }, + { + "type": "Solid", + "value": { + "artifactId": "[uuid]" + } + }, + { + "type": "Solid", + "value": { + "artifactId": "[uuid]" + } + }, + { + "type": "Solid", + "value": { + "artifactId": "[uuid]" + } + }, + { + "type": "Solid", + "value": { + "artifactId": "[uuid]" + } + }, + { + "type": "Solid", + "value": { + "artifactId": "[uuid]" + } + }, + { + "type": "Solid", + "value": { + "artifactId": "[uuid]" + } + } + ] + }, + "sourceRange": [] + } + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "translatePart", + "functionSourceRange": [], + "unlabeledArg": null, + "labeledArgs": { + "part": { + "value": { + "type": "Solid", + "value": { + "artifactId": "[uuid]" + } + }, + "sourceRange": [] + } + } + }, + "sourceRange": [] + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "translatePart", + "functionSourceRange": [], + "unlabeledArg": null, + "labeledArgs": { + "part": { + "value": { + "type": "Array", + "value": [ + { + "type": "Solid", + "value": { + "artifactId": "[uuid]" + } + }, + { + "type": "Solid", + "value": { + "artifactId": "[uuid]" + } + } + ] + }, + "sourceRange": [] + } + } + }, + "sourceRange": [] + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "translatePart", + "functionSourceRange": [], + "unlabeledArg": null, + "labeledArgs": { + "part": { + "value": { + "type": "Array", + "value": [ + { + "type": "Solid", + "value": { + "artifactId": "[uuid]" + } + }, + { + "type": "Solid", + "value": { + "artifactId": "[uuid]" + } + }, + { + "type": "Solid", + "value": { + "artifactId": "[uuid]" + } + }, + { + "type": "Solid", + "value": { + "artifactId": "[uuid]" + } + }, + { + "type": "Solid", + "value": { + "artifactId": "[uuid]" + } + }, + { + "type": "Solid", + "value": { + "artifactId": "[uuid]" + } + }, + { + "type": "Solid", + "value": { + "artifactId": "[uuid]" + } + }, + { + "type": "Solid", + "value": { + "artifactId": "[uuid]" + } + }, + { + "type": "Solid", + "value": { + "artifactId": "[uuid]" + } + }, + { + "type": "Solid", + "value": { + "artifactId": "[uuid]" + } + } + ] + }, + "sourceRange": [] + } + } + }, + "sourceRange": [] + }, + { + "labeledArgs": { + "arcDegrees": { + "value": { + "type": "Number", + "value": 360.0, + "ty": { + "type": "Default", + "len": { + "type": "Mm" + }, + "angle": { + "type": "Degrees" + } + } + }, + "sourceRange": [] + }, + "axis": { + "value": { + "type": "Array", + "value": [ + { + "type": "Number", + "value": 0.0, + "ty": { + "type": "Default", + "len": { + "type": "Mm" + }, + "angle": { + "type": "Degrees" + } + } + }, + { + "type": "Number", + "value": 1.0, + "ty": { + "type": "Default", + "len": { + "type": "Mm" + }, + "angle": { + "type": "Degrees" + } + } + }, + { + "type": "Number", + "value": 0.0, + "ty": { + "type": "Default", + "len": { + "type": "Mm" + }, + "angle": { + "type": "Degrees" + } + } + } + ] + }, + "sourceRange": [] + }, + "center": { + "value": { + "type": "Array", + "value": [ + { + "type": "Number", + "value": 0.0, + "ty": { + "type": "Default", + "len": { + "type": "Mm" + }, + "angle": { + "type": "Degrees" + } + } + }, + { + "type": "Number", + "value": 0.0, + "ty": { + "type": "Default", + "len": { + "type": "Mm" + }, + "angle": { + "type": "Degrees" + } + } + }, + { + "type": "Number", + "value": 100.0, + "ty": { + "type": "Default", + "len": { + "type": "Mm" + }, + "angle": { + "type": "Degrees" + } + } + } + ] + }, + "sourceRange": [] + }, + "instances": { + "value": { + "type": "Number", + "value": 2.0, + "ty": { + "type": "Default", + "len": { + "type": "Mm" + }, + "angle": { + "type": "Degrees" + } + } + }, + "sourceRange": [] + }, + "rotateDuplicates": { + "value": { + "type": "Bool", + "value": true + }, + "sourceRange": [] + } + }, + "name": "patternCircular3d", + "sourceRange": [], + "type": "StdLibCall", + "unlabeledArg": { + "value": { + "type": "Array", + "value": [ + { + "type": "Solid", + "value": { + "artifactId": "[uuid]" + } + }, + { + "type": "Solid", + "value": { + "artifactId": "[uuid]" + } + }, + { + "type": "Solid", + "value": { + "artifactId": "[uuid]" + } + }, + { + "type": "Solid", + "value": { + "artifactId": "[uuid]" + } + } + ] + }, + "sourceRange": [] + } + }, + { + "labeledArgs": { + "arcDegrees": { + "value": { + "type": "Number", + "value": 360.0, + "ty": { + "type": "Default", + "len": { + "type": "Mm" + }, + "angle": { + "type": "Degrees" + } + } + }, + "sourceRange": [] + }, + "axis": { + "value": { + "type": "Array", + "value": [ + { + "type": "Number", + "value": 0.0, + "ty": { + "type": "Default", + "len": { + "type": "Mm" + }, + "angle": { + "type": "Degrees" + } + } + }, + { + "type": "Number", + "value": 0.0, + "ty": { + "type": "Default", + "len": { + "type": "Mm" + }, + "angle": { + "type": "Degrees" + } + } + }, + { + "type": "Number", + "value": 1.0, + "ty": { + "type": "Default", + "len": { + "type": "Mm" + }, + "angle": { + "type": "Degrees" + } + } + } + ] + }, + "sourceRange": [] + }, + "center": { + "value": { + "type": "Array", + "value": [ + { + "type": "Number", + "value": 0.0, + "ty": { + "type": "Default", + "len": { + "type": "Mm" + }, + "angle": { + "type": "Degrees" + } + } + }, + { + "type": "Number", + "value": 0.0, + "ty": { + "type": "Default", + "len": { + "type": "Mm" + }, + "angle": { + "type": "Degrees" + } + } + }, + { + "type": "Number", + "value": 0.0, + "ty": { + "type": "Default", + "len": { + "type": "Mm" + }, + "angle": { + "type": "Degrees" + } + } + } + ] + }, + "sourceRange": [] + }, + "instances": { + "value": { + "type": "Number", + "value": 2.0, + "ty": { + "type": "Default", + "len": { + "type": "Mm" + }, + "angle": { + "type": "Degrees" + } + } + }, + "sourceRange": [] + }, + "rotateDuplicates": { + "value": { + "type": "Bool", + "value": true + }, + "sourceRange": [] + } + }, + "name": "patternCircular3d", + "sourceRange": [], + "type": "StdLibCall", + "unlabeledArg": { + "value": { + "type": "Array", + "value": [ + { + "type": "Solid", + "value": { + "artifactId": "[uuid]" + } + }, + { + "type": "Solid", + "value": { + "artifactId": "[uuid]" + } + }, + { + "type": "Solid", + "value": { + "artifactId": "[uuid]" + } + }, + { + "type": "Solid", + "value": { + "artifactId": "[uuid]" + } + }, + { + "type": "Solid", + "value": { + "artifactId": "[uuid]" + } + }, + { + "type": "Solid", + "value": { + "artifactId": "[uuid]" + } + }, + { + "type": "Solid", + "value": { + "artifactId": "[uuid]" + } + }, + { + "type": "Solid", + "value": { + "artifactId": "[uuid]" + } + } + ] + }, + "sourceRange": [] + } + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupEnd" + } +] diff --git a/rust/kcl-lib/tests/kcl_samples/cpu-cooler/program_memory.snap b/rust/kcl-lib/tests/kcl_samples/cpu-cooler/program_memory.snap new file mode 100644 index 000000000..a60b37a56 --- /dev/null +++ b/rust/kcl-lib/tests/kcl_samples/cpu-cooler/program_memory.snap @@ -0,0 +1,125 @@ +--- +source: kcl-lib/src/simulation_tests.rs +description: Variables in memory after executing cpu-cooler.kcl +--- +{ + "bendRadius": { + "type": "Number", + "value": 15.0, + "ty": { + "type": "Default", + "len": { + "type": "Mm" + }, + "angle": { + "type": "Degrees" + } + } + }, + "fan": { + "type": "Module", + "value": 4 + }, + "fanHeight": { + "type": "Number", + "value": 25.0, + "ty": { + "type": "Default", + "len": { + "type": "Mm" + }, + "angle": { + "type": "Degrees" + } + } + }, + "fanHousing": { + "type": "Module", + "value": 2 + }, + "fanSize": { + "type": "Number", + "value": 120.0, + "ty": { + "type": "Default", + "len": { + "type": "Mm" + }, + "angle": { + "type": "Degrees" + } + } + }, + "heatSink": { + "type": "Module", + "value": 5 + }, + "heatSinkDepth": { + "type": "Number", + "value": 55.0, + "ty": { + "type": "Default", + "len": { + "type": "Mm" + }, + "angle": { + "type": "Degrees" + } + } + }, + "motor": { + "type": "Module", + "value": 3 + }, + "mountingHoleSize": { + "type": "Number", + "value": 4.5, + "ty": { + "type": "Default", + "len": { + "type": "Mm" + }, + "angle": { + "type": "Degrees" + } + } + }, + "mountingHoleSpacing": { + "type": "Number", + "value": 105.0, + "ty": { + "type": "Default", + "len": { + "type": "Mm" + }, + "angle": { + "type": "Degrees" + } + } + }, + "mountingWire": { + "type": "Module", + "value": 6 + }, + "removableSticker": { + "type": "Module", + "value": 7 + }, + "sheetThickness": { + "type": "Number", + "value": 2.125, + "ty": { + "type": "Default", + "len": { + "type": "Mm" + }, + "angle": { + "type": "Degrees" + } + } + }, + "translatePart": { + "type": "Function", + "value": null + } +} diff --git a/rust/kcl-lib/tests/kcl_samples/cpu-cooler/rendered_model.png b/rust/kcl-lib/tests/kcl_samples/cpu-cooler/rendered_model.png new file mode 100644 index 0000000000000000000000000000000000000000..0c3aa76f570a475996b6be728f8a7b361046aec3 GIT binary patch literal 115423 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[791, 835, 0]"] - 9["Segment
[841, 885, 0]"] - 10["Segment
[891, 934, 0]"] - 11["Segment
[940, 984, 0]"] - 12["Segment
[990, 997, 0]"] - 19[Solid2d] - end - subgraph path6 [Path] - 6["Path
[1084, 1231, 0]"] - 13["Segment
[1084, 1231, 0]"] - 18[Solid2d] - end - subgraph path7 [Path] - 7["Path
[1478, 1627, 0]"] - 14["Segment
[1478, 1627, 0]"] - 17[Solid2d] - end - subgraph path8 [Path] - 8["Path
[1879, 1927, 0]"] - 15["Segment
[1879, 1927, 0]"] - 16[Solid2d] - end - 1["Plane
[768, 785, 0]"] - 2["StartSketchOnFace
[1842, 1873, 0]"] - 3["StartSketchOnFace
[1439, 1472, 0]"] - 4["StartSketchOnFace
[1047, 1078, 0]"] - 20["Sweep Extrusion
[1003, 1027, 0]"] - 21["Sweep Extrusion
[1396, 1425, 0]"] - 22["Sweep Extrusion
[1396, 1425, 0]"] - 23["Sweep Extrusion
[1396, 1425, 0]"] - 24["Sweep Extrusion
[1396, 1425, 0]"] - 25["Sweep Extrusion
[1792, 1827, 0]"] - 26["Sweep Extrusion
[1792, 1827, 0]"] - 27["Sweep Extrusion
[1792, 1827, 0]"] - 28["Sweep Extrusion
[1792, 1827, 0]"] - 29["Sweep Extrusion
[1933, 1958, 0]"] - 30[Wall] - 31[Wall] - 32[Wall] - 33[Wall] - 34[Wall] - 35[Wall] - 36[Wall] - 37["Cap Start"] - 38["Cap Start"] - 39["Cap End"] - 40["SweepEdge Opposite"] - 41["SweepEdge Opposite"] - 42["SweepEdge Opposite"] - 43["SweepEdge Opposite"] - 44["SweepEdge Opposite"] - 45["SweepEdge Opposite"] - 46["SweepEdge Opposite"] - 47["SweepEdge Adjacent"] - 48["SweepEdge Adjacent"] - 49["SweepEdge Adjacent"] - 50["SweepEdge Adjacent"] - 51["SweepEdge Adjacent"] - 52["SweepEdge Adjacent"] - 53["SweepEdge Adjacent"] - 1 --- 5 - 39 x--> 2 - 38 x--> 3 - 39 x--> 4 - 5 --- 9 - 5 --- 10 - 5 --- 11 - 5 --- 12 - 5 --- 19 - 5 ---- 20 - 6 --- 13 - 6 --- 18 - 6 ---- 23 - 39 --- 6 - 7 --- 14 - 7 --- 17 - 7 ---- 26 - 38 --- 7 - 8 --- 15 - 8 --- 16 - 8 ---- 29 - 39 --- 8 - 9 --- 34 - 9 x--> 38 - 9 --- 42 - 9 --- 48 - 10 --- 32 - 10 x--> 38 - 10 --- 41 - 10 --- 51 - 11 --- 31 - 11 x--> 38 - 11 --- 44 - 11 --- 50 - 12 --- 33 - 12 x--> 38 - 12 --- 43 - 12 --- 49 - 13 --- 35 - 13 x--> 39 - 13 --- 45 - 13 --- 52 - 14 --- 30 - 14 x--> 38 - 14 --- 40 - 14 --- 47 - 15 --- 36 - 15 x--> 39 - 15 --- 46 - 15 --- 53 - 20 --- 31 - 20 --- 32 - 20 --- 33 - 20 --- 34 - 20 --- 38 - 20 --- 39 - 20 --- 41 - 20 --- 42 - 20 --- 43 - 20 --- 44 - 20 --- 48 - 20 --- 49 - 20 --- 50 - 20 --- 51 - 23 --- 35 - 23 --- 37 - 23 --- 45 - 23 --- 52 - 26 --- 30 - 26 --- 40 - 26 --- 47 - 29 --- 36 - 29 --- 46 - 29 --- 53 - 40 <--x 30 - 47 <--x 30 - 44 <--x 31 - 50 <--x 31 - 51 <--x 31 - 41 <--x 32 - 48 <--x 32 - 51 <--x 32 - 43 <--x 33 - 49 <--x 33 - 50 <--x 33 - 42 <--x 34 - 48 <--x 34 - 49 <--x 34 - 45 <--x 35 - 52 <--x 35 - 46 <--x 36 - 53 <--x 36 - 45 <--x 37 - 46 <--x 38 - 41 <--x 39 - 42 <--x 39 - 43 <--x 39 - 44 <--x 39 -``` diff --git a/rust/kcl-lib/tests/kcl_samples/parametric-bearing-pillow-block/exported_step.step b/rust/kcl-lib/tests/kcl_samples/parametric-bearing-pillow-block/exported_step.step deleted file mode 100644 index 2433f47fc..000000000 --- a/rust/kcl-lib/tests/kcl_samples/parametric-bearing-pillow-block/exported_step.step +++ /dev/null @@ -1,1564 +0,0 @@ -ISO-10303-21; -HEADER; -FILE_DESCRIPTION((('zoo.dev export')), '2;1'); -FILE_NAME('dump.step', '2021-01-01T00:00:00+00:00', ('Author unknown'), ('Organization unknown'), 'zoo.dev beta', 'zoo.dev', 'Authorization unknown'); -FILE_SCHEMA(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF')); -ENDSEC; -DATA; -#1 = ( - LENGTH_UNIT() - NAMED_UNIT(*) - SI_UNIT($, .METRE.) -); -#2 = UNCERTAINTY_MEASURE_WITH_UNIT(0.00001, #1, 'DISTANCE_ACCURACY_VALUE', $); -#3 = ( - GEOMETRIC_REPRESENTATION_CONTEXT(3) - GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#2)) - GLOBAL_UNIT_ASSIGNED_CONTEXT((#1)) - REPRESENTATION_CONTEXT('', '3D') -); -#4 = CARTESIAN_POINT('NONE', (-0.0508, 0, 0.0762)); -#5 = VERTEX_POINT('NONE', #4); -#6 = CARTESIAN_POINT('NONE', (0.0508, 0, 0.0762)); -#7 = VERTEX_POINT('NONE', #6); -#8 = CARTESIAN_POINT('NONE', (0.0508, 0.0254, 0.0762)); -#9 = VERTEX_POINT('NONE', #8); -#10 = CARTESIAN_POINT('NONE', (-0.0508, 0.0254, 0.0762)); -#11 = VERTEX_POINT('NONE', #10); -#12 = CARTESIAN_POINT('NONE', (0.0508, 0, -0.0762)); -#13 = VERTEX_POINT('NONE', #12); -#14 = CARTESIAN_POINT('NONE', (0.0508, 0.0254, -0.0762)); -#15 = VERTEX_POINT('NONE', #14); -#16 = CARTESIAN_POINT('NONE', (-0.0508, 0, -0.0762)); -#17 = VERTEX_POINT('NONE', #16); -#18 = CARTESIAN_POINT('NONE', (-0.0508, 0.0254, -0.0762)); -#19 = VERTEX_POINT('NONE', #18); -#20 = CARTESIAN_POINT('NONE', (-0.02286, 0.019049, 0.05715)); -#21 = VERTEX_POINT('NONE', #20); -#22 = CARTESIAN_POINT('NONE', (-0.02286, 0.0254, 0.05715)); -#23 = VERTEX_POINT('NONE', #22); -#24 = CARTESIAN_POINT('NONE', (0.04064, 0.019049, 0.05715)); -#25 = VERTEX_POINT('NONE', #24); -#26 = CARTESIAN_POINT('NONE', (0.04064, 0.0254, 0.05715)); -#27 = VERTEX_POINT('NONE', #26); -#28 = CARTESIAN_POINT('NONE', (-0.02286, 0.019049, -0.05715)); -#29 = VERTEX_POINT('NONE', #28); -#30 = CARTESIAN_POINT('NONE', (-0.02286, 0.0254, -0.05715)); -#31 = VERTEX_POINT('NONE', #30); -#32 = CARTESIAN_POINT('NONE', (0.04064, 0.019049, -0.05715)); -#33 = VERTEX_POINT('NONE', #32); -#34 = CARTESIAN_POINT('NONE', (0.04064, 0.0254, -0.05715)); -#35 = VERTEX_POINT('NONE', #34); -#36 = CARTESIAN_POINT('NONE', (0.0269875, 0.019051000000000002, 0.05715)); -#37 = VERTEX_POINT('NONE', #36); -#38 = CARTESIAN_POINT('NONE', (0.0269875, 0, 0.05715)); -#39 = VERTEX_POINT('NONE', #38); -#40 = CARTESIAN_POINT('NONE', (-0.0365125, 0.019051000000000002, 0.05715)); -#41 = VERTEX_POINT('NONE', #40); -#42 = CARTESIAN_POINT('NONE', (-0.0365125, 0, 0.05715)); -#43 = VERTEX_POINT('NONE', #42); -#44 = CARTESIAN_POINT('NONE', (0.0269875, 0.019051000000000002, -0.05715)); -#45 = VERTEX_POINT('NONE', #44); -#46 = CARTESIAN_POINT('NONE', (0.0269875, 0, -0.05715)); -#47 = VERTEX_POINT('NONE', #46); -#48 = CARTESIAN_POINT('NONE', (-0.0365125, 0.019051000000000002, -0.05715)); -#49 = VERTEX_POINT('NONE', #48); -#50 = CARTESIAN_POINT('NONE', (-0.0365125, 0, -0.05715)); -#51 = VERTEX_POINT('NONE', #50); -#52 = CARTESIAN_POINT('NONE', (0.0381, -0.0000010000000000012222, -0)); -#53 = VERTEX_POINT('NONE', #52); -#54 = CARTESIAN_POINT('NONE', (0.0381, 0.0254, -0)); -#55 = VERTEX_POINT('NONE', #54); -#56 = DIRECTION('NONE', (1, 0, 0)); -#57 = VECTOR('NONE', #56, 1); -#58 = CARTESIAN_POINT('NONE', (-0.0508, 0, 0.0762)); -#59 = LINE('NONE', #58, #57); -#60 = DIRECTION('NONE', (0, 1, 0)); -#61 = VECTOR('NONE', #60, 1); -#62 = CARTESIAN_POINT('NONE', (0.0508, 0, 0.0762)); -#63 = LINE('NONE', #62, #61); -#64 = DIRECTION('NONE', (1, 0, 0)); -#65 = VECTOR('NONE', #64, 1); -#66 = CARTESIAN_POINT('NONE', (-0.0508, 0.0254, 0.0762)); -#67 = LINE('NONE', #66, #65); -#68 = DIRECTION('NONE', (0, 1, 0)); -#69 = VECTOR('NONE', #68, 1); -#70 = CARTESIAN_POINT('NONE', (-0.0508, 0, 0.0762)); -#71 = LINE('NONE', #70, #69); -#72 = DIRECTION('NONE', (0, 0, -1)); -#73 = VECTOR('NONE', #72, 1); -#74 = CARTESIAN_POINT('NONE', (0.0508, 0, 0.0762)); -#75 = LINE('NONE', #74, #73); -#76 = DIRECTION('NONE', (0, 1, 0)); -#77 = VECTOR('NONE', #76, 1); -#78 = CARTESIAN_POINT('NONE', (0.0508, 0, -0.0762)); -#79 = LINE('NONE', #78, #77); -#80 = DIRECTION('NONE', (0, 0, -1)); -#81 = VECTOR('NONE', #80, 1); -#82 = CARTESIAN_POINT('NONE', (0.0508, 0.0254, 0.0762)); -#83 = LINE('NONE', #82, #81); -#84 = DIRECTION('NONE', (-1, 0, 0)); -#85 = VECTOR('NONE', #84, 1); -#86 = CARTESIAN_POINT('NONE', (0.0508, 0, -0.0762)); -#87 = LINE('NONE', #86, #85); -#88 = DIRECTION('NONE', (0, 1, 0)); -#89 = VECTOR('NONE', #88, 1); -#90 = CARTESIAN_POINT('NONE', (-0.0508, 0, -0.0762)); -#91 = LINE('NONE', #90, #89); -#92 = DIRECTION('NONE', (-1, 0, 0)); -#93 = VECTOR('NONE', #92, 1); -#94 = CARTESIAN_POINT('NONE', (0.0508, 0.0254, -0.0762)); -#95 = LINE('NONE', #94, #93); -#96 = DIRECTION('NONE', (0, 0, 1)); -#97 = VECTOR('NONE', #96, 1); -#98 = CARTESIAN_POINT('NONE', (-0.0508, 0, -0.0762)); -#99 = LINE('NONE', #98, #97); -#100 = DIRECTION('NONE', (0, 0, 1)); -#101 = VECTOR('NONE', #100, 1); -#102 = CARTESIAN_POINT('NONE', (-0.0508, 0.0254, -0.0762)); -#103 = LINE('NONE', #102, #101); -#104 = DIRECTION('NONE', (1, 0, 0.0000000000000007992606701463447)); -#105 = DIRECTION('NONE', (-0, 1, 0)); -#106 = CARTESIAN_POINT('NONE', (-0.031749999999999994, 0.019049, 0.05714999999999999)); -#107 = AXIS2_PLACEMENT_3D('NONE', #106, #105, #104); -#108 = CIRCLE('NONE', #107, 0.008889999999999997); -#109 = DIRECTION('NONE', (0, 1, 0)); -#110 = VECTOR('NONE', #109, 1); -#111 = CARTESIAN_POINT('NONE', (-0.02286, 0.019049, 0.05715)); -#112 = LINE('NONE', #111, #110); -#113 = DIRECTION('NONE', (1, 0, 0.0000000000000007992606701463447)); -#114 = DIRECTION('NONE', (-0, 1, 0)); -#115 = CARTESIAN_POINT('NONE', (-0.031749999999999994, 0.0254, 0.05714999999999999)); -#116 = AXIS2_PLACEMENT_3D('NONE', #115, #114, #113); -#117 = CIRCLE('NONE', #116, 0.008889999999999997); -#118 = DIRECTION('NONE', (1, 0, 0.000000000000000799260670146344)); -#119 = DIRECTION('NONE', (-0, 1, 0)); -#120 = CARTESIAN_POINT('NONE', (0.031749999999999994, 0.019049, 0.05714999999999999)); -#121 = AXIS2_PLACEMENT_3D('NONE', #120, #119, #118); -#122 = CIRCLE('NONE', #121, 0.008890000000000004); -#123 = DIRECTION('NONE', (0, 1, 0)); -#124 = VECTOR('NONE', #123, 1); -#125 = CARTESIAN_POINT('NONE', (0.04064, 0.019049, 0.05715)); -#126 = LINE('NONE', #125, #124); -#127 = DIRECTION('NONE', (1, 0, 0.000000000000000799260670146344)); -#128 = DIRECTION('NONE', (-0, 1, 0)); -#129 = CARTESIAN_POINT('NONE', (0.031749999999999994, 0.0254, 0.05714999999999999)); -#130 = AXIS2_PLACEMENT_3D('NONE', #129, #128, #127); -#131 = CIRCLE('NONE', #130, 0.008890000000000004); -#132 = DIRECTION('NONE', (1, 0, -0.0000000000000007992606701463443)); -#133 = DIRECTION('NONE', (0, 1, 0)); -#134 = CARTESIAN_POINT('NONE', (-0.03175, 0.019049, -0.05714999999999999)); -#135 = AXIS2_PLACEMENT_3D('NONE', #134, #133, #132); -#136 = CIRCLE('NONE', #135, 0.00889); -#137 = DIRECTION('NONE', (0, 1, 0)); -#138 = VECTOR('NONE', #137, 1); -#139 = CARTESIAN_POINT('NONE', (-0.02286, 0.019049, -0.05715)); -#140 = LINE('NONE', #139, #138); -#141 = DIRECTION('NONE', (1, 0, -0.0000000000000007992606701463443)); -#142 = DIRECTION('NONE', (0, 1, 0)); -#143 = CARTESIAN_POINT('NONE', (-0.03175, 0.0254, -0.05714999999999999)); -#144 = AXIS2_PLACEMENT_3D('NONE', #143, #142, #141); -#145 = CIRCLE('NONE', #144, 0.00889); -#146 = DIRECTION('NONE', (1, 0, -0.0000000000000007992606701463447)); -#147 = DIRECTION('NONE', (0, 1, 0)); -#148 = CARTESIAN_POINT('NONE', (0.03175, 0.019049, -0.05714999999999999)); -#149 = AXIS2_PLACEMENT_3D('NONE', #148, #147, #146); -#150 = CIRCLE('NONE', #149, 0.008889999999999997); -#151 = DIRECTION('NONE', (0, 1, 0)); -#152 = VECTOR('NONE', #151, 1); -#153 = CARTESIAN_POINT('NONE', (0.04064, 0.019049, -0.05715)); -#154 = LINE('NONE', #153, #152); -#155 = DIRECTION('NONE', (1, 0, -0.0000000000000007992606701463447)); -#156 = DIRECTION('NONE', (0, 1, 0)); -#157 = CARTESIAN_POINT('NONE', (0.03175, 0.0254, -0.05714999999999999)); -#158 = AXIS2_PLACEMENT_3D('NONE', #157, #156, #155); -#159 = CIRCLE('NONE', #158, 0.008889999999999997); -#160 = CARTESIAN_POINT('NONE', (0.0269875, 0.019049, 0.05715)); -#161 = CARTESIAN_POINT('NONE', (0.026992482374057148, 0.019049, 0.05693363339700987)); -#162 = CARTESIAN_POINT('NONE', (0.02699254808850517, 0.019049, 0.05693077965465271)); -#163 = CARTESIAN_POINT('NONE', (0.02700784782707539, 0.019049, 0.056710957183123197)); -#164 = CARTESIAN_POINT('NONE', (0.027008049621212782, 0.019049, 0.0567080578599865)); -#165 = CARTESIAN_POINT('NONE', (0.02703416453698099, 0.019049, 0.05648544037587615)); -#166 = CARTESIAN_POINT('NONE', (0.027034508976650752, 0.019049, 0.056482504188243354)); -#167 = CARTESIAN_POINT('NONE', (0.027071887279112784, 0.019049, 0.056257821004650696)); -#168 = CARTESIAN_POINT('NONE', (0.02707238027592237, 0.019049, 0.056254857571712814)); -#169 = CARTESIAN_POINT('NONE', (0.027121410367940815, 0.019049, 0.05602890269408173)); -#170 = CARTESIAN_POINT('NONE', (0.027122057044684983, 0.019049, 0.05602592248828199)); -#171 = CARTESIAN_POINT('NONE', (0.027183057495950316, 0.019049, 0.05579954916866802)); -#172 = CARTESIAN_POINT('NONE', (0.02718386205436726, 0.019049, 0.055796563443876006)); -#173 = CARTESIAN_POINT('NONE', (0.02725707205792741, 0.019049, 0.05557067701782111)); -#174 = CARTESIAN_POINT('NONE', (0.02725803765282625, 0.019049, 0.05556769771485555)); -#175 = CARTESIAN_POINT('NONE', (0.02734360829095243, 0.019049, 0.055343246745844295)); -#176 = CARTESIAN_POINT('NONE', (0.02734473691501536, 0.019049, 0.055340286375673856)); -#177 = CARTESIAN_POINT('NONE', (0.0274427235672502, 0.019049, 0.05511825220075177)); -#178 = CARTESIAN_POINT('NONE', (0.027444015950899316, 0.019049, 0.05511532370660824)); -#179 = CARTESIAN_POINT('NONE', (0.02755437216778796, 0.019049, 0.054896708549276654)); -#180 = CARTESIAN_POINT('NONE', (0.027555827698383523, 0.019049, 0.054893825149871324)); -#181 = CARTESIAN_POINT('NONE', (0.027678400837579598, 0.019049, 0.05467963903875645)); -#182 = CARTESIAN_POINT('NONE', (0.02768001750186299, 0.019049, 0.05467681405574542)); -#183 = CARTESIAN_POINT('NONE', (0.027814546378636923, 0.019049, 0.054468060855146036)); -#184 = CARTESIAN_POINT('NONE', (0.027816320731742276, 0.019049, 0.05446530752888168)); -#185 = CARTESIAN_POINT('NONE', (0.027962435474352593, 0.019049, 0.05426297044529378)); -#186 = CARTESIAN_POINT('NONE', (0.02796436263789923, 0.019049, 0.05426030174366479)); -#187 = CARTESIAN_POINT('NONE', (0.028045833333333332, 0.019049, 0.05415927031410608)); -#188 = CARTESIAN_POINT('NONE', (0.028121586862202137, 0.019049, 0.05406532871614926)); -#189 = CARTESIAN_POINT('NONE', (0.02812366055297633, 0.019049, 0.05406275714188856)); -#190 = CARTESIAN_POINT('NONE', (0.028291415883794434, 0.019049, 0.053876046549760574)); -#191 = CARTESIAN_POINT('NONE', (0.028293628473383486, 0.019049, 0.05387358395193854)); -#192 = CARTESIAN_POINT('NONE', (0.028383606212661013, 0.019049, 0.05378360621266101)); -#193 = CARTESIAN_POINT('NONE', (0.02847124134742006, 0.019049, 0.05369597107790197)); -#194 = CARTESIAN_POINT('NONE', (0.028473583951938546, 0.019049, 0.053693628473383485)); -#195 = CARTESIAN_POINT('NONE', (0.028660294544066527, 0.019049, 0.05352587314256537)); -#196 = CARTESIAN_POINT('NONE', (0.028662757141888564, 0.019049, 0.053523660552976325)); -#197 = CARTESIAN_POINT('NONE', (0.02875927031410607, 0.019049, 0.05344583333333333)); -#198 = CARTESIAN_POINT('NONE', (0.028857730169404093, 0.019049, 0.053366436328673425)); -#199 = CARTESIAN_POINT('NONE', (0.02886030174366479, 0.019049, 0.053364362637899225)); -#200 = CARTESIAN_POINT('NONE', (0.02906263882725269, 0.019049, 0.05321824789528891)); -#201 = CARTESIAN_POINT('NONE', (0.02906530752888168, 0.019049, 0.05321632073174227)); -#202 = CARTESIAN_POINT('NONE', (0.029274060729481063, 0.019049, 0.05308179185496834)); -#203 = CARTESIAN_POINT('NONE', (0.029276814055745424, 0.019049, 0.05308001750186299)); -#204 = CARTESIAN_POINT('NONE', (0.029491000166860293, 0.019049, 0.05295744436266692)); -#205 = CARTESIAN_POINT('NONE', (0.029493825149871335, 0.019049, 0.05295582769838352)); -#206 = CARTESIAN_POINT('NONE', (0.029712440307202912, 0.019049, 0.05284547148149489)); -#207 = CARTESIAN_POINT('NONE', (0.02971532370660824, 0.019049, 0.05284401595089932)); -#208 = CARTESIAN_POINT('NONE', (0.02993735788153034, 0.019049, 0.05274602929866447)); -#209 = CARTESIAN_POINT('NONE', (0.02994028637567386, 0.019049, 0.05274473691501536)); -#210 = CARTESIAN_POINT('NONE', (0.03016473734468511, 0.019049, 0.05265916627688918)); -#211 = CARTESIAN_POINT('NONE', (0.03016769771485555, 0.019049, 0.05265803765282625)); -#212 = CARTESIAN_POINT('NONE', (0.03039358414091043, 0.019049, 0.052584827649266086)); -#213 = CARTESIAN_POINT('NONE', (0.030396563443875996, 0.019049, 0.05258386205436724)); -#214 = CARTESIAN_POINT('NONE', (0.030622936763489983, 0.019049, 0.05252286160310193)); -#215 = CARTESIAN_POINT('NONE', (0.030625922488281998, 0.019049, 0.05252205704468498)); -#216 = CARTESIAN_POINT('NONE', (0.03085187736591307, 0.019049, 0.05247302695266652)); -#217 = CARTESIAN_POINT('NONE', (0.030854857571712805, 0.019049, 0.05247238027592235)); -#218 = CARTESIAN_POINT('NONE', (0.031079540755305467, 0.019049, 0.05243500197346033)); -#219 = CARTESIAN_POINT('NONE', (0.031082504188243352, 0.019049, 0.052434508976650744)); -#220 = CARTESIAN_POINT('NONE', (0.0313051216723537, 0.019049, 0.05240839406088253)); -#221 = CARTESIAN_POINT('NONE', (0.03130805785998649, 0.019049, 0.05240804962121277)); -#222 = CARTESIAN_POINT('NONE', (0.03152788033151601, 0.019049, 0.05239274988264256)); -#223 = CARTESIAN_POINT('NONE', (0.03153077965465271, 0.019049, 0.052392548088505166)); -#224 = CARTESIAN_POINT('NONE', (0.03174714625764284, 0.019049, 0.05238756571444802)); -#225 = CARTESIAN_POINT('NONE', (0.03175, 0.019049, 0.0523875)); -#226 = CARTESIAN_POINT('NONE', (0.03196636660299013, 0.019049, 0.052392482374057144)); -#227 = CARTESIAN_POINT('NONE', (0.031969220345347285, 0.019049, 0.052392548088505166)); -#228 = CARTESIAN_POINT('NONE', (0.0321890428168768, 0.019049, 0.05240784782707537)); -#229 = CARTESIAN_POINT('NONE', (0.0321919421400135, 0.019049, 0.05240804962121276)); -#230 = CARTESIAN_POINT('NONE', (0.03241455962412385, 0.019049, 0.05243416453698098)); -#231 = CARTESIAN_POINT('NONE', (0.032417495811756646, 0.019049, 0.05243450897665074)); -#232 = CARTESIAN_POINT('NONE', (0.032642178995349304, 0.019049, 0.05247188727911278)); -#233 = CARTESIAN_POINT('NONE', (0.03264514242828719, 0.019049, 0.05247238027592237)); -#234 = CARTESIAN_POINT('NONE', (0.03287109730591826, 0.019049, 0.052521410367940814)); -#235 = CARTESIAN_POINT('NONE', (0.032874077511717996, 0.019049, 0.05252205704468498)); -#236 = CARTESIAN_POINT('NONE', (0.033100450831331986, 0.019049, 0.05258305749595031)); -#237 = CARTESIAN_POINT('NONE', (0.033103436556124, 0.019049, 0.052583862054367256)); -#238 = CARTESIAN_POINT('NONE', (0.033329322982178874, 0.019049, 0.05265707205792741)); -#239 = CARTESIAN_POINT('NONE', (0.03333230228514444, 0.019049, 0.05265803765282625)); -#240 = CARTESIAN_POINT('NONE', (0.03355675325415569, 0.019049, 0.05274360829095244)); -#241 = CARTESIAN_POINT('NONE', (0.03355971362432614, 0.019049, 0.05274473691501537)); -#242 = CARTESIAN_POINT('NONE', (0.03378174779924824, 0.019049, 0.052842723567250206)); -#243 = CARTESIAN_POINT('NONE', (0.03378467629339177, 0.019049, 0.05284401595089932)); -#244 = CARTESIAN_POINT('NONE', (0.03400329145072335, 0.019049, 0.05295437216778794)); -#245 = CARTESIAN_POINT('NONE', (0.03400617485012868, 0.019049, 0.052955827698383515)); -#246 = CARTESIAN_POINT('NONE', (0.03422036096124354, 0.019049, 0.05307840083757959)); -#247 = CARTESIAN_POINT('NONE', (0.03422318594425458, 0.019049, 0.05308001750186298)); -#248 = CARTESIAN_POINT('NONE', (0.03443193914485396, 0.019049, 0.05321454637863691)); -#249 = CARTESIAN_POINT('NONE', (0.034434692471118314, 0.019049, 0.05321632073174226)); -#250 = CARTESIAN_POINT('NONE', (0.03463702955470621, 0.019049, 0.053362435474352585)); -#251 = CARTESIAN_POINT('NONE', (0.0346396982563352, 0.019049, 0.053364362637899225)); -#252 = CARTESIAN_POINT('NONE', (0.03474072968589392, 0.019049, 0.05344583333333333)); -#253 = CARTESIAN_POINT('NONE', (0.03483467128385074, 0.019049, 0.05352158686220213)); -#254 = CARTESIAN_POINT('NONE', (0.034837242858111434, 0.019049, 0.053523660552976325)); -#255 = CARTESIAN_POINT('NONE', (0.03502395345023941, 0.019049, 0.053691415883794426)); -#256 = CARTESIAN_POINT('NONE', (0.03502641604806145, 0.019049, 0.05369362847338348)); -#257 = CARTESIAN_POINT('NONE', (0.03520402892209803, 0.019049, 0.053871241347420044)); -#258 = CARTESIAN_POINT('NONE', (0.035206371526616514, 0.019049, 0.05387358395193854)); -#259 = CARTESIAN_POINT('NONE', (0.035374126857434615, 0.019049, 0.05406029454406653)); -#260 = CARTESIAN_POINT('NONE', (0.03537633944702367, 0.019049, 0.05406275714188856)); -#261 = CARTESIAN_POINT('NONE', (0.03545416666666667, 0.019049, 0.05415927031410608)); -#262 = CARTESIAN_POINT('NONE', (0.035533563671326575, 0.019049, 0.05425773016940409)); -#263 = CARTESIAN_POINT('NONE', (0.035535637362100775, 0.019049, 0.05426030174366479)); -#264 = CARTESIAN_POINT('NONE', (0.035681752104711084, 0.019049, 0.05446263882725269)); -#265 = CARTESIAN_POINT('NONE', (0.035683679268257724, 0.019049, 0.05446530752888168)); -#266 = CARTESIAN_POINT('NONE', (0.035818208145031664, 0.019049, 0.054674060729481055)); -#267 = CARTESIAN_POINT('NONE', (0.03581998249813702, 0.019049, 0.05467681405574541)); -#268 = CARTESIAN_POINT('NONE', (0.03594255563733309, 0.019049, 0.054891000166860285)); -#269 = CARTESIAN_POINT('NONE', (0.03594417230161649, 0.019049, 0.05489382514987133)); -#270 = CARTESIAN_POINT('NONE', (0.03605452851850512, 0.019049, 0.055112440307202915)); -#271 = CARTESIAN_POINT('NONE', (0.036055984049100695, 0.019049, 0.055115323706608245)); -#272 = CARTESIAN_POINT('NONE', (0.036153970701335525, 0.019049, 0.05533735788153033)); -#273 = CARTESIAN_POINT('NONE', (0.03615526308498463, 0.019049, 0.055340286375673856)); -#274 = CARTESIAN_POINT('NONE', (0.036240833723110814, 0.019049, 0.0555647373446851)); -#275 = CARTESIAN_POINT('NONE', (0.036241962347173744, 0.019049, 0.05556769771485555)); -#276 = CARTESIAN_POINT('NONE', (0.03631517235073389, 0.019049, 0.055793584140910416)); -#277 = CARTESIAN_POINT('NONE', (0.03631613794563274, 0.019049, 0.05579656344387599)); -#278 = CARTESIAN_POINT('NONE', (0.03637713839689807, 0.019049, 0.05602293676348998)); -#279 = CARTESIAN_POINT('NONE', (0.03637794295531502, 0.019049, 0.056025922488282)); -#280 = CARTESIAN_POINT('NONE', (0.036426973047333465, 0.019049, 0.05625187736591306)); -#281 = CARTESIAN_POINT('NONE', (0.03642761972407763, 0.019049, 0.05625485757171281)); -#282 = CARTESIAN_POINT('NONE', (0.03646499802653966, 0.019049, 0.056479540755305466)); -#283 = CARTESIAN_POINT('NONE', (0.03646549102334924, 0.019049, 0.05648250418824335)); -#284 = CARTESIAN_POINT('NONE', (0.03649160593911746, 0.019049, 0.0567051216723537)); -#285 = CARTESIAN_POINT('NONE', (0.036491950378787226, 0.019049, 0.05670805785998649)); -#286 = CARTESIAN_POINT('NONE', (0.036507250117357434, 0.019049, 0.056927880331516)); -#287 = CARTESIAN_POINT('NONE', (0.036507451911494834, 0.019049, 0.0569307796546527)); -#288 = CARTESIAN_POINT('NONE', (0.03651243428555198, 0.019049, 0.05714714625764285)); -#289 = CARTESIAN_POINT('NONE', (0.0365125, 0.019049, 0.05715)); -#290 = CARTESIAN_POINT('NONE', (0.036507517625942856, 0.019049, 0.05736636660299013)); -#291 = CARTESIAN_POINT('NONE', (0.036507451911494834, 0.019049, 0.057369220345347284)); -#292 = CARTESIAN_POINT('NONE', (0.03649215217292462, 0.019049, 0.0575890428168768)); -#293 = CARTESIAN_POINT('NONE', (0.036491950378787226, 0.019049, 0.0575919421400135)); -#294 = CARTESIAN_POINT('NONE', (0.03646583546301901, 0.019049, 0.05781455962412385)); -#295 = CARTESIAN_POINT('NONE', (0.03646549102334924, 0.019049, 0.057817495811756645)); -#296 = CARTESIAN_POINT('NONE', (0.036428112720887224, 0.019049, 0.058042178995349296)); -#297 = CARTESIAN_POINT('NONE', (0.03642761972407764, 0.019049, 0.058045142428287184)); -#298 = CARTESIAN_POINT('NONE', (0.036378589632059186, 0.019049, 0.05827109730591824)); -#299 = CARTESIAN_POINT('NONE', (0.03637794295531502, 0.019049, 0.05827407751171799)); -#300 = CARTESIAN_POINT('NONE', (0.03631694250404968, 0.019049, 0.05850045083133198)); -#301 = CARTESIAN_POINT('NONE', (0.03631613794563274, 0.019049, 0.05850343655612399)); -#302 = CARTESIAN_POINT('NONE', (0.036242927942072595, 0.019049, 0.05872932298217886)); -#303 = CARTESIAN_POINT('NONE', (0.03624196234717375, 0.019049, 0.058732302285144436)); -#304 = CARTESIAN_POINT('NONE', (0.03615639170904757, 0.019049, 0.05895675325415569)); -#305 = CARTESIAN_POINT('NONE', (0.03615526308498464, 0.019049, 0.058959713624326136)); -#306 = CARTESIAN_POINT('NONE', (0.03605727643274981, 0.019049, 0.05918174779924824)); -#307 = CARTESIAN_POINT('NONE', (0.036055984049100695, 0.019049, 0.05918467629339177)); -#308 = CARTESIAN_POINT('NONE', (0.035945627832212064, 0.019049, 0.05940329145072335)); -#309 = CARTESIAN_POINT('NONE', (0.03594417230161649, 0.019049, 0.05940617485012868)); -#310 = CARTESIAN_POINT('NONE', (0.03582159916242041, 0.019049, 0.05962036096124353)); -#311 = CARTESIAN_POINT('NONE', (0.03581998249813702, 0.019049, 0.05962318594425457)); -#312 = CARTESIAN_POINT('NONE', (0.03568545362136307, 0.019049, 0.05983193914485395)); -#313 = CARTESIAN_POINT('NONE', (0.03568367926825772, 0.019049, 0.0598346924711183)); -#314 = CARTESIAN_POINT('NONE', (0.03553756452564741, 0.019049, 0.06003702955470621)); -#315 = CARTESIAN_POINT('NONE', (0.035535637362100775, 0.019049, 0.0600396982563352)); -#316 = CARTESIAN_POINT('NONE', (0.03545416666666667, 0.019049, 0.060140729685893915)); -#317 = CARTESIAN_POINT('NONE', (0.035378413137797854, 0.019049, 0.06023467128385074)); -#318 = CARTESIAN_POINT('NONE', (0.03537633944702367, 0.019049, 0.06023724285811143)); -#319 = CARTESIAN_POINT('NONE', (0.03520858411620557, 0.019049, 0.060423953450239404)); -#320 = CARTESIAN_POINT('NONE', (0.035206371526616514, 0.019049, 0.06042641604806144)); -#321 = CARTESIAN_POINT('NONE', (0.03511639378733898, 0.019049, 0.06051639378733898)); -#322 = CARTESIAN_POINT('NONE', (0.03502875865257994, 0.019049, 0.06060402892209802)); -#323 = CARTESIAN_POINT('NONE', (0.03502641604806145, 0.019049, 0.060606371526616507)); -#324 = CARTESIAN_POINT('NONE', (0.03483970545593346, 0.019049, 0.060774126857434614)); -#325 = CARTESIAN_POINT('NONE', (0.034837242858111434, 0.019049, 0.06077633944702367)); -#326 = CARTESIAN_POINT('NONE', (0.03474072968589392, 0.019049, 0.06085416666666666)); -#327 = CARTESIAN_POINT('NONE', (0.03464226983059591, 0.019049, 0.06093356367132657)); -#328 = CARTESIAN_POINT('NONE', (0.03463969825633521, 0.019049, 0.06093563736210077)); -#329 = CARTESIAN_POINT('NONE', (0.03443736117274731, 0.019049, 0.061081752104711076)); -#330 = CARTESIAN_POINT('NONE', (0.03443469247111832, 0.019049, 0.061083679268257716)); -#331 = CARTESIAN_POINT('NONE', (0.03422593927051894, 0.019049, 0.06121820814503164)); -#332 = CARTESIAN_POINT('NONE', (0.03422318594425458, 0.019049, 0.061219982498137)); -#333 = CARTESIAN_POINT('NONE', (0.03400899983313972, 0.019049, 0.06134255563733308)); -#334 = CARTESIAN_POINT('NONE', (0.03400617485012868, 0.019049, 0.061344172301616484)); -#335 = CARTESIAN_POINT('NONE', (0.0337875596927971, 0.019049, 0.061454528518505115)); -#336 = CARTESIAN_POINT('NONE', (0.03378467629339177, 0.019049, 0.06145598404910069)); -#337 = CARTESIAN_POINT('NONE', (0.03356264211846966, 0.019049, 0.061553970701335524)); -#338 = CARTESIAN_POINT('NONE', (0.03355971362432614, 0.019049, 0.061555263084984636)); -#339 = CARTESIAN_POINT('NONE', (0.033335262655314876, 0.019049, 0.061640833723110806)); -#340 = CARTESIAN_POINT('NONE', (0.03333230228514444, 0.019049, 0.061641962347173736)); -#341 = CARTESIAN_POINT('NONE', (0.033106415859089564, 0.019049, 0.061715172350733885)); -#342 = CARTESIAN_POINT('NONE', (0.033103436556123994, 0.019049, 0.06171613794563273)); -#343 = CARTESIAN_POINT('NONE', (0.03287706323651002, 0.019049, 0.06177713839689807)); -#344 = CARTESIAN_POINT('NONE', (0.032874077511717996, 0.019049, 0.06177794295531502)); -#345 = CARTESIAN_POINT('NONE', (0.032648122634086923, 0.019049, 0.061826973047333464)); -#346 = CARTESIAN_POINT('NONE', (0.03264514242828718, 0.019049, 0.06182761972407763)); -#347 = CARTESIAN_POINT('NONE', (0.03242045924469453, 0.019049, 0.06186499802653966)); -#348 = CARTESIAN_POINT('NONE', (0.032417495811756646, 0.019049, 0.06186549102334924)); -#349 = CARTESIAN_POINT('NONE', (0.032194878327646295, 0.019049, 0.06189160593911745)); -#350 = CARTESIAN_POINT('NONE', (0.0321919421400135, 0.019049, 0.06189195037878721)); -#351 = CARTESIAN_POINT('NONE', (0.031972119668484, 0.019049, 0.06190725011735743)); -#352 = CARTESIAN_POINT('NONE', (0.03196922034534729, 0.019049, 0.06190745191149483)); -#353 = CARTESIAN_POINT('NONE', (0.03175285374235716, 0.019049, 0.06191243428555198)); -#354 = CARTESIAN_POINT('NONE', (0.03175, 0.019049, 0.0619125)); -#355 = CARTESIAN_POINT('NONE', (0.03153363339700987, 0.019049, 0.06190751762594285)); -#356 = CARTESIAN_POINT('NONE', (0.03153077965465271, 0.019049, 0.06190745191149483)); -#357 = CARTESIAN_POINT('NONE', (0.03131095718312319, 0.019049, 0.06189215217292461)); -#358 = CARTESIAN_POINT('NONE', (0.03130805785998649, 0.019049, 0.06189195037878721)); -#359 = CARTESIAN_POINT('NONE', (0.031085440375876138, 0.019049, 0.061865835463019006)); -#360 = CARTESIAN_POINT('NONE', (0.03108250418824335, 0.019049, 0.06186549102334924)); -#361 = CARTESIAN_POINT('NONE', (0.030857821004650707, 0.019049, 0.061828112720887236)); -#362 = CARTESIAN_POINT('NONE', (0.030854857571712815, 0.019049, 0.06182761972407765)); -#363 = CARTESIAN_POINT('NONE', (0.03062890269408175, 0.019049, 0.06177858963205919)); -#364 = CARTESIAN_POINT('NONE', (0.030625922488282005, 0.019049, 0.061777942955315024)); -#365 = CARTESIAN_POINT('NONE', (0.03039954916866802, 0.019049, 0.06171694250404969)); -#366 = CARTESIAN_POINT('NONE', (0.030396563443875996, 0.019049, 0.06171613794563274)); -#367 = CARTESIAN_POINT('NONE', (0.030170677017821137, 0.019049, 0.06164292794207259)); -#368 = CARTESIAN_POINT('NONE', (0.03016769771485556, 0.019049, 0.06164196234717374)); -#369 = CARTESIAN_POINT('NONE', (0.029943246745844313, 0.019049, 0.06155639170904758)); -#370 = CARTESIAN_POINT('NONE', (0.029940286375673867, 0.019049, 0.06155526308498464)); -#371 = CARTESIAN_POINT('NONE', (0.029718252200751773, 0.019049, 0.06145727643274981)); -#372 = CARTESIAN_POINT('NONE', (0.029715323706608242, 0.019049, 0.0614559840491007)); -#373 = CARTESIAN_POINT('NONE', (0.02949670854927666, 0.019049, 0.06134562783221204)); -#374 = CARTESIAN_POINT('NONE', (0.029493825149871335, 0.019049, 0.061344172301616484)); -#375 = CARTESIAN_POINT('NONE', (0.02927963903875646, 0.019049, 0.061221599162420405)); -#376 = CARTESIAN_POINT('NONE', (0.029276814055745424, 0.019049, 0.06121998249813701)); -#377 = CARTESIAN_POINT('NONE', (0.029068060855146027, 0.019049, 0.06108545362136306)); -#378 = CARTESIAN_POINT('NONE', (0.029065307528881677, 0.019049, 0.06108367926825771)); -#379 = CARTESIAN_POINT('NONE', (0.028862970445293786, 0.019049, 0.06093756452564742)); -#380 = CARTESIAN_POINT('NONE', (0.028860301743664798, 0.019049, 0.06093563736210079)); -#381 = CARTESIAN_POINT('NONE', (0.028759270314106057, 0.019049, 0.06085416666666666)); -#382 = CARTESIAN_POINT('NONE', (0.028665328716149262, 0.019049, 0.06077841313779786)); -#383 = CARTESIAN_POINT('NONE', (0.028662757141888567, 0.019049, 0.060776339447023674)); -#384 = CARTESIAN_POINT('NONE', (0.028476046549760586, 0.019049, 0.06060858411620556)); -#385 = CARTESIAN_POINT('NONE', (0.028473583951938546, 0.019049, 0.060606371526616507)); -#386 = CARTESIAN_POINT('NONE', (0.028295971077901983, 0.019049, 0.060428758652579954)); -#387 = CARTESIAN_POINT('NONE', (0.028293628473383493, 0.019049, 0.06042641604806146)); -#388 = CARTESIAN_POINT('NONE', (0.02812587314256538, 0.019049, 0.06023970545593346)); -#389 = CARTESIAN_POINT('NONE', (0.02812366055297633, 0.019049, 0.06023724285811143)); -#390 = CARTESIAN_POINT('NONE', (0.028045833333333332, 0.019049, 0.06014072968589391)); -#391 = CARTESIAN_POINT('NONE', (0.02796643632867343, 0.019049, 0.0600422698305959)); -#392 = CARTESIAN_POINT('NONE', (0.027964362637899236, 0.019049, 0.0600396982563352)); -#393 = CARTESIAN_POINT('NONE', (0.027818247895288917, 0.019049, 0.059837361172747315)); -#394 = CARTESIAN_POINT('NONE', (0.02781632073174228, 0.019049, 0.05983469247111833)); -#395 = CARTESIAN_POINT('NONE', (0.027681791854968347, 0.019049, 0.059625939270518936)); -#396 = CARTESIAN_POINT('NONE', (0.027680017501862993, 0.019049, 0.05962318594425458)); -#397 = CARTESIAN_POINT('NONE', (0.027557444362666928, 0.019049, 0.05940899983313972)); -#398 = CARTESIAN_POINT('NONE', (0.02755582769838353, 0.019049, 0.05940617485012868)); -#399 = CARTESIAN_POINT('NONE', (0.027445471481494885, 0.019049, 0.05918755969279709)); -#400 = CARTESIAN_POINT('NONE', (0.027444015950899316, 0.019049, 0.05918467629339177)); -#401 = CARTESIAN_POINT('NONE', (0.027346029298664476, 0.019049, 0.05896264211846967)); -#402 = CARTESIAN_POINT('NONE', (0.027344736915015364, 0.019049, 0.05895971362432614)); -#403 = CARTESIAN_POINT('NONE', (0.027259166276889187, 0.019049, 0.05873526265531488)); -#404 = CARTESIAN_POINT('NONE', (0.027258037652826257, 0.019049, 0.05873230228514444)); -#405 = CARTESIAN_POINT('NONE', (0.0271848276492661, 0.019049, 0.05850641585908957)); -#406 = CARTESIAN_POINT('NONE', (0.027183862054367257, 0.019049, 0.058503436556124)); -#407 = CARTESIAN_POINT('NONE', (0.02712286160310193, 0.019049, 0.05827706323651002)); -#408 = CARTESIAN_POINT('NONE', (0.027122057044684986, 0.019049, 0.058274077511717995)); -#409 = CARTESIAN_POINT('NONE', (0.027073026952666533, 0.019049, 0.05804812263408693)); -#410 = CARTESIAN_POINT('NONE', (0.02707238027592236, 0.019049, 0.058045142428287184)); -#411 = CARTESIAN_POINT('NONE', (0.027035001973460333, 0.019049, 0.05782045924469453)); -#412 = CARTESIAN_POINT('NONE', (0.02703450897665075, 0.019049, 0.05781749581175665)); -#413 = CARTESIAN_POINT('NONE', (0.027008394060882537, 0.019049, 0.057594878327646294)); -#414 = CARTESIAN_POINT('NONE', (0.02700804962121278, 0.019049, 0.0575919421400135)); -#415 = CARTESIAN_POINT('NONE', (0.026992749882642563, 0.019049, 0.05737211966848399)); -#416 = CARTESIAN_POINT('NONE', (0.02699254808850517, 0.019049, 0.057369220345347284)); -#417 = CARTESIAN_POINT('NONE', (0.026987565714448023, 0.019049, 0.05715285374235715)); -#418 = CARTESIAN_POINT('NONE', (0.0269875, 0.019049, 0.05715)); -#419 = B_SPLINE_CURVE_WITH_KNOTS('NONE', 2, (#160, #161, #162, #163, #164, #165, #166, #167, #168, #169, #170, #171, #172, #173, #174, #175, #176, #177, #178, #179, #180, #181, #182, #183, #184, #185, #186, #187, #188, #189, #190, #191, #192, #193, #194, #195, #196, #197, #198, #199, #200, #201, #202, #203, #204, #205, #206, #207, #208, #209, #210, #211, #212, #213, #214, #215, #216, #217, #218, #219, #220, #221, #222, #223, #224, #225, #226, #227, #228, #229, #230, #231, #232, #233, #234, #235, #236, #237, #238, #239, #240, #241, #242, #243, #244, #245, #246, #247, #248, #249, #250, #251, #252, #253, #254, #255, #256, #257, #258, #259, #260, #261, #262, #263, #264, #265, #266, #267, #268, #269, #270, #271, #272, #273, #274, #275, #276, #277, #278, #279, #280, #281, #282, #283, #284, #285, #286, #287, #288, #289, #290, #291, #292, #293, #294, #295, #296, #297, #298, #299, #300, #301, #302, #303, #304, #305, #306, #307, #308, #309, #310, #311, #312, #313, #314, #315, #316, #317, #318, #319, #320, #321, #322, #323, #324, #325, #326, #327, #328, #329, #330, #331, #332, #333, #334, #335, #336, #337, #338, #339, #340, #341, #342, #343, #344, #345, #346, #347, #348, #349, #350, #351, #352, #353, #354, #355, #356, #357, #358, #359, #360, #361, #362, #363, #364, #365, #366, #367, #368, #369, #370, #371, #372, #373, #374, #375, #376, #377, #378, #379, #380, #381, #382, #383, #384, #385, #386, #387, #388, #389, #390, #391, #392, #393, #394, #395, #396, #397, #398, #399, #400, #401, #402, #403, #404, #405, #406, #407, #408, #409, #410, #411, #412, #413, #414, #415, #416, #417, #418), .UNSPECIFIED., .F., .F., (3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3), (0, 0.0038910505836575876, 0.007782101167315175, 0.011673151750972763, 0.01556420233463035, 0.019455252918287938, 0.023346303501945526, 0.027237354085603113, 0.0311284046692607, 0.03501945525291829, 0.038910505836575876, 0.042801556420233464, 0.04669260700389105, 0.05058365758754864, 0.054474708171206226, 0.058365758754863814, 0.0622568093385214, 0.06614785992217899, 0.07003891050583658, 0.07392996108949416, 0.07782101167315175, 0.08171206225680934, 0.08560311284046693, 0.08949416342412451, 0.0933852140077821, 0.09727626459143969, 0.10116731517509728, 0.10505836575875487, 0.10894941634241245, 0.11284046692607004, 0.11673151750972763, 0.12062256809338522, 0.1245136186770428, 0.12840466926070038, 0.13229571984435798, 0.13618677042801558, 0.14007782101167315, 0.14396887159533073, 0.14785992217898833, 0.15175097276264593, 0.1556420233463035, 0.15953307392996108, 0.16342412451361868, 0.16731517509727628, 0.17120622568093385, 0.17509727626459143, 0.17898832684824903, 0.18287937743190663, 0.1867704280155642, 0.19066147859922178, 0.19455252918287938, 0.19844357976653698, 0.20233463035019456, 0.20622568093385213, 0.21011673151750973, 0.21400778210116733, 0.2178988326848249, 0.22178988326848248, 0.22568093385214008, 0.22957198443579768, 0.23346303501945526, 0.23735408560311283, 0.24124513618677043, 0.24513618677042803, 0.2490272373540856, 0.2529182879377432, 0.25680933852140075, 0.2607003891050584, 0.26459143968871596, 0.26848249027237353, 0.27237354085603116, 0.27626459143968873, 0.2801556420233463, 0.2840466926070039, 0.28793774319066145, 0.2918287937743191, 0.29571984435797666, 0.29961089494163423, 0.30350194552529186, 0.30739299610894943, 0.311284046692607, 0.3151750972762646, 0.31906614785992216, 0.3229571984435798, 0.32684824902723736, 0.33073929961089493, 0.33463035019455256, 0.33852140077821014, 0.3424124513618677, 0.3463035019455253, 0.35019455252918286, 0.3540856031128405, 0.35797665369649806, 0.36186770428015563, 0.36575875486381326, 0.36964980544747084, 0.3735408560311284, 0.377431906614786, 0.38132295719844356, 0.3852140077821012, 0.38910505836575876, 0.39299610894941633, 0.39688715953307396, 0.40077821011673154, 0.4046692607003891, 0.4085603112840467, 0.41245136186770426, 0.4163424124513619, 0.42023346303501946, 0.42412451361867703, 0.42801556420233466, 0.43190661478599224, 0.4357976653696498, 0.4396887159533074, 0.44357976653696496, 0.4474708171206226, 0.45136186770428016, 0.45525291828793774, 0.45914396887159536, 0.46303501945525294, 0.4669260700389105, 0.4708171206225681, 0.47470817120622566, 0.4785992217898833, 0.48249027237354086, 0.48638132295719844, 0.49027237354085607, 0.49416342412451364, 0.4980544747081712, 0.5019455252918288, 0.5058365758754864, 0.5097276264591439, 0.5136186770428015, 0.5175097276264591, 0.5214007782101167, 0.5252918287937743, 0.5291828793774319, 0.5330739299610895, 0.5369649805447471, 0.5408560311284046, 0.5447470817120623, 0.5486381322957199, 0.5525291828793775, 0.556420233463035, 0.5603112840466926, 0.5642023346303502, 0.5680933852140078, 0.5719844357976653, 0.5758754863813229, 0.5797665369649805, 0.5836575875486381, 0.5875486381322957, 0.5914396887159533, 0.5953307392996109, 0.5992217898832685, 0.603112840466926, 0.6070038910505837, 0.6108949416342413, 0.6147859922178989, 0.6186770428015564, 0.622568093385214, 0.6264591439688716, 0.6303501945525292, 0.6342412451361867, 0.6381322957198443, 0.6420233463035019, 0.6459143968871595, 0.6498054474708171, 0.6536964980544747, 0.6575875486381323, 0.6614785992217899, 0.6653696498054474, 0.6692607003891051, 0.6731517509727627, 0.6770428015564203, 0.6809338521400778, 0.6848249027237354, 0.688715953307393, 0.6926070038910506, 0.6964980544747081, 0.7003891050583657, 0.7042801556420233, 0.7081712062256809, 0.7120622568093385, 0.7159533073929961, 0.7198443579766537, 0.7237354085603113, 0.7276264591439688, 0.7315175097276265, 0.7354085603112841, 0.7392996108949417, 0.7431906614785992, 0.7470817120622568, 0.7509727626459144, 0.754863813229572, 0.7587548638132295, 0.7626459143968871, 0.7665369649805447, 0.7704280155642023, 0.77431906614786, 0.7782101167315175, 0.7821011673151751, 0.7859922178988327, 0.7898832684824902, 0.7937743190661479, 0.7976653696498055, 0.8015564202334631, 0.8054474708171206, 0.8093385214007782, 0.8132295719844358, 0.8171206225680934, 0.8210116731517509, 0.8249027237354085, 0.8287937743190661, 0.8326848249027237, 0.8365758754863813, 0.8404669260700389, 0.8443579766536965, 0.8482490272373541, 0.8521400778210116, 0.8560311284046693, 0.8599221789883269, 0.8638132295719845, 0.867704280155642, 0.8715953307392996, 0.8754863813229572, 0.8793774319066148, 0.8832684824902723, 0.8871595330739299, 0.8910505836575875, 0.8949416342412452, 0.8988326848249028, 0.9027237354085603, 0.9066147859922179, 0.9105058365758755, 0.914396887159533, 0.9182879377431906, 0.9221789883268483, 0.9260700389105059, 0.9299610894941635, 0.933852140077821, 0.9377431906614786, 0.9416342412451362, 0.9455252918287937, 0.9494163424124513, 0.9533073929961089, 0.9571984435797666, 0.9610894941634242, 0.9649805447470817, 0.9688715953307393, 0.9727626459143969, 0.9766536964980544, 0.980544747081712, 0.9844357976653697, 0.9883268482490273, 0.9922178988326849, 0.9961089494163424, 1), .UNSPECIFIED.); -#420 = DIRECTION('NONE', (0, -1, 0)); -#421 = VECTOR('NONE', #420, 1); -#422 = CARTESIAN_POINT('NONE', (0.0269875, 0.019051000000000002, 0.05715)); -#423 = LINE('NONE', #422, #421); -#424 = DIRECTION('NONE', (-1, 0, 0.0000000000000014919532509398443)); -#425 = DIRECTION('NONE', (-0, -1, 0)); -#426 = CARTESIAN_POINT('NONE', (0.031749999999999994, -0, 0.05714999999999999)); -#427 = AXIS2_PLACEMENT_3D('NONE', #426, #425, #424); -#428 = CIRCLE('NONE', #427, 0.004762499999999996); -#429 = CARTESIAN_POINT('NONE', (-0.0365125, 0.019049, 0.05715)); -#430 = CARTESIAN_POINT('NONE', (-0.036507517625942856, 0.019049, 0.05693363339700987)); -#431 = CARTESIAN_POINT('NONE', (-0.036507451911494834, 0.019049, 0.05693077965465271)); -#432 = CARTESIAN_POINT('NONE', (-0.036492152172924626, 0.019049, 0.056710957183123197)); -#433 = CARTESIAN_POINT('NONE', (-0.03649195037878723, 0.019049, 0.0567080578599865)); -#434 = CARTESIAN_POINT('NONE', (-0.03646583546301901, 0.019049, 0.05648544037587615)); -#435 = CARTESIAN_POINT('NONE', (-0.03646549102334924, 0.019049, 0.056482504188243354)); -#436 = CARTESIAN_POINT('NONE', (-0.03642811272088722, 0.019049, 0.056257821004650696)); -#437 = CARTESIAN_POINT('NONE', (-0.03642761972407763, 0.019049, 0.056254857571712814)); -#438 = CARTESIAN_POINT('NONE', (-0.03637858963205918, 0.019049, 0.05602890269408173)); -#439 = CARTESIAN_POINT('NONE', (-0.03637794295531501, 0.019049, 0.05602592248828199)); -#440 = CARTESIAN_POINT('NONE', (-0.03631694250404969, 0.019049, 0.05579954916866802)); -#441 = CARTESIAN_POINT('NONE', (-0.036316137945632744, 0.019049, 0.055796563443876006)); -#442 = CARTESIAN_POINT('NONE', (-0.036242927942072574, 0.019049, 0.05557067701782111)); -#443 = CARTESIAN_POINT('NONE', (-0.03624196234717374, 0.019049, 0.05556769771485555)); -#444 = CARTESIAN_POINT('NONE', (-0.03615639170904756, 0.019049, 0.055343246745844295)); -#445 = CARTESIAN_POINT('NONE', (-0.03615526308498463, 0.019049, 0.055340286375673856)); -#446 = CARTESIAN_POINT('NONE', (-0.03605727643274981, 0.019049, 0.05511825220075177)); -#447 = CARTESIAN_POINT('NONE', (-0.036055984049100695, 0.019049, 0.05511532370660824)); -#448 = CARTESIAN_POINT('NONE', (-0.03594562783221205, 0.019049, 0.054896708549276654)); -#449 = CARTESIAN_POINT('NONE', (-0.035944172301616485, 0.019049, 0.054893825149871324)); -#450 = CARTESIAN_POINT('NONE', (-0.035821599162420406, 0.019049, 0.05467963903875645)); -#451 = CARTESIAN_POINT('NONE', (-0.03581998249813702, 0.019049, 0.05467681405574542)); -#452 = CARTESIAN_POINT('NONE', (-0.03568545362136307, 0.019049, 0.054468060855146036)); -#453 = CARTESIAN_POINT('NONE', (-0.03568367926825772, 0.019049, 0.05446530752888168)); -#454 = CARTESIAN_POINT('NONE', (-0.03553756452564741, 0.019049, 0.05426297044529378)); -#455 = CARTESIAN_POINT('NONE', (-0.035535637362100775, 0.019049, 0.05426030174366479)); -#456 = CARTESIAN_POINT('NONE', (-0.03545416666666667, 0.019049, 0.05415927031410607)); -#457 = CARTESIAN_POINT('NONE', (-0.03537841313779787, 0.019049, 0.05406532871614926)); -#458 = CARTESIAN_POINT('NONE', (-0.035376339447023675, 0.019049, 0.05406275714188856)); -#459 = CARTESIAN_POINT('NONE', (-0.03520858411620557, 0.019049, 0.053876046549760574)); -#460 = CARTESIAN_POINT('NONE', (-0.035206371526616514, 0.019049, 0.05387358395193854)); -#461 = CARTESIAN_POINT('NONE', (-0.03511639378733899, 0.019049, 0.05378360621266101)); -#462 = CARTESIAN_POINT('NONE', (-0.03502875865257994, 0.019049, 0.05369597107790197)); -#463 = CARTESIAN_POINT('NONE', (-0.03502641604806145, 0.019049, 0.053693628473383485)); -#464 = CARTESIAN_POINT('NONE', (-0.03483970545593346, 0.019049, 0.05352587314256537)); -#465 = CARTESIAN_POINT('NONE', (-0.034837242858111434, 0.019049, 0.053523660552976325)); -#466 = CARTESIAN_POINT('NONE', (-0.03474072968589392, 0.019049, 0.05344583333333333)); -#467 = CARTESIAN_POINT('NONE', (-0.03464226983059591, 0.019049, 0.053366436328673425)); -#468 = CARTESIAN_POINT('NONE', (-0.03463969825633521, 0.019049, 0.053364362637899225)); -#469 = CARTESIAN_POINT('NONE', (-0.03443736117274731, 0.019049, 0.05321824789528891)); -#470 = CARTESIAN_POINT('NONE', (-0.03443469247111832, 0.019049, 0.05321632073174227)); -#471 = CARTESIAN_POINT('NONE', (-0.03422593927051894, 0.019049, 0.05308179185496834)); -#472 = CARTESIAN_POINT('NONE', (-0.03422318594425458, 0.019049, 0.05308001750186299)); -#473 = CARTESIAN_POINT('NONE', (-0.03400899983313972, 0.019049, 0.05295744436266692)); -#474 = CARTESIAN_POINT('NONE', (-0.03400617485012868, 0.019049, 0.05295582769838352)); -#475 = CARTESIAN_POINT('NONE', (-0.0337875596927971, 0.019049, 0.05284547148149489)); -#476 = CARTESIAN_POINT('NONE', (-0.03378467629339177, 0.019049, 0.05284401595089932)); -#477 = CARTESIAN_POINT('NONE', (-0.03356264211846966, 0.019049, 0.05274602929866447)); -#478 = CARTESIAN_POINT('NONE', (-0.03355971362432614, 0.019049, 0.05274473691501536)); -#479 = CARTESIAN_POINT('NONE', (-0.033335262655314876, 0.019049, 0.05265916627688918)); -#480 = CARTESIAN_POINT('NONE', (-0.03333230228514444, 0.019049, 0.05265803765282625)); -#481 = CARTESIAN_POINT('NONE', (-0.03310641585908957, 0.019049, 0.052584827649266086)); -#482 = CARTESIAN_POINT('NONE', (-0.033103436556124, 0.019049, 0.05258386205436724)); -#483 = CARTESIAN_POINT('NONE', (-0.03287706323651001, 0.019049, 0.05252286160310193)); -#484 = CARTESIAN_POINT('NONE', (-0.032874077511717996, 0.019049, 0.05252205704468498)); -#485 = CARTESIAN_POINT('NONE', (-0.03264812263408692, 0.019049, 0.05247302695266652)); -#486 = CARTESIAN_POINT('NONE', (-0.03264514242828718, 0.019049, 0.05247238027592235)); -#487 = CARTESIAN_POINT('NONE', (-0.032420459244694534, 0.019049, 0.05243500197346033)); -#488 = CARTESIAN_POINT('NONE', (-0.03241749581175665, 0.019049, 0.052434508976650744)); -#489 = CARTESIAN_POINT('NONE', (-0.032194878327646295, 0.019049, 0.05240839406088253)); -#490 = CARTESIAN_POINT('NONE', (-0.0321919421400135, 0.019049, 0.05240804962121277)); -#491 = CARTESIAN_POINT('NONE', (-0.031972119668484, 0.019049, 0.05239274988264256)); -#492 = CARTESIAN_POINT('NONE', (-0.03196922034534729, 0.019049, 0.052392548088505166)); -#493 = CARTESIAN_POINT('NONE', (-0.03175285374235716, 0.019049, 0.05238756571444802)); -#494 = CARTESIAN_POINT('NONE', (-0.03175, 0.019049, 0.0523875)); -#495 = CARTESIAN_POINT('NONE', (-0.03153363339700987, 0.019049, 0.052392482374057144)); -#496 = CARTESIAN_POINT('NONE', (-0.03153077965465271, 0.019049, 0.052392548088505166)); -#497 = CARTESIAN_POINT('NONE', (-0.031310957183123184, 0.019049, 0.05240784782707537)); -#498 = CARTESIAN_POINT('NONE', (-0.03130805785998649, 0.019049, 0.05240804962121276)); -#499 = CARTESIAN_POINT('NONE', (-0.031085440375876135, 0.019049, 0.05243416453698098)); -#500 = CARTESIAN_POINT('NONE', (-0.031082504188243345, 0.019049, 0.05243450897665074)); -#501 = CARTESIAN_POINT('NONE', (-0.030857821004650707, 0.019049, 0.05247188727911278)); -#502 = CARTESIAN_POINT('NONE', (-0.030854857571712815, 0.019049, 0.05247238027592237)); -#503 = CARTESIAN_POINT('NONE', (-0.030628902694081746, 0.019049, 0.052521410367940814)); -#504 = CARTESIAN_POINT('NONE', (-0.030625922488282, 0.019049, 0.05252205704468498)); -#505 = CARTESIAN_POINT('NONE', (-0.030399549168668025, 0.019049, 0.05258305749595031)); -#506 = CARTESIAN_POINT('NONE', (-0.030396563443876003, 0.019049, 0.052583862054367256)); -#507 = CARTESIAN_POINT('NONE', (-0.030170677017821116, 0.019049, 0.05265707205792741)); -#508 = CARTESIAN_POINT('NONE', (-0.030167697714855553, 0.019049, 0.05265803765282625)); -#509 = CARTESIAN_POINT('NONE', (-0.029943246745844303, 0.019049, 0.05274360829095244)); -#510 = CARTESIAN_POINT('NONE', (-0.029940286375673864, 0.019049, 0.05274473691501537)); -#511 = CARTESIAN_POINT('NONE', (-0.02971825220075177, 0.019049, 0.052842723567250206)); -#512 = CARTESIAN_POINT('NONE', (-0.02971532370660824, 0.019049, 0.05284401595089932)); -#513 = CARTESIAN_POINT('NONE', (-0.02949670854927666, 0.019049, 0.05295437216778794)); -#514 = CARTESIAN_POINT('NONE', (-0.029493825149871332, 0.019049, 0.052955827698383515)); -#515 = CARTESIAN_POINT('NONE', (-0.02927963903875646, 0.019049, 0.05307840083757959)); -#516 = CARTESIAN_POINT('NONE', (-0.029276814055745424, 0.019049, 0.05308001750186298)); -#517 = CARTESIAN_POINT('NONE', (-0.029068060855146023, 0.019049, 0.05321454637863691)); -#518 = CARTESIAN_POINT('NONE', (-0.029065307528881673, 0.019049, 0.05321632073174226)); -#519 = CARTESIAN_POINT('NONE', (-0.02886297044529378, 0.019049, 0.053362435474352585)); -#520 = CARTESIAN_POINT('NONE', (-0.02886030174366479, 0.019049, 0.053364362637899225)); -#521 = CARTESIAN_POINT('NONE', (-0.028759270314106068, 0.019049, 0.05344583333333333)); -#522 = CARTESIAN_POINT('NONE', (-0.028665328716149255, 0.019049, 0.05352158686220213)); -#523 = CARTESIAN_POINT('NONE', (-0.02866275714188856, 0.019049, 0.053523660552976325)); -#524 = CARTESIAN_POINT('NONE', (-0.028476046549760586, 0.019049, 0.053691415883794426)); -#525 = CARTESIAN_POINT('NONE', (-0.028473583951938546, 0.019049, 0.05369362847338348)); -#526 = CARTESIAN_POINT('NONE', (-0.028295971077901973, 0.019049, 0.053871241347420044)); -#527 = CARTESIAN_POINT('NONE', (-0.028293628473383486, 0.019049, 0.05387358395193854)); -#528 = CARTESIAN_POINT('NONE', (-0.028125873142565375, 0.019049, 0.05406029454406653)); -#529 = CARTESIAN_POINT('NONE', (-0.028123660552976326, 0.019049, 0.05406275714188856)); -#530 = CARTESIAN_POINT('NONE', (-0.028045833333333336, 0.019049, 0.05415927031410607)); -#531 = CARTESIAN_POINT('NONE', (-0.02796643632867342, 0.019049, 0.05425773016940409)); -#532 = CARTESIAN_POINT('NONE', (-0.02796436263789923, 0.019049, 0.05426030174366479)); -#533 = CARTESIAN_POINT('NONE', (-0.027818247895288913, 0.019049, 0.05446263882725269)); -#534 = CARTESIAN_POINT('NONE', (-0.027816320731742276, 0.019049, 0.05446530752888168)); -#535 = CARTESIAN_POINT('NONE', (-0.027681791854968343, 0.019049, 0.054674060729481055)); -#536 = CARTESIAN_POINT('NONE', (-0.02768001750186299, 0.019049, 0.05467681405574541)); -#537 = CARTESIAN_POINT('NONE', (-0.027557444362666925, 0.019049, 0.054891000166860285)); -#538 = CARTESIAN_POINT('NONE', (-0.027555827698383526, 0.019049, 0.05489382514987133)); -#539 = CARTESIAN_POINT('NONE', (-0.027445471481494885, 0.019049, 0.055112440307202915)); -#540 = CARTESIAN_POINT('NONE', (-0.027444015950899316, 0.019049, 0.055115323706608245)); -#541 = CARTESIAN_POINT('NONE', (-0.027346029298664472, 0.019049, 0.05533735788153033)); -#542 = CARTESIAN_POINT('NONE', (-0.02734473691501536, 0.019049, 0.055340286375673856)); -#543 = CARTESIAN_POINT('NONE', (-0.02725916627688918, 0.019049, 0.0555647373446851)); -#544 = CARTESIAN_POINT('NONE', (-0.02725803765282625, 0.019049, 0.05556769771485555)); -#545 = CARTESIAN_POINT('NONE', (-0.027184827649266094, 0.019049, 0.055793584140910416)); -#546 = CARTESIAN_POINT('NONE', (-0.027183862054367253, 0.019049, 0.05579656344387599)); -#547 = CARTESIAN_POINT('NONE', (-0.027122861603101928, 0.019049, 0.05602293676348998)); -#548 = CARTESIAN_POINT('NONE', (-0.027122057044684983, 0.019049, 0.056025922488282)); -#549 = CARTESIAN_POINT('NONE', (-0.027073026952666533, 0.019049, 0.05625187736591306)); -#550 = CARTESIAN_POINT('NONE', (-0.02707238027592236, 0.019049, 0.05625485757171281)); -#551 = CARTESIAN_POINT('NONE', (-0.027035001973460333, 0.019049, 0.056479540755305466)); -#552 = CARTESIAN_POINT('NONE', (-0.02703450897665075, 0.019049, 0.05648250418824335)); -#553 = CARTESIAN_POINT('NONE', (-0.027008394060882537, 0.019049, 0.0567051216723537)); -#554 = CARTESIAN_POINT('NONE', (-0.02700804962121278, 0.019049, 0.05670805785998649)); -#555 = CARTESIAN_POINT('NONE', (-0.026992749882642563, 0.019049, 0.056927880331516)); -#556 = CARTESIAN_POINT('NONE', (-0.02699254808850517, 0.019049, 0.0569307796546527)); -#557 = CARTESIAN_POINT('NONE', (-0.026987565714448023, 0.019049, 0.05714714625764285)); -#558 = CARTESIAN_POINT('NONE', (-0.0269875, 0.019049, 0.05715)); -#559 = CARTESIAN_POINT('NONE', (-0.026992482374057148, 0.019049, 0.05736636660299013)); -#560 = CARTESIAN_POINT('NONE', (-0.02699254808850517, 0.019049, 0.057369220345347284)); -#561 = CARTESIAN_POINT('NONE', (-0.027007847827075385, 0.019049, 0.0575890428168768)); -#562 = CARTESIAN_POINT('NONE', (-0.02700804962121278, 0.019049, 0.0575919421400135)); -#563 = CARTESIAN_POINT('NONE', (-0.027034164536980987, 0.019049, 0.05781455962412385)); -#564 = CARTESIAN_POINT('NONE', (-0.02703450897665075, 0.019049, 0.057817495811756645)); -#565 = CARTESIAN_POINT('NONE', (-0.027071887279112788, 0.019049, 0.058042178995349296)); -#566 = CARTESIAN_POINT('NONE', (-0.027072380275922372, 0.019049, 0.058045142428287184)); -#567 = CARTESIAN_POINT('NONE', (-0.02712141036794082, 0.019049, 0.05827109730591824)); -#568 = CARTESIAN_POINT('NONE', (-0.027122057044684986, 0.019049, 0.05827407751171799)); -#569 = CARTESIAN_POINT('NONE', (-0.027183057495950312, 0.019049, 0.05850045083133198)); -#570 = CARTESIAN_POINT('NONE', (-0.027183862054367257, 0.019049, 0.05850343655612399)); -#571 = CARTESIAN_POINT('NONE', (-0.027257072057927413, 0.019049, 0.05872932298217886)); -#572 = CARTESIAN_POINT('NONE', (-0.027258037652826257, 0.019049, 0.058732302285144436)); -#573 = CARTESIAN_POINT('NONE', (-0.02734360829095243, 0.019049, 0.05895675325415569)); -#574 = CARTESIAN_POINT('NONE', (-0.027344736915015364, 0.019049, 0.058959713624326136)); -#575 = CARTESIAN_POINT('NONE', (-0.027442723567250197, 0.019049, 0.05918174779924824)); -#576 = CARTESIAN_POINT('NONE', (-0.027444015950899313, 0.019049, 0.05918467629339177)); -#577 = CARTESIAN_POINT('NONE', (-0.02755437216778796, 0.019049, 0.05940329145072335)); -#578 = CARTESIAN_POINT('NONE', (-0.027555827698383526, 0.019049, 0.05940617485012868)); -#579 = CARTESIAN_POINT('NONE', (-0.0276784008375796, 0.019049, 0.05962036096124353)); -#580 = CARTESIAN_POINT('NONE', (-0.027680017501862993, 0.019049, 0.05962318594425457)); -#581 = CARTESIAN_POINT('NONE', (-0.027814546378636923, 0.019049, 0.05983193914485395)); -#582 = CARTESIAN_POINT('NONE', (-0.027816320731742273, 0.019049, 0.0598346924711183)); -#583 = CARTESIAN_POINT('NONE', (-0.027962435474352593, 0.019049, 0.06003702955470621)); -#584 = CARTESIAN_POINT('NONE', (-0.02796436263789923, 0.019049, 0.0600396982563352)); -#585 = CARTESIAN_POINT('NONE', (-0.028045833333333336, 0.019049, 0.060140729685893915)); -#586 = CARTESIAN_POINT('NONE', (-0.02812158686220214, 0.019049, 0.06023467128385074)); -#587 = CARTESIAN_POINT('NONE', (-0.02812366055297633, 0.019049, 0.06023724285811143)); -#588 = CARTESIAN_POINT('NONE', (-0.028291415883794434, 0.019049, 0.060423953450239404)); -#589 = CARTESIAN_POINT('NONE', (-0.028293628473383486, 0.019049, 0.06042641604806144)); -#590 = CARTESIAN_POINT('NONE', (-0.02838360621266102, 0.019049, 0.06051639378733898)); -#591 = CARTESIAN_POINT('NONE', (-0.02847124134742006, 0.019049, 0.06060402892209802)); -#592 = CARTESIAN_POINT('NONE', (-0.028473583951938546, 0.019049, 0.060606371526616507)); -#593 = CARTESIAN_POINT('NONE', (-0.028660294544066527, 0.019049, 0.060774126857434614)); -#594 = CARTESIAN_POINT('NONE', (-0.028662757141888564, 0.019049, 0.06077633944702367)); -#595 = CARTESIAN_POINT('NONE', (-0.02875927031410607, 0.019049, 0.06085416666666666)); -#596 = CARTESIAN_POINT('NONE', (-0.028857730169404093, 0.019049, 0.06093356367132657)); -#597 = CARTESIAN_POINT('NONE', (-0.02886030174366479, 0.019049, 0.06093563736210077)); -#598 = CARTESIAN_POINT('NONE', (-0.02906263882725269, 0.019049, 0.061081752104711076)); -#599 = CARTESIAN_POINT('NONE', (-0.02906530752888168, 0.019049, 0.061083679268257716)); -#600 = CARTESIAN_POINT('NONE', (-0.029274060729481067, 0.019049, 0.06121820814503164)); -#601 = CARTESIAN_POINT('NONE', (-0.02927681405574542, 0.019049, 0.061219982498137)); -#602 = CARTESIAN_POINT('NONE', (-0.02949100016686029, 0.019049, 0.06134255563733308)); -#603 = CARTESIAN_POINT('NONE', (-0.029493825149871332, 0.019049, 0.061344172301616484)); -#604 = CARTESIAN_POINT('NONE', (-0.02971244030720291, 0.019049, 0.061454528518505115)); -#605 = CARTESIAN_POINT('NONE', (-0.029715323706608236, 0.019049, 0.06145598404910069)); -#606 = CARTESIAN_POINT('NONE', (-0.02993735788153034, 0.019049, 0.061553970701335524)); -#607 = CARTESIAN_POINT('NONE', (-0.029940286375673867, 0.019049, 0.061555263084984636)); -#608 = CARTESIAN_POINT('NONE', (-0.030164737344685118, 0.019049, 0.061640833723110806)); -#609 = CARTESIAN_POINT('NONE', (-0.030167697714855557, 0.019049, 0.061641962347173736)); -#610 = CARTESIAN_POINT('NONE', (-0.030393584140910423, 0.019049, 0.061715172350733885)); -#611 = CARTESIAN_POINT('NONE', (-0.030396563443875996, 0.019049, 0.06171613794563273)); -#612 = CARTESIAN_POINT('NONE', (-0.030622936763489986, 0.019049, 0.06177713839689807)); -#613 = CARTESIAN_POINT('NONE', (-0.030625922488282005, 0.019049, 0.06177794295531502)); -#614 = CARTESIAN_POINT('NONE', (-0.030851877365913064, 0.019049, 0.061826973047333464)); -#615 = CARTESIAN_POINT('NONE', (-0.03085485757171281, 0.019049, 0.06182761972407763)); -#616 = CARTESIAN_POINT('NONE', (-0.031079540755305467, 0.019049, 0.06186499802653966)); -#617 = CARTESIAN_POINT('NONE', (-0.031082504188243345, 0.019049, 0.06186549102334924)); -#618 = CARTESIAN_POINT('NONE', (-0.0313051216723537, 0.019049, 0.06189160593911745)); -#619 = CARTESIAN_POINT('NONE', (-0.03130805785998649, 0.019049, 0.06189195037878721)); -#620 = CARTESIAN_POINT('NONE', (-0.03152788033151601, 0.019049, 0.06190725011735743)); -#621 = CARTESIAN_POINT('NONE', (-0.03153077965465271, 0.019049, 0.06190745191149483)); -#622 = CARTESIAN_POINT('NONE', (-0.03174714625764284, 0.019049, 0.06191243428555198)); -#623 = CARTESIAN_POINT('NONE', (-0.03175, 0.019049, 0.0619125)); -#624 = CARTESIAN_POINT('NONE', (-0.03196636660299013, 0.019049, 0.06190751762594285)); -#625 = CARTESIAN_POINT('NONE', (-0.031969220345347285, 0.019049, 0.06190745191149483)); -#626 = CARTESIAN_POINT('NONE', (-0.0321890428168768, 0.019049, 0.06189215217292461)); -#627 = CARTESIAN_POINT('NONE', (-0.0321919421400135, 0.019049, 0.06189195037878721)); -#628 = CARTESIAN_POINT('NONE', (-0.03241455962412385, 0.019049, 0.061865835463019006)); -#629 = CARTESIAN_POINT('NONE', (-0.032417495811756646, 0.019049, 0.06186549102334924)); -#630 = CARTESIAN_POINT('NONE', (-0.032642178995349304, 0.019049, 0.061828112720887236)); -#631 = CARTESIAN_POINT('NONE', (-0.03264514242828719, 0.019049, 0.06182761972407765)); -#632 = CARTESIAN_POINT('NONE', (-0.03287109730591826, 0.019049, 0.06177858963205919)); -#633 = CARTESIAN_POINT('NONE', (-0.032874077511717996, 0.019049, 0.061777942955315024)); -#634 = CARTESIAN_POINT('NONE', (-0.03310045083133198, 0.019049, 0.06171694250404969)); -#635 = CARTESIAN_POINT('NONE', (-0.033103436556123994, 0.019049, 0.06171613794563274)); -#636 = CARTESIAN_POINT('NONE', (-0.03332932298217886, 0.019049, 0.06164292794207259)); -#637 = CARTESIAN_POINT('NONE', (-0.03333230228514444, 0.019049, 0.06164196234717374)); -#638 = CARTESIAN_POINT('NONE', (-0.03355675325415569, 0.019049, 0.06155639170904758)); -#639 = CARTESIAN_POINT('NONE', (-0.03355971362432614, 0.019049, 0.06155526308498464)); -#640 = CARTESIAN_POINT('NONE', (-0.03378174779924823, 0.019049, 0.06145727643274981)); -#641 = CARTESIAN_POINT('NONE', (-0.03378467629339176, 0.019049, 0.0614559840491007)); -#642 = CARTESIAN_POINT('NONE', (-0.034003291450723346, 0.019049, 0.06134562783221204)); -#643 = CARTESIAN_POINT('NONE', (-0.03400617485012867, 0.019049, 0.061344172301616484)); -#644 = CARTESIAN_POINT('NONE', (-0.03422036096124354, 0.019049, 0.061221599162420405)); -#645 = CARTESIAN_POINT('NONE', (-0.03422318594425458, 0.019049, 0.06121998249813701)); -#646 = CARTESIAN_POINT('NONE', (-0.03443193914485396, 0.019049, 0.06108545362136306)); -#647 = CARTESIAN_POINT('NONE', (-0.034434692471118314, 0.019049, 0.06108367926825771)); -#648 = CARTESIAN_POINT('NONE', (-0.03463702955470621, 0.019049, 0.06093756452564742)); -#649 = CARTESIAN_POINT('NONE', (-0.0346396982563352, 0.019049, 0.06093563736210079)); -#650 = CARTESIAN_POINT('NONE', (-0.03474072968589394, 0.019049, 0.06085416666666666)); -#651 = CARTESIAN_POINT('NONE', (-0.03483467128385074, 0.019049, 0.06077841313779786)); -#652 = CARTESIAN_POINT('NONE', (-0.034837242858111434, 0.019049, 0.060776339447023674)); -#653 = CARTESIAN_POINT('NONE', (-0.03502395345023941, 0.019049, 0.06060858411620556)); -#654 = CARTESIAN_POINT('NONE', (-0.03502641604806145, 0.019049, 0.060606371526616507)); -#655 = CARTESIAN_POINT('NONE', (-0.03520402892209803, 0.019049, 0.060428758652579954)); -#656 = CARTESIAN_POINT('NONE', (-0.035206371526616514, 0.019049, 0.06042641604806146)); -#657 = CARTESIAN_POINT('NONE', (-0.035374126857434615, 0.019049, 0.06023970545593346)); -#658 = CARTESIAN_POINT('NONE', (-0.03537633944702367, 0.019049, 0.06023724285811143)); -#659 = CARTESIAN_POINT('NONE', (-0.03545416666666667, 0.019049, 0.060140729685893915)); -#660 = CARTESIAN_POINT('NONE', (-0.035533563671326575, 0.019049, 0.0600422698305959)); -#661 = CARTESIAN_POINT('NONE', (-0.035535637362100775, 0.019049, 0.0600396982563352)); -#662 = CARTESIAN_POINT('NONE', (-0.035681752104711084, 0.019049, 0.059837361172747315)); -#663 = CARTESIAN_POINT('NONE', (-0.035683679268257724, 0.019049, 0.05983469247111833)); -#664 = CARTESIAN_POINT('NONE', (-0.035818208145031664, 0.019049, 0.059625939270518936)); -#665 = CARTESIAN_POINT('NONE', (-0.03581998249813702, 0.019049, 0.05962318594425458)); -#666 = CARTESIAN_POINT('NONE', (-0.03594255563733308, 0.019049, 0.05940899983313972)); -#667 = CARTESIAN_POINT('NONE', (-0.035944172301616485, 0.019049, 0.05940617485012868)); -#668 = CARTESIAN_POINT('NONE', (-0.03605452851850512, 0.019049, 0.05918755969279709)); -#669 = CARTESIAN_POINT('NONE', (-0.036055984049100695, 0.019049, 0.05918467629339177)); -#670 = CARTESIAN_POINT('NONE', (-0.036153970701335525, 0.019049, 0.05896264211846967)); -#671 = CARTESIAN_POINT('NONE', (-0.03615526308498463, 0.019049, 0.05895971362432614)); -#672 = CARTESIAN_POINT('NONE', (-0.036240833723110814, 0.019049, 0.05873526265531488)); -#673 = CARTESIAN_POINT('NONE', (-0.036241962347173744, 0.019049, 0.05873230228514444)); -#674 = CARTESIAN_POINT('NONE', (-0.03631517235073389, 0.019049, 0.05850641585908957)); -#675 = CARTESIAN_POINT('NONE', (-0.03631613794563274, 0.019049, 0.058503436556124)); -#676 = CARTESIAN_POINT('NONE', (-0.03637713839689807, 0.019049, 0.05827706323651002)); -#677 = CARTESIAN_POINT('NONE', (-0.03637794295531502, 0.019049, 0.058274077511717995)); -#678 = CARTESIAN_POINT('NONE', (-0.036426973047333465, 0.019049, 0.05804812263408693)); -#679 = CARTESIAN_POINT('NONE', (-0.03642761972407763, 0.019049, 0.058045142428287184)); -#680 = CARTESIAN_POINT('NONE', (-0.03646499802653966, 0.019049, 0.05782045924469453)); -#681 = CARTESIAN_POINT('NONE', (-0.03646549102334924, 0.019049, 0.05781749581175665)); -#682 = CARTESIAN_POINT('NONE', (-0.03649160593911746, 0.019049, 0.057594878327646294)); -#683 = CARTESIAN_POINT('NONE', (-0.036491950378787226, 0.019049, 0.0575919421400135)); -#684 = CARTESIAN_POINT('NONE', (-0.036507250117357434, 0.019049, 0.05737211966848399)); -#685 = CARTESIAN_POINT('NONE', (-0.036507451911494834, 0.019049, 0.057369220345347284)); -#686 = CARTESIAN_POINT('NONE', (-0.03651243428555198, 0.019049, 0.05715285374235715)); -#687 = CARTESIAN_POINT('NONE', (-0.0365125, 0.019049, 0.05715)); -#688 = B_SPLINE_CURVE_WITH_KNOTS('NONE', 2, (#429, #430, #431, #432, #433, #434, #435, #436, #437, #438, #439, #440, #441, #442, #443, #444, #445, #446, #447, #448, #449, #450, #451, #452, #453, #454, #455, #456, #457, #458, #459, #460, #461, #462, #463, #464, #465, #466, #467, #468, #469, #470, #471, #472, #473, #474, #475, #476, #477, #478, #479, #480, #481, #482, #483, #484, #485, #486, #487, #488, #489, #490, #491, #492, #493, #494, #495, #496, #497, #498, #499, #500, #501, #502, #503, #504, #505, #506, #507, #508, #509, #510, #511, #512, #513, #514, #515, #516, #517, #518, #519, #520, #521, #522, #523, #524, #525, #526, #527, #528, #529, #530, #531, #532, #533, #534, #535, #536, #537, #538, #539, #540, #541, #542, #543, #544, #545, #546, #547, #548, #549, #550, #551, #552, #553, #554, #555, #556, #557, #558, #559, #560, #561, #562, #563, #564, #565, #566, #567, #568, #569, #570, #571, #572, #573, #574, #575, #576, #577, #578, #579, #580, #581, #582, #583, #584, #585, #586, #587, #588, #589, #590, #591, #592, #593, #594, #595, #596, #597, #598, #599, #600, #601, #602, #603, #604, #605, #606, #607, #608, #609, #610, #611, #612, #613, #614, #615, #616, #617, #618, #619, #620, #621, #622, #623, #624, #625, #626, #627, #628, #629, #630, #631, #632, #633, #634, #635, #636, #637, #638, #639, #640, #641, #642, #643, #644, #645, #646, #647, #648, #649, #650, #651, #652, #653, #654, #655, #656, #657, #658, #659, #660, #661, #662, #663, #664, #665, #666, #667, #668, #669, #670, #671, #672, #673, #674, #675, #676, #677, #678, #679, #680, #681, #682, #683, #684, #685, #686, #687), .UNSPECIFIED., .F., .F., (3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3), (0, 0.0038910505836575876, 0.007782101167315175, 0.011673151750972763, 0.01556420233463035, 0.019455252918287938, 0.023346303501945526, 0.027237354085603113, 0.0311284046692607, 0.03501945525291829, 0.038910505836575876, 0.042801556420233464, 0.04669260700389105, 0.05058365758754864, 0.054474708171206226, 0.058365758754863814, 0.0622568093385214, 0.06614785992217899, 0.07003891050583658, 0.07392996108949416, 0.07782101167315175, 0.08171206225680934, 0.08560311284046693, 0.08949416342412451, 0.0933852140077821, 0.09727626459143969, 0.10116731517509728, 0.10505836575875487, 0.10894941634241245, 0.11284046692607004, 0.11673151750972763, 0.12062256809338522, 0.1245136186770428, 0.12840466926070038, 0.13229571984435798, 0.13618677042801558, 0.14007782101167315, 0.14396887159533073, 0.14785992217898833, 0.15175097276264593, 0.1556420233463035, 0.15953307392996108, 0.16342412451361868, 0.16731517509727628, 0.17120622568093385, 0.17509727626459143, 0.17898832684824903, 0.18287937743190663, 0.1867704280155642, 0.19066147859922178, 0.19455252918287938, 0.19844357976653698, 0.20233463035019456, 0.20622568093385213, 0.21011673151750973, 0.21400778210116733, 0.2178988326848249, 0.22178988326848248, 0.22568093385214008, 0.22957198443579768, 0.23346303501945526, 0.23735408560311283, 0.24124513618677043, 0.24513618677042803, 0.2490272373540856, 0.2529182879377432, 0.25680933852140075, 0.2607003891050584, 0.26459143968871596, 0.26848249027237353, 0.27237354085603116, 0.27626459143968873, 0.2801556420233463, 0.2840466926070039, 0.28793774319066145, 0.2918287937743191, 0.29571984435797666, 0.29961089494163423, 0.30350194552529186, 0.30739299610894943, 0.311284046692607, 0.3151750972762646, 0.31906614785992216, 0.3229571984435798, 0.32684824902723736, 0.33073929961089493, 0.33463035019455256, 0.33852140077821014, 0.3424124513618677, 0.3463035019455253, 0.35019455252918286, 0.3540856031128405, 0.35797665369649806, 0.36186770428015563, 0.36575875486381326, 0.36964980544747084, 0.3735408560311284, 0.377431906614786, 0.38132295719844356, 0.3852140077821012, 0.38910505836575876, 0.39299610894941633, 0.39688715953307396, 0.40077821011673154, 0.4046692607003891, 0.4085603112840467, 0.41245136186770426, 0.4163424124513619, 0.42023346303501946, 0.42412451361867703, 0.42801556420233466, 0.43190661478599224, 0.4357976653696498, 0.4396887159533074, 0.44357976653696496, 0.4474708171206226, 0.45136186770428016, 0.45525291828793774, 0.45914396887159536, 0.46303501945525294, 0.4669260700389105, 0.4708171206225681, 0.47470817120622566, 0.4785992217898833, 0.48249027237354086, 0.48638132295719844, 0.49027237354085607, 0.49416342412451364, 0.4980544747081712, 0.5019455252918288, 0.5058365758754864, 0.5097276264591439, 0.5136186770428015, 0.5175097276264591, 0.5214007782101167, 0.5252918287937743, 0.5291828793774319, 0.5330739299610895, 0.5369649805447471, 0.5408560311284046, 0.5447470817120623, 0.5486381322957199, 0.5525291828793775, 0.556420233463035, 0.5603112840466926, 0.5642023346303502, 0.5680933852140078, 0.5719844357976653, 0.5758754863813229, 0.5797665369649805, 0.5836575875486381, 0.5875486381322957, 0.5914396887159533, 0.5953307392996109, 0.5992217898832685, 0.603112840466926, 0.6070038910505837, 0.6108949416342413, 0.6147859922178989, 0.6186770428015564, 0.622568093385214, 0.6264591439688716, 0.6303501945525292, 0.6342412451361867, 0.6381322957198443, 0.6420233463035019, 0.6459143968871595, 0.6498054474708171, 0.6536964980544747, 0.6575875486381323, 0.6614785992217899, 0.6653696498054474, 0.6692607003891051, 0.6731517509727627, 0.6770428015564203, 0.6809338521400778, 0.6848249027237354, 0.688715953307393, 0.6926070038910506, 0.6964980544747081, 0.7003891050583657, 0.7042801556420233, 0.7081712062256809, 0.7120622568093385, 0.7159533073929961, 0.7198443579766537, 0.7237354085603113, 0.7276264591439688, 0.7315175097276265, 0.7354085603112841, 0.7392996108949417, 0.7431906614785992, 0.7470817120622568, 0.7509727626459144, 0.754863813229572, 0.7587548638132295, 0.7626459143968871, 0.7665369649805447, 0.7704280155642023, 0.77431906614786, 0.7782101167315175, 0.7821011673151751, 0.7859922178988327, 0.7898832684824902, 0.7937743190661479, 0.7976653696498055, 0.8015564202334631, 0.8054474708171206, 0.8093385214007782, 0.8132295719844358, 0.8171206225680934, 0.8210116731517509, 0.8249027237354085, 0.8287937743190661, 0.8326848249027237, 0.8365758754863813, 0.8404669260700389, 0.8443579766536965, 0.8482490272373541, 0.8521400778210116, 0.8560311284046693, 0.8599221789883269, 0.8638132295719845, 0.867704280155642, 0.8715953307392996, 0.8754863813229572, 0.8793774319066148, 0.8832684824902723, 0.8871595330739299, 0.8910505836575875, 0.8949416342412452, 0.8988326848249028, 0.9027237354085603, 0.9066147859922179, 0.9105058365758755, 0.914396887159533, 0.9182879377431906, 0.9221789883268483, 0.9260700389105059, 0.9299610894941635, 0.933852140077821, 0.9377431906614786, 0.9416342412451362, 0.9455252918287937, 0.9494163424124513, 0.9533073929961089, 0.9571984435797666, 0.9610894941634242, 0.9649805447470817, 0.9688715953307393, 0.9727626459143969, 0.9766536964980544, 0.980544747081712, 0.9844357976653697, 0.9883268482490273, 0.9922178988326849, 0.9961089494163424, 1), .UNSPECIFIED.); -#689 = DIRECTION('NONE', (0, -1, 0)); -#690 = VECTOR('NONE', #689, 1); -#691 = CARTESIAN_POINT('NONE', (-0.0365125, 0.019051000000000002, 0.05715)); -#692 = LINE('NONE', #691, #690); -#693 = DIRECTION('NONE', (-1, 0, 0.000000000000001491953250939841)); -#694 = DIRECTION('NONE', (-0, -1, 0)); -#695 = CARTESIAN_POINT('NONE', (-0.031749999999999994, 0, 0.05714999999999999)); -#696 = AXIS2_PLACEMENT_3D('NONE', #695, #694, #693); -#697 = CIRCLE('NONE', #696, 0.004762500000000006); -#698 = CARTESIAN_POINT('NONE', (0.0269875, 0.019049, -0.05715)); -#699 = CARTESIAN_POINT('NONE', (0.026992482374057148, 0.019049, -0.05736636660299014)); -#700 = CARTESIAN_POINT('NONE', (0.02699254808850517, 0.019049, -0.05736922034534729)); -#701 = CARTESIAN_POINT('NONE', (0.02700784782707539, 0.019049, -0.0575890428168768)); -#702 = CARTESIAN_POINT('NONE', (0.027008049621212782, 0.019049, -0.05759194214001351)); -#703 = CARTESIAN_POINT('NONE', (0.02703416453698099, 0.019049, -0.05781455962412386)); -#704 = CARTESIAN_POINT('NONE', (0.027034508976650752, 0.019049, -0.05781749581175665)); -#705 = CARTESIAN_POINT('NONE', (0.027071887279112784, 0.019049, -0.058042178995349296)); -#706 = CARTESIAN_POINT('NONE', (0.02707238027592237, 0.019049, -0.05804514242828718)); -#707 = CARTESIAN_POINT('NONE', (0.027121410367940815, 0.019049, -0.05827109730591826)); -#708 = CARTESIAN_POINT('NONE', (0.027122057044684983, 0.019049, -0.05827407751171799)); -#709 = CARTESIAN_POINT('NONE', (0.027183057495950316, 0.019049, -0.05850045083133198)); -#710 = CARTESIAN_POINT('NONE', (0.02718386205436726, 0.019049, -0.05850343655612399)); -#711 = CARTESIAN_POINT('NONE', (0.02725707205792741, 0.019049, -0.05872932298217887)); -#712 = CARTESIAN_POINT('NONE', (0.02725803765282625, 0.019049, -0.058732302285144436)); -#713 = CARTESIAN_POINT('NONE', (0.02734360829095243, 0.019049, -0.058956753254155676)); -#714 = CARTESIAN_POINT('NONE', (0.02734473691501536, 0.019049, -0.05895971362432612)); -#715 = CARTESIAN_POINT('NONE', (0.0274427235672502, 0.019049, -0.05918174779924823)); -#716 = CARTESIAN_POINT('NONE', (0.027444015950899316, 0.019049, -0.05918467629339176)); -#717 = CARTESIAN_POINT('NONE', (0.02755437216778796, 0.019049, -0.05940329145072335)); -#718 = CARTESIAN_POINT('NONE', (0.027555827698383523, 0.019049, -0.05940617485012868)); -#719 = CARTESIAN_POINT('NONE', (0.027678400837579598, 0.019049, -0.05962036096124355)); -#720 = CARTESIAN_POINT('NONE', (0.02768001750186299, 0.019049, -0.05962318594425458)); -#721 = CARTESIAN_POINT('NONE', (0.027814546378636923, 0.019049, -0.05983193914485396)); -#722 = CARTESIAN_POINT('NONE', (0.027816320731742276, 0.019049, -0.05983469247111832)); -#723 = CARTESIAN_POINT('NONE', (0.027962435474352593, 0.019049, -0.0600370295547062)); -#724 = CARTESIAN_POINT('NONE', (0.02796436263789923, 0.019049, -0.06003969825633519)); -#725 = CARTESIAN_POINT('NONE', (0.028045833333333332, 0.019049, -0.06014072968589391)); -#726 = CARTESIAN_POINT('NONE', (0.028121586862202137, 0.019049, -0.06023467128385073)); -#727 = CARTESIAN_POINT('NONE', (0.02812366055297633, 0.019049, -0.06023724285811143)); -#728 = CARTESIAN_POINT('NONE', (0.028291415883794434, 0.019049, -0.060423953450239404)); -#729 = CARTESIAN_POINT('NONE', (0.028293628473383486, 0.019049, -0.06042641604806144)); -#730 = CARTESIAN_POINT('NONE', (0.028383606212661016, 0.019049, -0.060516393787338967)); -#731 = CARTESIAN_POINT('NONE', (0.02847124134742006, 0.019049, -0.06060402892209802)); -#732 = CARTESIAN_POINT('NONE', (0.028473583951938546, 0.019049, -0.060606371526616507)); -#733 = CARTESIAN_POINT('NONE', (0.028660294544066527, 0.019049, -0.060774126857434614)); -#734 = CARTESIAN_POINT('NONE', (0.028662757141888564, 0.019049, -0.06077633944702367)); -#735 = CARTESIAN_POINT('NONE', (0.02875927031410607, 0.019049, -0.06085416666666666)); -#736 = CARTESIAN_POINT('NONE', (0.028857730169404093, 0.019049, -0.06093356367132657)); -#737 = CARTESIAN_POINT('NONE', (0.02886030174366479, 0.019049, -0.06093563736210077)); -#738 = CARTESIAN_POINT('NONE', (0.02906263882725269, 0.019049, -0.061081752104711076)); -#739 = CARTESIAN_POINT('NONE', (0.02906530752888168, 0.019049, -0.061083679268257716)); -#740 = CARTESIAN_POINT('NONE', (0.029274060729481063, 0.019049, -0.061218208145031656)); -#741 = CARTESIAN_POINT('NONE', (0.029276814055745424, 0.019049, -0.06121998249813701)); -#742 = CARTESIAN_POINT('NONE', (0.029491000166860293, 0.019049, -0.06134255563733308)); -#743 = CARTESIAN_POINT('NONE', (0.029493825149871335, 0.019049, -0.061344172301616484)); -#744 = CARTESIAN_POINT('NONE', (0.029712440307202912, 0.019049, -0.06145452851850512)); -#745 = CARTESIAN_POINT('NONE', (0.02971532370660824, 0.019049, -0.061455984049100694)); -#746 = CARTESIAN_POINT('NONE', (0.02993735788153034, 0.019049, -0.06155397070133552)); -#747 = CARTESIAN_POINT('NONE', (0.02994028637567386, 0.019049, -0.06155526308498462)); -#748 = CARTESIAN_POINT('NONE', (0.03016473734468511, 0.019049, -0.06164083372311081)); -#749 = CARTESIAN_POINT('NONE', (0.03016769771485555, 0.019049, -0.06164196234717374)); -#750 = CARTESIAN_POINT('NONE', (0.03039358414091043, 0.019049, -0.06171517235073389)); -#751 = CARTESIAN_POINT('NONE', (0.030396563443875996, 0.019049, -0.061716137945632736)); -#752 = CARTESIAN_POINT('NONE', (0.030622936763489983, 0.019049, -0.061777138396898065)); -#753 = CARTESIAN_POINT('NONE', (0.030625922488281998, 0.019049, -0.06177794295531501)); -#754 = CARTESIAN_POINT('NONE', (0.03085187736591307, 0.019049, -0.06182697304733345)); -#755 = CARTESIAN_POINT('NONE', (0.030854857571712805, 0.019049, -0.061827619724077625)); -#756 = CARTESIAN_POINT('NONE', (0.031079540755305467, 0.019049, -0.06186499802653966)); -#757 = CARTESIAN_POINT('NONE', (0.031082504188243352, 0.019049, -0.06186549102334924)); -#758 = CARTESIAN_POINT('NONE', (0.0313051216723537, 0.019049, -0.06189160593911745)); -#759 = CARTESIAN_POINT('NONE', (0.03130805785998649, 0.019049, -0.06189195037878721)); -#760 = CARTESIAN_POINT('NONE', (0.03152788033151601, 0.019049, -0.06190725011735743)); -#761 = CARTESIAN_POINT('NONE', (0.03153077965465271, 0.019049, -0.06190745191149483)); -#762 = CARTESIAN_POINT('NONE', (0.03174714625764284, 0.019049, -0.06191243428555198)); -#763 = CARTESIAN_POINT('NONE', (0.03175, 0.019049, -0.0619125)); -#764 = CARTESIAN_POINT('NONE', (0.03196636660299013, 0.019049, -0.06190751762594285)); -#765 = CARTESIAN_POINT('NONE', (0.031969220345347285, 0.019049, -0.06190745191149483)); -#766 = CARTESIAN_POINT('NONE', (0.0321890428168768, 0.019049, -0.06189215217292461)); -#767 = CARTESIAN_POINT('NONE', (0.0321919421400135, 0.019049, -0.06189195037878721)); -#768 = CARTESIAN_POINT('NONE', (0.03241455962412385, 0.019049, -0.061865835463019006)); -#769 = CARTESIAN_POINT('NONE', (0.032417495811756646, 0.019049, -0.06186549102334924)); -#770 = CARTESIAN_POINT('NONE', (0.032642178995349304, 0.019049, -0.06182811272088723)); -#771 = CARTESIAN_POINT('NONE', (0.03264514242828719, 0.019049, -0.061827619724077645)); -#772 = CARTESIAN_POINT('NONE', (0.03287109730591826, 0.019049, -0.06177858963205918)); -#773 = CARTESIAN_POINT('NONE', (0.032874077511717996, 0.019049, -0.06177794295531501)); -#774 = CARTESIAN_POINT('NONE', (0.033100450831331986, 0.019049, -0.06171694250404969)); -#775 = CARTESIAN_POINT('NONE', (0.033103436556124, 0.019049, -0.06171613794563274)); -#776 = CARTESIAN_POINT('NONE', (0.033329322982178874, 0.019049, -0.06164292794207258)); -#777 = CARTESIAN_POINT('NONE', (0.03333230228514444, 0.019049, -0.06164196234717374)); -#778 = CARTESIAN_POINT('NONE', (0.03355675325415569, 0.019049, -0.06155639170904755)); -#779 = CARTESIAN_POINT('NONE', (0.03355971362432614, 0.019049, -0.06155526308498462)); -#780 = CARTESIAN_POINT('NONE', (0.03378174779924824, 0.019049, -0.061457276432749806)); -#781 = CARTESIAN_POINT('NONE', (0.03378467629339177, 0.019049, -0.061455984049100694)); -#782 = CARTESIAN_POINT('NONE', (0.03400329145072335, 0.019049, -0.06134562783221205)); -#783 = CARTESIAN_POINT('NONE', (0.03400617485012868, 0.019049, -0.061344172301616484)); -#784 = CARTESIAN_POINT('NONE', (0.03422036096124354, 0.019049, -0.061221599162420405)); -#785 = CARTESIAN_POINT('NONE', (0.03422318594425458, 0.019049, -0.06121998249813701)); -#786 = CARTESIAN_POINT('NONE', (0.03443193914485396, 0.019049, -0.06108545362136306)); -#787 = CARTESIAN_POINT('NONE', (0.034434692471118314, 0.019049, -0.06108367926825771)); -#788 = CARTESIAN_POINT('NONE', (0.03463702955470621, 0.019049, -0.0609375645256474)); -#789 = CARTESIAN_POINT('NONE', (0.0346396982563352, 0.019049, -0.06093563736210077)); -#790 = CARTESIAN_POINT('NONE', (0.03474072968589391, 0.019049, -0.06085416666666666)); -#791 = CARTESIAN_POINT('NONE', (0.03483467128385074, 0.019049, -0.06077841313779784)); -#792 = CARTESIAN_POINT('NONE', (0.034837242858111434, 0.019049, -0.06077633944702365)); -#793 = CARTESIAN_POINT('NONE', (0.03502395345023941, 0.019049, -0.06060858411620556)); -#794 = CARTESIAN_POINT('NONE', (0.03502641604806145, 0.019049, -0.060606371526616507)); -#795 = CARTESIAN_POINT('NONE', (0.03520402892209803, 0.019049, -0.06042875865257993)); -#796 = CARTESIAN_POINT('NONE', (0.035206371526616514, 0.019049, -0.06042641604806144)); -#797 = CARTESIAN_POINT('NONE', (0.035374126857434615, 0.019049, -0.06023970545593346)); -#798 = CARTESIAN_POINT('NONE', (0.03537633944702367, 0.019049, -0.06023724285811143)); -#799 = CARTESIAN_POINT('NONE', (0.03545416666666667, 0.019049, -0.060140729685893915)); -#800 = CARTESIAN_POINT('NONE', (0.035533563671326575, 0.019049, -0.0600422698305959)); -#801 = CARTESIAN_POINT('NONE', (0.035535637362100775, 0.019049, -0.0600396982563352)); -#802 = CARTESIAN_POINT('NONE', (0.035681752104711084, 0.019049, -0.05983736117274731)); -#803 = CARTESIAN_POINT('NONE', (0.035683679268257724, 0.019049, -0.05983469247111832)); -#804 = CARTESIAN_POINT('NONE', (0.035818208145031664, 0.019049, -0.059625939270518936)); -#805 = CARTESIAN_POINT('NONE', (0.03581998249813702, 0.019049, -0.05962318594425458)); -#806 = CARTESIAN_POINT('NONE', (0.03594255563733309, 0.019049, -0.05940899983313972)); -#807 = CARTESIAN_POINT('NONE', (0.03594417230161649, 0.019049, -0.05940617485012868)); -#808 = CARTESIAN_POINT('NONE', (0.03605452851850512, 0.019049, -0.05918755969279709)); -#809 = CARTESIAN_POINT('NONE', (0.036055984049100695, 0.019049, -0.05918467629339177)); -#810 = CARTESIAN_POINT('NONE', (0.036153970701335525, 0.019049, -0.05896264211846966)); -#811 = CARTESIAN_POINT('NONE', (0.03615526308498463, 0.019049, -0.058959713624326136)); -#812 = CARTESIAN_POINT('NONE', (0.036240833723110814, 0.019049, -0.058735262655314875)); -#813 = CARTESIAN_POINT('NONE', (0.036241962347173744, 0.019049, -0.058732302285144436)); -#814 = CARTESIAN_POINT('NONE', (0.03631517235073389, 0.019049, -0.058506415859089556)); -#815 = CARTESIAN_POINT('NONE', (0.03631613794563274, 0.019049, -0.058503436556123986)); -#816 = CARTESIAN_POINT('NONE', (0.03637713839689807, 0.019049, -0.05827706323651001)); -#817 = CARTESIAN_POINT('NONE', (0.03637794295531502, 0.019049, -0.05827407751171799)); -#818 = CARTESIAN_POINT('NONE', (0.036426973047333465, 0.019049, -0.05804812263408692)); -#819 = CARTESIAN_POINT('NONE', (0.03642761972407763, 0.019049, -0.05804514242828718)); -#820 = CARTESIAN_POINT('NONE', (0.03646499802653966, 0.019049, -0.057820459244694526)); -#821 = CARTESIAN_POINT('NONE', (0.03646549102334924, 0.019049, -0.057817495811756645)); -#822 = CARTESIAN_POINT('NONE', (0.03649160593911746, 0.019049, -0.057594878327646294)); -#823 = CARTESIAN_POINT('NONE', (0.036491950378787226, 0.019049, -0.0575919421400135)); -#824 = CARTESIAN_POINT('NONE', (0.036507250117357434, 0.019049, -0.05737211966848399)); -#825 = CARTESIAN_POINT('NONE', (0.036507451911494834, 0.019049, -0.057369220345347284)); -#826 = CARTESIAN_POINT('NONE', (0.03651243428555198, 0.019049, -0.05715285374235715)); -#827 = CARTESIAN_POINT('NONE', (0.0365125, 0.019049, -0.05715)); -#828 = CARTESIAN_POINT('NONE', (0.036507517625942856, 0.019049, -0.05693363339700987)); -#829 = CARTESIAN_POINT('NONE', (0.036507451911494834, 0.019049, -0.05693077965465271)); -#830 = CARTESIAN_POINT('NONE', (0.03649215217292462, 0.019049, -0.05671095718312318)); -#831 = CARTESIAN_POINT('NONE', (0.036491950378787226, 0.019049, -0.05670805785998649)); -#832 = CARTESIAN_POINT('NONE', (0.03646583546301901, 0.019049, -0.05648544037587614)); -#833 = CARTESIAN_POINT('NONE', (0.03646549102334924, 0.019049, -0.05648250418824335)); -#834 = CARTESIAN_POINT('NONE', (0.036428112720887224, 0.019049, -0.05625782100465071)); -#835 = CARTESIAN_POINT('NONE', (0.03642761972407764, 0.019049, -0.05625485757171282)); -#836 = CARTESIAN_POINT('NONE', (0.036378589632059186, 0.019049, -0.05602890269408174)); -#837 = CARTESIAN_POINT('NONE', (0.03637794295531502, 0.019049, -0.056025922488282)); -#838 = CARTESIAN_POINT('NONE', (0.03631694250404968, 0.019049, -0.055799549168668014)); -#839 = CARTESIAN_POINT('NONE', (0.03631613794563274, 0.019049, -0.055796563443876)); -#840 = CARTESIAN_POINT('NONE', (0.036242927942072595, 0.019049, -0.055570677017821125)); -#841 = CARTESIAN_POINT('NONE', (0.03624196234717375, 0.019049, -0.05556769771485555)); -#842 = CARTESIAN_POINT('NONE', (0.03615639170904757, 0.019049, -0.0553432467458443)); -#843 = CARTESIAN_POINT('NONE', (0.03615526308498464, 0.019049, -0.05534028637567386)); -#844 = CARTESIAN_POINT('NONE', (0.03605727643274981, 0.019049, -0.055118252200751776)); -#845 = CARTESIAN_POINT('NONE', (0.036055984049100695, 0.019049, -0.055115323706608245)); -#846 = CARTESIAN_POINT('NONE', (0.035945627832212064, 0.019049, -0.05489670854927666)); -#847 = CARTESIAN_POINT('NONE', (0.03594417230161649, 0.019049, -0.05489382514987133)); -#848 = CARTESIAN_POINT('NONE', (0.03582159916242041, 0.019049, -0.05467963903875645)); -#849 = CARTESIAN_POINT('NONE', (0.03581998249813702, 0.019049, -0.05467681405574541)); -#850 = CARTESIAN_POINT('NONE', (0.03568545362136307, 0.019049, -0.05446806085514603)); -#851 = CARTESIAN_POINT('NONE', (0.03568367926825772, 0.019049, -0.05446530752888167)); -#852 = CARTESIAN_POINT('NONE', (0.03553756452564741, 0.019049, -0.05426297044529378)); -#853 = CARTESIAN_POINT('NONE', (0.035535637362100775, 0.019049, -0.05426030174366479)); -#854 = CARTESIAN_POINT('NONE', (0.03545416666666667, 0.019049, -0.05415927031410607)); -#855 = CARTESIAN_POINT('NONE', (0.035378413137797854, 0.019049, -0.05406532871614925)); -#856 = CARTESIAN_POINT('NONE', (0.03537633944702367, 0.019049, -0.05406275714188855)); -#857 = CARTESIAN_POINT('NONE', (0.03520858411620557, 0.019049, -0.053876046549760574)); -#858 = CARTESIAN_POINT('NONE', (0.035206371526616514, 0.019049, -0.05387358395193854)); -#859 = CARTESIAN_POINT('NONE', (0.03511639378733899, 0.019049, -0.05378360621266101)); -#860 = CARTESIAN_POINT('NONE', (0.03502875865257994, 0.019049, -0.05369597107790197)); -#861 = CARTESIAN_POINT('NONE', (0.03502641604806145, 0.019049, -0.053693628473383485)); -#862 = CARTESIAN_POINT('NONE', (0.03483970545593346, 0.019049, -0.05352587314256537)); -#863 = CARTESIAN_POINT('NONE', (0.034837242858111434, 0.019049, -0.053523660552976325)); -#864 = CARTESIAN_POINT('NONE', (0.03474072968589392, 0.019049, -0.05344583333333333)); -#865 = CARTESIAN_POINT('NONE', (0.03464226983059591, 0.019049, -0.053366436328673425)); -#866 = CARTESIAN_POINT('NONE', (0.03463969825633521, 0.019049, -0.053364362637899225)); -#867 = CARTESIAN_POINT('NONE', (0.03443736117274731, 0.019049, -0.05321824789528891)); -#868 = CARTESIAN_POINT('NONE', (0.03443469247111832, 0.019049, -0.05321632073174227)); -#869 = CARTESIAN_POINT('NONE', (0.03422593927051894, 0.019049, -0.05308179185496834)); -#870 = CARTESIAN_POINT('NONE', (0.03422318594425458, 0.019049, -0.05308001750186299)); -#871 = CARTESIAN_POINT('NONE', (0.03400899983313972, 0.019049, -0.05295744436266692)); -#872 = CARTESIAN_POINT('NONE', (0.03400617485012868, 0.019049, -0.05295582769838352)); -#873 = CARTESIAN_POINT('NONE', (0.0337875596927971, 0.019049, -0.052845471481494884)); -#874 = CARTESIAN_POINT('NONE', (0.03378467629339177, 0.019049, -0.05284401595089931)); -#875 = CARTESIAN_POINT('NONE', (0.03356264211846966, 0.019049, -0.05274602929866448)); -#876 = CARTESIAN_POINT('NONE', (0.03355971362432614, 0.019049, -0.05274473691501537)); -#877 = CARTESIAN_POINT('NONE', (0.033335262655314876, 0.019049, -0.05265916627688918)); -#878 = CARTESIAN_POINT('NONE', (0.03333230228514444, 0.019049, -0.05265803765282625)); -#879 = CARTESIAN_POINT('NONE', (0.033106415859089564, 0.019049, -0.052584827649266086)); -#880 = CARTESIAN_POINT('NONE', (0.033103436556123994, 0.019049, -0.05258386205436724)); -#881 = CARTESIAN_POINT('NONE', (0.03287706323651002, 0.019049, -0.05252286160310193)); -#882 = CARTESIAN_POINT('NONE', (0.032874077511717996, 0.019049, -0.05252205704468498)); -#883 = CARTESIAN_POINT('NONE', (0.032648122634086923, 0.019049, -0.05247302695266652)); -#884 = CARTESIAN_POINT('NONE', (0.03264514242828718, 0.019049, -0.05247238027592235)); -#885 = CARTESIAN_POINT('NONE', (0.03242045924469453, 0.019049, -0.05243500197346032)); -#886 = CARTESIAN_POINT('NONE', (0.032417495811756646, 0.019049, -0.05243450897665074)); -#887 = CARTESIAN_POINT('NONE', (0.032194878327646295, 0.019049, -0.05240839406088253)); -#888 = CARTESIAN_POINT('NONE', (0.0321919421400135, 0.019049, -0.05240804962121277)); -#889 = CARTESIAN_POINT('NONE', (0.031972119668484, 0.019049, -0.05239274988264256)); -#890 = CARTESIAN_POINT('NONE', (0.03196922034534729, 0.019049, -0.052392548088505166)); -#891 = CARTESIAN_POINT('NONE', (0.03175285374235716, 0.019049, -0.05238756571444802)); -#892 = CARTESIAN_POINT('NONE', (0.03175, 0.019049, -0.0523875)); -#893 = CARTESIAN_POINT('NONE', (0.03153363339700987, 0.019049, -0.052392482374057144)); -#894 = CARTESIAN_POINT('NONE', (0.03153077965465271, 0.019049, -0.052392548088505166)); -#895 = CARTESIAN_POINT('NONE', (0.03131095718312319, 0.019049, -0.05240784782707537)); -#896 = CARTESIAN_POINT('NONE', (0.03130805785998649, 0.019049, -0.05240804962121276)); -#897 = CARTESIAN_POINT('NONE', (0.031085440375876135, 0.019049, -0.05243416453698098)); -#898 = CARTESIAN_POINT('NONE', (0.03108250418824335, 0.019049, -0.05243450897665074)); -#899 = CARTESIAN_POINT('NONE', (0.030857821004650707, 0.019049, -0.05247188727911278)); -#900 = CARTESIAN_POINT('NONE', (0.030854857571712815, 0.019049, -0.05247238027592237)); -#901 = CARTESIAN_POINT('NONE', (0.03062890269408175, 0.019049, -0.052521410367940814)); -#902 = CARTESIAN_POINT('NONE', (0.030625922488282005, 0.019049, -0.05252205704468498)); -#903 = CARTESIAN_POINT('NONE', (0.03039954916866802, 0.019049, -0.052583057495950304)); -#904 = CARTESIAN_POINT('NONE', (0.030396563443875996, 0.019049, -0.05258386205436725)); -#905 = CARTESIAN_POINT('NONE', (0.030170677017821137, 0.019049, -0.052657072057927405)); -#906 = CARTESIAN_POINT('NONE', (0.03016769771485556, 0.019049, -0.05265803765282625)); -#907 = CARTESIAN_POINT('NONE', (0.029943246745844313, 0.019049, -0.05274360829095243)); -#908 = CARTESIAN_POINT('NONE', (0.029940286375673867, 0.019049, -0.05274473691501537)); -#909 = CARTESIAN_POINT('NONE', (0.029718252200751773, 0.019049, -0.0528427235672502)); -#910 = CARTESIAN_POINT('NONE', (0.029715323706608242, 0.019049, -0.05284401595089931)); -#911 = CARTESIAN_POINT('NONE', (0.02949670854927666, 0.019049, -0.05295437216778796)); -#912 = CARTESIAN_POINT('NONE', (0.029493825149871335, 0.019049, -0.05295582769838352)); -#913 = CARTESIAN_POINT('NONE', (0.02927963903875646, 0.019049, -0.05307840083757959)); -#914 = CARTESIAN_POINT('NONE', (0.029276814055745424, 0.019049, -0.05308001750186298)); -#915 = CARTESIAN_POINT('NONE', (0.029068060855146027, 0.019049, -0.05321454637863691)); -#916 = CARTESIAN_POINT('NONE', (0.029065307528881677, 0.019049, -0.05321632073174226)); -#917 = CARTESIAN_POINT('NONE', (0.028862970445293786, 0.019049, -0.053362435474352585)); -#918 = CARTESIAN_POINT('NONE', (0.028860301743664798, 0.019049, -0.053364362637899225)); -#919 = CARTESIAN_POINT('NONE', (0.028759270314106074, 0.019049, -0.05344583333333333)); -#920 = CARTESIAN_POINT('NONE', (0.028665328716149262, 0.019049, -0.05352158686220213)); -#921 = CARTESIAN_POINT('NONE', (0.028662757141888567, 0.019049, -0.053523660552976325)); -#922 = CARTESIAN_POINT('NONE', (0.028476046549760586, 0.019049, -0.053691415883794426)); -#923 = CARTESIAN_POINT('NONE', (0.028473583951938546, 0.019049, -0.05369362847338348)); -#924 = CARTESIAN_POINT('NONE', (0.028295971077901983, 0.019049, -0.053871241347420044)); -#925 = CARTESIAN_POINT('NONE', (0.028293628473383493, 0.019049, -0.05387358395193854)); -#926 = CARTESIAN_POINT('NONE', (0.02812587314256538, 0.019049, -0.05406029454406653)); -#927 = CARTESIAN_POINT('NONE', (0.02812366055297633, 0.019049, -0.05406275714188856)); -#928 = CARTESIAN_POINT('NONE', (0.028045833333333332, 0.019049, -0.054159270314106084)); -#929 = CARTESIAN_POINT('NONE', (0.02796643632867343, 0.019049, -0.05425773016940409)); -#930 = CARTESIAN_POINT('NONE', (0.027964362637899236, 0.019049, -0.05426030174366479)); -#931 = CARTESIAN_POINT('NONE', (0.027818247895288917, 0.019049, -0.05446263882725269)); -#932 = CARTESIAN_POINT('NONE', (0.02781632073174228, 0.019049, -0.05446530752888168)); -#933 = CARTESIAN_POINT('NONE', (0.027681791854968347, 0.019049, -0.054674060729481055)); -#934 = CARTESIAN_POINT('NONE', (0.027680017501862993, 0.019049, -0.05467681405574541)); -#935 = CARTESIAN_POINT('NONE', (0.027557444362666928, 0.019049, -0.054891000166860285)); -#936 = CARTESIAN_POINT('NONE', (0.02755582769838353, 0.019049, -0.05489382514987133)); -#937 = CARTESIAN_POINT('NONE', (0.027445471481494885, 0.019049, -0.0551124403072029)); -#938 = CARTESIAN_POINT('NONE', (0.027444015950899316, 0.019049, -0.05511532370660823)); -#939 = CARTESIAN_POINT('NONE', (0.027346029298664476, 0.019049, -0.05533735788153033)); -#940 = CARTESIAN_POINT('NONE', (0.027344736915015364, 0.019049, -0.055340286375673856)); -#941 = CARTESIAN_POINT('NONE', (0.027259166276889187, 0.019049, -0.0555647373446851)); -#942 = CARTESIAN_POINT('NONE', (0.027258037652826257, 0.019049, -0.05556769771485555)); -#943 = CARTESIAN_POINT('NONE', (0.0271848276492661, 0.019049, -0.05579358414091042)); -#944 = CARTESIAN_POINT('NONE', (0.027183862054367257, 0.019049, -0.055796563443876)); -#945 = CARTESIAN_POINT('NONE', (0.02712286160310193, 0.019049, -0.05602293676348998)); -#946 = CARTESIAN_POINT('NONE', (0.027122057044684986, 0.019049, -0.056025922488282)); -#947 = CARTESIAN_POINT('NONE', (0.027073026952666533, 0.019049, -0.05625187736591306)); -#948 = CARTESIAN_POINT('NONE', (0.02707238027592236, 0.019049, -0.05625485757171281)); -#949 = CARTESIAN_POINT('NONE', (0.027035001973460333, 0.019049, -0.056479540755305466)); -#950 = CARTESIAN_POINT('NONE', (0.02703450897665075, 0.019049, -0.05648250418824335)); -#951 = CARTESIAN_POINT('NONE', (0.027008394060882537, 0.019049, -0.0567051216723537)); -#952 = CARTESIAN_POINT('NONE', (0.02700804962121278, 0.019049, -0.05670805785998649)); -#953 = CARTESIAN_POINT('NONE', (0.026992749882642563, 0.019049, -0.056927880331516)); -#954 = CARTESIAN_POINT('NONE', (0.02699254808850517, 0.019049, -0.0569307796546527)); -#955 = CARTESIAN_POINT('NONE', (0.026987565714448023, 0.019049, -0.05714714625764285)); -#956 = CARTESIAN_POINT('NONE', (0.0269875, 0.019049, -0.05715)); -#957 = B_SPLINE_CURVE_WITH_KNOTS('NONE', 2, (#698, #699, #700, #701, #702, #703, #704, #705, #706, #707, #708, #709, #710, #711, #712, #713, #714, #715, #716, #717, #718, #719, #720, #721, #722, #723, #724, #725, #726, #727, #728, #729, #730, #731, #732, #733, #734, #735, #736, #737, #738, #739, #740, #741, #742, #743, #744, #745, #746, #747, #748, #749, #750, #751, #752, #753, #754, #755, #756, #757, #758, #759, #760, #761, #762, #763, #764, #765, #766, #767, #768, #769, #770, #771, #772, #773, #774, #775, #776, #777, #778, #779, #780, #781, #782, #783, #784, #785, #786, #787, #788, #789, #790, #791, #792, #793, #794, #795, #796, #797, #798, #799, #800, #801, #802, #803, #804, #805, #806, #807, #808, #809, #810, #811, #812, #813, #814, #815, #816, #817, #818, #819, #820, #821, #822, #823, #824, #825, #826, #827, #828, #829, #830, #831, #832, #833, #834, #835, #836, #837, #838, #839, #840, #841, #842, #843, #844, #845, #846, #847, #848, #849, #850, #851, #852, #853, #854, #855, #856, #857, #858, #859, #860, #861, #862, #863, #864, #865, #866, #867, #868, #869, #870, #871, #872, #873, #874, #875, #876, #877, #878, #879, #880, #881, #882, #883, #884, #885, #886, #887, #888, #889, #890, #891, #892, #893, #894, #895, #896, #897, #898, #899, #900, #901, #902, #903, #904, #905, #906, #907, #908, #909, #910, #911, #912, #913, #914, #915, #916, #917, #918, #919, #920, #921, #922, #923, #924, #925, #926, #927, #928, #929, #930, #931, #932, #933, #934, #935, #936, #937, #938, #939, #940, #941, #942, #943, #944, #945, #946, #947, #948, #949, #950, #951, #952, #953, #954, #955, #956), .UNSPECIFIED., .F., .F., (3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3), (-1, -0.9961089494163424, -0.9922178988326849, -0.9883268482490273, -0.9844357976653697, -0.980544747081712, -0.9766536964980544, -0.9727626459143969, -0.9688715953307393, -0.9649805447470817, -0.9610894941634242, -0.9571984435797666, -0.9533073929961089, -0.9494163424124513, -0.9455252918287937, -0.9416342412451362, -0.9377431906614786, -0.933852140077821, -0.9299610894941635, -0.9260700389105059, -0.9221789883268483, -0.9182879377431906, -0.914396887159533, -0.9105058365758755, -0.9066147859922179, -0.9027237354085603, -0.8988326848249028, -0.8949416342412452, -0.8910505836575875, -0.8871595330739299, -0.8832684824902723, -0.8793774319066148, -0.8754863813229572, -0.8715953307392996, -0.867704280155642, -0.8638132295719845, -0.8599221789883269, -0.8560311284046693, -0.8521400778210116, -0.8482490272373541, -0.8443579766536965, -0.8404669260700389, -0.8365758754863813, -0.8326848249027237, -0.8287937743190661, -0.8249027237354085, -0.8210116731517509, -0.8171206225680934, -0.8132295719844358, -0.8093385214007782, -0.8054474708171206, -0.8015564202334631, -0.7976653696498055, -0.7937743190661479, -0.7898832684824902, -0.7859922178988327, -0.7821011673151751, -0.7782101167315175, -0.77431906614786, -0.7704280155642023, -0.7665369649805447, -0.7626459143968871, -0.7587548638132295, -0.754863813229572, -0.7509727626459144, -0.7470817120622568, -0.7431906614785992, -0.7392996108949417, -0.7354085603112841, -0.7315175097276265, -0.7276264591439688, -0.7237354085603113, -0.7198443579766537, -0.7159533073929961, -0.7120622568093385, -0.7081712062256809, -0.7042801556420233, -0.7003891050583657, -0.6964980544747081, -0.6926070038910506, -0.688715953307393, -0.6848249027237354, -0.6809338521400778, -0.6770428015564203, -0.6731517509727627, -0.6692607003891051, -0.6653696498054474, -0.6614785992217899, -0.6575875486381323, -0.6536964980544747, -0.6498054474708171, -0.6459143968871595, -0.6420233463035019, -0.6381322957198443, -0.6342412451361867, -0.6303501945525292, -0.6264591439688716, -0.622568093385214, -0.6186770428015564, -0.6147859922178989, -0.6108949416342413, -0.6070038910505837, -0.603112840466926, -0.5992217898832685, -0.5953307392996109, -0.5914396887159533, -0.5875486381322957, -0.5836575875486381, -0.5797665369649805, -0.5758754863813229, -0.5719844357976653, -0.5680933852140078, -0.5642023346303502, -0.5603112840466926, -0.556420233463035, -0.5525291828793775, -0.5486381322957199, -0.5447470817120623, -0.5408560311284046, -0.5369649805447471, -0.5330739299610895, -0.5291828793774319, -0.5252918287937743, -0.5214007782101167, -0.5175097276264591, -0.5136186770428015, -0.5097276264591439, -0.5058365758754864, -0.5019455252918288, -0.4980544747081712, -0.49416342412451364, -0.49027237354085607, -0.48638132295719844, -0.48249027237354086, -0.4785992217898833, -0.47470817120622566, -0.4708171206225681, -0.4669260700389105, -0.46303501945525294, -0.45914396887159536, -0.45525291828793774, -0.45136186770428016, -0.4474708171206226, -0.44357976653696496, -0.4396887159533074, -0.4357976653696498, -0.43190661478599224, -0.42801556420233466, -0.42412451361867703, -0.42023346303501946, -0.4163424124513619, -0.41245136186770426, -0.4085603112840467, -0.4046692607003891, -0.40077821011673154, -0.39688715953307396, -0.39299610894941633, -0.38910505836575876, -0.3852140077821012, -0.38132295719844356, -0.377431906614786, -0.3735408560311284, -0.36964980544747084, -0.36575875486381326, -0.36186770428015563, -0.35797665369649806, -0.3540856031128405, -0.35019455252918286, -0.3463035019455253, -0.3424124513618677, -0.33852140077821014, -0.33463035019455256, -0.33073929961089493, -0.32684824902723736, -0.3229571984435798, -0.31906614785992216, -0.3151750972762646, -0.311284046692607, -0.30739299610894943, -0.30350194552529186, -0.29961089494163423, -0.29571984435797666, -0.2918287937743191, -0.28793774319066145, -0.2840466926070039, -0.2801556420233463, -0.27626459143968873, -0.27237354085603116, -0.26848249027237353, -0.26459143968871596, -0.2607003891050584, -0.25680933852140075, -0.2529182879377432, -0.2490272373540856, -0.24513618677042803, -0.24124513618677043, -0.23735408560311283, -0.23346303501945526, -0.22957198443579768, -0.22568093385214008, -0.22178988326848248, -0.2178988326848249, -0.21400778210116733, -0.21011673151750973, -0.20622568093385213, -0.20233463035019456, -0.19844357976653698, -0.19455252918287938, -0.19066147859922178, -0.1867704280155642, -0.18287937743190663, -0.17898832684824903, -0.17509727626459143, -0.17120622568093385, -0.16731517509727628, -0.16342412451361868, -0.15953307392996108, -0.1556420233463035, -0.15175097276264593, -0.14785992217898833, -0.14396887159533073, -0.14007782101167315, -0.13618677042801558, -0.13229571984435798, -0.12840466926070038, -0.1245136186770428, -0.12062256809338522, -0.11673151750972763, -0.11284046692607004, -0.10894941634241245, -0.10505836575875487, -0.10116731517509728, -0.09727626459143969, -0.0933852140077821, -0.08949416342412451, -0.08560311284046693, -0.08171206225680934, -0.07782101167315175, -0.07392996108949416, -0.07003891050583658, -0.06614785992217899, -0.0622568093385214, -0.058365758754863814, -0.054474708171206226, -0.05058365758754864, -0.04669260700389105, -0.042801556420233464, -0.038910505836575876, -0.03501945525291829, -0.0311284046692607, -0.027237354085603113, -0.023346303501945526, -0.019455252918287938, -0.01556420233463035, -0.011673151750972763, -0.007782101167315175, -0.0038910505836575876, -0), .UNSPECIFIED.); -#958 = DIRECTION('NONE', (0, -1, 0)); -#959 = VECTOR('NONE', #958, 1); -#960 = CARTESIAN_POINT('NONE', (0.0269875, 0.019051000000000002, -0.05715)); -#961 = LINE('NONE', #960, #959); -#962 = DIRECTION('NONE', (-1, 0, 0.0000000000000014919532509398443)); -#963 = DIRECTION('NONE', (-0, -1, 0)); -#964 = CARTESIAN_POINT('NONE', (0.031749999999999994, -0, -0.057150000000000006)); -#965 = AXIS2_PLACEMENT_3D('NONE', #964, #963, #962); -#966 = CIRCLE('NONE', #965, 0.004762499999999996); -#967 = CARTESIAN_POINT('NONE', (-0.0365125, 0.019049, -0.05715)); -#968 = CARTESIAN_POINT('NONE', (-0.036507517625942856, 0.019049, -0.05736636660299014)); -#969 = CARTESIAN_POINT('NONE', (-0.036507451911494834, 0.019049, -0.05736922034534729)); -#970 = CARTESIAN_POINT('NONE', (-0.036492152172924626, 0.019049, -0.0575890428168768)); -#971 = CARTESIAN_POINT('NONE', (-0.03649195037878723, 0.019049, -0.05759194214001351)); -#972 = CARTESIAN_POINT('NONE', (-0.03646583546301901, 0.019049, -0.05781455962412386)); -#973 = CARTESIAN_POINT('NONE', (-0.03646549102334924, 0.019049, -0.05781749581175665)); -#974 = CARTESIAN_POINT('NONE', (-0.03642811272088722, 0.019049, -0.058042178995349296)); -#975 = CARTESIAN_POINT('NONE', (-0.03642761972407763, 0.019049, -0.05804514242828718)); -#976 = CARTESIAN_POINT('NONE', (-0.03637858963205918, 0.019049, -0.05827109730591826)); -#977 = CARTESIAN_POINT('NONE', (-0.03637794295531501, 0.019049, -0.05827407751171799)); -#978 = CARTESIAN_POINT('NONE', (-0.03631694250404969, 0.019049, -0.05850045083133198)); -#979 = CARTESIAN_POINT('NONE', (-0.036316137945632744, 0.019049, -0.05850343655612399)); -#980 = CARTESIAN_POINT('NONE', (-0.036242927942072574, 0.019049, -0.05872932298217887)); -#981 = CARTESIAN_POINT('NONE', (-0.03624196234717374, 0.019049, -0.058732302285144436)); -#982 = CARTESIAN_POINT('NONE', (-0.03615639170904756, 0.019049, -0.058956753254155676)); -#983 = CARTESIAN_POINT('NONE', (-0.03615526308498463, 0.019049, -0.05895971362432612)); -#984 = CARTESIAN_POINT('NONE', (-0.03605727643274981, 0.019049, -0.05918174779924823)); -#985 = CARTESIAN_POINT('NONE', (-0.036055984049100695, 0.019049, -0.05918467629339176)); -#986 = CARTESIAN_POINT('NONE', (-0.03594562783221205, 0.019049, -0.05940329145072335)); -#987 = CARTESIAN_POINT('NONE', (-0.035944172301616485, 0.019049, -0.05940617485012868)); -#988 = CARTESIAN_POINT('NONE', (-0.035821599162420406, 0.019049, -0.05962036096124355)); -#989 = CARTESIAN_POINT('NONE', (-0.03581998249813702, 0.019049, -0.05962318594425458)); -#990 = CARTESIAN_POINT('NONE', (-0.03568545362136307, 0.019049, -0.05983193914485396)); -#991 = CARTESIAN_POINT('NONE', (-0.03568367926825772, 0.019049, -0.05983469247111832)); -#992 = CARTESIAN_POINT('NONE', (-0.03553756452564741, 0.019049, -0.0600370295547062)); -#993 = CARTESIAN_POINT('NONE', (-0.035535637362100775, 0.019049, -0.06003969825633519)); -#994 = CARTESIAN_POINT('NONE', (-0.03545416666666667, 0.019049, -0.060140729685893915)); -#995 = CARTESIAN_POINT('NONE', (-0.03537841313779787, 0.019049, -0.06023467128385073)); -#996 = CARTESIAN_POINT('NONE', (-0.035376339447023675, 0.019049, -0.06023724285811143)); -#997 = CARTESIAN_POINT('NONE', (-0.03520858411620557, 0.019049, -0.060423953450239404)); -#998 = CARTESIAN_POINT('NONE', (-0.035206371526616514, 0.019049, -0.06042641604806144)); -#999 = CARTESIAN_POINT('NONE', (-0.03511639378733898, 0.019049, -0.06051639378733898)); -#1000 = CARTESIAN_POINT('NONE', (-0.03502875865257994, 0.019049, -0.06060402892209802)); -#1001 = CARTESIAN_POINT('NONE', (-0.03502641604806145, 0.019049, -0.060606371526616507)); -#1002 = CARTESIAN_POINT('NONE', (-0.03483970545593346, 0.019049, -0.060774126857434614)); -#1003 = CARTESIAN_POINT('NONE', (-0.034837242858111434, 0.019049, -0.06077633944702367)); -#1004 = CARTESIAN_POINT('NONE', (-0.03474072968589392, 0.019049, -0.06085416666666666)); -#1005 = CARTESIAN_POINT('NONE', (-0.03464226983059591, 0.019049, -0.06093356367132657)); -#1006 = CARTESIAN_POINT('NONE', (-0.03463969825633521, 0.019049, -0.06093563736210077)); -#1007 = CARTESIAN_POINT('NONE', (-0.03443736117274731, 0.019049, -0.061081752104711076)); -#1008 = CARTESIAN_POINT('NONE', (-0.03443469247111832, 0.019049, -0.061083679268257716)); -#1009 = CARTESIAN_POINT('NONE', (-0.03422593927051894, 0.019049, -0.061218208145031656)); -#1010 = CARTESIAN_POINT('NONE', (-0.03422318594425458, 0.019049, -0.06121998249813701)); -#1011 = CARTESIAN_POINT('NONE', (-0.03400899983313972, 0.019049, -0.06134255563733308)); -#1012 = CARTESIAN_POINT('NONE', (-0.03400617485012868, 0.019049, -0.061344172301616484)); -#1013 = CARTESIAN_POINT('NONE', (-0.0337875596927971, 0.019049, -0.06145452851850512)); -#1014 = CARTESIAN_POINT('NONE', (-0.03378467629339177, 0.019049, -0.061455984049100694)); -#1015 = CARTESIAN_POINT('NONE', (-0.03356264211846966, 0.019049, -0.06155397070133552)); -#1016 = CARTESIAN_POINT('NONE', (-0.03355971362432614, 0.019049, -0.06155526308498462)); -#1017 = CARTESIAN_POINT('NONE', (-0.033335262655314876, 0.019049, -0.06164083372311081)); -#1018 = CARTESIAN_POINT('NONE', (-0.03333230228514444, 0.019049, -0.06164196234717374)); -#1019 = CARTESIAN_POINT('NONE', (-0.03310641585908957, 0.019049, -0.06171517235073389)); -#1020 = CARTESIAN_POINT('NONE', (-0.033103436556124, 0.019049, -0.061716137945632736)); -#1021 = CARTESIAN_POINT('NONE', (-0.03287706323651001, 0.019049, -0.061777138396898065)); -#1022 = CARTESIAN_POINT('NONE', (-0.032874077511717996, 0.019049, -0.06177794295531501)); -#1023 = CARTESIAN_POINT('NONE', (-0.03264812263408692, 0.019049, -0.06182697304733345)); -#1024 = CARTESIAN_POINT('NONE', (-0.03264514242828718, 0.019049, -0.061827619724077625)); -#1025 = CARTESIAN_POINT('NONE', (-0.032420459244694534, 0.019049, -0.06186499802653966)); -#1026 = CARTESIAN_POINT('NONE', (-0.03241749581175665, 0.019049, -0.06186549102334924)); -#1027 = CARTESIAN_POINT('NONE', (-0.032194878327646295, 0.019049, -0.06189160593911745)); -#1028 = CARTESIAN_POINT('NONE', (-0.0321919421400135, 0.019049, -0.06189195037878721)); -#1029 = CARTESIAN_POINT('NONE', (-0.031972119668484, 0.019049, -0.06190725011735743)); -#1030 = CARTESIAN_POINT('NONE', (-0.03196922034534729, 0.019049, -0.06190745191149483)); -#1031 = CARTESIAN_POINT('NONE', (-0.03175285374235716, 0.019049, -0.06191243428555198)); -#1032 = CARTESIAN_POINT('NONE', (-0.03175, 0.019049, -0.0619125)); -#1033 = CARTESIAN_POINT('NONE', (-0.03153363339700987, 0.019049, -0.06190751762594285)); -#1034 = CARTESIAN_POINT('NONE', (-0.03153077965465271, 0.019049, -0.06190745191149483)); -#1035 = CARTESIAN_POINT('NONE', (-0.031310957183123184, 0.019049, -0.06189215217292461)); -#1036 = CARTESIAN_POINT('NONE', (-0.03130805785998649, 0.019049, -0.06189195037878721)); -#1037 = CARTESIAN_POINT('NONE', (-0.031085440375876135, 0.019049, -0.061865835463019006)); -#1038 = CARTESIAN_POINT('NONE', (-0.031082504188243345, 0.019049, -0.06186549102334924)); -#1039 = CARTESIAN_POINT('NONE', (-0.030857821004650707, 0.019049, -0.06182811272088723)); -#1040 = CARTESIAN_POINT('NONE', (-0.030854857571712815, 0.019049, -0.061827619724077645)); -#1041 = CARTESIAN_POINT('NONE', (-0.030628902694081746, 0.019049, -0.06177858963205918)); -#1042 = CARTESIAN_POINT('NONE', (-0.030625922488282, 0.019049, -0.06177794295531501)); -#1043 = CARTESIAN_POINT('NONE', (-0.030399549168668025, 0.019049, -0.06171694250404969)); -#1044 = CARTESIAN_POINT('NONE', (-0.030396563443876003, 0.019049, -0.06171613794563274)); -#1045 = CARTESIAN_POINT('NONE', (-0.030170677017821116, 0.019049, -0.06164292794207258)); -#1046 = CARTESIAN_POINT('NONE', (-0.030167697714855553, 0.019049, -0.06164196234717374)); -#1047 = CARTESIAN_POINT('NONE', (-0.029943246745844303, 0.019049, -0.06155639170904755)); -#1048 = CARTESIAN_POINT('NONE', (-0.029940286375673864, 0.019049, -0.06155526308498462)); -#1049 = CARTESIAN_POINT('NONE', (-0.02971825220075177, 0.019049, -0.061457276432749806)); -#1050 = CARTESIAN_POINT('NONE', (-0.02971532370660824, 0.019049, -0.061455984049100694)); -#1051 = CARTESIAN_POINT('NONE', (-0.02949670854927666, 0.019049, -0.06134562783221205)); -#1052 = CARTESIAN_POINT('NONE', (-0.029493825149871332, 0.019049, -0.061344172301616484)); -#1053 = CARTESIAN_POINT('NONE', (-0.02927963903875646, 0.019049, -0.061221599162420405)); -#1054 = CARTESIAN_POINT('NONE', (-0.029276814055745424, 0.019049, -0.06121998249813701)); -#1055 = CARTESIAN_POINT('NONE', (-0.029068060855146023, 0.019049, -0.06108545362136306)); -#1056 = CARTESIAN_POINT('NONE', (-0.029065307528881673, 0.019049, -0.06108367926825771)); -#1057 = CARTESIAN_POINT('NONE', (-0.02886297044529378, 0.019049, -0.0609375645256474)); -#1058 = CARTESIAN_POINT('NONE', (-0.02886030174366479, 0.019049, -0.06093563736210077)); -#1059 = CARTESIAN_POINT('NONE', (-0.028759270314106074, 0.019049, -0.06085416666666666)); -#1060 = CARTESIAN_POINT('NONE', (-0.028665328716149255, 0.019049, -0.06077841313779784)); -#1061 = CARTESIAN_POINT('NONE', (-0.02866275714188856, 0.019049, -0.06077633944702365)); -#1062 = CARTESIAN_POINT('NONE', (-0.028476046549760586, 0.019049, -0.06060858411620556)); -#1063 = CARTESIAN_POINT('NONE', (-0.028473583951938546, 0.019049, -0.060606371526616507)); -#1064 = CARTESIAN_POINT('NONE', (-0.028295971077901973, 0.019049, -0.06042875865257993)); -#1065 = CARTESIAN_POINT('NONE', (-0.028293628473383486, 0.019049, -0.06042641604806144)); -#1066 = CARTESIAN_POINT('NONE', (-0.028125873142565375, 0.019049, -0.06023970545593346)); -#1067 = CARTESIAN_POINT('NONE', (-0.028123660552976326, 0.019049, -0.06023724285811143)); -#1068 = CARTESIAN_POINT('NONE', (-0.028045833333333336, 0.019049, -0.06014072968589392)); -#1069 = CARTESIAN_POINT('NONE', (-0.02796643632867342, 0.019049, -0.0600422698305959)); -#1070 = CARTESIAN_POINT('NONE', (-0.02796436263789923, 0.019049, -0.0600396982563352)); -#1071 = CARTESIAN_POINT('NONE', (-0.027818247895288913, 0.019049, -0.05983736117274731)); -#1072 = CARTESIAN_POINT('NONE', (-0.027816320731742276, 0.019049, -0.05983469247111832)); -#1073 = CARTESIAN_POINT('NONE', (-0.027681791854968343, 0.019049, -0.059625939270518936)); -#1074 = CARTESIAN_POINT('NONE', (-0.02768001750186299, 0.019049, -0.05962318594425458)); -#1075 = CARTESIAN_POINT('NONE', (-0.027557444362666925, 0.019049, -0.05940899983313972)); -#1076 = CARTESIAN_POINT('NONE', (-0.027555827698383526, 0.019049, -0.05940617485012868)); -#1077 = CARTESIAN_POINT('NONE', (-0.027445471481494885, 0.019049, -0.05918755969279709)); -#1078 = CARTESIAN_POINT('NONE', (-0.027444015950899316, 0.019049, -0.05918467629339177)); -#1079 = CARTESIAN_POINT('NONE', (-0.027346029298664472, 0.019049, -0.05896264211846966)); -#1080 = CARTESIAN_POINT('NONE', (-0.02734473691501536, 0.019049, -0.058959713624326136)); -#1081 = CARTESIAN_POINT('NONE', (-0.02725916627688918, 0.019049, -0.058735262655314875)); -#1082 = CARTESIAN_POINT('NONE', (-0.02725803765282625, 0.019049, -0.058732302285144436)); -#1083 = CARTESIAN_POINT('NONE', (-0.027184827649266094, 0.019049, -0.058506415859089556)); -#1084 = CARTESIAN_POINT('NONE', (-0.027183862054367253, 0.019049, -0.058503436556123986)); -#1085 = CARTESIAN_POINT('NONE', (-0.027122861603101928, 0.019049, -0.05827706323651001)); -#1086 = CARTESIAN_POINT('NONE', (-0.027122057044684983, 0.019049, -0.05827407751171799)); -#1087 = CARTESIAN_POINT('NONE', (-0.027073026952666533, 0.019049, -0.05804812263408692)); -#1088 = CARTESIAN_POINT('NONE', (-0.02707238027592236, 0.019049, -0.05804514242828718)); -#1089 = CARTESIAN_POINT('NONE', (-0.027035001973460333, 0.019049, -0.057820459244694526)); -#1090 = CARTESIAN_POINT('NONE', (-0.02703450897665075, 0.019049, -0.057817495811756645)); -#1091 = CARTESIAN_POINT('NONE', (-0.027008394060882537, 0.019049, -0.057594878327646294)); -#1092 = CARTESIAN_POINT('NONE', (-0.02700804962121278, 0.019049, -0.0575919421400135)); -#1093 = CARTESIAN_POINT('NONE', (-0.026992749882642563, 0.019049, -0.05737211966848399)); -#1094 = CARTESIAN_POINT('NONE', (-0.02699254808850517, 0.019049, -0.057369220345347284)); -#1095 = CARTESIAN_POINT('NONE', (-0.026987565714448023, 0.019049, -0.05715285374235715)); -#1096 = CARTESIAN_POINT('NONE', (-0.0269875, 0.019049, -0.05715)); -#1097 = CARTESIAN_POINT('NONE', (-0.026992482374057148, 0.019049, -0.05693363339700987)); -#1098 = CARTESIAN_POINT('NONE', (-0.02699254808850517, 0.019049, -0.05693077965465271)); -#1099 = CARTESIAN_POINT('NONE', (-0.027007847827075385, 0.019049, -0.05671095718312318)); -#1100 = CARTESIAN_POINT('NONE', (-0.02700804962121278, 0.019049, -0.05670805785998649)); -#1101 = CARTESIAN_POINT('NONE', (-0.027034164536980987, 0.019049, -0.05648544037587614)); -#1102 = CARTESIAN_POINT('NONE', (-0.02703450897665075, 0.019049, -0.05648250418824335)); -#1103 = CARTESIAN_POINT('NONE', (-0.027071887279112788, 0.019049, -0.05625782100465071)); -#1104 = CARTESIAN_POINT('NONE', (-0.027072380275922372, 0.019049, -0.05625485757171282)); -#1105 = CARTESIAN_POINT('NONE', (-0.02712141036794082, 0.019049, -0.05602890269408174)); -#1106 = CARTESIAN_POINT('NONE', (-0.027122057044684986, 0.019049, -0.056025922488282)); -#1107 = CARTESIAN_POINT('NONE', (-0.027183057495950312, 0.019049, -0.055799549168668014)); -#1108 = CARTESIAN_POINT('NONE', (-0.027183862054367257, 0.019049, -0.055796563443876)); -#1109 = CARTESIAN_POINT('NONE', (-0.027257072057927413, 0.019049, -0.055570677017821125)); -#1110 = CARTESIAN_POINT('NONE', (-0.027258037652826257, 0.019049, -0.05556769771485555)); -#1111 = CARTESIAN_POINT('NONE', (-0.02734360829095243, 0.019049, -0.0553432467458443)); -#1112 = CARTESIAN_POINT('NONE', (-0.027344736915015364, 0.019049, -0.05534028637567386)); -#1113 = CARTESIAN_POINT('NONE', (-0.027442723567250197, 0.019049, -0.055118252200751776)); -#1114 = CARTESIAN_POINT('NONE', (-0.027444015950899313, 0.019049, -0.055115323706608245)); -#1115 = CARTESIAN_POINT('NONE', (-0.02755437216778796, 0.019049, -0.05489670854927666)); -#1116 = CARTESIAN_POINT('NONE', (-0.027555827698383526, 0.019049, -0.05489382514987133)); -#1117 = CARTESIAN_POINT('NONE', (-0.0276784008375796, 0.019049, -0.05467963903875645)); -#1118 = CARTESIAN_POINT('NONE', (-0.027680017501862993, 0.019049, -0.05467681405574541)); -#1119 = CARTESIAN_POINT('NONE', (-0.027814546378636923, 0.019049, -0.05446806085514603)); -#1120 = CARTESIAN_POINT('NONE', (-0.027816320731742273, 0.019049, -0.05446530752888167)); -#1121 = CARTESIAN_POINT('NONE', (-0.027962435474352593, 0.019049, -0.05426297044529378)); -#1122 = CARTESIAN_POINT('NONE', (-0.02796436263789923, 0.019049, -0.05426030174366479)); -#1123 = CARTESIAN_POINT('NONE', (-0.028045833333333336, 0.019049, -0.05415927031410607)); -#1124 = CARTESIAN_POINT('NONE', (-0.02812158686220214, 0.019049, -0.05406532871614925)); -#1125 = CARTESIAN_POINT('NONE', (-0.02812366055297633, 0.019049, -0.05406275714188855)); -#1126 = CARTESIAN_POINT('NONE', (-0.028291415883794434, 0.019049, -0.053876046549760574)); -#1127 = CARTESIAN_POINT('NONE', (-0.028293628473383486, 0.019049, -0.05387358395193854)); -#1128 = CARTESIAN_POINT('NONE', (-0.028383606212661016, 0.019049, -0.05378360621266101)); -#1129 = CARTESIAN_POINT('NONE', (-0.02847124134742006, 0.019049, -0.05369597107790197)); -#1130 = CARTESIAN_POINT('NONE', (-0.028473583951938546, 0.019049, -0.053693628473383485)); -#1131 = CARTESIAN_POINT('NONE', (-0.028660294544066527, 0.019049, -0.05352587314256537)); -#1132 = CARTESIAN_POINT('NONE', (-0.028662757141888564, 0.019049, -0.053523660552976325)); -#1133 = CARTESIAN_POINT('NONE', (-0.02875927031410607, 0.019049, -0.05344583333333333)); -#1134 = CARTESIAN_POINT('NONE', (-0.028857730169404093, 0.019049, -0.053366436328673425)); -#1135 = CARTESIAN_POINT('NONE', (-0.02886030174366479, 0.019049, -0.053364362637899225)); -#1136 = CARTESIAN_POINT('NONE', (-0.02906263882725269, 0.019049, -0.05321824789528891)); -#1137 = CARTESIAN_POINT('NONE', (-0.02906530752888168, 0.019049, -0.05321632073174227)); -#1138 = CARTESIAN_POINT('NONE', (-0.029274060729481067, 0.019049, -0.05308179185496834)); -#1139 = CARTESIAN_POINT('NONE', (-0.02927681405574542, 0.019049, -0.05308001750186299)); -#1140 = CARTESIAN_POINT('NONE', (-0.02949100016686029, 0.019049, -0.05295744436266692)); -#1141 = CARTESIAN_POINT('NONE', (-0.029493825149871332, 0.019049, -0.05295582769838352)); -#1142 = CARTESIAN_POINT('NONE', (-0.02971244030720291, 0.019049, -0.052845471481494884)); -#1143 = CARTESIAN_POINT('NONE', (-0.029715323706608236, 0.019049, -0.05284401595089931)); -#1144 = CARTESIAN_POINT('NONE', (-0.02993735788153034, 0.019049, -0.05274602929866448)); -#1145 = CARTESIAN_POINT('NONE', (-0.029940286375673867, 0.019049, -0.05274473691501537)); -#1146 = CARTESIAN_POINT('NONE', (-0.030164737344685118, 0.019049, -0.05265916627688918)); -#1147 = CARTESIAN_POINT('NONE', (-0.030167697714855557, 0.019049, -0.05265803765282625)); -#1148 = CARTESIAN_POINT('NONE', (-0.030393584140910423, 0.019049, -0.052584827649266086)); -#1149 = CARTESIAN_POINT('NONE', (-0.030396563443875996, 0.019049, -0.05258386205436724)); -#1150 = CARTESIAN_POINT('NONE', (-0.030622936763489986, 0.019049, -0.05252286160310193)); -#1151 = CARTESIAN_POINT('NONE', (-0.030625922488282005, 0.019049, -0.05252205704468498)); -#1152 = CARTESIAN_POINT('NONE', (-0.030851877365913064, 0.019049, -0.05247302695266652)); -#1153 = CARTESIAN_POINT('NONE', (-0.03085485757171281, 0.019049, -0.05247238027592235)); -#1154 = CARTESIAN_POINT('NONE', (-0.031079540755305467, 0.019049, -0.05243500197346032)); -#1155 = CARTESIAN_POINT('NONE', (-0.031082504188243345, 0.019049, -0.05243450897665074)); -#1156 = CARTESIAN_POINT('NONE', (-0.0313051216723537, 0.019049, -0.05240839406088253)); -#1157 = CARTESIAN_POINT('NONE', (-0.03130805785998649, 0.019049, -0.05240804962121277)); -#1158 = CARTESIAN_POINT('NONE', (-0.03152788033151601, 0.019049, -0.05239274988264256)); -#1159 = CARTESIAN_POINT('NONE', (-0.03153077965465271, 0.019049, -0.052392548088505166)); -#1160 = CARTESIAN_POINT('NONE', (-0.03174714625764284, 0.019049, -0.05238756571444802)); -#1161 = CARTESIAN_POINT('NONE', (-0.03175, 0.019049, -0.0523875)); -#1162 = CARTESIAN_POINT('NONE', (-0.03196636660299013, 0.019049, -0.052392482374057144)); -#1163 = CARTESIAN_POINT('NONE', (-0.031969220345347285, 0.019049, -0.052392548088505166)); -#1164 = CARTESIAN_POINT('NONE', (-0.0321890428168768, 0.019049, -0.05240784782707537)); -#1165 = CARTESIAN_POINT('NONE', (-0.0321919421400135, 0.019049, -0.05240804962121276)); -#1166 = CARTESIAN_POINT('NONE', (-0.03241455962412385, 0.019049, -0.05243416453698098)); -#1167 = CARTESIAN_POINT('NONE', (-0.032417495811756646, 0.019049, -0.05243450897665074)); -#1168 = CARTESIAN_POINT('NONE', (-0.032642178995349304, 0.019049, -0.05247188727911278)); -#1169 = CARTESIAN_POINT('NONE', (-0.03264514242828719, 0.019049, -0.05247238027592237)); -#1170 = CARTESIAN_POINT('NONE', (-0.03287109730591826, 0.019049, -0.052521410367940814)); -#1171 = CARTESIAN_POINT('NONE', (-0.032874077511717996, 0.019049, -0.05252205704468498)); -#1172 = CARTESIAN_POINT('NONE', (-0.03310045083133198, 0.019049, -0.052583057495950304)); -#1173 = CARTESIAN_POINT('NONE', (-0.033103436556123994, 0.019049, -0.05258386205436725)); -#1174 = CARTESIAN_POINT('NONE', (-0.03332932298217886, 0.019049, -0.052657072057927405)); -#1175 = CARTESIAN_POINT('NONE', (-0.03333230228514444, 0.019049, -0.05265803765282625)); -#1176 = CARTESIAN_POINT('NONE', (-0.03355675325415569, 0.019049, -0.05274360829095243)); -#1177 = CARTESIAN_POINT('NONE', (-0.03355971362432614, 0.019049, -0.05274473691501537)); -#1178 = CARTESIAN_POINT('NONE', (-0.03378174779924823, 0.019049, -0.0528427235672502)); -#1179 = CARTESIAN_POINT('NONE', (-0.03378467629339176, 0.019049, -0.05284401595089931)); -#1180 = CARTESIAN_POINT('NONE', (-0.034003291450723346, 0.019049, -0.05295437216778796)); -#1181 = CARTESIAN_POINT('NONE', (-0.03400617485012867, 0.019049, -0.05295582769838352)); -#1182 = CARTESIAN_POINT('NONE', (-0.03422036096124354, 0.019049, -0.05307840083757959)); -#1183 = CARTESIAN_POINT('NONE', (-0.03422318594425458, 0.019049, -0.05308001750186298)); -#1184 = CARTESIAN_POINT('NONE', (-0.03443193914485396, 0.019049, -0.05321454637863691)); -#1185 = CARTESIAN_POINT('NONE', (-0.034434692471118314, 0.019049, -0.05321632073174226)); -#1186 = CARTESIAN_POINT('NONE', (-0.03463702955470621, 0.019049, -0.053362435474352585)); -#1187 = CARTESIAN_POINT('NONE', (-0.0346396982563352, 0.019049, -0.053364362637899225)); -#1188 = CARTESIAN_POINT('NONE', (-0.03474072968589392, 0.019049, -0.05344583333333333)); -#1189 = CARTESIAN_POINT('NONE', (-0.03483467128385074, 0.019049, -0.05352158686220213)); -#1190 = CARTESIAN_POINT('NONE', (-0.034837242858111434, 0.019049, -0.053523660552976325)); -#1191 = CARTESIAN_POINT('NONE', (-0.03502395345023941, 0.019049, -0.053691415883794426)); -#1192 = CARTESIAN_POINT('NONE', (-0.03502641604806145, 0.019049, -0.05369362847338348)); -#1193 = CARTESIAN_POINT('NONE', (-0.03520402892209803, 0.019049, -0.053871241347420044)); -#1194 = CARTESIAN_POINT('NONE', (-0.035206371526616514, 0.019049, -0.05387358395193854)); -#1195 = CARTESIAN_POINT('NONE', (-0.035374126857434615, 0.019049, -0.05406029454406653)); -#1196 = CARTESIAN_POINT('NONE', (-0.03537633944702367, 0.019049, -0.05406275714188856)); -#1197 = CARTESIAN_POINT('NONE', (-0.03545416666666667, 0.019049, -0.05415927031410608)); -#1198 = CARTESIAN_POINT('NONE', (-0.035533563671326575, 0.019049, -0.05425773016940409)); -#1199 = CARTESIAN_POINT('NONE', (-0.035535637362100775, 0.019049, -0.05426030174366479)); -#1200 = CARTESIAN_POINT('NONE', (-0.035681752104711084, 0.019049, -0.05446263882725269)); -#1201 = CARTESIAN_POINT('NONE', (-0.035683679268257724, 0.019049, -0.05446530752888168)); -#1202 = CARTESIAN_POINT('NONE', (-0.035818208145031664, 0.019049, -0.054674060729481055)); -#1203 = CARTESIAN_POINT('NONE', (-0.03581998249813702, 0.019049, -0.05467681405574541)); -#1204 = CARTESIAN_POINT('NONE', (-0.03594255563733308, 0.019049, -0.054891000166860285)); -#1205 = CARTESIAN_POINT('NONE', (-0.035944172301616485, 0.019049, -0.05489382514987133)); -#1206 = CARTESIAN_POINT('NONE', (-0.03605452851850512, 0.019049, -0.0551124403072029)); -#1207 = CARTESIAN_POINT('NONE', (-0.036055984049100695, 0.019049, -0.05511532370660823)); -#1208 = CARTESIAN_POINT('NONE', (-0.036153970701335525, 0.019049, -0.05533735788153033)); -#1209 = CARTESIAN_POINT('NONE', (-0.03615526308498463, 0.019049, -0.055340286375673856)); -#1210 = CARTESIAN_POINT('NONE', (-0.036240833723110814, 0.019049, -0.0555647373446851)); -#1211 = CARTESIAN_POINT('NONE', (-0.036241962347173744, 0.019049, -0.05556769771485555)); -#1212 = CARTESIAN_POINT('NONE', (-0.03631517235073389, 0.019049, -0.05579358414091042)); -#1213 = CARTESIAN_POINT('NONE', (-0.03631613794563274, 0.019049, -0.055796563443876)); -#1214 = CARTESIAN_POINT('NONE', (-0.03637713839689807, 0.019049, -0.05602293676348998)); -#1215 = CARTESIAN_POINT('NONE', (-0.03637794295531502, 0.019049, -0.056025922488282)); -#1216 = CARTESIAN_POINT('NONE', (-0.036426973047333465, 0.019049, -0.05625187736591306)); -#1217 = CARTESIAN_POINT('NONE', (-0.03642761972407763, 0.019049, -0.05625485757171281)); -#1218 = CARTESIAN_POINT('NONE', (-0.03646499802653966, 0.019049, -0.056479540755305466)); -#1219 = CARTESIAN_POINT('NONE', (-0.03646549102334924, 0.019049, -0.05648250418824335)); -#1220 = CARTESIAN_POINT('NONE', (-0.03649160593911746, 0.019049, -0.0567051216723537)); -#1221 = CARTESIAN_POINT('NONE', (-0.036491950378787226, 0.019049, -0.05670805785998649)); -#1222 = CARTESIAN_POINT('NONE', (-0.036507250117357434, 0.019049, -0.056927880331516)); -#1223 = CARTESIAN_POINT('NONE', (-0.036507451911494834, 0.019049, -0.0569307796546527)); -#1224 = CARTESIAN_POINT('NONE', (-0.03651243428555198, 0.019049, -0.05714714625764285)); -#1225 = CARTESIAN_POINT('NONE', (-0.0365125, 0.019049, -0.05715)); -#1226 = B_SPLINE_CURVE_WITH_KNOTS('NONE', 2, (#967, #968, #969, #970, #971, #972, #973, #974, #975, #976, #977, #978, #979, #980, #981, #982, #983, #984, #985, #986, #987, #988, #989, #990, #991, #992, #993, #994, #995, #996, #997, #998, #999, #1000, #1001, #1002, #1003, #1004, #1005, #1006, #1007, #1008, #1009, #1010, #1011, #1012, #1013, #1014, #1015, #1016, #1017, #1018, #1019, #1020, #1021, #1022, #1023, #1024, #1025, #1026, #1027, #1028, #1029, #1030, #1031, #1032, #1033, #1034, #1035, #1036, #1037, #1038, #1039, #1040, #1041, #1042, #1043, #1044, #1045, #1046, #1047, #1048, #1049, #1050, #1051, #1052, #1053, #1054, #1055, #1056, #1057, #1058, #1059, #1060, #1061, #1062, #1063, #1064, #1065, #1066, #1067, #1068, #1069, #1070, #1071, #1072, #1073, #1074, #1075, #1076, #1077, #1078, #1079, #1080, #1081, #1082, #1083, #1084, #1085, #1086, #1087, #1088, #1089, #1090, #1091, #1092, #1093, #1094, #1095, #1096, #1097, #1098, #1099, #1100, #1101, #1102, #1103, #1104, #1105, #1106, #1107, #1108, #1109, #1110, #1111, #1112, #1113, #1114, #1115, #1116, #1117, #1118, #1119, #1120, #1121, #1122, #1123, #1124, #1125, #1126, #1127, #1128, #1129, #1130, #1131, #1132, #1133, #1134, #1135, #1136, #1137, #1138, #1139, #1140, #1141, #1142, #1143, #1144, #1145, #1146, #1147, #1148, #1149, #1150, #1151, #1152, #1153, #1154, #1155, #1156, #1157, #1158, #1159, #1160, #1161, #1162, #1163, #1164, #1165, #1166, #1167, #1168, #1169, #1170, #1171, #1172, #1173, #1174, #1175, #1176, #1177, #1178, #1179, #1180, #1181, #1182, #1183, #1184, #1185, #1186, #1187, #1188, #1189, #1190, #1191, #1192, #1193, #1194, #1195, #1196, #1197, #1198, #1199, #1200, #1201, #1202, #1203, #1204, #1205, #1206, #1207, #1208, #1209, #1210, #1211, #1212, #1213, #1214, #1215, #1216, #1217, #1218, #1219, #1220, #1221, #1222, #1223, #1224, #1225), .UNSPECIFIED., .F., .F., (3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3), (0, 0.0038910505836575876, 0.007782101167315175, 0.011673151750972763, 0.01556420233463035, 0.019455252918287938, 0.023346303501945526, 0.027237354085603113, 0.0311284046692607, 0.03501945525291829, 0.038910505836575876, 0.042801556420233464, 0.04669260700389105, 0.05058365758754864, 0.054474708171206226, 0.058365758754863814, 0.0622568093385214, 0.06614785992217899, 0.07003891050583658, 0.07392996108949416, 0.07782101167315175, 0.08171206225680934, 0.08560311284046693, 0.08949416342412451, 0.0933852140077821, 0.09727626459143969, 0.10116731517509728, 0.10505836575875487, 0.10894941634241245, 0.11284046692607004, 0.11673151750972763, 0.12062256809338522, 0.1245136186770428, 0.12840466926070038, 0.13229571984435798, 0.13618677042801558, 0.14007782101167315, 0.14396887159533073, 0.14785992217898833, 0.15175097276264593, 0.1556420233463035, 0.15953307392996108, 0.16342412451361868, 0.16731517509727628, 0.17120622568093385, 0.17509727626459143, 0.17898832684824903, 0.18287937743190663, 0.1867704280155642, 0.19066147859922178, 0.19455252918287938, 0.19844357976653698, 0.20233463035019456, 0.20622568093385213, 0.21011673151750973, 0.21400778210116733, 0.2178988326848249, 0.22178988326848248, 0.22568093385214008, 0.22957198443579768, 0.23346303501945526, 0.23735408560311283, 0.24124513618677043, 0.24513618677042803, 0.2490272373540856, 0.2529182879377432, 0.25680933852140075, 0.2607003891050584, 0.26459143968871596, 0.26848249027237353, 0.27237354085603116, 0.27626459143968873, 0.2801556420233463, 0.2840466926070039, 0.28793774319066145, 0.2918287937743191, 0.29571984435797666, 0.29961089494163423, 0.30350194552529186, 0.30739299610894943, 0.311284046692607, 0.3151750972762646, 0.31906614785992216, 0.3229571984435798, 0.32684824902723736, 0.33073929961089493, 0.33463035019455256, 0.33852140077821014, 0.3424124513618677, 0.3463035019455253, 0.35019455252918286, 0.3540856031128405, 0.35797665369649806, 0.36186770428015563, 0.36575875486381326, 0.36964980544747084, 0.3735408560311284, 0.377431906614786, 0.38132295719844356, 0.3852140077821012, 0.38910505836575876, 0.39299610894941633, 0.39688715953307396, 0.40077821011673154, 0.4046692607003891, 0.4085603112840467, 0.41245136186770426, 0.4163424124513619, 0.42023346303501946, 0.42412451361867703, 0.42801556420233466, 0.43190661478599224, 0.4357976653696498, 0.4396887159533074, 0.44357976653696496, 0.4474708171206226, 0.45136186770428016, 0.45525291828793774, 0.45914396887159536, 0.46303501945525294, 0.4669260700389105, 0.4708171206225681, 0.47470817120622566, 0.4785992217898833, 0.48249027237354086, 0.48638132295719844, 0.49027237354085607, 0.49416342412451364, 0.4980544747081712, 0.5019455252918288, 0.5058365758754864, 0.5097276264591439, 0.5136186770428015, 0.5175097276264591, 0.5214007782101167, 0.5252918287937743, 0.5291828793774319, 0.5330739299610895, 0.5369649805447471, 0.5408560311284046, 0.5447470817120623, 0.5486381322957199, 0.5525291828793775, 0.556420233463035, 0.5603112840466926, 0.5642023346303502, 0.5680933852140078, 0.5719844357976653, 0.5758754863813229, 0.5797665369649805, 0.5836575875486381, 0.5875486381322957, 0.5914396887159533, 0.5953307392996109, 0.5992217898832685, 0.603112840466926, 0.6070038910505837, 0.6108949416342413, 0.6147859922178989, 0.6186770428015564, 0.622568093385214, 0.6264591439688716, 0.6303501945525292, 0.6342412451361867, 0.6381322957198443, 0.6420233463035019, 0.6459143968871595, 0.6498054474708171, 0.6536964980544747, 0.6575875486381323, 0.6614785992217899, 0.6653696498054474, 0.6692607003891051, 0.6731517509727627, 0.6770428015564203, 0.6809338521400778, 0.6848249027237354, 0.688715953307393, 0.6926070038910506, 0.6964980544747081, 0.7003891050583657, 0.7042801556420233, 0.7081712062256809, 0.7120622568093385, 0.7159533073929961, 0.7198443579766537, 0.7237354085603113, 0.7276264591439688, 0.7315175097276265, 0.7354085603112841, 0.7392996108949417, 0.7431906614785992, 0.7470817120622568, 0.7509727626459144, 0.754863813229572, 0.7587548638132295, 0.7626459143968871, 0.7665369649805447, 0.7704280155642023, 0.77431906614786, 0.7782101167315175, 0.7821011673151751, 0.7859922178988327, 0.7898832684824902, 0.7937743190661479, 0.7976653696498055, 0.8015564202334631, 0.8054474708171206, 0.8093385214007782, 0.8132295719844358, 0.8171206225680934, 0.8210116731517509, 0.8249027237354085, 0.8287937743190661, 0.8326848249027237, 0.8365758754863813, 0.8404669260700389, 0.8443579766536965, 0.8482490272373541, 0.8521400778210116, 0.8560311284046693, 0.8599221789883269, 0.8638132295719845, 0.867704280155642, 0.8715953307392996, 0.8754863813229572, 0.8793774319066148, 0.8832684824902723, 0.8871595330739299, 0.8910505836575875, 0.8949416342412452, 0.8988326848249028, 0.9027237354085603, 0.9066147859922179, 0.9105058365758755, 0.914396887159533, 0.9182879377431906, 0.9221789883268483, 0.9260700389105059, 0.9299610894941635, 0.933852140077821, 0.9377431906614786, 0.9416342412451362, 0.9455252918287937, 0.9494163424124513, 0.9533073929961089, 0.9571984435797666, 0.9610894941634242, 0.9649805447470817, 0.9688715953307393, 0.9727626459143969, 0.9766536964980544, 0.980544747081712, 0.9844357976653697, 0.9883268482490273, 0.9922178988326849, 0.9961089494163424, 1), .UNSPECIFIED.); -#1227 = DIRECTION('NONE', (0, -1, 0)); -#1228 = VECTOR('NONE', #1227, 1); -#1229 = CARTESIAN_POINT('NONE', (-0.0365125, 0.019051000000000002, -0.05715)); -#1230 = LINE('NONE', #1229, #1228); -#1231 = DIRECTION('NONE', (-1, 0, 0.000000000000001491953250939841)); -#1232 = DIRECTION('NONE', (-0, -1, 0)); -#1233 = CARTESIAN_POINT('NONE', (-0.031749999999999994, -0, -0.057150000000000006)); -#1234 = AXIS2_PLACEMENT_3D('NONE', #1233, #1232, #1231); -#1235 = CIRCLE('NONE', #1234, 0.004762500000000006); -#1236 = DIRECTION('NONE', (1, 0, -0)); -#1237 = DIRECTION('NONE', (0, 1, 0)); -#1238 = CARTESIAN_POINT('NONE', (0, -0.0000010000000000012222, 0)); -#1239 = AXIS2_PLACEMENT_3D('NONE', #1238, #1237, #1236); -#1240 = CIRCLE('NONE', #1239, 0.0381); -#1241 = DIRECTION('NONE', (0, 1, 0)); -#1242 = VECTOR('NONE', #1241, 1); -#1243 = CARTESIAN_POINT('NONE', (0.0381, -0.0000010000000000012222, -0)); -#1244 = LINE('NONE', #1243, #1242); -#1245 = DIRECTION('NONE', (1, 0, -0)); -#1246 = DIRECTION('NONE', (0, 1, 0)); -#1247 = CARTESIAN_POINT('NONE', (0, 0.0254, 0)); -#1248 = AXIS2_PLACEMENT_3D('NONE', #1247, #1246, #1245); -#1249 = CIRCLE('NONE', #1248, 0.0381); -#1250 = EDGE_CURVE('NONE', #5, #7, #59, .T.); -#1251 = EDGE_CURVE('NONE', #7, #9, #63, .T.); -#1252 = EDGE_CURVE('NONE', #11, #9, #67, .T.); -#1253 = EDGE_CURVE('NONE', #5, #11, #71, .T.); -#1254 = EDGE_CURVE('NONE', #7, #13, #75, .T.); -#1255 = EDGE_CURVE('NONE', #13, #15, #79, .T.); -#1256 = EDGE_CURVE('NONE', #9, #15, #83, .T.); -#1257 = EDGE_CURVE('NONE', #13, #17, #87, .T.); -#1258 = EDGE_CURVE('NONE', #17, #19, #91, .T.); -#1259 = EDGE_CURVE('NONE', #15, #19, #95, .T.); -#1260 = EDGE_CURVE('NONE', #17, #5, #99, .T.); -#1261 = EDGE_CURVE('NONE', #19, #11, #103, .T.); -#1262 = EDGE_CURVE('NONE', #21, #21, #108, .T.); -#1263 = EDGE_CURVE('NONE', #21, #23, #112, .T.); -#1264 = EDGE_CURVE('NONE', #23, #23, #117, .T.); -#1265 = EDGE_CURVE('NONE', #25, #25, #122, .T.); -#1266 = EDGE_CURVE('NONE', #25, #27, #126, .T.); -#1267 = EDGE_CURVE('NONE', #27, #27, #131, .T.); -#1268 = EDGE_CURVE('NONE', #29, #29, #136, .T.); -#1269 = EDGE_CURVE('NONE', #29, #31, #140, .T.); -#1270 = EDGE_CURVE('NONE', #31, #31, #145, .T.); -#1271 = EDGE_CURVE('NONE', #33, #33, #150, .T.); -#1272 = EDGE_CURVE('NONE', #33, #35, #154, .T.); -#1273 = EDGE_CURVE('NONE', #35, #35, #159, .T.); -#1274 = EDGE_CURVE('NONE', #37, #37, #419, .T.); -#1275 = EDGE_CURVE('NONE', #37, #39, #423, .T.); -#1276 = EDGE_CURVE('NONE', #39, #39, #428, .T.); -#1277 = EDGE_CURVE('NONE', #41, #41, #688, .T.); -#1278 = EDGE_CURVE('NONE', #41, #43, #692, .T.); -#1279 = EDGE_CURVE('NONE', #43, #43, #697, .T.); -#1280 = EDGE_CURVE('NONE', #45, #45, #957, .T.); -#1281 = EDGE_CURVE('NONE', #45, #47, #961, .T.); -#1282 = EDGE_CURVE('NONE', #47, #47, #966, .T.); -#1283 = EDGE_CURVE('NONE', #49, #49, #1226, .T.); -#1284 = EDGE_CURVE('NONE', #49, #51, #1230, .T.); -#1285 = EDGE_CURVE('NONE', #51, #51, #1235, .T.); -#1286 = EDGE_CURVE('NONE', #53, #53, #1240, .T.); -#1287 = EDGE_CURVE('NONE', #53, #55, #1244, .T.); -#1288 = EDGE_CURVE('NONE', #55, #55, #1249, .T.); -#1289 = CARTESIAN_POINT('NONE', (0, 0.012699999999999996, 0.07619999999999999)); -#1290 = DIRECTION('NONE', (0, 0, 1)); -#1291 = AXIS2_PLACEMENT_3D('NONE', #1289, #1290, $); -#1292 = PLANE('NONE', #1291); -#1293 = CARTESIAN_POINT('NONE', (0.0508, 0.012699999999999998, -0.000000000000000007105427357601002)); -#1294 = DIRECTION('NONE', (1, 0, 0)); -#1295 = AXIS2_PLACEMENT_3D('NONE', #1293, #1294, $); -#1296 = PLANE('NONE', #1295); -#1297 = CARTESIAN_POINT('NONE', (0, 0.012699999999999998, -0.07619999999999999)); -#1298 = DIRECTION('NONE', (0, -0, -1)); -#1299 = AXIS2_PLACEMENT_3D('NONE', #1297, #1298, $); -#1300 = PLANE('NONE', #1299); -#1301 = CARTESIAN_POINT('NONE', (-0.05079999999999999, 0.012699999999999998, -0)); -#1302 = DIRECTION('NONE', (-1, 0, 0)); -#1303 = AXIS2_PLACEMENT_3D('NONE', #1301, #1302, $); -#1304 = PLANE('NONE', #1303); -#1305 = CARTESIAN_POINT('NONE', (0, 0, -0)); -#1306 = DIRECTION('NONE', (0, 1, 0)); -#1307 = AXIS2_PLACEMENT_3D('NONE', #1305, #1306, $); -#1308 = PLANE('NONE', #1307); -#1309 = CARTESIAN_POINT('NONE', (0, 0.0254, -0)); -#1310 = DIRECTION('NONE', (0, 1, 0)); -#1311 = AXIS2_PLACEMENT_3D('NONE', #1309, #1310, $); -#1312 = PLANE('NONE', #1311); -#1313 = CARTESIAN_POINT('NONE', (-0.031749999999999994, 0.022224499999999998, 0.05714999999999999)); -#1314 = DIRECTION('NONE', (-0, 1, 0)); -#1315 = DIRECTION('NONE', (1, 0, 0.0000000000000007992606701463447)); -#1316 = AXIS2_PLACEMENT_3D('NONE', #1313, #1314, #1315); -#1317 = CYLINDRICAL_SURFACE('NONE', #1316, 0.008889999999999997); -#1318 = CARTESIAN_POINT('NONE', (0, 0.019049, -0)); -#1319 = DIRECTION('NONE', (0, 1, 0)); -#1320 = AXIS2_PLACEMENT_3D('NONE', #1318, #1319, $); -#1321 = PLANE('NONE', #1320); -#1322 = CARTESIAN_POINT('NONE', (0.031749999999999994, 0.022224499999999998, 0.05714999999999999)); -#1323 = DIRECTION('NONE', (-0, 1, 0)); -#1324 = DIRECTION('NONE', (1, 0, 0.000000000000000799260670146344)); -#1325 = AXIS2_PLACEMENT_3D('NONE', #1322, #1323, #1324); -#1326 = CYLINDRICAL_SURFACE('NONE', #1325, 0.008890000000000004); -#1327 = CARTESIAN_POINT('NONE', (0, 0.019049, -0)); -#1328 = DIRECTION('NONE', (0, 1, 0)); -#1329 = AXIS2_PLACEMENT_3D('NONE', #1327, #1328, $); -#1330 = PLANE('NONE', #1329); -#1331 = CARTESIAN_POINT('NONE', (-0.03175, 0.022224499999999998, -0.05714999999999999)); -#1332 = DIRECTION('NONE', (0, 1, 0)); -#1333 = DIRECTION('NONE', (1, 0, -0.0000000000000007992606701463443)); -#1334 = AXIS2_PLACEMENT_3D('NONE', #1331, #1332, #1333); -#1335 = CYLINDRICAL_SURFACE('NONE', #1334, 0.00889); -#1336 = CARTESIAN_POINT('NONE', (0, 0.019049, -0)); -#1337 = DIRECTION('NONE', (0, 1, 0)); -#1338 = AXIS2_PLACEMENT_3D('NONE', #1336, #1337, $); -#1339 = PLANE('NONE', #1338); -#1340 = CARTESIAN_POINT('NONE', (0.03175, 0.022224499999999998, -0.05714999999999999)); -#1341 = DIRECTION('NONE', (0, 1, 0)); -#1342 = DIRECTION('NONE', (1, 0, -0.0000000000000007992606701463447)); -#1343 = AXIS2_PLACEMENT_3D('NONE', #1340, #1341, #1342); -#1344 = CYLINDRICAL_SURFACE('NONE', #1343, 0.008889999999999997); -#1345 = CARTESIAN_POINT('NONE', (0, 0.019049, -0)); -#1346 = DIRECTION('NONE', (0, 1, 0)); -#1347 = AXIS2_PLACEMENT_3D('NONE', #1345, #1346, $); -#1348 = PLANE('NONE', #1347); -#1349 = CARTESIAN_POINT('NONE', (0.031749999999999994, 0.009525500000000001, 0.05714999999999999)); -#1350 = DIRECTION('NONE', (-0, -1, 0)); -#1351 = DIRECTION('NONE', (-1, 0, 0.0000000000000014919532509398443)); -#1352 = AXIS2_PLACEMENT_3D('NONE', #1349, #1350, #1351); -#1353 = CYLINDRICAL_SURFACE('NONE', #1352, 0.004762499999999996); -#1354 = CARTESIAN_POINT('NONE', (-0.031749999999999994, 0.009525500000000001, 0.05714999999999999)); -#1355 = DIRECTION('NONE', (-0, -1, 0)); -#1356 = DIRECTION('NONE', (-1, 0, 0.000000000000001491953250939841)); -#1357 = AXIS2_PLACEMENT_3D('NONE', #1354, #1355, #1356); -#1358 = CYLINDRICAL_SURFACE('NONE', #1357, 0.004762500000000006); -#1359 = CARTESIAN_POINT('NONE', (0.031749999999999994, 0.009525500000000001, -0.057150000000000006)); -#1360 = DIRECTION('NONE', (-0, -1, 0)); -#1361 = DIRECTION('NONE', (-1, 0, 0.0000000000000014919532509398443)); -#1362 = AXIS2_PLACEMENT_3D('NONE', #1359, #1360, #1361); -#1363 = CYLINDRICAL_SURFACE('NONE', #1362, 0.004762499999999996); -#1364 = CARTESIAN_POINT('NONE', (-0.031749999999999994, 0.009525500000000001, -0.057150000000000006)); -#1365 = DIRECTION('NONE', (-0, -1, 0)); -#1366 = DIRECTION('NONE', (-1, 0, 0.000000000000001491953250939841)); -#1367 = AXIS2_PLACEMENT_3D('NONE', #1364, #1365, #1366); -#1368 = CYLINDRICAL_SURFACE('NONE', #1367, 0.004762500000000006); -#1369 = CARTESIAN_POINT('NONE', (0, 0.012699499999999999, 0)); -#1370 = DIRECTION('NONE', (0, 1, 0)); -#1371 = DIRECTION('NONE', (1, 0, -0)); -#1372 = AXIS2_PLACEMENT_3D('NONE', #1369, #1370, #1371); -#1373 = CYLINDRICAL_SURFACE('NONE', #1372, 0.0381); -#1374 = ORIENTED_EDGE('NONE', *, *, #1250, .T.); -#1375 = ORIENTED_EDGE('NONE', *, *, #1251, .T.); -#1376 = ORIENTED_EDGE('NONE', *, *, #1252, .F.); -#1377 = ORIENTED_EDGE('NONE', *, *, #1253, .F.); -#1378 = EDGE_LOOP('NONE', (#1374, #1375, #1376, #1377)); -#1379 = FACE_BOUND('NONE', #1378, .T.); -#1380 = ADVANCED_FACE('NONE', (#1379), #1292, .T.); -#1381 = ORIENTED_EDGE('NONE', *, *, #1254, .T.); -#1382 = ORIENTED_EDGE('NONE', *, *, #1255, .T.); -#1383 = ORIENTED_EDGE('NONE', *, *, #1256, .F.); -#1384 = ORIENTED_EDGE('NONE', *, *, #1251, .F.); -#1385 = EDGE_LOOP('NONE', (#1381, #1382, #1383, #1384)); -#1386 = FACE_BOUND('NONE', #1385, .T.); -#1387 = ADVANCED_FACE('NONE', (#1386), #1296, .T.); -#1388 = ORIENTED_EDGE('NONE', *, *, #1257, .T.); -#1389 = ORIENTED_EDGE('NONE', *, *, #1258, .T.); -#1390 = ORIENTED_EDGE('NONE', *, *, #1259, .F.); -#1391 = ORIENTED_EDGE('NONE', *, *, #1255, .F.); -#1392 = EDGE_LOOP('NONE', (#1388, #1389, #1390, #1391)); -#1393 = FACE_BOUND('NONE', #1392, .T.); -#1394 = ADVANCED_FACE('NONE', (#1393), #1300, .T.); -#1395 = ORIENTED_EDGE('NONE', *, *, #1260, .T.); -#1396 = ORIENTED_EDGE('NONE', *, *, #1253, .T.); -#1397 = ORIENTED_EDGE('NONE', *, *, #1261, .F.); -#1398 = ORIENTED_EDGE('NONE', *, *, #1258, .F.); -#1399 = EDGE_LOOP('NONE', (#1395, #1396, #1397, #1398)); -#1400 = FACE_BOUND('NONE', #1399, .T.); -#1401 = ADVANCED_FACE('NONE', (#1400), #1304, .T.); -#1402 = ORIENTED_EDGE('NONE', *, *, #1260, .F.); -#1403 = ORIENTED_EDGE('NONE', *, *, #1257, .F.); -#1404 = ORIENTED_EDGE('NONE', *, *, #1254, .F.); -#1405 = ORIENTED_EDGE('NONE', *, *, #1250, .F.); -#1406 = ORIENTED_EDGE('NONE', *, *, #1276, .F.); -#1407 = ORIENTED_EDGE('NONE', *, *, #1279, .F.); -#1408 = ORIENTED_EDGE('NONE', *, *, #1282, .F.); -#1409 = ORIENTED_EDGE('NONE', *, *, #1285, .F.); -#1410 = ORIENTED_EDGE('NONE', *, *, #1286, .T.); -#1411 = EDGE_LOOP('NONE', (#1402, #1403, #1404, #1405)); -#1412 = FACE_BOUND('NONE', #1411, .T.); -#1413 = EDGE_LOOP('NONE', (#1406)); -#1414 = FACE_BOUND('NONE', #1413, .T.); -#1415 = EDGE_LOOP('NONE', (#1407)); -#1416 = FACE_BOUND('NONE', #1415, .T.); -#1417 = EDGE_LOOP('NONE', (#1408)); -#1418 = FACE_BOUND('NONE', #1417, .T.); -#1419 = EDGE_LOOP('NONE', (#1409)); -#1420 = FACE_BOUND('NONE', #1419, .T.); -#1421 = EDGE_LOOP('NONE', (#1410)); -#1422 = FACE_BOUND('NONE', #1421, .T.); -#1423 = ADVANCED_FACE('NONE', (#1412, #1414, #1416, #1418, #1420, #1422), #1308, .F.); -#1424 = ORIENTED_EDGE('NONE', *, *, #1252, .T.); -#1425 = ORIENTED_EDGE('NONE', *, *, #1256, .T.); -#1426 = ORIENTED_EDGE('NONE', *, *, #1259, .T.); -#1427 = ORIENTED_EDGE('NONE', *, *, #1261, .T.); -#1428 = ORIENTED_EDGE('NONE', *, *, #1264, .F.); -#1429 = ORIENTED_EDGE('NONE', *, *, #1267, .F.); -#1430 = ORIENTED_EDGE('NONE', *, *, #1270, .F.); -#1431 = ORIENTED_EDGE('NONE', *, *, #1273, .F.); -#1432 = ORIENTED_EDGE('NONE', *, *, #1288, .F.); -#1433 = EDGE_LOOP('NONE', (#1424, #1425, #1426, #1427)); -#1434 = FACE_BOUND('NONE', #1433, .T.); -#1435 = EDGE_LOOP('NONE', (#1428)); -#1436 = FACE_BOUND('NONE', #1435, .T.); -#1437 = EDGE_LOOP('NONE', (#1429)); -#1438 = FACE_BOUND('NONE', #1437, .T.); -#1439 = EDGE_LOOP('NONE', (#1430)); -#1440 = FACE_BOUND('NONE', #1439, .T.); -#1441 = EDGE_LOOP('NONE', (#1431)); -#1442 = FACE_BOUND('NONE', #1441, .T.); -#1443 = EDGE_LOOP('NONE', (#1432)); -#1444 = FACE_BOUND('NONE', #1443, .T.); -#1445 = ADVANCED_FACE('NONE', (#1434, #1436, #1438, #1440, #1442, #1444), #1312, .T.); -#1446 = ORIENTED_EDGE('NONE', *, *, #1262, .F.); -#1447 = ORIENTED_EDGE('NONE', *, *, #1264, .T.); -#1448 = EDGE_LOOP('NONE', (#1446)); -#1449 = FACE_BOUND('NONE', #1448, .T.); -#1450 = EDGE_LOOP('NONE', (#1447)); -#1451 = FACE_BOUND('NONE', #1450, .T.); -#1452 = ADVANCED_FACE('NONE', (#1449, #1451), #1317, .F.); -#1453 = ORIENTED_EDGE('NONE', *, *, #1262, .T.); -#1454 = ORIENTED_EDGE('NONE', *, *, #1277, .T.); -#1455 = EDGE_LOOP('NONE', (#1453)); -#1456 = FACE_BOUND('NONE', #1455, .T.); -#1457 = EDGE_LOOP('NONE', (#1454)); -#1458 = FACE_BOUND('NONE', #1457, .T.); -#1459 = ADVANCED_FACE('NONE', (#1456, #1458), #1321, .T.); -#1460 = ORIENTED_EDGE('NONE', *, *, #1265, .F.); -#1461 = ORIENTED_EDGE('NONE', *, *, #1267, .T.); -#1462 = EDGE_LOOP('NONE', (#1460)); -#1463 = FACE_BOUND('NONE', #1462, .T.); -#1464 = EDGE_LOOP('NONE', (#1461)); -#1465 = FACE_BOUND('NONE', #1464, .T.); -#1466 = ADVANCED_FACE('NONE', (#1463, #1465), #1326, .F.); -#1467 = ORIENTED_EDGE('NONE', *, *, #1265, .T.); -#1468 = ORIENTED_EDGE('NONE', *, *, #1274, .T.); -#1469 = EDGE_LOOP('NONE', (#1467)); -#1470 = FACE_BOUND('NONE', #1469, .T.); -#1471 = EDGE_LOOP('NONE', (#1468)); -#1472 = FACE_BOUND('NONE', #1471, .T.); -#1473 = ADVANCED_FACE('NONE', (#1470, #1472), #1330, .T.); -#1474 = ORIENTED_EDGE('NONE', *, *, #1268, .F.); -#1475 = ORIENTED_EDGE('NONE', *, *, #1270, .T.); -#1476 = EDGE_LOOP('NONE', (#1474)); -#1477 = FACE_BOUND('NONE', #1476, .T.); -#1478 = EDGE_LOOP('NONE', (#1475)); -#1479 = FACE_BOUND('NONE', #1478, .T.); -#1480 = ADVANCED_FACE('NONE', (#1477, #1479), #1335, .F.); -#1481 = ORIENTED_EDGE('NONE', *, *, #1268, .T.); -#1482 = ORIENTED_EDGE('NONE', *, *, #1283, .T.); -#1483 = EDGE_LOOP('NONE', (#1481)); -#1484 = FACE_BOUND('NONE', #1483, .T.); -#1485 = EDGE_LOOP('NONE', (#1482)); -#1486 = FACE_BOUND('NONE', #1485, .T.); -#1487 = ADVANCED_FACE('NONE', (#1484, #1486), #1339, .T.); -#1488 = ORIENTED_EDGE('NONE', *, *, #1271, .F.); -#1489 = ORIENTED_EDGE('NONE', *, *, #1273, .T.); -#1490 = EDGE_LOOP('NONE', (#1488)); -#1491 = FACE_BOUND('NONE', #1490, .T.); -#1492 = EDGE_LOOP('NONE', (#1489)); -#1493 = FACE_BOUND('NONE', #1492, .T.); -#1494 = ADVANCED_FACE('NONE', (#1491, #1493), #1344, .F.); -#1495 = ORIENTED_EDGE('NONE', *, *, #1271, .T.); -#1496 = ORIENTED_EDGE('NONE', *, *, #1280, .T.); -#1497 = EDGE_LOOP('NONE', (#1495)); -#1498 = FACE_BOUND('NONE', #1497, .T.); -#1499 = EDGE_LOOP('NONE', (#1496)); -#1500 = FACE_BOUND('NONE', #1499, .T.); -#1501 = ADVANCED_FACE('NONE', (#1498, #1500), #1348, .T.); -#1502 = ORIENTED_EDGE('NONE', *, *, #1274, .F.); -#1503 = ORIENTED_EDGE('NONE', *, *, #1276, .T.); -#1504 = EDGE_LOOP('NONE', (#1502)); -#1505 = FACE_BOUND('NONE', #1504, .T.); -#1506 = EDGE_LOOP('NONE', (#1503)); -#1507 = FACE_BOUND('NONE', #1506, .T.); -#1508 = ADVANCED_FACE('NONE', (#1505, #1507), #1353, .F.); -#1509 = ORIENTED_EDGE('NONE', *, *, #1277, .F.); -#1510 = ORIENTED_EDGE('NONE', *, *, #1279, .T.); -#1511 = EDGE_LOOP('NONE', (#1509)); -#1512 = FACE_BOUND('NONE', #1511, .T.); -#1513 = EDGE_LOOP('NONE', (#1510)); -#1514 = FACE_BOUND('NONE', #1513, .T.); -#1515 = ADVANCED_FACE('NONE', (#1512, #1514), #1358, .F.); -#1516 = ORIENTED_EDGE('NONE', *, *, #1280, .F.); -#1517 = ORIENTED_EDGE('NONE', *, *, #1282, .T.); -#1518 = EDGE_LOOP('NONE', (#1516)); -#1519 = FACE_BOUND('NONE', #1518, .T.); -#1520 = EDGE_LOOP('NONE', (#1517)); -#1521 = FACE_BOUND('NONE', #1520, .T.); -#1522 = ADVANCED_FACE('NONE', (#1519, #1521), #1363, .F.); -#1523 = ORIENTED_EDGE('NONE', *, *, #1283, .F.); -#1524 = ORIENTED_EDGE('NONE', *, *, #1285, .T.); -#1525 = EDGE_LOOP('NONE', (#1523)); -#1526 = FACE_BOUND('NONE', #1525, .T.); -#1527 = EDGE_LOOP('NONE', (#1524)); -#1528 = FACE_BOUND('NONE', #1527, .T.); -#1529 = ADVANCED_FACE('NONE', (#1526, #1528), #1368, .F.); -#1530 = ORIENTED_EDGE('NONE', *, *, #1286, .F.); -#1531 = ORIENTED_EDGE('NONE', *, *, #1288, .T.); -#1532 = EDGE_LOOP('NONE', (#1530)); -#1533 = FACE_BOUND('NONE', #1532, .T.); -#1534 = EDGE_LOOP('NONE', (#1531)); -#1535 = FACE_BOUND('NONE', #1534, .T.); -#1536 = ADVANCED_FACE('NONE', (#1533, #1535), #1373, .F.); -#1537 = CLOSED_SHELL('NONE', (#1380, #1387, #1394, #1401, #1423, #1445, #1452, #1459, #1466, #1473, #1480, #1487, #1494, #1501, #1508, #1515, #1522, #1529, #1536)); -#1538 = MANIFOLD_SOLID_BREP('NONE', #1537); -#1539 = APPLICATION_CONTEXT('configuration controlled 3D design of mechanical parts and assemblies'); -#1540 = PRODUCT_DEFINITION_CONTEXT('part definition', #1539, 'design'); -#1541 = PRODUCT('UNIDENTIFIED_PRODUCT', 'NONE', $, ()); -#1542 = PRODUCT_DEFINITION_FORMATION('', $, #1541); -#1543 = PRODUCT_DEFINITION('design', $, #1542, #1540); -#1544 = PRODUCT_DEFINITION_SHAPE('NONE', $, #1543); -#1545 = ADVANCED_BREP_SHAPE_REPRESENTATION('NONE', (#1538), #3); -#1546 = SHAPE_DEFINITION_REPRESENTATION(#1544, #1545); -ENDSEC; -END-ISO-10303-21; diff --git a/rust/kcl-lib/tests/kcl_samples/parametric-bearing-pillow-block/program_memory.snap b/rust/kcl-lib/tests/kcl_samples/parametric-bearing-pillow-block/program_memory.snap deleted file mode 100644 index a04935f6a..000000000 --- a/rust/kcl-lib/tests/kcl_samples/parametric-bearing-pillow-block/program_memory.snap +++ /dev/null @@ -1,2820 +0,0 @@ ---- -source: kcl-lib/src/simulation_tests.rs -description: Variables in memory after executing parametric-bearing-pillow-block.kcl ---- -{ - "bearingDia": { - "type": "Number", - "value": 3.0, - "ty": { - "type": "Default", - "len": { - "type": "Inches" - }, - "angle": { - "type": "Degrees" - } - } - }, - "body": { - "type": "Solid", - "value": { - "type": "Solid", - "id": "[uuid]", - "artifactId": "[uuid]", - "value": [ - { - "faceId": "[uuid]", - "id": "[uuid]", - "sourceRange": [], - "tag": null, - "type": "extrudePlane" - }, - { - "faceId": "[uuid]", - "id": "[uuid]", - "sourceRange": [], - "tag": null, - "type": "extrudePlane" - }, - { - "faceId": "[uuid]", - "id": "[uuid]", - "sourceRange": [], - "tag": null, - "type": "extrudePlane" - }, - { - "faceId": "[uuid]", - "id": "[uuid]", - "sourceRange": [], - "tag": null, - "type": "extrudePlane" - } - ], - "sketch": { - "type": "Sketch", - "id": "[uuid]", - "paths": [ - { - "__geoMeta": { - "id": "[uuid]", - "sourceRange": [] - }, - "from": [ - -2.0, - -3.0 - ], - "tag": null, - "to": [ - 2.0, - -3.0 - ], - "type": "ToPoint", - "units": { - "type": "Inches" - } - }, - { - "__geoMeta": { - "id": "[uuid]", - "sourceRange": [] - }, - "from": [ - 2.0, - -3.0 - ], - "tag": null, - "to": [ - 2.0, - 3.0 - ], - "type": "ToPoint", - "units": { - "type": "Inches" - } - }, - { - "__geoMeta": { - "id": "[uuid]", - "sourceRange": [] - }, - "from": [ - 2.0, - 3.0 - ], - "tag": null, - "to": [ - -2.0, - 3.0 - ], - "type": "ToPoint", - "units": { - "type": "Inches" - } - }, - { - "__geoMeta": { - "id": "[uuid]", - "sourceRange": [] - }, - "from": [ - -2.0, - 3.0 - ], - "tag": null, - "to": [ - -2.0, - -3.0 - ], - "type": "ToPoint", - "units": { - "type": "Inches" - } - } - ], - "on": { - "artifactId": "[uuid]", - "id": "[uuid]", - "origin": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "units": { - "type": "Mm" - } - }, - "type": "plane", - "value": "XY", - "xAxis": { - "x": 1.0, - "y": 0.0, - "z": 0.0, - "units": { - "type": "Unknown" - } - }, - "yAxis": { - "x": 0.0, - "y": 1.0, - "z": 0.0, - "units": { - "type": "Unknown" - } - } - }, - "start": { - "from": [ - -2.0, - -3.0 - ], - "to": [ - -2.0, - -3.0 - ], - "units": { - "type": "Inches" - }, - "tag": null, - "__geoMeta": { - "id": "[uuid]", - "sourceRange": [] - } - }, - "artifactId": "[uuid]", - "originalId": "[uuid]", - "units": { - "type": "Inches" - } - }, - "height": 1.0, - "startCapId": "[uuid]", - "endCapId": "[uuid]", - "units": { - "type": "Inches" - }, - "sectional": false - } - }, - "boltHoles": { - "type": "HomArray", - "value": [ - { - "type": "Solid", - "value": { - "type": "Solid", - "id": "[uuid]", - "artifactId": "[uuid]", - "value": [ - { - "faceId": "[uuid]", - "id": "[uuid]", - "sourceRange": [], - "tag": null, - "type": "extrudeArc" - } - ], - "sketch": { - "type": "Sketch", - "id": "[uuid]", - "paths": [ - { - "__geoMeta": { - "id": "[uuid]", - "sourceRange": [] - }, - "ccw": true, - "center": [ - -1.25, - -2.25 - ], - "from": [ - -1.0625, - -2.25 - ], - "radius": 0.1875, - "tag": null, - "to": [ - -1.0625, - -2.25 - ], - "type": "Circle", - "units": { - "type": "Inches" - } - } - ], - "on": { - "type": "face", - "id": "[uuid]", - "artifactId": "[uuid]", - "value": "start", - "xAxis": { - "x": 1.0, - "y": 0.0, - "z": 0.0, - "units": { - "type": "Unknown" - } - }, - "yAxis": { - "x": 0.0, - "y": 1.0, - "z": 0.0, - "units": { - "type": "Unknown" - } - }, - "solid": { - "type": "Solid", - "id": "[uuid]", - "artifactId": "[uuid]", - "value": [ - { - "faceId": "[uuid]", - "id": "[uuid]", - "sourceRange": [], - "tag": null, - "type": "extrudePlane" - }, - { - "faceId": "[uuid]", - "id": "[uuid]", - "sourceRange": [], - "tag": null, - "type": "extrudePlane" - }, - { - "faceId": "[uuid]", - "id": "[uuid]", - "sourceRange": [], - "tag": null, - "type": "extrudePlane" - }, - { - "faceId": "[uuid]", - "id": "[uuid]", - "sourceRange": [], - "tag": null, - "type": "extrudePlane" - } - ], - "sketch": { - "type": "Sketch", - "id": "[uuid]", - "paths": [ - { - "__geoMeta": { - "id": "[uuid]", - "sourceRange": [] - }, - "from": [ - -2.0, - -3.0 - ], - "tag": null, - "to": [ - 2.0, - -3.0 - ], - "type": "ToPoint", - "units": { - "type": "Inches" - } - }, - { - "__geoMeta": { - "id": "[uuid]", - "sourceRange": [] - }, - "from": [ - 2.0, - -3.0 - ], - "tag": null, - "to": [ - 2.0, - 3.0 - ], - "type": "ToPoint", - "units": { - "type": "Inches" - } - }, - { - "__geoMeta": { - "id": "[uuid]", - "sourceRange": [] - }, - "from": [ - 2.0, - 3.0 - ], - "tag": null, - "to": [ - -2.0, - 3.0 - ], - "type": "ToPoint", - "units": { - "type": "Inches" - } - }, - { - "__geoMeta": { - "id": "[uuid]", - "sourceRange": [] - }, - "from": [ - -2.0, - 3.0 - ], - "tag": null, - "to": [ - -2.0, - -3.0 - ], - "type": "ToPoint", - "units": { - "type": "Inches" - } - } - ], - "on": { - "artifactId": "[uuid]", - "id": "[uuid]", - "origin": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "units": { - "type": "Mm" - } - }, - "type": "plane", - "value": "XY", - "xAxis": { - "x": 1.0, - "y": 0.0, - "z": 0.0, - "units": { - "type": "Unknown" - } - }, - "yAxis": { - "x": 0.0, - "y": 1.0, - "z": 0.0, - "units": { - "type": "Unknown" - } - } - }, - "start": { - "from": [ - -2.0, - -3.0 - ], - "to": [ - -2.0, - -3.0 - ], - "units": { - "type": "Inches" - }, - "tag": null, - "__geoMeta": { - "id": "[uuid]", - "sourceRange": [] - } - }, - "artifactId": "[uuid]", - "originalId": "[uuid]", - "units": { - "type": "Inches" - } - }, - "height": 1.0, - "startCapId": "[uuid]", - "endCapId": "[uuid]", - "units": { - "type": "Inches" - }, - "sectional": false - }, - "units": { - "type": "Inches" - } - }, - "start": { - "from": [ - -1.0625, - -2.25 - ], - "to": [ - -1.0625, - -2.25 - ], - "units": { - "type": "Inches" - }, - "tag": null, - "__geoMeta": { - "id": "[uuid]", - "sourceRange": [] - } - }, - "artifactId": "[uuid]", - "originalId": "[uuid]", - "units": { - "type": "Inches" - } - }, - "height": -0.75, - "startCapId": null, - "endCapId": null, - "units": { - "type": "Inches" - }, - "sectional": false - } - }, - { - "type": "Solid", - "value": { - "type": "Solid", - "id": "[uuid]", - "artifactId": "[uuid]", - "value": [ - { - "faceId": "[uuid]", - "id": "[uuid]", - "sourceRange": [], - "tag": null, - "type": "extrudeArc" - } - ], - "sketch": { - "type": "Sketch", - "id": "[uuid]", - "paths": [ - { - "__geoMeta": { - "id": "[uuid]", - "sourceRange": [] - }, - "ccw": true, - "center": [ - -1.25, - -2.25 - ], - "from": [ - -1.0625, - -2.25 - ], - "radius": 0.1875, - "tag": null, - "to": [ - -1.0625, - -2.25 - ], - "type": "Circle", - "units": { - "type": "Inches" - } - } - ], - "on": { - "type": "face", - "id": "[uuid]", - "artifactId": "[uuid]", - "value": "start", - "xAxis": { - "x": 1.0, - "y": 0.0, - "z": 0.0, - "units": { - "type": "Unknown" - } - }, - "yAxis": { - "x": 0.0, - "y": 1.0, - "z": 0.0, - "units": { - "type": "Unknown" - } - }, - "solid": { - "type": "Solid", - "id": "[uuid]", - "artifactId": "[uuid]", - "value": [ - { - "faceId": "[uuid]", - "id": "[uuid]", - "sourceRange": [], - "tag": null, - "type": "extrudePlane" - }, - { - "faceId": "[uuid]", - "id": "[uuid]", - "sourceRange": [], - "tag": null, - "type": "extrudePlane" - }, - { - "faceId": "[uuid]", - "id": "[uuid]", - "sourceRange": [], - "tag": null, - "type": "extrudePlane" - }, - { - "faceId": "[uuid]", - "id": "[uuid]", - "sourceRange": [], - "tag": null, - "type": "extrudePlane" - } - ], - "sketch": { - "type": "Sketch", - "id": "[uuid]", - "paths": [ - { - "__geoMeta": { - "id": "[uuid]", - "sourceRange": [] - }, - "from": [ - -2.0, - -3.0 - ], - "tag": null, - "to": [ - 2.0, - -3.0 - ], - "type": "ToPoint", - "units": { - "type": "Inches" - } - }, - { - "__geoMeta": { - "id": "[uuid]", - "sourceRange": [] - }, - "from": [ - 2.0, - -3.0 - ], - "tag": null, - "to": [ - 2.0, - 3.0 - ], - "type": "ToPoint", - "units": { - "type": "Inches" - } - }, - { - "__geoMeta": { - "id": "[uuid]", - "sourceRange": [] - }, - "from": [ - 2.0, - 3.0 - ], - "tag": null, - "to": [ - -2.0, - 3.0 - ], - "type": "ToPoint", - "units": { - "type": "Inches" - } - }, - { - "__geoMeta": { - "id": "[uuid]", - "sourceRange": [] - }, - "from": [ - -2.0, - 3.0 - ], - "tag": null, - "to": [ - -2.0, - -3.0 - ], - "type": "ToPoint", - "units": { - "type": "Inches" - } - } - ], - "on": { - "artifactId": "[uuid]", - "id": "[uuid]", - "origin": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "units": { - "type": "Mm" - } - }, - "type": "plane", - "value": "XY", - "xAxis": { - "x": 1.0, - "y": 0.0, - "z": 0.0, - "units": { - "type": "Unknown" - } - }, - "yAxis": { - "x": 0.0, - "y": 1.0, - "z": 0.0, - "units": { - "type": "Unknown" - } - } - }, - "start": { - "from": [ - -2.0, - -3.0 - ], - "to": [ - -2.0, - -3.0 - ], - "units": { - "type": "Inches" - }, - "tag": null, - "__geoMeta": { - "id": "[uuid]", - "sourceRange": [] - } - }, - "artifactId": "[uuid]", - "originalId": "[uuid]", - "units": { - "type": "Inches" - } - }, - "height": 1.0, - "startCapId": "[uuid]", - "endCapId": "[uuid]", - "units": { - "type": "Inches" - }, - "sectional": false - }, - "units": { - "type": "Inches" - } - }, - "start": { - "from": [ - -1.0625, - -2.25 - ], - "to": [ - -1.0625, - -2.25 - ], - "units": { - "type": "Inches" - }, - "tag": null, - "__geoMeta": { - "id": "[uuid]", - "sourceRange": [] - } - }, - "artifactId": "[uuid]", - "originalId": "[uuid]", - "units": { - "type": "Inches" - } - }, - "height": -0.75, - "startCapId": null, - "endCapId": null, - "units": { - "type": "Inches" - }, - "sectional": false - } - }, - { - "type": "Solid", - "value": { - "type": "Solid", - "id": "[uuid]", - "artifactId": "[uuid]", - "value": [ - { - "faceId": "[uuid]", - "id": "[uuid]", - "sourceRange": [], - "tag": null, - "type": "extrudeArc" - } - ], - "sketch": { - "type": "Sketch", - "id": "[uuid]", - "paths": [ - { - "__geoMeta": { - "id": "[uuid]", - "sourceRange": [] - }, - "ccw": true, - "center": [ - -1.25, - -2.25 - ], - "from": [ - -1.0625, - -2.25 - ], - "radius": 0.1875, - "tag": null, - "to": [ - -1.0625, - -2.25 - ], - "type": "Circle", - "units": { - "type": "Inches" - } - } - ], - "on": { - "type": "face", - "id": "[uuid]", - "artifactId": "[uuid]", - "value": "start", - "xAxis": { - "x": 1.0, - "y": 0.0, - "z": 0.0, - "units": { - "type": "Unknown" - } - }, - "yAxis": { - "x": 0.0, - "y": 1.0, - "z": 0.0, - "units": { - "type": "Unknown" - } - }, - "solid": { - "type": "Solid", - "id": "[uuid]", - "artifactId": "[uuid]", - "value": [ - { - "faceId": "[uuid]", - "id": "[uuid]", - "sourceRange": [], - "tag": null, - "type": "extrudePlane" - }, - { - "faceId": "[uuid]", - "id": "[uuid]", - "sourceRange": [], - "tag": null, - "type": "extrudePlane" - }, - { - "faceId": "[uuid]", - "id": "[uuid]", - "sourceRange": [], - "tag": null, - "type": "extrudePlane" - }, - { - "faceId": "[uuid]", - "id": "[uuid]", - "sourceRange": [], - "tag": null, - "type": "extrudePlane" - } - ], - "sketch": { - "type": "Sketch", - "id": "[uuid]", - "paths": [ - { - "__geoMeta": { - "id": "[uuid]", - "sourceRange": [] - }, - "from": [ - -2.0, - -3.0 - ], - "tag": null, - "to": [ - 2.0, - -3.0 - ], - "type": "ToPoint", - "units": { - "type": "Inches" - } - }, - { - "__geoMeta": { - "id": "[uuid]", - "sourceRange": [] - }, - "from": [ - 2.0, - -3.0 - ], - "tag": null, - "to": [ - 2.0, - 3.0 - ], - "type": "ToPoint", - "units": { - "type": "Inches" - } - }, - { - "__geoMeta": { - "id": "[uuid]", - "sourceRange": [] - }, - "from": [ - 2.0, - 3.0 - ], - "tag": null, - "to": [ - -2.0, - 3.0 - ], - "type": "ToPoint", - "units": { - "type": "Inches" - } - }, - { - "__geoMeta": { - "id": "[uuid]", - "sourceRange": [] - }, - "from": [ - -2.0, - 3.0 - ], - "tag": null, - "to": [ - -2.0, - -3.0 - ], - "type": "ToPoint", - "units": { - "type": "Inches" - } - } - ], - "on": { - "artifactId": "[uuid]", - "id": "[uuid]", - "origin": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "units": { - "type": "Mm" - } - }, - "type": "plane", - "value": "XY", - "xAxis": { - "x": 1.0, - "y": 0.0, - "z": 0.0, - "units": { - "type": "Unknown" - } - }, - "yAxis": { - "x": 0.0, - "y": 1.0, - "z": 0.0, - "units": { - "type": "Unknown" - } - } - }, - "start": { - "from": [ - -2.0, - -3.0 - ], - "to": [ - -2.0, - -3.0 - ], - "units": { - "type": "Inches" - }, - "tag": null, - "__geoMeta": { - "id": "[uuid]", - "sourceRange": [] - } - }, - "artifactId": "[uuid]", - "originalId": "[uuid]", - "units": { - "type": "Inches" - } - }, - "height": 1.0, - "startCapId": "[uuid]", - "endCapId": "[uuid]", - "units": { - "type": "Inches" - }, - "sectional": false - }, - "units": { - "type": "Inches" - } - }, - "start": { - "from": [ - -1.0625, - -2.25 - ], - "to": [ - -1.0625, - -2.25 - ], - "units": { - "type": "Inches" - }, - "tag": null, - "__geoMeta": { - "id": "[uuid]", - "sourceRange": [] - } - }, - "artifactId": "[uuid]", - "originalId": "[uuid]", - "units": { - "type": "Inches" - } - }, - "height": -0.75, - "startCapId": null, - "endCapId": null, - "units": { - "type": "Inches" - }, - "sectional": false - } - }, - { - "type": "Solid", - "value": { - "type": "Solid", - "id": "[uuid]", - "artifactId": "[uuid]", - "value": [ - { - "faceId": "[uuid]", - "id": "[uuid]", - "sourceRange": [], - "tag": null, - "type": "extrudeArc" - } - ], - "sketch": { - "type": "Sketch", - "id": "[uuid]", - "paths": [ - { - "__geoMeta": { - "id": "[uuid]", - "sourceRange": [] - }, - "ccw": true, - "center": [ - -1.25, - -2.25 - ], - "from": [ - -1.0625, - -2.25 - ], - "radius": 0.1875, - "tag": null, - "to": [ - -1.0625, - -2.25 - ], - "type": "Circle", - "units": { - "type": "Inches" - } - } - ], - "on": { - "type": "face", - "id": "[uuid]", - "artifactId": "[uuid]", - "value": "start", - "xAxis": { - "x": 1.0, - "y": 0.0, - "z": 0.0, - "units": { - "type": "Unknown" - } - }, - "yAxis": { - "x": 0.0, - "y": 1.0, - "z": 0.0, - "units": { - "type": "Unknown" - } - }, - "solid": { - "type": "Solid", - "id": "[uuid]", - "artifactId": "[uuid]", - "value": [ - { - "faceId": "[uuid]", - "id": "[uuid]", - "sourceRange": [], - "tag": null, - "type": "extrudePlane" - }, - { - "faceId": "[uuid]", - "id": "[uuid]", - "sourceRange": [], - "tag": null, - "type": "extrudePlane" - }, - { - "faceId": "[uuid]", - "id": "[uuid]", - "sourceRange": [], - "tag": null, - "type": "extrudePlane" - }, - { - "faceId": "[uuid]", - "id": "[uuid]", - "sourceRange": [], - "tag": null, - "type": "extrudePlane" - } - ], - "sketch": { - "type": "Sketch", - "id": "[uuid]", - "paths": [ - { - "__geoMeta": { - "id": "[uuid]", - "sourceRange": [] - }, - "from": [ - -2.0, - -3.0 - ], - "tag": null, - "to": [ - 2.0, - -3.0 - ], - "type": "ToPoint", - "units": { - "type": "Inches" - } - }, - { - "__geoMeta": { - "id": "[uuid]", - "sourceRange": [] - }, - "from": [ - 2.0, - -3.0 - ], - "tag": null, - "to": [ - 2.0, - 3.0 - ], - "type": "ToPoint", - "units": { - "type": "Inches" - } - }, - { - "__geoMeta": { - "id": "[uuid]", - "sourceRange": [] - }, - "from": [ - 2.0, - 3.0 - ], - "tag": null, - "to": [ - -2.0, - 3.0 - ], - "type": "ToPoint", - "units": { - "type": "Inches" - } - }, - { - "__geoMeta": { - "id": "[uuid]", - "sourceRange": [] - }, - "from": [ - -2.0, - 3.0 - ], - "tag": null, - "to": [ - -2.0, - -3.0 - ], - "type": "ToPoint", - "units": { - "type": "Inches" - } - } - ], - "on": { - "artifactId": "[uuid]", - "id": "[uuid]", - "origin": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "units": { - "type": "Mm" - } - }, - "type": "plane", - "value": "XY", - "xAxis": { - "x": 1.0, - "y": 0.0, - "z": 0.0, - "units": { - "type": "Unknown" - } - }, - "yAxis": { - "x": 0.0, - "y": 1.0, - "z": 0.0, - "units": { - "type": "Unknown" - } - } - }, - "start": { - "from": [ - -2.0, - -3.0 - ], - "to": [ - -2.0, - -3.0 - ], - "units": { - "type": "Inches" - }, - "tag": null, - "__geoMeta": { - "id": "[uuid]", - "sourceRange": [] - } - }, - "artifactId": "[uuid]", - "originalId": "[uuid]", - "units": { - "type": "Inches" - } - }, - "height": 1.0, - "startCapId": "[uuid]", - "endCapId": "[uuid]", - "units": { - "type": "Inches" - }, - "sectional": false - }, - "units": { - "type": "Inches" - } - }, - "start": { - "from": [ - -1.0625, - -2.25 - ], - "to": [ - -1.0625, - -2.25 - ], - "units": { - "type": "Inches" - }, - "tag": null, - "__geoMeta": { - "id": "[uuid]", - "sourceRange": [] - } - }, - "artifactId": "[uuid]", - "originalId": "[uuid]", - "units": { - "type": "Inches" - } - }, - "height": -0.75, - "startCapId": null, - "endCapId": null, - "units": { - "type": "Inches" - }, - "sectional": false - } - } - ] - }, - "cbDepth": { - "type": "Number", - "value": 0.25, - "ty": { - "type": "Default", - "len": { - "type": "Inches" - }, - "angle": { - "type": "Degrees" - } - } - }, - "cbDia": { - "type": "Number", - "value": 0.7, - "ty": { - "type": "Default", - "len": { - "type": "Inches" - }, - "angle": { - "type": "Degrees" - } - } - }, - "centerHole": { - "type": "Solid", - "value": { - "type": "Solid", - "id": "[uuid]", - "artifactId": "[uuid]", - "value": [ - { - "faceId": "[uuid]", - "id": "[uuid]", - "sourceRange": [], - "tag": null, - "type": "extrudeArc" - } - ], - "sketch": { - "type": "Sketch", - "id": "[uuid]", - "paths": [ - { - "__geoMeta": { - "id": "[uuid]", - "sourceRange": [] - }, - "ccw": true, - "center": [ - 0.0, - 0.0 - ], - "from": [ - 1.5, - 0.0 - ], - "radius": 1.5, - "tag": null, - "to": [ - 1.5, - 0.0 - ], - "type": "Circle", - "units": { - "type": "Inches" - } - } - ], - "on": { - "type": "face", - "id": "[uuid]", - "artifactId": "[uuid]", - "value": "end", - "xAxis": { - "x": 1.0, - "y": 0.0, - "z": 0.0, - "units": { - "type": "Unknown" - } - }, - "yAxis": { - "x": 0.0, - "y": 1.0, - "z": 0.0, - "units": { - "type": "Unknown" - } - }, - "solid": { - "type": "Solid", - "id": "[uuid]", - "artifactId": "[uuid]", - "value": [ - { - "faceId": "[uuid]", - "id": "[uuid]", - "sourceRange": [], - "tag": null, - "type": "extrudePlane" - }, - { - "faceId": "[uuid]", - "id": "[uuid]", - "sourceRange": [], - "tag": null, - "type": "extrudePlane" - }, - { - "faceId": "[uuid]", - "id": "[uuid]", - "sourceRange": [], - "tag": null, - "type": "extrudePlane" - }, - { - "faceId": "[uuid]", - "id": "[uuid]", - "sourceRange": [], - "tag": null, - "type": "extrudePlane" - } - ], - "sketch": { - "type": "Sketch", - "id": "[uuid]", - "paths": [ - { - "__geoMeta": { - "id": "[uuid]", - "sourceRange": [] - }, - "from": [ - -2.0, - -3.0 - ], - "tag": null, - "to": [ - 2.0, - -3.0 - ], - "type": "ToPoint", - "units": { - "type": "Inches" - } - }, - { - "__geoMeta": { - "id": "[uuid]", - "sourceRange": [] - }, - "from": [ - 2.0, - -3.0 - ], - "tag": null, - "to": [ - 2.0, - 3.0 - ], - "type": "ToPoint", - "units": { - "type": "Inches" - } - }, - { - "__geoMeta": { - "id": "[uuid]", - "sourceRange": [] - }, - "from": [ - 2.0, - 3.0 - ], - "tag": null, - "to": [ - -2.0, - 3.0 - ], - "type": "ToPoint", - "units": { - "type": "Inches" - } - }, - { - "__geoMeta": { - "id": "[uuid]", - "sourceRange": [] - }, - "from": [ - -2.0, - 3.0 - ], - "tag": null, - "to": [ - -2.0, - -3.0 - ], - "type": "ToPoint", - "units": { - "type": "Inches" - } - } - ], - "on": { - "artifactId": "[uuid]", - "id": "[uuid]", - "origin": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "units": { - "type": "Mm" - } - }, - "type": "plane", - "value": "XY", - "xAxis": { - "x": 1.0, - "y": 0.0, - "z": 0.0, - "units": { - "type": "Unknown" - } - }, - "yAxis": { - "x": 0.0, - "y": 1.0, - "z": 0.0, - "units": { - "type": "Unknown" - } - } - }, - "start": { - "from": [ - -2.0, - -3.0 - ], - "to": [ - -2.0, - -3.0 - ], - "units": { - "type": "Inches" - }, - "tag": null, - "__geoMeta": { - "id": "[uuid]", - "sourceRange": [] - } - }, - "artifactId": "[uuid]", - "originalId": "[uuid]", - "units": { - "type": "Inches" - } - }, - "height": 1.0, - "startCapId": "[uuid]", - "endCapId": "[uuid]", - "units": { - "type": "Inches" - }, - "sectional": false - }, - "units": { - "type": "Inches" - } - }, - "start": { - "from": [ - 1.5, - 0.0 - ], - "to": [ - 1.5, - 0.0 - ], - "units": { - "type": "Inches" - }, - "tag": null, - "__geoMeta": { - "id": "[uuid]", - "sourceRange": [] - } - }, - "artifactId": "[uuid]", - "originalId": "[uuid]", - "units": { - "type": "Inches" - } - }, - "height": -1.0, - "startCapId": null, - "endCapId": null, - "units": { - "type": "Inches" - }, - "sectional": false - } - }, - "counterBoreHoles": { - "type": "HomArray", - "value": [ - { - "type": "Solid", - "value": { - "type": "Solid", - "id": "[uuid]", - "artifactId": "[uuid]", - "value": [ - { - "faceId": "[uuid]", - "id": "[uuid]", - "sourceRange": [], - "tag": null, - "type": "extrudeArc" - } - ], - "sketch": { - "type": "Sketch", - "id": "[uuid]", - "paths": [ - { - "__geoMeta": { - "id": "[uuid]", - "sourceRange": [] - }, - "ccw": true, - "center": [ - -1.25, - -2.25 - ], - "from": [ - -0.9, - -2.25 - ], - "radius": 0.35, - "tag": null, - "to": [ - -0.9, - -2.25 - ], - "type": "Circle", - "units": { - "type": "Inches" - } - } - ], - "on": { - "type": "face", - "id": "[uuid]", - "artifactId": "[uuid]", - "value": "end", - "xAxis": { - "x": 1.0, - "y": 0.0, - "z": 0.0, - "units": { - "type": "Unknown" - } - }, - "yAxis": { - "x": 0.0, - "y": 1.0, - "z": 0.0, - "units": { - "type": "Unknown" - } - }, - "solid": { - "type": "Solid", - "id": "[uuid]", - "artifactId": "[uuid]", - "value": [ - { - "faceId": "[uuid]", - "id": "[uuid]", - "sourceRange": [], - "tag": null, - "type": "extrudePlane" - }, - { - "faceId": "[uuid]", - "id": "[uuid]", - "sourceRange": [], - "tag": null, - "type": "extrudePlane" - }, - { - "faceId": "[uuid]", - "id": "[uuid]", - "sourceRange": [], - "tag": null, - "type": "extrudePlane" - }, - { - "faceId": "[uuid]", - "id": "[uuid]", - "sourceRange": [], - "tag": null, - "type": "extrudePlane" - } - ], - "sketch": { - "type": "Sketch", - "id": "[uuid]", - "paths": [ - { - "__geoMeta": { - "id": "[uuid]", - "sourceRange": [] - }, - "from": [ - -2.0, - -3.0 - ], - "tag": null, - "to": [ - 2.0, - -3.0 - ], - "type": "ToPoint", - "units": { - "type": "Inches" - } - }, - { - "__geoMeta": { - "id": "[uuid]", - "sourceRange": [] - }, - "from": [ - 2.0, - -3.0 - ], - "tag": null, - "to": [ - 2.0, - 3.0 - ], - "type": "ToPoint", - "units": { - "type": "Inches" - } - }, - { - "__geoMeta": { - "id": "[uuid]", - "sourceRange": [] - }, - "from": [ - 2.0, - 3.0 - ], - "tag": null, - "to": [ - -2.0, - 3.0 - ], - "type": "ToPoint", - "units": { - "type": "Inches" - } - }, - { - "__geoMeta": { - "id": "[uuid]", - "sourceRange": [] - }, - "from": [ - -2.0, - 3.0 - ], - "tag": null, - "to": [ - -2.0, - -3.0 - ], - "type": "ToPoint", - "units": { - "type": "Inches" - } - } - ], - "on": { - "artifactId": "[uuid]", - "id": "[uuid]", - "origin": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "units": { - "type": "Mm" - } - }, - "type": "plane", - "value": "XY", - "xAxis": { - "x": 1.0, - "y": 0.0, - "z": 0.0, - "units": { - "type": "Unknown" - } - }, - "yAxis": { - "x": 0.0, - "y": 1.0, - "z": 0.0, - "units": { - "type": "Unknown" - } - } - }, - "start": { - "from": [ - -2.0, - -3.0 - ], - "to": [ - -2.0, - -3.0 - ], - "units": { - "type": "Inches" - }, - "tag": null, - "__geoMeta": { - "id": "[uuid]", - "sourceRange": [] - } - }, - "artifactId": "[uuid]", - "originalId": "[uuid]", - "units": { - "type": "Inches" - } - }, - "height": 1.0, - "startCapId": "[uuid]", - "endCapId": "[uuid]", - "units": { - "type": "Inches" - }, - "sectional": false - }, - "units": { - "type": "Inches" - } - }, - "start": { - "from": [ - -0.9, - -2.25 - ], - "to": [ - -0.9, - -2.25 - ], - "units": { - "type": "Inches" - }, - "tag": null, - "__geoMeta": { - "id": "[uuid]", - "sourceRange": [] - } - }, - "artifactId": "[uuid]", - "originalId": "[uuid]", - "units": { - "type": "Inches" - } - }, - "height": -0.25, - "startCapId": "[uuid]", - "endCapId": null, - "units": { - "type": "Inches" - }, - "sectional": false - } - }, - { - "type": "Solid", - "value": { - "type": "Solid", - "id": "[uuid]", - "artifactId": "[uuid]", - "value": [ - { - "faceId": "[uuid]", - "id": "[uuid]", - "sourceRange": [], - "tag": null, - "type": "extrudeArc" - } - ], - "sketch": { - "type": "Sketch", - "id": "[uuid]", - "paths": [ - { - "__geoMeta": { - "id": "[uuid]", - "sourceRange": [] - }, - "ccw": true, - "center": [ - -1.25, - -2.25 - ], - "from": [ - -0.9, - -2.25 - ], - "radius": 0.35, - "tag": null, - "to": [ - -0.9, - -2.25 - ], - "type": "Circle", - "units": { - "type": "Inches" - } - } - ], - "on": { - "type": "face", - "id": "[uuid]", - "artifactId": "[uuid]", - "value": "end", - "xAxis": { - "x": 1.0, - "y": 0.0, - "z": 0.0, - "units": { - "type": "Unknown" - } - }, - "yAxis": { - "x": 0.0, - "y": 1.0, - "z": 0.0, - "units": { - "type": "Unknown" - } - }, - "solid": { - "type": "Solid", - "id": "[uuid]", - "artifactId": "[uuid]", - "value": [ - { - "faceId": "[uuid]", - "id": "[uuid]", - "sourceRange": [], - "tag": null, - "type": "extrudePlane" - }, - { - "faceId": "[uuid]", - "id": "[uuid]", - "sourceRange": [], - "tag": null, - "type": "extrudePlane" - }, - { - "faceId": "[uuid]", - "id": "[uuid]", - "sourceRange": [], - "tag": null, - "type": "extrudePlane" - }, - { - "faceId": "[uuid]", - "id": "[uuid]", - "sourceRange": [], - "tag": null, - "type": "extrudePlane" - } - ], - "sketch": { - "type": "Sketch", - "id": "[uuid]", - "paths": [ - { - "__geoMeta": { - "id": "[uuid]", - "sourceRange": [] - }, - "from": [ - -2.0, - -3.0 - ], - "tag": null, - "to": [ - 2.0, - -3.0 - ], - "type": "ToPoint", - "units": { - "type": "Inches" - } - }, - { - "__geoMeta": { - "id": "[uuid]", - "sourceRange": [] - }, - "from": [ - 2.0, - -3.0 - ], - "tag": null, - "to": [ - 2.0, - 3.0 - ], - "type": "ToPoint", - "units": { - "type": "Inches" - } - }, - { - "__geoMeta": { - "id": "[uuid]", - "sourceRange": [] - }, - "from": [ - 2.0, - 3.0 - ], - "tag": null, - "to": [ - -2.0, - 3.0 - ], - "type": "ToPoint", - "units": { - "type": "Inches" - } - }, - { - "__geoMeta": { - "id": "[uuid]", - "sourceRange": [] - }, - "from": [ - -2.0, - 3.0 - ], - "tag": null, - "to": [ - -2.0, - -3.0 - ], - "type": "ToPoint", - "units": { - "type": "Inches" - } - } - ], - "on": { - "artifactId": "[uuid]", - "id": "[uuid]", - "origin": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "units": { - "type": "Mm" - } - }, - "type": "plane", - "value": "XY", - "xAxis": { - "x": 1.0, - "y": 0.0, - "z": 0.0, - "units": { - "type": "Unknown" - } - }, - "yAxis": { - "x": 0.0, - "y": 1.0, - "z": 0.0, - "units": { - "type": "Unknown" - } - } - }, - "start": { - "from": [ - -2.0, - -3.0 - ], - "to": [ - -2.0, - -3.0 - ], - "units": { - "type": "Inches" - }, - "tag": null, - "__geoMeta": { - "id": "[uuid]", - "sourceRange": [] - } - }, - "artifactId": "[uuid]", - "originalId": "[uuid]", - "units": { - "type": "Inches" - } - }, - "height": 1.0, - "startCapId": "[uuid]", - "endCapId": "[uuid]", - "units": { - "type": "Inches" - }, - "sectional": false - }, - "units": { - "type": "Inches" - } - }, - "start": { - "from": [ - -0.9, - -2.25 - ], - "to": [ - -0.9, - -2.25 - ], - "units": { - "type": "Inches" - }, - "tag": null, - "__geoMeta": { - "id": "[uuid]", - "sourceRange": [] - } - }, - "artifactId": "[uuid]", - "originalId": "[uuid]", - "units": { - "type": "Inches" - } - }, - "height": -0.25, - "startCapId": "[uuid]", - "endCapId": null, - "units": { - "type": "Inches" - }, - "sectional": false - } - }, - { - "type": "Solid", - "value": { - "type": "Solid", - "id": "[uuid]", - "artifactId": "[uuid]", - "value": [ - { - "faceId": "[uuid]", - "id": "[uuid]", - "sourceRange": [], - "tag": null, - "type": "extrudeArc" - } - ], - "sketch": { - "type": "Sketch", - "id": "[uuid]", - "paths": [ - { - "__geoMeta": { - "id": "[uuid]", - "sourceRange": [] - }, - "ccw": true, - "center": [ - -1.25, - -2.25 - ], - "from": [ - -0.9, - -2.25 - ], - "radius": 0.35, - "tag": null, - "to": [ - -0.9, - -2.25 - ], - "type": "Circle", - "units": { - "type": "Inches" - } - } - ], - "on": { - "type": "face", - "id": "[uuid]", - "artifactId": "[uuid]", - "value": "end", - "xAxis": { - "x": 1.0, - "y": 0.0, - "z": 0.0, - "units": { - "type": "Unknown" - } - }, - "yAxis": { - "x": 0.0, - "y": 1.0, - "z": 0.0, - "units": { - "type": "Unknown" - } - }, - "solid": { - "type": "Solid", - "id": "[uuid]", - "artifactId": "[uuid]", - "value": [ - { - "faceId": "[uuid]", - "id": "[uuid]", - "sourceRange": [], - "tag": null, - "type": "extrudePlane" - }, - { - "faceId": "[uuid]", - "id": "[uuid]", - "sourceRange": [], - "tag": null, - "type": "extrudePlane" - }, - { - "faceId": "[uuid]", - "id": "[uuid]", - "sourceRange": [], - "tag": null, - "type": "extrudePlane" - }, - { - "faceId": "[uuid]", - "id": "[uuid]", - "sourceRange": [], - "tag": null, - "type": "extrudePlane" - } - ], - "sketch": { - "type": "Sketch", - "id": "[uuid]", - "paths": [ - { - "__geoMeta": { - "id": "[uuid]", - "sourceRange": [] - }, - "from": [ - -2.0, - -3.0 - ], - "tag": null, - "to": [ - 2.0, - -3.0 - ], - "type": "ToPoint", - "units": { - "type": "Inches" - } - }, - { - "__geoMeta": { - "id": "[uuid]", - "sourceRange": [] - }, - "from": [ - 2.0, - -3.0 - ], - "tag": null, - "to": [ - 2.0, - 3.0 - ], - "type": "ToPoint", - "units": { - "type": "Inches" - } - }, - { - "__geoMeta": { - "id": "[uuid]", - "sourceRange": [] - }, - "from": [ - 2.0, - 3.0 - ], - "tag": null, - "to": [ - -2.0, - 3.0 - ], - "type": "ToPoint", - "units": { - "type": "Inches" - } - }, - { - "__geoMeta": { - "id": "[uuid]", - "sourceRange": [] - }, - "from": [ - -2.0, - 3.0 - ], - "tag": null, - "to": [ - -2.0, - -3.0 - ], - "type": "ToPoint", - "units": { - "type": "Inches" - } - } - ], - "on": { - "artifactId": "[uuid]", - "id": "[uuid]", - "origin": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "units": { - "type": "Mm" - } - }, - "type": "plane", - "value": "XY", - "xAxis": { - "x": 1.0, - "y": 0.0, - "z": 0.0, - "units": { - "type": "Unknown" - } - }, - "yAxis": { - "x": 0.0, - "y": 1.0, - "z": 0.0, - "units": { - "type": "Unknown" - } - } - }, - "start": { - "from": [ - -2.0, - -3.0 - ], - "to": [ - -2.0, - -3.0 - ], - "units": { - "type": "Inches" - }, - "tag": null, - "__geoMeta": { - "id": "[uuid]", - "sourceRange": [] - } - }, - "artifactId": "[uuid]", - "originalId": "[uuid]", - "units": { - "type": "Inches" - } - }, - "height": 1.0, - "startCapId": "[uuid]", - "endCapId": "[uuid]", - "units": { - "type": "Inches" - }, - "sectional": false - }, - "units": { - "type": "Inches" - } - }, - "start": { - "from": [ - -0.9, - -2.25 - ], - "to": [ - -0.9, - -2.25 - ], - "units": { - "type": "Inches" - }, - "tag": null, - "__geoMeta": { - "id": "[uuid]", - "sourceRange": [] - } - }, - "artifactId": "[uuid]", - "originalId": "[uuid]", - "units": { - "type": "Inches" - } - }, - "height": -0.25, - "startCapId": "[uuid]", - "endCapId": null, - "units": { - "type": "Inches" - }, - "sectional": false - } - }, - { - "type": "Solid", - "value": { - "type": "Solid", - "id": "[uuid]", - "artifactId": "[uuid]", - "value": [ - { - "faceId": "[uuid]", - "id": "[uuid]", - "sourceRange": [], - "tag": null, - "type": "extrudeArc" - } - ], - "sketch": { - "type": "Sketch", - "id": "[uuid]", - "paths": [ - { - "__geoMeta": { - "id": "[uuid]", - "sourceRange": [] - }, - "ccw": true, - "center": [ - -1.25, - -2.25 - ], - "from": [ - -0.9, - -2.25 - ], - "radius": 0.35, - "tag": null, - "to": [ - -0.9, - -2.25 - ], - "type": "Circle", - "units": { - "type": "Inches" - } - } - ], - "on": { - "type": "face", - "id": "[uuid]", - "artifactId": "[uuid]", - "value": "end", - "xAxis": { - "x": 1.0, - "y": 0.0, - "z": 0.0, - "units": { - "type": "Unknown" - } - }, - "yAxis": { - "x": 0.0, - "y": 1.0, - "z": 0.0, - "units": { - "type": "Unknown" - } - }, - "solid": { - "type": "Solid", - "id": "[uuid]", - "artifactId": "[uuid]", - "value": [ - { - "faceId": "[uuid]", - "id": "[uuid]", - "sourceRange": [], - "tag": null, - "type": "extrudePlane" - }, - { - "faceId": "[uuid]", - "id": "[uuid]", - "sourceRange": [], - "tag": null, - "type": "extrudePlane" - }, - { - "faceId": "[uuid]", - "id": "[uuid]", - "sourceRange": [], - "tag": null, - "type": "extrudePlane" - }, - { - "faceId": "[uuid]", - "id": "[uuid]", - "sourceRange": [], - "tag": null, - "type": "extrudePlane" - } - ], - "sketch": { - "type": "Sketch", - "id": "[uuid]", - "paths": [ - { - "__geoMeta": { - "id": "[uuid]", - "sourceRange": [] - }, - "from": [ - -2.0, - -3.0 - ], - "tag": null, - "to": [ - 2.0, - -3.0 - ], - "type": "ToPoint", - "units": { - "type": "Inches" - } - }, - { - "__geoMeta": { - "id": "[uuid]", - "sourceRange": [] - }, - "from": [ - 2.0, - -3.0 - ], - "tag": null, - "to": [ - 2.0, - 3.0 - ], - "type": "ToPoint", - "units": { - "type": "Inches" - } - }, - { - "__geoMeta": { - "id": "[uuid]", - "sourceRange": [] - }, - "from": [ - 2.0, - 3.0 - ], - "tag": null, - "to": [ - -2.0, - 3.0 - ], - "type": "ToPoint", - "units": { - "type": "Inches" - } - }, - { - "__geoMeta": { - "id": "[uuid]", - "sourceRange": [] - }, - "from": [ - -2.0, - 3.0 - ], - "tag": null, - "to": [ - -2.0, - -3.0 - ], - "type": "ToPoint", - "units": { - "type": "Inches" - } - } - ], - "on": { - "artifactId": "[uuid]", - "id": "[uuid]", - "origin": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "units": { - "type": "Mm" - } - }, - "type": "plane", - "value": "XY", - "xAxis": { - "x": 1.0, - "y": 0.0, - "z": 0.0, - "units": { - "type": "Unknown" - } - }, - "yAxis": { - "x": 0.0, - "y": 1.0, - "z": 0.0, - "units": { - "type": "Unknown" - } - } - }, - "start": { - "from": [ - -2.0, - -3.0 - ], - "to": [ - -2.0, - -3.0 - ], - "units": { - "type": "Inches" - }, - "tag": null, - "__geoMeta": { - "id": "[uuid]", - "sourceRange": [] - } - }, - "artifactId": "[uuid]", - "originalId": "[uuid]", - "units": { - "type": "Inches" - } - }, - "height": 1.0, - "startCapId": "[uuid]", - "endCapId": "[uuid]", - "units": { - "type": "Inches" - }, - "sectional": false - }, - "units": { - "type": "Inches" - } - }, - "start": { - "from": [ - -0.9, - -2.25 - ], - "to": [ - -0.9, - -2.25 - ], - "units": { - "type": "Inches" - }, - "tag": null, - "__geoMeta": { - "id": "[uuid]", - "sourceRange": [] - } - }, - "artifactId": "[uuid]", - "originalId": "[uuid]", - "units": { - "type": "Inches" - } - }, - "height": -0.25, - "startCapId": "[uuid]", - "endCapId": null, - "units": { - "type": "Inches" - }, - "sectional": false - } - } - ] - }, - "height": { - "type": "Number", - "value": 1.0, - "ty": { - "type": "Default", - "len": { - "type": "Inches" - }, - "angle": { - "type": "Degrees" - } - } - }, - "holeDia": { - "type": "Number", - "value": 0.375, - "ty": { - "type": "Default", - "len": { - "type": "Inches" - }, - "angle": { - "type": "Degrees" - } - } - }, - "length": { - "type": "Number", - "value": 6.0, - "ty": { - "type": "Default", - "len": { - "type": "Inches" - }, - "angle": { - "type": "Degrees" - } - } - }, - "padding": { - "type": "Number", - "value": 1.5, - "ty": { - "type": "Default", - "len": { - "type": "Inches" - }, - "angle": { - "type": "Degrees" - } - } - }, - "width": { - "type": "Number", - "value": 4.0, - "ty": { - "type": "Default", - "len": { - "type": "Inches" - }, - "angle": { - "type": "Degrees" - } - } - } -} diff --git a/rust/kcl-lib/tests/kcl_samples/parametric-bearing-pillow-block/rendered_model.png b/rust/kcl-lib/tests/kcl_samples/parametric-bearing-pillow-block/rendered_model.png deleted file mode 100644 index 020b1e677e1381cbe708f542984db357ac8b0c7c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 70875 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 diff --git a/rust/kcl-lib/tests/kcl_samples/pillow-block-bearing/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/pillow-block-bearing/artifact_commands.snap new file mode 100644 index 000000000..ed9f178f6 --- /dev/null +++ b/rust/kcl-lib/tests/kcl_samples/pillow-block-bearing/artifact_commands.snap @@ -0,0 +1,4307 @@ +--- +source: kcl-lib/src/simulation_tests.rs +description: Artifact commands pillow-block-bearing.kcl +--- +[ + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 6.35 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": false + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.6, + "g": 0.6, + "b": 0.6, + "a": 0.3 + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 24.764999999999997, + "y": 0.0254, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "arc", + "center": { + "x": 27.5431, + "y": 0.0254 + }, + "radius": 2.7781249999999997, + "start": { + "unit": "degrees", + "value": 180.0 + }, + "end": { + "unit": "degrees", + "value": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "revolve", + "target": "[uuid]", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "axis_is_2d": true, + "angle": { + "unit": "degrees", + "value": 360.0 + }, + "tolerance": 0.0000001, + "opposite": "None" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "entity_circular_pattern", + "entity_id": "[uuid]", + "axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "center": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "num_repetitions": 15, + "arc_degrees": 360.0, + "rotate_duplicates": true + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 6.35 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": false + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.6, + "g": 0.6, + "b": 0.6, + "a": 0.3 + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 26.154062500000002, + "y": 2.7496306570155924, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "arc", + "center": { + "x": 27.5431, + "y": 0.3437 + }, + "radius": 2.7781249999999997, + "start": { + "unit": "degrees", + "value": 120.0 + }, + "end": { + "unit": "degrees", + "value": 60.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": 0.6945, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -2.7781, + "y": 0.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "revolve", + "target": "[uuid]", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "axis_is_2d": true, + "angle": { + "unit": "degrees", + "value": 360.0 + }, + "tolerance": 0.0000001, + "opposite": "None" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "entity_circular_pattern", + "entity_id": "[uuid]", + "axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "center": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "num_repetitions": 15, + "arc_degrees": 360.0, + "rotate_duplicates": true + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 60.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "arc", + "center": { + "x": 27.5431, + "y": 6.35 + }, + "radius": 0.6945312499999999, + "start": { + "unit": "degrees", + "value": 0.0 + }, + "end": { + "unit": "degrees", + "value": 360.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 28.23765625, + "y": 6.35, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 60.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 31.559499999999996, + "y": 12.7, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.0222, + "y": -1.2698, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -7.4295, + "y": 0.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 24.1078, + "y": 2.667, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.635, + "y": 0.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 23.2977, + "y": 12.7, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 31.5595, + "y": 12.7, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "revolve", + "target": "[uuid]", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "axis_is_2d": true, + "angle": { + "unit": "degrees", + "value": 360.0 + }, + "tolerance": 0.0000001, + "opposite": "None" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "object_set_material_params_pbr", + "object_id": "[uuid]", + "color": { + "r": 0.07058824, + "g": 0.07058824, + "b": 0.07058824, + "a": 100.0 + }, + "metalness": 0.0, + "roughness": 0.0, + "ambient_occlusion": 0.0 + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 22.224999999999998, + "y": 0.635, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 1.27, + "y": 0.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.263, + "y": 0.9814, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 1.27, + "y": 0.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.263, + "y": -0.9814, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 33.3375, + "y": 0.635, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": 12.7, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -1.778, + "y": 0.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 31.3711, + "y": 2.54, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 23.495, + "y": 2.54, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 23.2622, + "y": 15.875, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 22.225, + "y": 15.875, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 22.225, + "y": 0.635, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "revolve", + "target": "[uuid]", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "axis_is_2d": true, + "angle": { + "unit": "degrees", + "value": 360.0 + }, + "tolerance": 0.0000001, + "opposite": "None" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "object_set_material_params_pbr", + "object_id": "[uuid]", + "color": { + "r": 0.9411765, + "g": 0.9411765, + "b": 0.9411765, + "a": 100.0 + }, + "metalness": 0.0, + "roughness": 0.0, + "ambient_occlusion": 0.0 + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "revolve", + "target": "[uuid]", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "axis_is_2d": true, + "angle": { + "unit": "degrees", + "value": 22.5 + }, + "tolerance": 0.0000001, + "opposite": "None" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "entity_circular_pattern", + "entity_id": "[uuid]", + "axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "center": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "num_repetitions": 15, + "arc_degrees": 360.0, + "rotate_duplicates": true + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 60.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": -77.7875, + "y": -52.387499999999996, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 155.575, + "y": 0.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": 104.775, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -155.575, + "y": -0.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -77.7875, + "y": -52.3875, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid2d_add_hole", + "object_id": "[uuid]", + "hole_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "arc", + "center": { + "x": 0.0, + "y": 0.0 + }, + "radius": 33.3375, + "start": { + "unit": "degrees", + "value": 0.0 + }, + "end": { + "unit": "degrees", + "value": 360.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 33.3375, + "y": 0.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": 12.7, + "faces": null, + "opposite": "None" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "object_set_material_params_pbr", + "object_id": "[uuid]", + "color": { + "r": 0.11764706, + "g": 0.38431373, + "b": 0.92156863, + "a": 100.0 + }, + "metalness": 0.0, + "roughness": 0.0, + "ambient_occlusion": 0.0 + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_fillet_edge", + "object_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]" + ], + "radius": 3.175, + "tolerance": 0.0000001, + "cut_type": "fillet", + "strategy": "automatic", + "extra_face_ids": [] + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_fillet_edge", + "object_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]" + ], + "radius": 3.175, + "tolerance": 0.0000001, + "cut_type": "fillet", + "strategy": "automatic", + "extra_face_ids": [] + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_fillet_edge", + "object_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]" + ], + "radius": 3.175, + "tolerance": 0.0000001, + "cut_type": "fillet", + "strategy": "automatic", + "extra_face_ids": [] + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_fillet_edge", + "object_id": "[uuid]", + "edge_id": null, + "edge_ids": [ + "[uuid]" + ], + "radius": 3.175, + "tolerance": 0.0000001, + "cut_type": "fillet", + "strategy": "automatic", + "extra_face_ids": [] + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": null + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": null + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": null + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": null + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "arc", + "center": { + "x": -63.5, + "y": -38.1 + }, + "radius": 9.524999999999999, + "start": { + "unit": "degrees", + "value": 0.0 + }, + "end": { + "unit": "degrees", + "value": 360.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "arc", + "center": { + "x": -63.5, + "y": 38.1 + }, + "radius": 9.524999999999999, + "start": { + "unit": "degrees", + "value": 0.0 + }, + "end": { + "unit": "degrees", + "value": 360.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "arc", + "center": { + "x": 63.5, + "y": -38.1 + }, + "radius": 9.524999999999999, + "start": { + "unit": "degrees", + "value": 0.0 + }, + "end": { + "unit": "degrees", + "value": 360.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "arc", + "center": { + "x": 63.5, + "y": 38.1 + }, + "radius": 9.524999999999999, + "start": { + "unit": "degrees", + "value": 0.0 + }, + "end": { + "unit": "degrees", + "value": 360.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": -53.974999999999994, + "y": -38.099999999999994, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": -53.974999999999994, + "y": 38.099999999999994, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 73.02499999999999, + "y": -38.099999999999994, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 73.02499999999999, + "y": 38.099999999999994, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": null + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": null + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": null + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": null + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": -4.762499999999999, + "faces": null, + "opposite": "None" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": -4.762499999999999, + "faces": null, + "opposite": "None" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": -4.762499999999999, + "faces": null, + "opposite": "None" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": -4.762499999999999, + "faces": null, + "opposite": "None" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": null + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": null + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": null + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": null + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "arc", + "center": { + "x": -63.5, + "y": -38.1 + }, + "radius": 4.762499999999999, + "start": { + "unit": "degrees", + "value": 0.0 + }, + "end": { + "unit": "degrees", + "value": 360.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "arc", + "center": { + "x": -63.5, + "y": 38.1 + }, + "radius": 4.762499999999999, + "start": { + "unit": "degrees", + "value": 0.0 + }, + "end": { + "unit": "degrees", + "value": 360.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "arc", + "center": { + "x": 63.5, + "y": -38.1 + }, + "radius": 4.762499999999999, + "start": { + "unit": "degrees", + "value": 0.0 + }, + "end": { + "unit": "degrees", + "value": 360.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "arc", + "center": { + "x": 63.5, + "y": 38.1 + }, + "radius": 4.762499999999999, + "start": { + "unit": "degrees", + "value": 0.0 + }, + "end": { + "unit": "degrees", + "value": 360.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": -58.7375, + "y": -38.099999999999994, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": -58.7375, + "y": 38.099999999999994, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 68.2625, + "y": -38.099999999999994, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 68.2625, + "y": 38.099999999999994, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": null + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": null + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": null + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": null + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": -7.9375, + "faces": null, + "opposite": "None" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": -7.9375, + "faces": null, + "opposite": "None" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": -7.9375, + "faces": null, + "opposite": "None" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": -7.9375, + "faces": null, + "opposite": "None" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_all_edge_faces", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + } +] diff --git a/rust/kcl-lib/tests/kcl_samples/pillow-block-bearing/artifact_graph_flowchart.snap b/rust/kcl-lib/tests/kcl_samples/pillow-block-bearing/artifact_graph_flowchart.snap new file mode 100644 index 000000000..7bbfe412d --- /dev/null +++ b/rust/kcl-lib/tests/kcl_samples/pillow-block-bearing/artifact_graph_flowchart.snap @@ -0,0 +1,6 @@ +--- +source: kcl-lib/src/simulation_tests.rs +description: Artifact graph flowchart pillow-block-bearing.kcl +extension: md +snapshot_kind: binary +--- diff --git a/rust/kcl-lib/tests/kcl_samples/pillow-block-bearing/artifact_graph_flowchart.snap.md b/rust/kcl-lib/tests/kcl_samples/pillow-block-bearing/artifact_graph_flowchart.snap.md new file mode 100644 index 000000000..456d2ae4d --- /dev/null +++ b/rust/kcl-lib/tests/kcl_samples/pillow-block-bearing/artifact_graph_flowchart.snap.md @@ -0,0 +1,613 @@ +```mermaid +flowchart LR + subgraph path6 [Path] + 6["Path
[410, 467, 2]"] + 21["Segment
[473, 532, 2]"] + 22["Segment
[538, 545, 2]"] + 64[Solid2d] + end + subgraph path7 [Path] + 7["Path
[953, 1079, 2]"] + 23["Segment
[1085, 1145, 2]"] + 24["Segment
[1151, 1182, 2]"] + 25["Segment
[1188, 1216, 2]"] + 26["Segment
[1222, 1229, 2]"] + 69[Solid2d] + end + subgraph path8 [Path] + 8["Path
[1559, 1719, 2]"] + 27["Segment
[1559, 1719, 2]"] + 72[Solid2d] + end + subgraph path9 [Path] + 9["Path
[1803, 1932, 2]"] + 28["Segment
[1938, 1976, 2]"] + 29["Segment
[1982, 2060, 2]"] + 30["Segment
[2066, 2092, 2]"] + 31["Segment
[2098, 2120, 2]"] + 32["Segment
[2126, 2181, 2]"] + 33["Segment
[2187, 2243, 2]"] + 34["Segment
[2249, 2256, 2]"] + 71[Solid2d] + end + subgraph path10 [Path] + 10["Path
[2347, 2411, 2]"] + 35["Segment
[2417, 2437, 2]"] + 36["Segment
[2443, 2494, 2]"] + 37["Segment
[2500, 2520, 2]"] + 38["Segment
[2526, 2573, 2]"] + 39["Segment
[2579, 2624, 2]"] + 40["Segment
[2630, 2660, 2]"] + 41["Segment
[2666, 2687, 2]"] + 42["Segment
[2693, 2756, 2]"] + 43["Segment
[2762, 2805, 2]"] + 44["Segment
[2811, 2871, 2]"] + 45["Segment
[2877, 2914, 2]"] + 46["Segment
[2920, 2976, 2]"] + 47["Segment
[2982, 2989, 2]"] + 70[Solid2d] + end + subgraph path11 [Path] + 11["Path
[655, 709, 3]"] + 48["Segment
[715, 787, 3]"] + 49["Segment
[793, 896, 3]"] + 50["Segment
[902, 1019, 3]"] + 51["Segment
[1025, 1110, 3]"] + 52["Segment
[1116, 1123, 3]"] + 67[Solid2d] + end + subgraph path12 [Path] + 12["Path
[1147, 1205, 3]"] + 53["Segment
[1147, 1205, 3]"] + 74[Solid2d] + end + subgraph path13 [Path] + 13["Path
[1933, 1996, 3]"] + 54["Segment
[1933, 1996, 3]"] + 62[Solid2d] + end + subgraph path14 [Path] + 14["Path
[1933, 1996, 3]"] + 57["Segment
[1933, 1996, 3]"] + 65[Solid2d] + end + subgraph path15 [Path] + 15["Path
[1933, 1996, 3]"] + 55["Segment
[1933, 1996, 3]"] + 68[Solid2d] + end + subgraph path16 [Path] + 16["Path
[1933, 1996, 3]"] + 56["Segment
[1933, 1996, 3]"] + 75[Solid2d] + end + subgraph path17 [Path] + 17["Path
[2094, 2165, 3]"] + 60["Segment
[2094, 2165, 3]"] + 63[Solid2d] + end + subgraph path18 [Path] + 18["Path
[2094, 2165, 3]"] + 58["Segment
[2094, 2165, 3]"] + 66[Solid2d] + end + subgraph path19 [Path] + 19["Path
[2094, 2165, 3]"] + 59["Segment
[2094, 2165, 3]"] + 73[Solid2d] + end + subgraph path20 [Path] + 20["Path
[2094, 2165, 3]"] + 61["Segment
[2094, 2165, 3]"] + 76[Solid2d] + end + 1["Plane
[359, 403, 2]"] + 2["Plane
[902, 946, 2]"] + 3["Plane
[1536, 1553, 2]"] + 4["Plane
[1770, 1787, 2]"] + 5["Plane
[632, 649, 3]"] + 77["Sweep Revolve
[627, 657, 2]"] + 78["Sweep Revolve
[1271, 1301, 2]"] + 79["Sweep Revolve
[2262, 2292, 2]"] + 80["Sweep Revolve
[2995, 3025, 2]"] + 81["Sweep Revolve
[3092, 3139, 2]"] + 82["Sweep Extrusion
[1219, 1264, 3]"] + 83["Sweep Extrusion
[2004, 2039, 3]"] + 84["Sweep Extrusion
[2004, 2039, 3]"] + 85["Sweep Extrusion
[2004, 2039, 3]"] + 86["Sweep Extrusion
[2004, 2039, 3]"] + 87["Sweep Extrusion
[2173, 2225, 3]"] + 88["Sweep Extrusion
[2173, 2225, 3]"] + 89["Sweep Extrusion
[2173, 2225, 3]"] + 90["Sweep Extrusion
[2173, 2225, 3]"] + 91[Wall] + 92[Wall] + 93[Wall] + 94[Wall] + 95[Wall] + 96[Wall] + 97[Wall] + 98[Wall] + 99[Wall] + 100[Wall] + 101[Wall] + 102[Wall] + 103[Wall] + 104[Wall] + 105[Wall] + 106[Wall] + 107[Wall] + 108[Wall] + 109[Wall] + 110[Wall] + 111[Wall] + 112[Wall] + 113[Wall] + 114[Wall] + 115[Wall] + 116[Wall] + 117[Wall] + 118[Wall] + 119[Wall] + 120[Wall] + 121[Wall] + 122[Wall] + 123[Wall] + 124[Wall] + 125[Wall] + 126[Wall] + 127[Wall] + 128["Cap Start"] + 129["Cap Start"] + 130["Cap Start"] + 131["Cap Start"] + 132["Cap Start"] + 133["Cap Start"] + 134["Cap End"] + 135["Cap End"] + 136["SweepEdge Opposite"] + 137["SweepEdge Opposite"] + 138["SweepEdge Opposite"] + 139["SweepEdge Opposite"] + 140["SweepEdge Opposite"] + 141["SweepEdge Opposite"] + 142["SweepEdge Opposite"] + 143["SweepEdge Opposite"] + 144["SweepEdge Opposite"] + 145["SweepEdge Opposite"] + 146["SweepEdge Opposite"] + 147["SweepEdge Opposite"] + 148["SweepEdge Opposite"] + 149["SweepEdge Adjacent"] + 150["SweepEdge Adjacent"] + 151["SweepEdge Adjacent"] + 152["SweepEdge Adjacent"] + 153["SweepEdge Adjacent"] + 154["SweepEdge Adjacent"] + 155["SweepEdge Adjacent"] + 156["SweepEdge Adjacent"] + 157["SweepEdge Adjacent"] + 158["SweepEdge Adjacent"] + 159["SweepEdge Adjacent"] + 160["SweepEdge Adjacent"] + 161["SweepEdge Adjacent"] + 162["SweepEdge Adjacent"] + 163["SweepEdge Adjacent"] + 164["SweepEdge Adjacent"] + 165["SweepEdge Adjacent"] + 166["SweepEdge Adjacent"] + 167["SweepEdge Adjacent"] + 168["SweepEdge Adjacent"] + 169["SweepEdge Adjacent"] + 170["SweepEdge Adjacent"] + 171["SweepEdge Adjacent"] + 172["SweepEdge Adjacent"] + 173["SweepEdge Adjacent"] + 174["SweepEdge Adjacent"] + 175["SweepEdge Adjacent"] + 176["SweepEdge Adjacent"] + 177["SweepEdge Adjacent"] + 178["SweepEdge Adjacent"] + 179["SweepEdge Adjacent"] + 180["SweepEdge Adjacent"] + 181["SweepEdge Adjacent"] + 182["SweepEdge Adjacent"] + 183["SweepEdge Adjacent"] + 184["SweepEdge Adjacent"] + 185["SweepEdge Adjacent"] + 186["EdgeCut Fillet
[1308, 1593, 3]"] + 187["EdgeCut Fillet
[1308, 1593, 3]"] + 188["EdgeCut Fillet
[1308, 1593, 3]"] + 189["EdgeCut Fillet
[1308, 1593, 3]"] + 1 --- 6 + 2 --- 7 + 3 --- 8 + 4 --- 9 + 4 --- 10 + 5 --- 11 + 5 --- 12 + 6 --- 21 + 6 --- 22 + 6 --- 64 + 6 ---- 77 + 7 --- 23 + 7 --- 24 + 7 --- 25 + 7 --- 26 + 7 --- 69 + 7 ---- 78 + 8 --- 27 + 8 --- 72 + 8 ---- 81 + 9 --- 28 + 9 --- 29 + 9 --- 30 + 9 --- 31 + 9 --- 32 + 9 --- 33 + 9 --- 34 + 9 --- 71 + 9 ---- 79 + 10 --- 35 + 10 --- 36 + 10 --- 37 + 10 --- 38 + 10 --- 39 + 10 --- 40 + 10 --- 41 + 10 --- 42 + 10 --- 43 + 10 --- 44 + 10 --- 45 + 10 --- 46 + 10 --- 47 + 10 --- 70 + 10 ---- 80 + 11 --- 48 + 11 --- 49 + 11 --- 50 + 11 --- 51 + 11 --- 52 + 11 --- 67 + 11 ---- 82 + 12 --- 53 + 12 --- 74 + 13 --- 54 + 13 --- 62 + 13 ---- 86 + 134 --- 13 + 14 --- 57 + 14 --- 65 + 14 ---- 83 + 134 --- 14 + 15 --- 55 + 15 --- 68 + 15 ---- 85 + 134 --- 15 + 16 --- 56 + 16 --- 75 + 16 ---- 84 + 134 --- 16 + 17 --- 60 + 17 --- 63 + 17 ---- 87 + 132 --- 17 + 18 --- 58 + 18 --- 66 + 18 ---- 90 + 129 --- 18 + 19 --- 59 + 19 --- 73 + 19 ---- 89 + 130 --- 19 + 20 --- 61 + 20 --- 76 + 20 ---- 88 + 131 --- 20 + 77 <--x 21 + 21 --- 92 + 21 --- 150 + 77 <--x 22 + 22 --- 93 + 22 --- 151 + 78 <--x 23 + 23 --- 125 + 23 --- 182 + 78 <--x 24 + 24 --- 122 + 24 --- 180 + 78 <--x 25 + 25 --- 123 + 25 --- 181 + 78 <--x 26 + 26 --- 124 + 26 --- 183 + 27 --- 94 + 27 x--> 135 + 27 --- 137 + 27 --- 152 + 79 <--x 28 + 28 --- 120 + 28 --- 174 + 79 <--x 29 + 29 --- 115 + 29 --- 177 + 79 <--x 30 + 30 --- 119 + 30 --- 173 + 79 <--x 31 + 31 --- 117 + 31 --- 178 + 79 <--x 32 + 32 --- 116 + 32 --- 175 + 79 <--x 33 + 33 --- 118 + 33 --- 176 + 80 <--x 35 + 35 --- 106 + 35 --- 165 + 80 <--x 36 + 36 --- 96 + 36 --- 156 + 80 <--x 37 + 37 --- 98 + 37 --- 164 + 80 <--x 38 + 38 --- 101 + 38 --- 159 + 80 <--x 39 + 39 --- 100 + 39 --- 162 + 80 <--x 40 + 40 --- 105 + 40 --- 160 + 80 <--x 41 + 41 --- 104 + 41 --- 158 + 80 <--x 42 + 42 --- 107 + 42 --- 154 + 80 <--x 43 + 43 --- 97 + 43 --- 155 + 80 <--x 44 + 44 --- 102 + 44 --- 157 + 80 <--x 45 + 45 --- 103 + 45 --- 163 + 80 <--x 46 + 46 --- 99 + 46 --- 161 + 48 --- 112 + 48 x--> 128 + 48 --- 143 + 48 --- 172 + 49 --- 113 + 49 x--> 128 + 49 --- 145 + 49 --- 169 + 50 --- 114 + 50 x--> 128 + 50 --- 142 + 50 --- 171 + 51 --- 111 + 51 x--> 128 + 51 --- 144 + 51 --- 170 + 54 --- 126 + 54 x--> 134 + 54 --- 147 + 54 --- 184 + 55 --- 121 + 55 x--> 134 + 55 --- 146 + 55 --- 179 + 56 --- 110 + 56 x--> 134 + 56 --- 141 + 56 --- 168 + 57 --- 108 + 57 x--> 134 + 57 --- 139 + 57 --- 166 + 58 --- 127 + 58 x--> 129 + 58 --- 148 + 58 --- 185 + 59 --- 109 + 59 x--> 130 + 59 --- 140 + 59 --- 167 + 60 --- 91 + 60 x--> 132 + 60 --- 136 + 60 --- 149 + 61 --- 95 + 61 x--> 131 + 61 --- 138 + 61 --- 153 + 77 --- 92 + 77 --- 93 + 77 --- 150 + 77 --- 151 + 78 --- 122 + 78 --- 123 + 78 --- 124 + 78 --- 125 + 78 --- 180 + 78 --- 181 + 78 --- 182 + 78 --- 183 + 79 --- 115 + 79 --- 116 + 79 --- 117 + 79 --- 118 + 79 --- 119 + 79 --- 120 + 79 --- 173 + 79 --- 174 + 79 --- 175 + 79 --- 176 + 79 --- 177 + 79 --- 178 + 80 --- 96 + 80 --- 97 + 80 --- 98 + 80 --- 99 + 80 --- 100 + 80 --- 101 + 80 --- 102 + 80 --- 103 + 80 --- 104 + 80 --- 105 + 80 --- 106 + 80 --- 107 + 80 --- 154 + 80 --- 155 + 80 --- 156 + 80 --- 157 + 80 --- 158 + 80 --- 159 + 80 --- 160 + 80 --- 161 + 80 --- 162 + 80 --- 163 + 80 --- 164 + 80 --- 165 + 81 --- 94 + 81 --- 133 + 81 --- 135 + 81 --- 137 + 81 --- 152 + 82 --- 111 + 82 --- 112 + 82 --- 113 + 82 --- 114 + 82 --- 128 + 82 --- 134 + 82 --- 142 + 82 --- 143 + 82 --- 144 + 82 --- 145 + 82 --- 169 + 82 --- 170 + 82 --- 171 + 82 --- 172 + 83 --- 108 + 83 --- 131 + 83 --- 139 + 83 --- 166 + 84 --- 110 + 84 --- 132 + 84 --- 141 + 84 --- 168 + 85 --- 121 + 85 --- 130 + 85 --- 146 + 85 --- 179 + 86 --- 126 + 86 --- 129 + 86 --- 147 + 86 --- 184 + 87 --- 91 + 87 --- 136 + 87 --- 149 + 88 --- 95 + 88 --- 138 + 88 --- 153 + 89 --- 109 + 89 --- 140 + 89 --- 167 + 90 --- 127 + 90 --- 148 + 90 --- 185 + 136 <--x 91 + 149 <--x 91 + 150 <--x 92 + 151 <--x 92 + 150 <--x 93 + 151 <--x 93 + 137 <--x 94 + 152 <--x 94 + 138 <--x 95 + 153 <--x 95 + 156 <--x 96 + 165 <--x 96 + 154 <--x 97 + 155 <--x 97 + 156 <--x 98 + 164 <--x 98 + 161 <--x 99 + 163 <--x 99 + 159 <--x 100 + 162 <--x 100 + 159 <--x 101 + 164 <--x 101 + 155 <--x 102 + 157 <--x 102 + 157 <--x 103 + 163 <--x 103 + 158 <--x 104 + 160 <--x 104 + 160 <--x 105 + 162 <--x 105 + 161 <--x 106 + 165 <--x 106 + 154 <--x 107 + 158 <--x 107 + 139 <--x 108 + 166 <--x 108 + 140 <--x 109 + 167 <--x 109 + 141 <--x 110 + 168 <--x 110 + 144 <--x 111 + 143 <--x 112 + 145 <--x 113 + 142 <--x 114 + 174 <--x 115 + 177 <--x 115 + 175 <--x 116 + 178 <--x 116 + 173 <--x 117 + 178 <--x 117 + 175 <--x 118 + 176 <--x 118 + 173 <--x 119 + 177 <--x 119 + 174 <--x 120 + 176 <--x 120 + 146 <--x 121 + 179 <--x 121 + 180 <--x 122 + 182 <--x 122 + 180 <--x 123 + 181 <--x 123 + 181 <--x 124 + 183 <--x 124 + 182 <--x 125 + 183 <--x 125 + 147 <--x 126 + 184 <--x 126 + 148 <--x 127 + 185 <--x 127 + 136 <--x 128 + 138 <--x 128 + 140 <--x 128 + 148 <--x 128 + 147 <--x 129 + 146 <--x 130 + 139 <--x 131 + 141 <--x 132 + 137 <--x 133 + 142 <--x 134 + 143 <--x 134 + 144 <--x 134 + 145 <--x 134 + 169 <--x 188 + 170 <--x 186 + 171 <--x 187 + 172 <--x 189 +``` diff --git a/rust/kcl-lib/tests/kcl_samples/pillow-block-bearing/ast.snap b/rust/kcl-lib/tests/kcl_samples/pillow-block-bearing/ast.snap new file mode 100644 index 000000000..04a9a90b9 --- /dev/null +++ b/rust/kcl-lib/tests/kcl_samples/pillow-block-bearing/ast.snap @@ -0,0 +1,193 @@ +--- +source: kcl-lib/src/simulation_tests.rs +description: Result of parsing pillow-block-bearing.kcl +--- +{ + "Ok": { + "body": [ + { + "commentStart": 0, + "end": 0, + "path": { + "type": "Kcl", + "filename": "parameters.kcl" + }, + "preComments": [ + "// Import parts and parameters" + ], + "selector": { + "commentStart": 0, + "end": 0, + "start": 0, + "type": "Glob" + }, + "start": 0, + "type": "ImportStatement", + "type": "ImportStatement" + }, + { + "commentStart": 0, + "end": 0, + "path": { + "type": "Kcl", + "filename": "ball-bearing.kcl" + }, + "selector": { + "type": "None", + "alias": { + "commentStart": 0, + "end": 0, + "name": "ballBearing", + "start": 0, + "type": "Identifier" + } + }, + "start": 0, + "type": "ImportStatement", + "type": "ImportStatement" + }, + { + "commentStart": 0, + "end": 0, + "path": { + "type": "Kcl", + "filename": "block.kcl" + }, + "selector": { + "type": "None", + "alias": { + "commentStart": 0, + "end": 0, + "name": "block", + "start": 0, + "type": "Identifier" + } + }, + "start": 0, + "type": "ImportStatement", + "type": "ImportStatement" + }, + { + "commentStart": 0, + "end": 0, + "expression": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "ballBearing", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "preComments": [ + "", + "", + "// Render each part" + ], + "start": 0, + "type": "ExpressionStatement", + "type": "ExpressionStatement" + }, + { + "commentStart": 0, + "end": 0, + "expression": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "block", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "start": 0, + "type": "ExpressionStatement", + "type": "ExpressionStatement" + } + ], + "commentStart": 0, + "end": 0, + "innerAttrs": [ + { + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "settings", + "start": 0, + "type": "Identifier" + }, + "preComments": [ + "// Pillow Block Bearing", + "// A bearing pillow block, also known as a plummer block or pillow block bearing, is a pedestal used to provide support for a rotating shaft with the help of compatible bearings and various accessories. Housing a bearing, the pillow block provides a secure and stable foundation that allows the shaft to rotate smoothly within its machinery setup. These components are essential in a wide range of mechanical systems and machinery, playing a key role in reducing friction and supporting radial and axial loads.", + "", + "", + "// Set units" + ], + "properties": [ + { + "commentStart": 0, + "end": 0, + "key": { + "commentStart": 0, + "end": 0, + "name": "defaultLengthUnit", + "start": 0, + "type": "Identifier" + }, + "start": 0, + "type": "ObjectProperty", + "value": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "in", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + } + } + ], + "start": 0, + "type": "Annotation" + } + ], + "nonCodeMeta": { + "nonCodeNodes": {}, + "startNodes": [ + { + "commentStart": 0, + "end": 0, + "start": 0, + "type": "NonCodeNode", + "value": { + "type": "newLine" + } + } + ] + }, + "start": 0 + } +} diff --git a/rust/kcl-lib/tests/kcl_samples/pillow-block-bearing/ops.snap b/rust/kcl-lib/tests/kcl_samples/pillow-block-bearing/ops.snap new file mode 100644 index 000000000..c8a9ba033 --- /dev/null +++ b/rust/kcl-lib/tests/kcl_samples/pillow-block-bearing/ops.snap @@ -0,0 +1,42 @@ +--- +source: kcl-lib/src/simulation_tests.rs +description: Operations executed pillow-block-bearing.kcl +--- +[ + { + "type": "GroupBegin", + "group": { + "type": "ModuleInstance", + "name": "parameters.kcl", + "moduleId": 0 + }, + "sourceRange": [] + }, + { + "type": "GroupBegin", + "group": { + "type": "ModuleInstance", + "name": "ball-bearing.kcl", + "moduleId": 0 + }, + "sourceRange": [] + }, + { + "type": "GroupBegin", + "group": { + "type": "ModuleInstance", + "name": "block.kcl", + "moduleId": 0 + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupEnd" + } +] diff --git a/rust/kcl-lib/tests/kcl_samples/pillow-block-bearing/program_memory.snap b/rust/kcl-lib/tests/kcl_samples/pillow-block-bearing/program_memory.snap new file mode 100644 index 000000000..fa7d87338 --- /dev/null +++ b/rust/kcl-lib/tests/kcl_samples/pillow-block-bearing/program_memory.snap @@ -0,0 +1,170 @@ +--- +source: kcl-lib/src/simulation_tests.rs +description: Variables in memory after executing pillow-block-bearing.kcl +--- +{ + "ballBearing": { + "type": "Module", + "value": 2 + }, + "bearingBoreDiameter": { + "type": "Number", + "value": 1.75, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + "bearingOuterDiameter": { + "type": "Number", + "value": 2.625, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + "block": { + "type": "Module", + "value": 3 + }, + "boltDiameter": { + "type": "Number", + "value": 0.375, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + "boltSpacingX": { + "type": "Number", + "value": 5.0, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + "boltSpacingY": { + "type": "Number", + "value": 3.0, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + "chainThickness": { + "type": "Number", + "value": 0.0273, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + "chainWidth": { + "type": "Number", + "value": 0.1094, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + "counterboreDepth": { + "type": "Number", + "value": 0.1875, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + "counterboreDiameter": { + "type": "Number", + "value": 0.75, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + "linkDiameter": { + "type": "Number", + "value": 0.0547, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + "sphereDia": { + "type": "Number", + "value": 0.2188, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + }, + "stockThickness": { + "type": "Number", + "value": 0.5, + "ty": { + "type": "Default", + "len": { + "type": "Inches" + }, + "angle": { + "type": "Degrees" + } + } + } +} diff --git a/rust/kcl-lib/tests/kcl_samples/pillow-block-bearing/rendered_model.png b/rust/kcl-lib/tests/kcl_samples/pillow-block-bearing/rendered_model.png new file mode 100644 index 0000000000000000000000000000000000000000..3d2294822c6fb1d288fe4983a143844206a4ded4 GIT binary patch literal 78506 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

0#c@y3Q?^$l*r7^!55 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

*zaay>ynG&#Q-q#yI_$ zh*^2I@^1y_1`M}Wq13Qp>vYP%!U>@fwaSDTi-pr^BU16qKd03j3i z>`v!suKmU(7X_`nkgNs9nb}Z0$#?|Hp)VH9qEWWAPuH;EJ{J=5ZSrj(1C=BR6!l}s zBpT5MGhng@FiZ+aG35FJpa4>#NBBmxHWD41l!o)ig1EJ%t%bb<;*kR6q`=P05-Mr@ z{gWkJmLRwDcpL3?Jv?-OioUlFp-Gq#OZi3|Cn8`TM>kouoC=~))?tA1ci^xk_6L#B(uwF>^=c~z3h~A>@q^Pz@lRIfd-@QWe-Lcp{1WvNjhXzfc zid=VcfvvqLfuY_`Un4wAhMwsZPxM55TkvjBW8eb9B04uj-TkV@CVYyJy93uIWVJnb zPYR^HF6r-(4R#PlpyxZcv30>92hJja8<48FEap%J zPBNMim?kXee|Kwtlv6xOT~o0;`H-_^$u>AVpl49D1kqPgY4XX?>rfhfuDpo0NOQxe zpq)z*P^cQ=dV~Zi-c9fpY6jD|pk`R&<7B#%#&{U%J`rmLBQOZ-kLb#)h-Wby%8$zs z){(_simXE9`0mxHZRI_-hgZpm(LGdo9Y;t;bPiJ#D{GK?4IyOcwwe<2)BFi`J zbB!EV6MP(PE{J}Z$d0*Bf~4qAg<13mE*x`&$e$1_$j8B|M35_iug4&_AN(SWOK?og zix7!@4w91y${p)YOI9UQZxB2MKdGRm!-mBLKX*W+aDY$C->*N|W5Y4(tC(U}@07xu zG?2dSidYJCYDPiFwfgpN7{k{747x@;7fLy_O?xrx6c<{pA(sQ9MIJ{Xi1SW+B#(n7 z041!zPK3f*6e@zlA!#E@K=kvJn6703#J(UAQp4nNd`=Q(0|{Hvpv>qB0zpC-^jhJG zXqkUf*??hS&!(yW(fop2K6iuoD{(#SqZE>>HFYCuuT}Tf)?2o-c0|3OrJhY#6#LK) zJWgkq_`qQqor2n&e^N+x5P=M=efMX7Rpu30C z9@TS!j;>t~JV~_Ue-Utzy3ixw7DM6A)&E${=g(l=V9X!)a~f}+)xF}!eoyPbD`+5_ zNg+46KvNLXmeT)6!K;(RtAT4f--6G8TMuSKkG}-XUak9O|9T%Vg1&+e6gyu6zD+I~ zXyE<7z-_9F=R?{^C1`0 zAuqB)I$;G|z@rlXJs}I1z^!;x;{R$$c*7QAfLCKci2vb`B@tl1pc4PqLyp;juHHb> z6#h5f6*74a9)L$7e(i^@Q9@P^^Oz`P>JQv}L?!-fLALm#`Uz~t|Iks7AqD1Wj6qft zL4#y8DI%o}&_avRJce9gjTRorp%FS-c#IYvqZKqt>u9v)fzs?7Z7V|VbB8u+M;pPT zt^3g?6-vi(v`IDEq#7L>Kpwsr9rHjAja{!sn^dDss?l*p 206 + 106 x--> 207 106 --- 272 106 --- 321 126 --- 194 @@ -1012,7 +1012,7 @@ flowchart LR 233 <--x 205 234 <--x 205 235 <--x 205 - 272 <--x 207 + 272 <--x 206 254 <--x 213 255 <--x 213 256 <--x 213