Updating KCL examples on docs (#2355)

* updating KCL examples on docs

* update images and docs

Signed-off-by: Jess Frazelle <github@jessfraz.com>

---------

Signed-off-by: Jess Frazelle <github@jessfraz.com>
Co-authored-by: Jess Frazelle <github@jessfraz.com>
This commit is contained in:
Josh Gomez
2024-05-14 17:10:47 -07:00
committed by GitHub
parent 26438270ff
commit 97ad66a358
100 changed files with 1210 additions and 657 deletions

View File

@ -19,7 +19,17 @@ abs(num: number) -> number
### Examples ### Examples
```js ```js
const myVar = abs(-4) const myAngle = -120
const sketch001 = startSketchOn('-XZ')
|> startProfileAt([0, 0], %)
|> line([8, 0], %)
|> angledLine({ angle: abs(myAngle), length: 5 }, %)
|> line([-5, 0], %)
|> angledLine({ angle: myAngle, length: 5 }, %)
|> close(%)
const baseExtrusion = extrude(5, sketch001)
``` ```
### Arguments ### Arguments

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -29,7 +29,7 @@
"unpublished": false, "unpublished": false,
"deprecated": false, "deprecated": false,
"examples": [ "examples": [
"const myVar = abs(-4)" "const myAngle = -120\n\nconst sketch001 = startSketchOn('-XZ')\n |> startProfileAt([0, 0], %)\n |> line([8, 0], %)\n |> angledLine({ angle: abs(myAngle), length: 5 }, %)\n |> line([-5, 0], %)\n |> angledLine({ angle: myAngle, length: 5 }, %)\n |> close(%)\n\nconst baseExtrusion = extrude(5, sketch001)"
] ]
}, },
{ {
@ -1068,7 +1068,7 @@
"unpublished": false, "unpublished": false,
"deprecated": false, "deprecated": false,
"examples": [ "examples": [
"const part001 = startSketchOn('XY')\n |> startProfileAt([0, 0], %)\n |> line([1, 3.82], %, 'seg01')\n |> angledLineToX([\n -angleToMatchLengthX('seg01', 10, %),\n 5\n ], %)\n |> close(%)\n |> extrude(5, %)" "const sketch001 = startSketchOn('-XZ')\n |> startProfileAt([0, 0], %)\n |> line([2, 5], %, 'seg01')\n |> angledLineToX([\n -angleToMatchLengthX('seg01', 7, %),\n 10\n ], %)\n |> close(%)\n\nconst extrusion = extrude(5, sketch001)"
] ]
}, },
{ {
@ -2074,7 +2074,7 @@
"unpublished": false, "unpublished": false,
"deprecated": false, "deprecated": false,
"examples": [ "examples": [
"const part001 = startSketchOn('XY')\n |> startProfileAt([0, 0], %)\n |> line([1, 3.82], %, 'seg01')\n |> angledLineToX([\n -angleToMatchLengthY('seg01', 10, %),\n 5\n ], %)\n |> close(%)\n |> extrude(5, %)" "const sketch001 = startSketchOn('-XZ')\n |> startProfileAt([0, 0], %)\n |> line([1, 2], %, 'seg01')\n |> angledLine({\n angle: angleToMatchLengthY('seg01', 15, %),\n length: 5\n }, %)\n |> yLineTo(0, %)\n |> close(%)\n\nconst extrusion = extrude(5, sketch001)"
] ]
}, },
{ {
@ -4070,7 +4070,7 @@
"unpublished": false, "unpublished": false,
"deprecated": false, "deprecated": false,
"examples": [ "examples": [
"startSketchOn('XY')\n |> startProfileAt([0, 0], %)\n |> angledLine({ angle: 45, length: 10 }, %, \"edge1\")\n |> line([10, 10], %)\n |> line([0, 10], %)\n |> close(%, \"edge2\")\n |> extrude(10, %)" "const exampleSketch = startSketchOn('-XZ')\n |> startProfileAt([0, 0], %)\n |> yLineTo(15, %)\n |> angledLine({ angle: 30, length: 15 }, %)\n |> line([8, -10], %)\n |> yLineTo(0, %)\n |> close(%)\n\nconst example = extrude(10, exampleSketch)"
] ]
}, },
{ {
@ -6066,7 +6066,7 @@
"unpublished": false, "unpublished": false,
"deprecated": false, "deprecated": false,
"examples": [ "examples": [
"startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> angledLineOfXLength({ angle: 45, length: 10 }, %, \"edge1\")\n |> line([10, 10], %)\n |> line([0, 10], %)\n |> close(%, \"edge2\")\n |> extrude(10, %)" "const sketch001 = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> angledLineOfXLength({ angle: 45, length: 10 }, %, \"edge1\")\n |> angledLineOfXLength({ angle: -15, length: 20 }, %, \"edge2\")\n |> line([0, -5], %)\n |> close(%, \"edge3\")\n\nconst extrusion = extrude(10, sketch001)"
] ]
}, },
{ {
@ -8062,7 +8062,7 @@
"unpublished": false, "unpublished": false,
"deprecated": false, "deprecated": false,
"examples": [ "examples": [
"startSketchOn('YZ')\n |> startProfileAt([0, 0], %)\n |> angledLineOfYLength({ angle: 45, length: 10 }, %, \"edge1\")\n |> line([10, 10], %)\n |> line([0, 10], %)\n |> close(%, \"edge2\")\n |> extrude(10, %)\n |> fillet({ radius: 2, tags: [\"edge1\"] }, %)" "const exampleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> line([10, 0], %)\n |> angledLineOfYLength({ angle: 45, length: 10 }, %)\n |> line([0, 10], %)\n |> angledLineOfYLength({ angle: 135, length: 10 }, %)\n |> line([-10, 0], %)\n |> line([0, -30], %)\n\nconst example = extrude(10, exampleSketch)"
] ]
}, },
{ {
@ -10048,7 +10048,7 @@
"unpublished": false, "unpublished": false,
"deprecated": false, "deprecated": false,
"examples": [ "examples": [
"const part001 = startSketchOn('XY')\n |> startProfileAt([0, 0], %)\n |> lineTo([2, 2], %, \"yo\")\n |> lineTo([3, 1], %)\n |> angledLineThatIntersects({\n angle: 180,\n intersectTag: 'yo',\n offset: 12\n }, %, \"yo2\")\n |> line([4, 0], %)\n |> close(%, \"yo3\")\n |> extrude(10, %)" "const exampleSketch = startSketchOn('-XZ')\n |> startProfileAt([0, 0], %)\n |> lineTo([5, 10], %)\n |> lineTo([-10, 10], %, \"lineToIntersect\")\n |> lineTo([0, 20], %)\n |> angledLineThatIntersects({\n angle: 80,\n intersectTag: 'lineToIntersect',\n offset: 10\n }, %)\n |> close(%)\n\nconst example = extrude(10, exampleSketch)"
] ]
}, },
{ {
@ -12029,7 +12029,7 @@
"unpublished": false, "unpublished": false,
"deprecated": false, "deprecated": false,
"examples": [ "examples": [
"startSketchOn('XY')\n |> startProfileAt([0, 0], %)\n |> angledLineToX({ angle: 45, to: 10 }, %, \"edge1\")\n |> line([10, 10], %)\n |> line([0, 10], %)\n |> close(%, \"edge2\")\n |> extrude(10, %)\n |> fillet({ radius: 2, tags: [\"edge1\"] }, %)" "const exampleSketch = startSketchOn('-XZ')\n |> startProfileAt([0, 0], %)\n |> angledLineToX({ angle: 30, to: 10 }, %)\n |> line([0, 10], %)\n |> line([-10, 0], %)\n |> close(%)\n\nconst example = extrude(10, exampleSketch)"
] ]
}, },
{ {
@ -14010,7 +14010,7 @@
"unpublished": false, "unpublished": false,
"deprecated": false, "deprecated": false,
"examples": [ "examples": [
"startSketchOn('XY')\n |> startProfileAt([0, 0], %)\n |> angledLineToY({ angle: 45, to: 10 }, %, \"edge1\")\n |> line([10, 10], %)\n |> line([0, 10], %)\n |> close(%, \"edge2\")\n |> extrude(10, %)" "const exampleSketch = startSketchOn('-XZ')\n |> startProfileAt([0, 0], %)\n |> angledLineToY({ angle: 60, to: 20 }, %)\n |> line([-20, 0], %)\n |> angledLineToY({ angle: 70, to: 10 }, %)\n |> close(%)\n\nconst example = extrude(10, exampleSketch)"
] ]
}, },
{ {
@ -16038,7 +16038,7 @@
"unpublished": false, "unpublished": false,
"deprecated": false, "deprecated": false,
"examples": [ "examples": [
"startSketchOn('-YZ')\n |> startProfileAt([0, 0], %)\n |> arc({\n angle_start: 0,\n angle_end: 360,\n radius: 10\n }, %, \"edge1\")\n |> extrude(10, %)" "const exampleSketch = startSketchOn('-XZ')\n |> startProfileAt([0, 0], %)\n |> line([10, 0], %)\n |> arc({\n angle_start: 0,\n angle_end: 280,\n radius: 16\n }, %)\n |> close(%)"
] ]
}, },
{ {
@ -18106,7 +18106,7 @@
"unpublished": false, "unpublished": false,
"deprecated": false, "deprecated": false,
"examples": [ "examples": [
"startSketchOn('XY')\n |> startProfileAt([0, 0], %)\n |> bezierCurve({\n to: [10, 10],\n control1: [5, 0],\n control2: [5, 10]\n }, %, \"edge1\")\n |> close(%)\n |> extrude(10, %)" "const exampleSketch = startSketchOn('-XZ')\n |> startProfileAt([0, 0], %)\n |> line([0, 10], %)\n |> bezierCurve({\n to: [10, 10],\n control1: [5, 0],\n control2: [5, 10]\n }, %)\n |> lineTo([10, 0], %)\n |> close(%)\n\nconst example = extrude(10, exampleSketch)"
] ]
}, },
{ {
@ -20424,7 +20424,7 @@
"unpublished": false, "unpublished": false,
"deprecated": false, "deprecated": false,
"examples": [ "examples": [
"const circles = startSketchOn('XY')\n |> circle([5, 5], 1, %)\n |> patternLinear2d({\n axis: [1, 1],\n repetitions: 12,\n distance: 3\n }, %)\n\nconst rectangle = startSketchOn('XY')\n |> startProfileAt([0, 0], %)\n |> line([0, 50], %)\n |> line([50, 0], %)\n |> line([0, -50], %)\n |> close(%)\n |> hole(circles, %)" "const exampleSketch = startSketchOn(\"-XZ\")\n |> circle([0, 0], 10, %)\n\nconst example = extrude(5, exampleSketch)"
] ]
}, },
{ {
@ -22381,7 +22381,7 @@
"deprecated": false, "deprecated": false,
"examples": [ "examples": [
"startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> line([10, 10], %)\n |> line([10, 0], %)\n |> close(%)\n |> extrude(10, %)", "startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> line([10, 10], %)\n |> line([10, 0], %)\n |> close(%)\n |> extrude(10, %)",
"startSketchOn('YZ')\n |> startProfileAt([0, 0], %)\n |> line([10, 10], %)\n |> line([10, 0], %)\n |> close(%, \"edge1\")\n |> extrude(10, %)" "const exampleSketch = startSketchOn('-XZ')\n |> startProfileAt([0, 0], %)\n |> line([10, 0], %)\n |> line([0, 10], %)\n |> close(%)\n\nconst example = extrude(10, exampleSketch)"
] ]
}, },
{ {
@ -25953,7 +25953,8 @@
"unpublished": false, "unpublished": false,
"deprecated": false, "deprecated": false,
"examples": [ "examples": [
"startSketchOn('XY')\n |> startProfileAt([0, 0], %)\n |> line([0, 10], %)\n |> line([10, 0], %)\n |> line([0, -10], %)\n |> close(%)\n |> extrude(5, %)" "const example = startSketchOn('-XZ')\n |> startProfileAt([0, 0], %)\n |> line([10, 0], %)\n |> arc({\n angle_end: 0,\n angle_start: 120,\n radius: 5\n }, %)\n |> line([5, 0], %)\n |> line([0, 10], %)\n |> bezierCurve({\n control1: [-10, 0],\n control2: [2, 10],\n to: [-5, 10]\n }, %)\n |> line([-5, -2], %)\n |> close(%)\n |> extrude(10, %)",
"const exampleSketch = startSketchOn('-XZ')\n |> startProfileAt([-10, 0], %)\n |> arc({\n angle_end: -60,\n angle_start: 120,\n radius: 5\n }, %)\n |> line([10, 0], %)\n |> line([5, 0], %)\n |> bezierCurve({\n control1: [-3, 0],\n control2: [2, 10],\n to: [-5, 10]\n }, %)\n |> line([-4, 10], %)\n |> line([-5, -2], %)\n |> close(%)\n\nconst example = extrude(10, exampleSketch)"
] ]
}, },
{ {
@ -27516,7 +27517,7 @@
"unpublished": false, "unpublished": false,
"deprecated": false, "deprecated": false,
"examples": [ "examples": [
"const part001 = startSketchOn('XY')\n |> startProfileAt([0, 0], %)\n |> line([0, 10], %, \"thing\")\n |> line([10, 0], %)\n |> line([0, -10], %, \"thing2\")\n |> close(%)\n |> extrude(10, %)\n |> fillet({ radius: 2, tags: [\"thing\", \"thing2\"] }, %)" "const width = 20\nconst length = 10\nconst thickness = 1\nconst filletRadius = 2\n\nconst mountingPlateSketch = startSketchOn(\"XY\")\n |> startProfileAt([-width / 2, -length / 2], %)\n |> lineTo([width / 2, -length / 2], %, 'edge1')\n |> lineTo([width / 2, length / 2], %, 'edge2')\n |> lineTo([-width / 2, length / 2], %, 'edge3')\n |> close(%, 'edge4')\n\nconst mountingPlate = extrude(thickness, mountingPlateSketch)\n |> fillet({\n radius: filletRadius,\n tags: [\n getNextAdjacentEdge('edge1', %),\n getNextAdjacentEdge('edge2', %),\n getNextAdjacentEdge('edge3', %),\n getNextAdjacentEdge('edge4', %)\n ]\n }, %)"
] ]
}, },
{ {
@ -28335,7 +28336,7 @@
"unpublished": false, "unpublished": false,
"deprecated": false, "deprecated": false,
"examples": [ "examples": [
"const box = startSketchOn('XY')\n |> startProfileAt([0, 0], %)\n |> line([0, 10], %)\n |> line([10, 0], %)\n |> line([0, -10], %, 'revolveAxis')\n |> close(%)\n |> extrude(10, %)\n\nconst sketch001 = startSketchOn('XY')\n |> startProfileAt([0, -10], %)\n |> line([0, -10], %)\n |> line([2, 0], %)\n |> line([0, 10], %)\n |> close(%)\n |> revolve({\n axis: getEdge('revolveAxis', box),\n angle: 90\n }, %)" "const box = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> line([0, 10], %, 'revolveAxis')\n |> line([10, 0], %)\n |> line([0, -10], %)\n |> close(%)\n |> extrude(10, %)\n\nconst revolution = startSketchOn('XZ')\n |> startProfileAt([-10, 0], %)\n |> line([0, 10], %)\n |> line([2, 0], %)\n |> line([0, -10], %)\n |> close(%)\n |> revolve({\n axis: getEdge('revolveAxis', box),\n angle: 90\n }, %)"
] ]
}, },
{ {
@ -29121,7 +29122,7 @@
"unpublished": false, "unpublished": false,
"deprecated": false, "deprecated": false,
"examples": [ "examples": [
"const part001 = startSketchOn('XY')\n |> startProfileAt([0, 0], %)\n |> line([0, 10], %, \"thing\")\n |> line([10, 0], %, \"thing1\")\n |> line([0, -10], %, \"thing2\")\n |> close(%, \"thing3\")\n |> extrude(10, %)\n |> fillet({\n radius: 2,\n tags: [getNextAdjacentEdge(\"thing3\", %)]\n }, %)" "const exampleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> line([10, 0], %)\n |> angledLine({ angle: 60, length: 10 }, %)\n |> angledLine({ angle: 120, length: 10 }, %)\n |> line([-10, 0], %)\n |> angledLine({ angle: 240, length: 10 }, %, 'referenceEdge')\n |> close(%)\n\nconst example = extrude(5, exampleSketch)\n |> fillet({\n radius: 3,\n tags: [\n getNextAdjacentEdge(\"referenceEdge\", %)\n ]\n }, %)"
] ]
}, },
{ {
@ -29907,7 +29908,7 @@
"unpublished": false, "unpublished": false,
"deprecated": false, "deprecated": false,
"examples": [ "examples": [
"const part001 = startSketchOn('XY')\n |> startProfileAt([0, 0], %)\n |> line([0, 10], %, \"thing\")\n |> line([10, 0], %)\n |> line([0, -10], %, \"thing2\")\n |> close(%)\n |> extrude(10, %)\n |> fillet({\n radius: 2,\n tags: [\"thing\", getOppositeEdge(\"thing\", %)]\n }, %)" "const exampleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> line([10, 0], %)\n |> angledLine({ angle: 60, length: 10 }, %)\n |> angledLine({ angle: 120, length: 10 }, %)\n |> line([-10, 0], %)\n |> angledLine({ angle: 240, length: 10 }, %, 'referenceEdge')\n |> close(%)\n\nconst example = extrude(5, exampleSketch)\n |> fillet({\n radius: 3,\n tags: [getOppositeEdge(\"referenceEdge\", %)]\n }, %)"
] ]
}, },
{ {
@ -30693,7 +30694,7 @@
"unpublished": false, "unpublished": false,
"deprecated": false, "deprecated": false,
"examples": [ "examples": [
"const part001 = startSketchOn('XY')\n |> startProfileAt([0, 0], %)\n |> line([0, 10], %, \"thing\")\n |> line([10, 0], %, \"thing1\")\n |> line([0, -10], %, \"thing2\")\n |> close(%, \"thing3\")\n |> extrude(10, %)\n |> fillet({\n radius: 2,\n tags: [getPreviousAdjacentEdge(\"thing3\", %)]\n }, %)" "const exampleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> line([10, 0], %)\n |> angledLine({ angle: 60, length: 10 }, %)\n |> angledLine({ angle: 120, length: 10 }, %)\n |> line([-10, 0], %)\n |> angledLine({ angle: 240, length: 10 }, %, 'referenceEdge')\n |> close(%)\n\nconst example = extrude(5, exampleSketch)\n |> fillet({\n radius: 3,\n tags: [\n getPreviousAdjacentEdge(\"referenceEdge\", %)\n ]\n }, %)"
] ]
}, },
{ {
@ -32254,7 +32255,7 @@
"unpublished": false, "unpublished": false,
"deprecated": false, "deprecated": false,
"examples": [ "examples": [
"const part001 = startSketchOn('XY')\n |> circle([5, 5], 10, %)\n |> extrude(10, %)\n |> helix({ revolutions: 16, angle_start: 0 }, %)" "const part001 = startSketchOn('XY')\n |> circle([5, 5], 10, %)\n |> extrude(10, %)\n |> helix({\n angle_start: 0,\n ccw: true,\n revolutions: 16,\n angle_start: 0\n }, %)"
] ]
}, },
{ {
@ -36159,7 +36160,8 @@
"unpublished": false, "unpublished": false,
"deprecated": false, "deprecated": false,
"examples": [ "examples": [
"const square = startSketchOn('XY')\n |> startProfileAt([0, 0], %)\n |> line([0, 10], %)\n |> line([10, 0], %)\n |> line([0, -10], %)\n |> close(%)\n |> hole(circle([2, 2], .5, %), %)\n |> hole(circle([2, 8], .5, %), %)\n |> extrude(2, %)" "const exampleSketch = startSketchOn('XY')\n |> startProfileAt([0, 0], %)\n |> line([0, 5], %)\n |> line([5, 0], %)\n |> line([0, -5], %)\n |> close(%)\n |> hole(circle([1, 1], .25, %), %)\n |> hole(circle([1, 4], .25, %), %)\n\nconst example = extrude(1, exampleSketch)",
"fn squareHoleSketch = () => {\n const squareSketch = startSketchOn('-XZ')\n |> startProfileAt([-1, -1], %)\n |> line([2, 0], %)\n |> line([0, 2], %)\n |> line([-2, 0], %)\n |> close(%)\n return squareSketch\n}\n\nconst exampleSketch = startSketchOn('-XZ')\n |> circle([0, 0], 3, %)\n |> hole(squareHoleSketch(), %)"
] ]
}, },
{ {
@ -37807,7 +37809,7 @@
"unpublished": false, "unpublished": false,
"deprecated": false, "deprecated": false,
"examples": [ "examples": [
"startSketchOn(\"YZ\")\n |> startProfileAt([0, 0], %)\n |> line([5, 0], %, \"thing\")\n |> line([5, 5], %)\n |> line([0, lastSegX(%)], %)\n |> close(%)\n |> extrude(5, %)" "const exampleSketch = startSketchOn(\"-XZ\")\n |> startProfileAt([0, 0], %)\n |> line([5, 0], %)\n |> line([20, 5], %)\n |> line([0, lastSegX(%)], %)\n |> line([-15, 0], %)\n |> close(%)\n\nconst example = extrude(5, exampleSketch)"
] ]
}, },
{ {
@ -38796,7 +38798,7 @@
"unpublished": false, "unpublished": false,
"deprecated": false, "deprecated": false,
"examples": [ "examples": [
"startSketchOn(\"YZ\")\n |> startProfileAt([0, 0], %)\n |> line([5, 0], %, \"thing\")\n |> line([5, 5], %)\n |> line([0, lastSegY(%)], %)\n |> close(%)\n |> extrude(5, %)" "const exampleSketch = startSketchOn(\"-XZ\")\n |> startProfileAt([0, 0], %)\n |> line([5, 0], %)\n |> line([20, 5], %)\n |> line([0, lastSegY(%)], %)\n |> line([-15, 0], %)\n |> close(%)\n\nconst example = extrude(5, exampleSketch)"
] ]
}, },
{ {
@ -40892,7 +40894,7 @@
"unpublished": false, "unpublished": false,
"deprecated": false, "deprecated": false,
"examples": [ "examples": [
"startSketchOn('-XY')\n |> startProfileAt([0, 0], %)\n |> line([10, 10], %)\n |> line([20, 10], %, \"edge1\")\n |> close(%, \"edge2\")\n |> extrude(10, %)" "const exampleSketch = startSketchOn(\"-XZ\")\n |> startProfileAt([0, 0], %)\n |> line([10, 0], %)\n |> line([0, 10], %)\n |> line([-10, 0], %)\n |> close(%)\n\nconst example = extrude(5, exampleSketch)"
] ]
}, },
{ {
@ -42862,7 +42864,7 @@
"unpublished": false, "unpublished": false,
"deprecated": false, "deprecated": false,
"examples": [ "examples": [
"fn rectShape = (pos, w, l) => {\n const rr = startSketchOn('YZ')\n |> startProfileAt([pos[0] - (w / 2), pos[1] - (l / 2)], %)\n |> lineTo([pos[0] + w / 2, pos[1] - (l / 2)], %, \"edge1\")\n |> lineTo([pos[0] + w / 2, pos[1] + l / 2], %, \"edge2\")\n |> lineTo([pos[0] - (w / 2), pos[1] + l / 2], %, \"edge3\")\n |> close(%, \"edge4\")\n return rr\n}\n\n// Create the mounting plate extrusion, holes, and fillets\nconst part = rectShape([0, 0], 20, 20)\n |> extrude(10, %)" "const exampleSketch = startSketchOn(\"-XZ\")\n |> startProfileAt([0, 0], %)\n |> lineTo([10, 0], %)\n |> lineTo([0, 10], %)\n |> lineTo([-10, 0], %)\n |> close(%)\n\nconst example = extrude(5, exampleSketch)"
] ]
}, },
{ {
@ -45067,7 +45069,7 @@
"unpublished": false, "unpublished": false,
"deprecated": false, "deprecated": false,
"examples": [ "examples": [
"const part = startSketchOn('XY')\n |> circle([0, 0], 2, %)\n |> patternCircular2d({\n center: [20, 20],\n repetitions: 12,\n arcDegrees: 210,\n rotateDuplicates: true\n }, %)\n |> extrude(1, %)" "const exampleSketch = startSketchOn('-XZ')\n |> startProfileAt([.5, 25], %)\n |> line([0, 5], %)\n |> line([-1, 0], %)\n |> line([0, -5], %)\n |> close(%)\n |> patternCircular2d({\n center: [0, 0],\n repetitions: 12,\n arcDegrees: 360,\n rotateDuplicates: true\n }, %)\n\nconst example = extrude(1, exampleSketch)"
] ]
}, },
{ {
@ -46648,7 +46650,7 @@
"unpublished": false, "unpublished": false,
"deprecated": false, "deprecated": false,
"examples": [ "examples": [
"const part = startSketchOn('XY')\n |> startProfileAt([0, 0], %)\n |> line([0, 1], %)\n |> line([1, 0], %)\n |> line([0, -1], %)\n |> close(%)\n |> extrude(1, %)\n |> patternCircular3d({\n axis: [1, 1, 0],\n center: [10, 0, 10],\n repetitions: 10,\n arcDegrees: 360,\n rotateDuplicates: true\n }, %)" "const exampleSketch = startSketchOn('-XZ')\n |> circle([0, 0], 1, %)\n\nconst example = extrude(-5, exampleSketch)\n |> patternCircular3d({\n axis: [1, -1, 0],\n center: [10, -20, 0],\n repetitions: 10,\n arcDegrees: 360,\n rotateDuplicates: true\n }, %)"
] ]
}, },
{ {
@ -49626,7 +49628,7 @@
"unpublished": false, "unpublished": false,
"deprecated": false, "deprecated": false,
"examples": [ "examples": [
"const part = startSketchOn('XY')\n |> circle([0, 0], 2, %)\n |> patternLinear2d({\n axis: [0, 1],\n repetitions: 12,\n distance: 2\n }, %)\n |> extrude(1, %)" "const exampleSketch = startSketchOn('-XZ')\n |> circle([0, 0], 1, %)\n |> patternLinear2d({\n axis: [1, 0],\n repetitions: 6,\n distance: 4\n }, %)\n\nconst example = extrude(1, exampleSketch)"
] ]
}, },
{ {
@ -51191,7 +51193,7 @@
"unpublished": false, "unpublished": false,
"deprecated": false, "deprecated": false,
"examples": [ "examples": [
"const part = startSketchOn('XY')\n |> startProfileAt([0, 0], %)\n |> line([0, 1], %)\n |> line([1, 0], %)\n |> line([0, -1], %)\n |> close(%)\n |> extrude(1, %)\n |> patternLinear3d({\n axis: [1, 0, 1],\n repetitions: 3,\n distance: 6\n }, %)" "const exampleSketch = startSketchOn('-XZ')\n |> startProfileAt([0, 0], %)\n |> line([0, 2], %)\n |> line([3, 1], %)\n |> line([0, -4], %)\n |> close(%)\n\nconst example = extrude(1, exampleSketch)\n |> patternLinear3d({\n axis: [1, 0, 1],\n repetitions: 6,\n distance: 6\n }, %)"
] ]
}, },
{ {
@ -54119,7 +54121,7 @@
"unpublished": false, "unpublished": false,
"deprecated": false, "deprecated": false,
"examples": [ "examples": [
"const part001 = startSketchOn('XY')\n |> startProfileAt([4.83, 12.56], %)\n |> line([15.1, 2.48], %)\n |> line([3.15, -9.85], %, 'seg01')\n |> line([-15.17, -4.1], %)\n |> angledLine([segAng('seg01', %), 12.35], %)\n |> line([-13.02, 10.03], %)\n |> close(%)\n |> extrude(4, %)" "const exampleSketch = startSketchOn('-XZ')\n |> startProfileAt([0, 0], %)\n |> line([10, 0], %)\n |> line([5, 10], %, 'seg01')\n |> line([-10, 0], %)\n |> angledLine([segAng('seg01', %), 10], %)\n |> line([-10, 0], %)\n |> angledLine([segAng('seg01', %), -15], %)\n |> close(%)\n\nconst example = extrude(4, exampleSketch)"
] ]
}, },
{ {
@ -55116,7 +55118,7 @@
"unpublished": false, "unpublished": false,
"deprecated": false, "deprecated": false,
"examples": [ "examples": [
"startSketchOn(\"YZ\")\n |> startProfileAt([0, 0], %)\n |> line([5, 0], %, \"thing\")\n |> line([5, 5], %)\n |> line([segEndX(\"thing\", %), 5], %)\n |> close(%)\n |> extrude(5, %)" "const exampleSketch = startSketchOn('-XZ')\n |> startProfileAt([0, 0], %)\n |> line([20, 0], %, \"thing\")\n |> line([0, 5], %)\n |> line([segEndX(\"thing\", %), 0], %)\n |> line([-20, 10], %)\n |> close(%)\n\nconst example = extrude(5, exampleSketch)"
] ]
}, },
{ {
@ -56113,7 +56115,7 @@
"unpublished": false, "unpublished": false,
"deprecated": false, "deprecated": false,
"examples": [ "examples": [
"startSketchOn(\"YZ\")\n |> startProfileAt([0, 0], %)\n |> line([5, 0], %, \"thing\")\n |> line([5, 5], %)\n |> line([segEndY(\"thing\", %), 5], %)\n |> close(%)\n |> extrude(5, %)" "const exampleSketch = startSketchOn('-XZ')\n |> startProfileAt([0, 0], %)\n |> line([20, 0], %)\n |> line([0, 3], %, \"thing\")\n |> line([-10, 0], %)\n |> line([0, segEndY(\"thing\", %)], %)\n |> line([-10, 0], %)\n |> close(%)\n\nconst example = extrude(5, exampleSketch)"
] ]
}, },
{ {
@ -57110,7 +57112,7 @@
"unpublished": false, "unpublished": false,
"deprecated": false, "deprecated": false,
"examples": [ "examples": [
"startSketchOn(\"YZ\")\n |> startProfileAt([0, 0], %)\n |> line([5, 0], %, \"thing\")\n |> line([5, 5], %)\n |> line([0, segLen(\"thing\", %)], %)\n |> close(%)\n |> extrude(5, %)" "const exampleSketch = startSketchOn(\"-XZ\")\n |> startProfileAt([0, 0], %)\n |> angledLine({ angle: 60, length: 10 }, %, \"thing\")\n |> tangentialArc({ offset: -120, radius: 5 }, %)\n |> angledLine({\n angle: -60,\n length: segLen(\"thing\", %)\n }, %)\n |> close(%)\n\nconst example = extrude(5, exampleSketch)"
] ]
}, },
{ {
@ -58485,7 +58487,9 @@
"unpublished": false, "unpublished": false,
"deprecated": false, "deprecated": false,
"examples": [ "examples": [
"startSketchOn('XY')\n |> startProfileAt([0, 0], %)\n |> line([10, 10], %)\n |> line([10, 0], %)\n |> close(%)\n |> extrude(10, %)" "const exampleSketch = startSketchOn('-XZ')\n |> startProfileAt([0, 0], %)\n |> line([10, 0], %)\n |> line([0, 10], %)\n |> line([-10, 0], %)\n |> close(%)\n\nconst example = extrude(5, exampleSketch)",
"const exampleSketch = startSketchOn('-XZ')\n |> startProfileAt([10, 10], %)\n |> line([10, 0], %)\n |> line([0, 10], %)\n |> line([-10, 0], %)\n |> close(%)\n\nconst example = extrude(5, exampleSketch)",
"const exampleSketch = startSketchOn('-XZ')\n |> startProfileAt([-10, 23], %)\n |> line([10, 0], %)\n |> line([0, 10], %)\n |> line([-10, 0], %)\n |> close(%)\n\nconst example = extrude(5, exampleSketch)"
] ]
}, },
{ {
@ -59479,7 +59483,9 @@
"unpublished": false, "unpublished": false,
"deprecated": false, "deprecated": false,
"examples": [ "examples": [
"startSketchAt([0, 0])\n |> line([10, 10], %)\n |> line([20, 10], %, \"edge1\")\n |> close(%, \"edge2\")\n |> extrude(10, %)" "const exampleSketch = startSketchAt([0, 0])\n |> line([10, 0], %)\n |> line([0, 10], %)\n |> line([-10, 0], %)\n |> close(%)\n\nconst example = extrude(5, exampleSketch)",
"const exampleSketch = startSketchAt([10, 10])\n |> line([10, 0], %)\n |> line([0, 10], %)\n |> line([-10, 0], %)\n |> close(%)\n\nconst example = extrude(5, exampleSketch)",
"const exampleSketch = startSketchAt([-10, 23])\n |> line([10, 0], %)\n |> line([0, 10], %)\n |> line([-10, 0], %)\n |> close(%)\n\nconst example = extrude(5, exampleSketch)"
] ]
}, },
{ {
@ -60752,8 +60758,9 @@
"unpublished": false, "unpublished": false,
"deprecated": false, "deprecated": false,
"examples": [ "examples": [
"startSketchOn('XY')\n |> startProfileAt([0, 0], %)\n |> line([10, 10], %)\n |> line([20, 10], %, \"edge1\")\n |> close(%, \"edge2\")\n |> extrude(10, %)", "const exampleSketch = startSketchOn(\"XY\")\n |> startProfileAt([0, 0], %)\n |> line([10, 0], %)\n |> line([0, 10], %)\n |> line([-10, 0], %)\n |> close(%)\n\nconst example = extrude(5, exampleSketch)\n\nconst exampleSketch002 = startSketchOn(example, 'end')\n |> startProfileAt([1, 1], %)\n |> line([8, 0], %)\n |> line([0, 8], %)\n |> line([-8, 0], %)\n |> close(%)\n\nconst example002 = extrude(5, exampleSketch002)\n\nconst exampleSketch003 = startSketchOn(example002, 'end')\n |> startProfileAt([2, 2], %)\n |> line([6, 0], %)\n |> line([0, 6], %)\n |> line([-6, 0], %)\n |> close(%)\n\nconst example003 = extrude(5, exampleSketch003)",
"fn cube = (pos, scale) => {\n const sg = startSketchOn('XY')\n |> startProfileAt(pos, %)\n |> line([0, scale], %)\n |> line([scale, 0], %)\n |> line([0, -scale], %)\n |> close(%)\n |> extrude(scale, %)\n\n return sg\n}\n\nconst box = cube([0, 0], 20)\n\nconst part001 = startSketchOn(box, \"start\")\n |> startProfileAt([0, 0], %)\n |> line([10, 10], %)\n |> line([20, 10], %, \"edge1\")\n |> close(%)\n |> extrude(20, %)" "const exampleSketch = startSketchOn(\"XY\")\n |> startProfileAt([0, 0], %)\n |> line([10, 0], %)\n |> line([0, 10], %, 'sketchingFace')\n |> line([-10, 0], %)\n |> close(%)\n\nconst example = extrude(10, exampleSketch)\n\nconst exampleSketch002 = startSketchOn(example, 'sketchingFace')\n |> startProfileAt([1, 1], %)\n |> line([8, 0], %)\n |> line([0, 8], %)\n |> line([-8, 0], %)\n |> close(%, 'sketchingFace002')\n\nconst example002 = extrude(10, exampleSketch002)\n\nconst exampleSketch003 = startSketchOn(example002, 'sketchingFace002')\n |> startProfileAt([-8, 12], %)\n |> line([0, 6], %)\n |> line([6, 0], %)\n |> line([0, -6], %)\n |> close(%)\n\nconst example003 = extrude(5, exampleSketch003)",
"const exampleSketch = startSketchOn('XY')\n |> startProfileAt([4, 12], %)\n |> line([2, 0], %)\n |> line([0, -6], %)\n |> line([4, -6], %)\n |> line([0, -6], %)\n |> line([-3.75, -4.5], %)\n |> line([0, -5.5], %)\n |> line([-2, 0], %)\n |> close(%)\n\nconst example = revolve({ axis: 'y', angle: 180 }, exampleSketch)\n\nconst exampleSketch002 = startSketchOn(example, 'end')\n |> startProfileAt([4.5, -5], %)\n |> line([0, 5], %)\n |> line([5, 0], %)\n |> line([0, -5], %)\n |> close(%)\n\nconst example002 = extrude(5, exampleSketch002)"
] ]
}, },
{ {
@ -62781,7 +62788,7 @@
"unpublished": false, "unpublished": false,
"deprecated": false, "deprecated": false,
"examples": [ "examples": [
"startSketchOn('-YZ')\n |> startProfileAt([0, 0], %)\n |> line([10, 10], %, \"edge1\")\n |> tangentialArc({ radius: 10, offset: 90 }, %, \"edge1\")\n |> close(%)\n |> extrude(10, %)" "const exampleSketch = startSketchOn('-XZ')\n |> startProfileAt([0, 0], %)\n |> angledLine({ angle: 60, length: 10 }, %)\n |> tangentialArc({ radius: 10, offset: -120 }, %)\n |> angledLine({ angle: -60, length: 10 }, %)\n |> close(%)\n\nconst example = extrude(10, exampleSketch)"
] ]
}, },
{ {
@ -64751,7 +64758,7 @@
"unpublished": false, "unpublished": false,
"deprecated": false, "deprecated": false,
"examples": [ "examples": [
"startSketchOn('-YZ')\n |> startProfileAt([0, 0], %)\n |> line([10, 10], %, \"edge0\")\n |> tangentialArcTo([10, 0], %)\n |> close(%)\n |> extrude(10, %)" "const exampleSketch = startSketchOn('-XZ')\n |> startProfileAt([0, 0], %)\n |> angledLine({ angle: 60, length: 10 }, %)\n |> tangentialArcTo([15, 15], %)\n |> line([10, -15], %)\n |> close(%)\n\nconst example = extrude(10, exampleSketch)"
] ]
}, },
{ {
@ -66805,7 +66812,7 @@
"unpublished": false, "unpublished": false,
"deprecated": false, "deprecated": false,
"examples": [ "examples": [
"startSketchOn('YZ')\n |> startProfileAt([0, 0], %)\n |> xLine(10, %)\n |> line([10, 10], %)\n |> close(%, \"edge1\")\n |> extrude(10, %)" "const exampleSketch = startSketchOn('-XZ')\n |> startProfileAt([0, 0], %)\n |> xLine(15, %)\n |> angledLine({ angle: 80, length: 15 }, %)\n |> line([8, -10], %)\n |> xLine(10, %)\n |> angledLine({ angle: 120, length: 30 }, %)\n |> xLine(-15, %)\n |> close(%)\n\nconst example = extrude(10, exampleSketch)"
] ]
}, },
{ {
@ -68770,7 +68777,7 @@
"unpublished": false, "unpublished": false,
"deprecated": false, "deprecated": false,
"examples": [ "examples": [
"startSketchOn('XY')\n |> startProfileAt([0, 0], %)\n |> xLineTo(10, %, \"edge1\")\n |> line([10, 10], %)\n |> close(%, \"edge2\")\n |> extrude(10, %)" "const exampleSketch = startSketchOn('-XZ')\n |> startProfileAt([0, 0], %)\n |> xLineTo(15, %)\n |> angledLine({ angle: 80, length: 15 }, %)\n |> line([8, -10], %)\n |> xLineTo(40, %)\n |> angledLine({ angle: 135, length: 30 }, %)\n |> xLineTo(10, %)\n |> close(%)\n\nconst example = extrude(10, exampleSketch)"
] ]
}, },
{ {
@ -70735,7 +70742,7 @@
"unpublished": false, "unpublished": false,
"deprecated": false, "deprecated": false,
"examples": [ "examples": [
"startSketchOn('XY')\n |> startProfileAt([0, 0], %)\n |> yLine(10, %)\n |> line([10, 10], %)\n |> close(%, \"edge1\")\n |> extrude(10, %)" "const exampleSketch = startSketchOn('-XZ')\n |> startProfileAt([0, 0], %)\n |> yLine(15, %)\n |> angledLine({ angle: 30, length: 15 }, %)\n |> line([8, -10], %)\n |> yLine(-5, %)\n |> close(%)\n\nconst example = extrude(10, exampleSketch)"
] ]
}, },
{ {

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -29,13 +29,46 @@ pub async fn extrude(args: Args) -> Result<MemoryItem, KclError> {
/// Extrudes by a given amount. /// Extrudes by a given amount.
/// ///
/// ```no_run /// ```no_run
/// startSketchOn('XY') /// const example = startSketchOn('-XZ')
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> line([0, 10], %) /// |> line([10, 0], %)
/// |> line([10, 0], %) /// |> arc({
/// |> line([0, -10], %) /// angle_end: 0,
/// |> close(%) /// angle_start: 120,
/// |> extrude(5, %) /// radius: 5,
/// }, %)
/// |> line([5, 0], %)
/// |> line([0, 10], %)
/// |> bezierCurve({
/// control1: [-10, 0],
/// control2: [2, 10],
/// to: [-5, 10],
/// }, %)
/// |> line([-5, -2], %)
/// |> close(%)
/// |> extrude(10, %)
/// ```
///
/// ```no_run
/// const exampleSketch = startSketchOn('-XZ')
/// |> startProfileAt([-10, 0], %)
/// |> arc({
/// angle_end: -60,
/// angle_start: 120,
/// radius: 5,
/// }, %)
/// |> line([10, 0], %)
/// |> line([5, 0], %)
/// |> bezierCurve({
/// control1: [-3, 0],
/// control2: [2, 10],
/// to: [-5, 10],
/// }, %)
/// |> line([-4, 10], %)
/// |> line([-5, -2], %)
/// |> close(%)
///
/// const example = extrude(10, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "extrude" name = "extrude"

View File

@ -48,14 +48,28 @@ pub async fn fillet(args: Args) -> Result<MemoryItem, KclError> {
/// Create fillets on tagged paths. /// Create fillets on tagged paths.
/// ///
/// ```no_run /// ```no_run
/// const part001 = startSketchOn('XY') /// const width = 20
/// |> startProfileAt([0,0], %) /// const length = 10
/// |> line([0, 10], %, "thing") /// const thickness = 1
/// |> line([10, 0], %) /// const filletRadius = 2
/// |> line([0, -10], %, "thing2") ///
/// |> close(%) /// const mountingPlateSketch = startSketchOn("XY")
/// |> extrude(10, %) /// |> startProfileAt([-width/2, -length/2], %)
/// |> fillet({radius: 2, tags: ["thing", "thing2"]}, %) /// |> lineTo([width/2, -length/2], %, 'edge1')
/// |> lineTo([width/2, length/2], %, 'edge2')
/// |> lineTo([-width/2, length/2], %, 'edge3')
/// |> close(%, 'edge4')
///
/// const mountingPlate = extrude(thickness, mountingPlateSketch)
/// |> fillet({
/// radius: filletRadius,
/// tags: [
/// getNextAdjacentEdge('edge1', %),
/// getNextAdjacentEdge('edge2', %),
/// getNextAdjacentEdge('edge3', %),
/// getNextAdjacentEdge('edge4', %)
/// ],
/// }, %)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "fillet", name = "fillet",
@ -130,14 +144,29 @@ pub async fn get_opposite_edge(args: Args) -> Result<MemoryItem, KclError> {
/// Get the opposite edge to the edge given. /// Get the opposite edge to the edge given.
/// ///
/// ```no_run /// ```no_run
/// const part001 = startSketchOn('XY') /// const exampleSketch = startSketchOn('XZ')
/// |> startProfileAt([0,0], %) /// |> startProfileAt([0, 0], %)
/// |> line([0, 10], %, "thing") /// |> line([10, 0], %)
/// |> line([10, 0], %) /// |> angledLine({
/// |> line([0, -10], %, "thing2") /// angle: 60,
/// |> close(%) /// length: 10,
/// |> extrude(10, %) /// }, %)
/// |> fillet({radius: 2, tags: ["thing", getOppositeEdge("thing", %)]}, %) /// |> angledLine({
/// angle: 120,
/// length: 10,
/// }, %)
/// |> line([-10, 0], %)
/// |> angledLine({
/// angle: 240,
/// length: 10,
/// }, %, 'referenceEdge')
/// |> close(%)
///
/// const example = extrude(5, exampleSketch)
/// |> fillet({
/// radius: 3,
/// tags: [getOppositeEdge("referenceEdge", %)],
/// }, %)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "getOppositeEdge", name = "getOppositeEdge",
@ -199,14 +228,29 @@ pub async fn get_next_adjacent_edge(args: Args) -> Result<MemoryItem, KclError>
/// Get the next adjacent edge to the edge given. /// Get the next adjacent edge to the edge given.
/// ///
/// ```no_run /// ```no_run
/// const part001 = startSketchOn('XY') /// const exampleSketch = startSketchOn('XZ')
/// |> startProfileAt([0,0], %) /// |> startProfileAt([0, 0], %)
/// |> line([0, 10], %, "thing") /// |> line([10, 0], %)
/// |> line([10, 0], %, "thing1") /// |> angledLine({
/// |> line([0, -10], %, "thing2") /// angle: 60,
/// |> close(%, "thing3") /// length: 10,
/// |> extrude(10, %) /// }, %)
/// |> fillet({radius: 2, tags: [getNextAdjacentEdge("thing3", %)]}, %) /// |> angledLine({
/// angle: 120,
/// length: 10,
/// }, %)
/// |> line([-10, 0], %)
/// |> angledLine({
/// angle: 240,
/// length: 10,
/// }, %, 'referenceEdge')
/// |> close(%)
///
/// const example = extrude(5, exampleSketch)
/// |> fillet({
/// radius: 3,
/// tags: [getNextAdjacentEdge("referenceEdge", %)],
/// }, %)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "getNextAdjacentEdge", name = "getNextAdjacentEdge",
@ -277,14 +321,29 @@ pub async fn get_previous_adjacent_edge(args: Args) -> Result<MemoryItem, KclErr
/// Get the previous adjacent edge to the edge given. /// Get the previous adjacent edge to the edge given.
/// ///
/// ```no_run /// ```no_run
/// const part001 = startSketchOn('XY') /// const exampleSketch = startSketchOn('XZ')
/// |> startProfileAt([0,0], %) /// |> startProfileAt([0, 0], %)
/// |> line([0, 10], %, "thing") /// |> line([10, 0], %)
/// |> line([10, 0], %, "thing1") /// |> angledLine({
/// |> line([0, -10], %, "thing2") /// angle: 60,
/// |> close(%, "thing3") /// length: 10,
/// |> extrude(10, %) /// }, %)
/// |> fillet({radius: 2, tags: [getPreviousAdjacentEdge("thing3", %)]}, %) /// |> angledLine({
/// angle: 120,
/// length: 10,
/// }, %)
/// |> line([-10, 0], %)
/// |> angledLine({
/// angle: 240,
/// length: 10,
/// }, %, 'referenceEdge')
/// |> close(%)
///
/// const example = extrude(5, exampleSketch)
/// |> fillet({
/// radius: 3,
/// tags: [getPreviousAdjacentEdge("referenceEdge", %)],
/// }, %)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "getPreviousAdjacentEdge", name = "getPreviousAdjacentEdge",

View File

@ -41,9 +41,14 @@ pub async fn helix(args: Args) -> Result<MemoryItem, KclError> {
/// ///
/// ```no_run /// ```no_run
/// const part001 = startSketchOn('XY') /// const part001 = startSketchOn('XY')
/// |> circle([5, 5], 10, %) /// |> circle([5, 5], 10, %)
/// |> extrude(10, %) /// |> extrude(10, %)
/// |> helix({revolutions: 16, angle_start: 0}, %) /// |> helix({
/// angle_start: 0,
/// ccw: true,
/// revolutions: 16,
/// angle_start: 0
/// }, %)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "helix", name = "helix",

View File

@ -125,7 +125,23 @@ pub async fn abs(args: Args) -> Result<MemoryItem, KclError> {
/// Computes the absolute value of a number. /// Computes the absolute value of a number.
/// ///
/// ```no_run /// ```no_run
/// const myVar = abs(-4) /// const myAngle = -120
///
/// const sketch001 = startSketchOn('-XZ')
/// |> startProfileAt([0, 0], %)
/// |> line([8, 0], %)
/// |> angledLine({
/// angle: abs(myAngle),
/// length: 5,
/// }, %)
/// |> line([-5, 0], %)
/// |> angledLine({
/// angle: myAngle,
/// length: 5,
/// }, %)
/// |> close(%)
///
/// const baseExtrusion = extrude(5, sketch001)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "abs", name = "abs",

View File

@ -90,10 +90,15 @@ pub async fn pattern_linear_2d(args: Args) -> Result<MemoryItem, KclError> {
/// A linear pattern on a 2D sketch. /// A linear pattern on a 2D sketch.
/// ///
/// ```no_run /// ```no_run
/// const part = startSketchOn('XY') /// const exampleSketch = startSketchOn('-XZ')
/// |> circle([0,0], 2, %) /// |> circle([0, 0], 1, %)
/// |> patternLinear2d({axis: [0,1], repetitions: 12, distance: 2}, %) /// |> patternLinear2d({
/// |> extrude(1, %) /// axis: [1, 0],
/// repetitions: 6,
/// distance: 4
/// }, %)
///
/// const example = extrude(1, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "patternLinear2d", name = "patternLinear2d",
@ -150,14 +155,19 @@ pub async fn pattern_linear_3d(args: Args) -> Result<MemoryItem, KclError> {
/// A linear pattern on a 3D model. /// A linear pattern on a 3D model.
/// ///
/// ```no_run /// ```no_run
/// const part = startSketchOn('XY') /// const exampleSketch = startSketchOn('-XZ')
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> line([0,1], %) /// |> line([0, 2], %)
/// |> line([1, 0], %) /// |> line([3, 1], %)
/// |> line([0, -1], %) /// |> line([0, -4], %)
/// |> close(%) /// |> close(%)
/// |> extrude(1, %) ///
/// |> patternLinear3d({axis: [1, 0, 1], repetitions: 3, distance: 6}, %) /// const example = extrude(1, exampleSketch)
/// |> patternLinear3d({
/// axis: [1, 0, 1],
/// repetitions: 6,
/// distance: 6
/// }, %)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "patternLinear3d", name = "patternLinear3d",
@ -339,10 +349,20 @@ pub async fn pattern_circular_2d(args: Args) -> Result<MemoryItem, KclError> {
/// A circular pattern on a 2D sketch. /// A circular pattern on a 2D sketch.
/// ///
/// ```no_run /// ```no_run
/// const part = startSketchOn('XY') /// const exampleSketch = startSketchOn('-XZ')
/// |> circle([0,0], 2, %) /// |> startProfileAt([.5, 25], %)
/// |> patternCircular2d({center: [20, 20], repetitions: 12, arcDegrees: 210, rotateDuplicates: true}, %) /// |> line([0, 5], %)
/// |> extrude(1, %) /// |> line([-1, 0], %)
/// |> line([0, -5], %)
/// |> close(%)
/// |> patternCircular2d({
/// center: [0, 0],
/// repetitions: 12,
/// arcDegrees: 360,
/// rotateDuplicates: true
/// }, %)
///
/// const example = extrude(1, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "patternCircular2d", name = "patternCircular2d",
@ -380,14 +400,17 @@ pub async fn pattern_circular_3d(args: Args) -> Result<MemoryItem, KclError> {
/// A circular pattern on a 3D model. /// A circular pattern on a 3D model.
/// ///
/// ```no_run /// ```no_run
/// const part = startSketchOn('XY') /// const exampleSketch = startSketchOn('-XZ')
/// |> startProfileAt([0, 0], %) /// |> circle([0, 0], 1, %)
/// |> line([0,1], %) ///
/// |> line([1, 0], %) /// const example = extrude(-5, exampleSketch)
/// |> line([0, -1], %) /// |> patternCircular3d({
/// |> close(%) /// axis: [1, -1, 0],
/// |> extrude(1, %) /// center: [10, -20, 0],
/// |> patternCircular3d({axis: [1,1,0], center: [10, 0, 10], repetitions: 10, arcDegrees: 360, rotateDuplicates: true}, %) /// repetitions: 10,
/// arcDegrees: 360,
/// rotateDuplicates: true
/// }, %)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "patternCircular3d", name = "patternCircular3d",

View File

@ -291,21 +291,24 @@ pub async fn get_edge(args: Args) -> Result<MemoryItem, KclError> {
/// Get an edge on a 3D solid. /// Get an edge on a 3D solid.
/// ///
/// ```no_run /// ```no_run
/// const box = startSketchOn('XY') /// const box = startSketchOn('XZ')
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> line([0, 10], %) /// |> line([0, 10], %, 'revolveAxis')
/// |> line([10, 0], %) /// |> line([10, 0], %)
/// |> line([0, -10], %, 'revolveAxis') /// |> line([0, -10], %)
/// |> close(%) /// |> close(%)
/// |> extrude(10, %) /// |> extrude(10, %)
/// ///
/// const sketch001 = startSketchOn('XY') /// const revolution = startSketchOn('XZ')
/// |> startProfileAt([0, -10], %) /// |> startProfileAt([-10, 0], %)
/// |> line([0, -10], %) /// |> line([0, 10], %)
/// |> line([2, 0], %) /// |> line([2, 0], %)
/// |> line([0, 10], %) /// |> line([0, -10], %)
/// |> close(%) /// |> close(%)
/// |> revolve({ axis: getEdge('revolveAxis', box), angle: 90 }, %) /// |> revolve({
/// axis: getEdge('revolveAxis', box),
/// angle: 90
/// }, %)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "getEdge", name = "getEdge",

View File

@ -22,13 +22,15 @@ pub async fn segment_end_x(args: Args) -> Result<MemoryItem, KclError> {
/// Returns the segment end of x. /// Returns the segment end of x.
/// ///
/// ```no_run /// ```no_run
/// startSketchOn("YZ") /// const exampleSketch = startSketchOn('-XZ')
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> line([5, 0], %, "thing") /// |> line([20, 0], %, "thing")
/// |> line([5, 5], %) /// |> line([0, 5], %)
/// |> line([segEndX("thing", %), 5], %) /// |> line([segEndX("thing", %), 0], %)
/// |> close(%) /// |> line([-20, 10], %)
/// |> extrude(5, %) /// |> close(%)
///
/// const example = extrude(5, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "segEndX", name = "segEndX",
@ -58,13 +60,16 @@ pub async fn segment_end_y(args: Args) -> Result<MemoryItem, KclError> {
/// Returns the segment end of y. /// Returns the segment end of y.
/// ///
/// ```no_run /// ```no_run
/// startSketchOn("YZ") /// const exampleSketch = startSketchOn('-XZ')
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> line([5, 0], %, "thing") /// |> line([20, 0], %)
/// |> line([5, 5], %) /// |> line([0, 3], %, "thing")
/// |> line([segEndY("thing", %), 5], %) /// |> line([-10, 0], %)
/// |> close(%) /// |> line([0, segEndY("thing", %)], %)
/// |> extrude(5, %) /// |> line([-10, 0], %)
/// |> close(%)
///
/// const example = extrude(5, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "segEndY", name = "segEndY",
@ -94,13 +99,15 @@ pub async fn last_segment_x(args: Args) -> Result<MemoryItem, KclError> {
/// Returns the last segment of x. /// Returns the last segment of x.
/// ///
/// ```no_run /// ```no_run
/// startSketchOn("YZ") /// const exampleSketch = startSketchOn("-XZ")
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> line([5, 0], %, "thing") /// |> line([5, 0], %)
/// |> line([5, 5], %) /// |> line([20, 5], %)
/// |> line([0, lastSegX(%)], %) /// |> line([0, lastSegX(%)], %)
/// |> close(%) /// |> line([-15, 0], %)
/// |> extrude(5, %) /// |> close(%)
///
/// const example = extrude(5, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "lastSegX", name = "lastSegX",
@ -134,13 +141,15 @@ pub async fn last_segment_y(args: Args) -> Result<MemoryItem, KclError> {
/// Returns the last segment of y. /// Returns the last segment of y.
/// ///
/// ```no_run /// ```no_run
/// startSketchOn("YZ") /// const exampleSketch = startSketchOn("-XZ")
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> line([5, 0], %, "thing") /// |> line([5, 0], %)
/// |> line([5, 5], %) /// |> line([20, 5], %)
/// |> line([0, lastSegY(%)], %) /// |> line([0, lastSegY(%)], %)
/// |> close(%) /// |> line([-15, 0], %)
/// |> extrude(5, %) /// |> close(%)
///
/// const example = extrude(5, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "lastSegY", name = "lastSegY",
@ -173,13 +182,23 @@ pub async fn segment_length(args: Args) -> Result<MemoryItem, KclError> {
/// Returns the length of the segment. /// Returns the length of the segment.
/// ///
/// ```no_run /// ```no_run
/// startSketchOn("YZ") /// const exampleSketch = startSketchOn("-XZ")
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> line([5, 0], %, "thing") /// |> angledLine({
/// |> line([5, 5], %) /// angle: 60,
/// |> line([0, segLen("thing", %)], %) /// length: 10,
/// |> close(%) /// }, %, "thing")
/// |> extrude(5, %) /// |> tangentialArc({
/// offset: -120,
/// radius: 5,
/// }, %)
/// |> angledLine({
/// angle: -60,
/// length: segLen("thing", %),
/// }, %)
/// |> close(%)
///
/// const example = extrude(5, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "segLen", name = "segLen",
@ -212,15 +231,17 @@ pub async fn segment_angle(args: Args) -> Result<MemoryItem, KclError> {
/// Returns the angle of the segment. /// Returns the angle of the segment.
/// ///
/// ```no_run /// ```no_run
/// const part001 = startSketchOn('XY') /// const exampleSketch = startSketchOn('-XZ')
/// |> startProfileAt([4.83, 12.56], %) /// |> startProfileAt([0, 0], %)
/// |> line([15.1, 2.48], %) /// |> line([10, 0], %)
/// |> line([3.15, -9.85], %, 'seg01') /// |> line([5, 10], %, 'seg01')
/// |> line([-15.17, -4.1], %) /// |> line([-10, 0], %)
/// |> angledLine([segAng('seg01', %), 12.35], %) /// |> angledLine([segAng('seg01', %), 10], %)
/// |> line([-13.02, 10.03], %) /// |> line([-10, 0], %)
/// |> close(%) /// |> angledLine([segAng('seg01', %), -15], %)
/// |> extrude(4, %) /// |> close(%)
///
/// const example = extrude(4, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "segAng", name = "segAng",
@ -252,15 +273,16 @@ pub async fn angle_to_match_length_x(args: Args) -> Result<MemoryItem, KclError>
/// Returns the angle to match the given length for x. /// Returns the angle to match the given length for x.
/// ///
/// ```no_run /// ```no_run
/// const part001 = startSketchOn('XY') /// const sketch001 = startSketchOn('-XZ')
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> line([1, 3.82], %, 'seg01') /// |> line([2, 5], %, 'seg01')
/// |> angledLineToX([ /// |> angledLineToX([
/// -angleToMatchLengthX('seg01', 10, %), /// -angleToMatchLengthX('seg01', 7, %),
/// 5 /// 10
/// ], %) /// ], %)
/// |> close(%) /// |> close(%)
/// |> extrude(5, %) ///
/// const extrusion = extrude(5, sketch001)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "angleToMatchLengthX", name = "angleToMatchLengthX",
@ -319,15 +341,17 @@ pub async fn angle_to_match_length_y(args: Args) -> Result<MemoryItem, KclError>
/// Returns the angle to match the given length for y. /// Returns the angle to match the given length for y.
/// ///
/// ```no_run /// ```no_run
/// const part001 = startSketchOn('XY') /// const sketch001 = startSketchOn('-XZ')
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> line([1, 3.82], %, 'seg01') /// |> line([1, 2], %, 'seg01')
/// |> angledLineToX([ /// |> angledLine({
/// -angleToMatchLengthY('seg01', 10, %), /// angle: angleToMatchLengthY('seg01', 15, %),
/// 5 /// length: 5,
/// ], %) /// }, %)
/// |> close(%) /// |> yLineTo(0, %)
/// |> extrude(5, %) /// |> close(%)
///
/// const extrusion = extrude(5, sketch001)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "angleToMatchLengthY", name = "angleToMatchLengthY",

View File

@ -32,17 +32,10 @@ pub async fn circle(args: Args) -> Result<MemoryItem, KclError> {
/// Sketch a circle. /// Sketch a circle.
/// ///
/// ```no_run /// ```no_run
/// const circles = startSketchOn('XY') /// const exampleSketch = startSketchOn("-XZ")
/// |> circle([5, 5], 1, %) /// |> circle([0, 0], 10, %)
/// |> patternLinear2d({axis: [1,1], repetitions: 12, distance: 3}, %)
/// ///
/// const rectangle = startSketchOn('XY') /// const example = extrude(5, exampleSketch)
/// |> startProfileAt([0, 0], %)
/// |> line([0, 50], %)
/// |> line([50, 0], %)
/// |> line([0, -50], %)
/// |> close(%)
/// |> hole(circles, %)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "circle", name = "circle",

View File

@ -35,19 +35,14 @@ pub async fn line_to(args: Args) -> Result<MemoryItem, KclError> {
/// Draw a line to a point. /// Draw a line to a point.
/// ///
/// ```no_run /// ```no_run
/// fn rectShape = (pos, w, l) => { /// const exampleSketch = startSketchOn("-XZ")
/// const rr = startSketchOn('YZ') /// |> startProfileAt([0, 0], %)
/// |> startProfileAt([pos[0] - (w / 2), pos[1] - (l / 2)], %) /// |> lineTo([10, 0], %)
/// |> lineTo([pos[0] + w / 2, pos[1] - (l / 2)], %, "edge1") /// |> lineTo([0, 10], %)
/// |> lineTo([pos[0] + w / 2, pos[1] + l / 2], %, "edge2") /// |> lineTo([-10, 0], %)
/// |> lineTo([pos[0] - (w / 2), pos[1] + l / 2], %, "edge3") /// |> close(%)
/// |> close(%, "edge4")
/// return rr
/// }
/// ///
/// // Create the mounting plate extrusion, holes, and fillets /// const example = extrude(5, exampleSketch)
/// const part = rectShape([0, 0], 20, 20)
/// |> extrude(10, %)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "lineTo", name = "lineTo",
@ -106,12 +101,23 @@ pub async fn x_line_to(args: Args) -> Result<MemoryItem, KclError> {
/// Draw a line to a point on the x-axis. /// Draw a line to a point on the x-axis.
/// ///
/// ```no_run /// ```no_run
/// startSketchOn('XY') /// const exampleSketch = startSketchOn('-XZ')
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> xLineTo(10, %, "edge1") /// |> xLineTo(15, %)
/// |> line([10, 10], %) /// |> angledLine({
/// |> close(%, "edge2") /// angle: 80,
/// |> extrude(10, %) /// length: 15,
/// }, %)
/// |> line([8, -10], %)
/// |> xLineTo(40, %)
/// |> angledLine({
/// angle: 135,
/// length: 30,
/// }, %)
/// |> xLineTo(10, %)
/// |> close(%)
///
/// const example = extrude(10, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "xLineTo", name = "xLineTo",
@ -175,12 +181,14 @@ pub async fn line(args: Args) -> Result<MemoryItem, KclError> {
/// Draw a line. /// Draw a line.
/// ///
/// ```no_run /// ```no_run
/// startSketchOn('-XY') /// const exampleSketch = startSketchOn("-XZ")
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> line([10, 10], %) /// |> line([10, 0], %)
/// |> line([20, 10], %, "edge1") /// |> line([0, 10], %)
/// |> close(%, "edge2") /// |> line([-10, 0], %)
/// |> extrude(10, %) /// |> close(%)
///
/// const example = extrude(5, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "line", name = "line",
@ -242,12 +250,23 @@ pub async fn x_line(args: Args) -> Result<MemoryItem, KclError> {
/// Draw a line on the x-axis. /// Draw a line on the x-axis.
/// ///
/// ```no_run /// ```no_run
/// startSketchOn('YZ') /// const exampleSketch = startSketchOn('-XZ')
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> xLine(10, %) /// |> xLine(15, %)
/// |> line([10, 10], %) /// |> angledLine({
/// |> close(%, "edge1") /// angle: 80,
/// |> extrude(10, %) /// length: 15,
/// }, %)
/// |> line([8, -10], %)
/// |> xLine(10, %)
/// |> angledLine({
/// angle: 120,
/// length: 30,
/// }, %)
/// |> xLine(-15, %)
/// |> close(%)
///
/// const example = extrude(10, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "xLine", name = "xLine",
@ -273,12 +292,18 @@ pub async fn y_line(args: Args) -> Result<MemoryItem, KclError> {
/// Draw a line on the y-axis. /// Draw a line on the y-axis.
/// ///
/// ```no_run /// ```no_run
/// startSketchOn('XY') /// const exampleSketch = startSketchOn('-XZ')
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> yLine(10, %) /// |> yLine(15, %)
/// |> line([10, 10], %) /// |> angledLine({
/// |> close(%, "edge1") /// angle: 30,
/// |> extrude(10, %) /// length: 15,
/// }, %)
/// |> line([8, -10], %)
/// |> yLine(-5, %)
/// |> close(%)
///
/// const example = extrude(10, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "yLine", name = "yLine",
@ -320,16 +345,18 @@ pub async fn angled_line(args: Args) -> Result<MemoryItem, KclError> {
/// Draw an angled line. /// Draw an angled line.
/// ///
/// ```no_run /// ```no_run
/// startSketchOn('XY') /// const exampleSketch = startSketchOn('-XZ')
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> yLineTo(15, %)
/// |> angledLine({ /// |> angledLine({
/// angle: 45, /// angle: 30,
/// length: 10, /// length: 15,
/// }, %, "edge1") /// }, %)
/// |> line([10, 10], %) /// |> line([8, -10], %)
/// |> line([0, 10], %) /// |> yLineTo(0, %)
/// |> close(%, "edge2") /// |> close(%)
/// |> extrude(10, %) ///
/// const example = extrude(10, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "angledLine", name = "angledLine",
@ -402,16 +429,14 @@ pub async fn angled_line_of_x_length(args: Args) -> Result<MemoryItem, KclError>
/// Draw an angled line of a given x length. /// Draw an angled line of a given x length.
/// ///
/// ```no_run /// ```no_run
/// startSketchOn('XZ') /// const sketch001 = startSketchOn('XZ')
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> angledLineOfXLength({ /// |> angledLineOfXLength({ angle: 45, length: 10 }, %, "edge1")
/// angle: 45, /// |> angledLineOfXLength({ angle: -15, length: 20 }, %, "edge2")
/// length: 10, /// |> line([0, -5], %)
/// }, %, "edge1") /// |> close(%, "edge3")
/// |> line([10, 10], %) ///
/// |> line([0, 10], %) /// const extrusion = extrude(10, sketch001)
/// |> close(%, "edge2")
/// |> extrude(10, %)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "angledLineOfXLength", name = "angledLineOfXLength",
@ -457,17 +482,14 @@ pub async fn angled_line_to_x(args: Args) -> Result<MemoryItem, KclError> {
/// Draw an angled line to a given x coordinate. /// Draw an angled line to a given x coordinate.
/// ///
/// ```no_run /// ```no_run
/// startSketchOn('XY') /// const exampleSketch = startSketchOn('-XZ')
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> angledLineToX({ /// |> angledLineToX({ angle: 30, to: 10 }, %)
/// angle: 45,
/// to: 10,
/// }, %, "edge1")
/// |> line([10, 10], %)
/// |> line([0, 10], %) /// |> line([0, 10], %)
/// |> close(%, "edge2") /// |> line([-10, 0], %)
/// |> extrude(10, %) /// |> close(%)
/// |> fillet({radius: 2, tags: ["edge1"]}, %) ///
/// const example = extrude(10, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "angledLineToX", name = "angledLineToX",
@ -502,17 +524,16 @@ pub async fn angled_line_of_y_length(args: Args) -> Result<MemoryItem, KclError>
/// Draw an angled line of a given y length. /// Draw an angled line of a given y length.
/// ///
/// ```no_run /// ```no_run
/// startSketchOn('YZ') /// const exampleSketch = startSketchOn('XZ')
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> angledLineOfYLength({ /// |> line([10, 0], %)
/// angle: 45, /// |> angledLineOfYLength({ angle: 45, length: 10 }, %)
/// length: 10,
/// }, %, "edge1")
/// |> line([10, 10], %)
/// |> line([0, 10], %) /// |> line([0, 10], %)
/// |> close(%, "edge2") /// |> angledLineOfYLength({ angle: 135, length: 10 }, %)
/// |> extrude(10, %) /// |> line([-10, 0], %)
/// |> fillet({radius: 2, tags: ["edge1"]}, %) /// |> line([0, -30], %)
///
/// const example = extrude(10, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "angledLineOfYLength", name = "angledLineOfYLength",
@ -547,16 +568,14 @@ pub async fn angled_line_to_y(args: Args) -> Result<MemoryItem, KclError> {
/// Draw an angled line to a given y coordinate. /// Draw an angled line to a given y coordinate.
/// ///
/// ```no_run /// ```no_run
/// startSketchOn('XY') /// const exampleSketch = startSketchOn('-XZ')
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> angledLineToY({ /// |> angledLineToY({ angle: 60, to: 20 }, %)
/// angle: 45, /// |> line([-20, 0], %)
/// to: 10, /// |> angledLineToY({ angle: 70, to: 10 }, %)
/// }, %, "edge1") /// |> close(%)
/// |> line([10, 10], %) ///
/// |> line([0, 10], %) /// const example = extrude(10, exampleSketch)
/// |> close(%, "edge2")
/// |> extrude(10, %)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "angledLineToY", name = "angledLineToY",
@ -603,18 +622,19 @@ pub async fn angled_line_that_intersects(args: Args) -> Result<MemoryItem, KclEr
/// Draw an angled line that intersects with a given line. /// Draw an angled line that intersects with a given line.
/// ///
/// ```no_run /// ```no_run
/// const part001 = startSketchOn('XY') /// const exampleSketch = startSketchOn('-XZ')
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> lineTo([2, 2], %, "yo") /// |> lineTo([5, 10], %)
/// |> lineTo([3, 1], %) /// |> lineTo([-10, 10], %, "lineToIntersect")
/// |> lineTo([0, 20], %)
/// |> angledLineThatIntersects({ /// |> angledLineThatIntersects({
/// angle: 180, /// angle: 80,
/// intersectTag: 'yo', /// intersectTag: 'lineToIntersect',
/// offset: 12, /// offset: 10
/// }, %, "yo2") /// }, %)
/// |> line([4, 0], %) /// |> close(%)
/// |> close(%, "yo3") ///
/// |> extrude(10, %) /// const example = extrude(10, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "angledLineThatIntersects", name = "angledLineThatIntersects",
@ -661,11 +681,33 @@ pub async fn start_sketch_at(args: Args) -> Result<MemoryItem, KclError> {
/// Start a sketch at a given point on the 'XY' plane. /// Start a sketch at a given point on the 'XY' plane.
/// ///
/// ```no_run /// ```no_run
/// startSketchAt([0, 0]) /// const exampleSketch = startSketchAt([0, 0])
/// |> line([10, 10], %) /// |> line([10, 0], %)
/// |> line([20, 10], %, "edge1") /// |> line([0, 10], %)
/// |> close(%, "edge2") /// |> line([-10, 0], %)
/// |> extrude(10, %) /// |> close(%)
///
/// const example = extrude(5, exampleSketch)
/// ```
///
/// ```no_run
/// const exampleSketch = startSketchAt([10, 10])
/// |> line([10, 0], %)
/// |> line([0, 10], %)
/// |> line([-10, 0], %)
/// |> close(%)
///
/// const example = extrude(5, exampleSketch)
/// ```
///
/// ```no_run
/// const exampleSketch = startSketchAt([-10, 23])
/// |> line([10, 0], %)
/// |> line([0, 10], %)
/// |> line([-10, 0], %)
/// |> close(%)
///
/// const example = extrude(5, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "startSketchAt", name = "startSketchAt",
@ -813,35 +855,85 @@ pub async fn start_sketch_on(args: Args) -> Result<MemoryItem, KclError> {
/// Start a sketch on a specific plane or face. /// Start a sketch on a specific plane or face.
/// ///
/// ```no_run /// ```no_run
/// startSketchOn('XY') /// const exampleSketch = startSketchOn("XY")
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> line([10, 10], %) /// |> line([10, 0], %)
/// |> line([20, 10], %, "edge1") /// |> line([0, 10], %)
/// |> close(%, "edge2") /// |> line([-10, 0], %)
/// |> extrude(10, %) /// |> close(%)
///
/// const example = extrude(5, exampleSketch)
///
/// const exampleSketch002 = startSketchOn(example, 'end')
/// |> startProfileAt([1, 1], %)
/// |> line([8, 0], %)
/// |> line([0, 8], %)
/// |> line([-8, 0], %)
/// |> close(%)
///
/// const example002 = extrude(5, exampleSketch002)
///
/// const exampleSketch003 = startSketchOn(example002, 'end')
/// |> startProfileAt([2, 2], %)
/// |> line([6, 0], %)
/// |> line([0, 6], %)
/// |> line([-6, 0], %)
/// |> close(%)
///
/// const example003 = extrude(5, exampleSketch003)
/// ``` /// ```
/// ///
/// ```no_run /// ```no_run
/// fn cube = (pos, scale) => { /// const exampleSketch = startSketchOn("XY")
/// const sg = startSketchOn('XY') /// |> startProfileAt([0, 0], %)
/// |> startProfileAt(pos, %) /// |> line([10, 0], %)
/// |> line([0, scale], %) /// |> line([0, 10], %, 'sketchingFace')
/// |> line([scale, 0], %) /// |> line([-10, 0], %)
/// |> line([0, -scale], %) /// |> close(%)
/// |> close(%)
/// |> extrude(scale, %)
/// ///
/// return sg /// const example = extrude(10, exampleSketch)
/// }
/// ///
/// const box = cube([0,0], 20) /// const exampleSketch002 = startSketchOn(example, 'sketchingFace')
/// |> startProfileAt([1, 1], %)
/// |> line([8, 0], %)
/// |> line([0, 8], %)
/// |> line([-8, 0], %)
/// |> close(%, 'sketchingFace002')
/// ///
/// const part001 = startSketchOn(box, "start") /// const example002 = extrude(10, exampleSketch002)
/// |> startProfileAt([0, 0], %) ///
/// |> line([10, 10], %) /// const exampleSketch003 = startSketchOn(example002, 'sketchingFace002')
/// |> line([20, 10], %, "edge1") /// |> startProfileAt([-8, 12], %)
/// |> close(%) /// |> line([0, 6], %)
/// |> extrude(20, %) /// |> line([6, 0], %)
/// |> line([0, -6], %)
/// |> close(%)
///
/// const example003 = extrude(5, exampleSketch003)
/// ```
///
/// ```no_run
/// const exampleSketch = startSketchOn('XY')
/// |> startProfileAt([4, 12], %)
/// |> line([2, 0], %)
/// |> line([0, -6], %)
/// |> line([4, -6], %)
/// |> line([0, -6], %)
/// |> line([-3.75, -4.5], %)
/// |> line([0, -5.5], %)
/// |> line([-2, 0], %)
/// |> close(%)
///
/// const example = revolve({ axis: 'y', angle: 180 }, exampleSketch)
///
/// const exampleSketch002 = startSketchOn(example, 'end')
/// |> startProfileAt([4.5, -5], %)
/// |> line([0, 5], %)
/// |> line([5, 0], %)
/// |> line([0, -5], %)
/// |> close(%)
///
/// const example002 = extrude(5, exampleSketch002)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "startSketchOn", name = "startSketchOn",
@ -1031,12 +1123,36 @@ pub async fn start_profile_at(args: Args) -> Result<MemoryItem, KclError> {
/// Start a profile at a given point. /// Start a profile at a given point.
/// ///
/// ```no_run /// ```no_run
/// startSketchOn('XY') /// const exampleSketch = startSketchOn('-XZ')
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> line([10, 10], %) /// |> line([10, 0], %)
/// |> line([10, 0], %) /// |> line([0, 10], %)
/// |> close(%) /// |> line([-10, 0], %)
/// |> extrude(10, %) /// |> close(%)
///
/// const example = extrude(5, exampleSketch)
/// ```
///
/// ```no_run
/// const exampleSketch = startSketchOn('-XZ')
/// |> startProfileAt([10, 10], %)
/// |> line([10, 0], %)
/// |> line([0, 10], %)
/// |> line([-10, 0], %)
/// |> close(%)
///
/// const example = extrude(5, exampleSketch)
/// ```
///
/// ```no_run
/// const exampleSketch = startSketchOn('-XZ')
/// |> startProfileAt([-10, 23], %)
/// |> line([10, 0], %)
/// |> line([0, 10], %)
/// |> line([-10, 0], %)
/// |> close(%)
///
/// const example = extrude(5, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "startProfileAt", name = "startProfileAt",
@ -1111,12 +1227,13 @@ pub async fn close(args: Args) -> Result<MemoryItem, KclError> {
/// ``` /// ```
/// ///
/// ```no_run /// ```no_run
/// startSketchOn('YZ') /// const exampleSketch = startSketchOn('-XZ')
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> line([10, 10], %) /// |> line([10, 0], %)
/// |> line([10, 0], %) /// |> line([0, 10], %)
/// |> close(%, "edge1") /// |> close(%)
/// |> extrude(10, %) ///
/// const example = extrude(10, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "close", name = "close",
@ -1199,14 +1316,17 @@ pub async fn arc(args: Args) -> Result<MemoryItem, KclError> {
/// Draw an arc. /// Draw an arc.
/// ///
/// ```no_run /// ```no_run
/// startSketchOn('-YZ') /// const exampleSketch = startSketchOn('-XZ')
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> line([10, 0], %)
/// |> arc({ /// |> arc({
/// angle_start: 0, /// angle_start: 0,
/// angle_end: 360, /// angle_end: 280,
/// radius: 10, /// radius: 16
/// }, %, "edge1") /// }, %)
/// |> extrude(10, %) /// |> close(%)
///
// const example = extrude(10, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "arc", name = "arc",
@ -1299,15 +1419,20 @@ pub async fn tangential_arc(args: Args) -> Result<MemoryItem, KclError> {
/// Draw an arc. /// Draw an arc.
/// ///
/// ```no_run /// ```no_run
/// startSketchOn('-YZ') /// const exampleSketch = startSketchOn('-XZ')
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> line([10, 10], %, "edge1") /// |> angledLine({
/// |> tangentialArc({ /// angle: 60,
/// radius: 10, /// length: 10,
/// offset: 90, /// }, %)
/// }, %, "edge1") /// |> tangentialArc({ radius: 10, offset: -120 }, %)
/// |> angledLine({
/// angle: -60,
/// length: 10,
/// }, %)
/// |> close(%) /// |> close(%)
/// |> extrude(10, %) ///
/// const example = extrude(10, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "tangentialArc", name = "tangentialArc",
@ -1418,12 +1543,17 @@ pub async fn tangential_arc_to(args: Args) -> Result<MemoryItem, KclError> {
/// Draw an arc. /// Draw an arc.
/// ///
/// ```no_run /// ```no_run
/// startSketchOn('-YZ') /// const exampleSketch = startSketchOn('-XZ')
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> line([10, 10], %, "edge0") /// |> angledLine({
/// |> tangentialArcTo([10, 0], %) /// angle: 60,
/// |> close(%) /// length: 10,
/// |> extrude(10, %) /// }, %)
/// |> tangentialArcTo([15, 15], %)
/// |> line([10, -15], %)
/// |> close(%)
///
/// const example = extrude(10, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "tangentialArcTo", name = "tangentialArcTo",
@ -1498,15 +1628,18 @@ pub async fn bezier_curve(args: Args) -> Result<MemoryItem, KclError> {
/// Draw a bezier curve. /// Draw a bezier curve.
/// ///
/// ```no_run /// ```no_run
/// startSketchOn('XY') /// const exampleSketch = startSketchOn('-XZ')
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> bezierCurve({ /// |> line([0, 10], %)
/// to: [10, 10], /// |> bezierCurve({
/// control1: [5, 0], /// to: [10, 10],
/// control2: [5, 10], /// control1: [5, 0],
/// }, %, "edge1") /// control2: [5, 10]
/// |> close(%) /// }, %)
/// |> extrude(10, %) /// |> lineTo([10, 0], %)
/// |> close(%)
///
/// const example = extrude(10, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "bezierCurve", name = "bezierCurve",
@ -1580,15 +1713,33 @@ pub async fn hole(args: Args) -> Result<MemoryItem, KclError> {
/// Use a sketch to cut a hole in another sketch. /// Use a sketch to cut a hole in another sketch.
/// ///
/// ```no_run /// ```no_run
/// const square = startSketchOn('XY') /// const exampleSketch = startSketchOn('XY')
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> line([0, 10], %) /// |> line([0, 5], %)
/// |> line([10, 0], %) /// |> line([5, 0], %)
/// |> line([0, -10], %) /// |> line([0, -5], %)
/// |> close(%) /// |> close(%)
/// |> hole(circle([2, 2], .5, %), %) /// |> hole(circle([1, 1], .25, %), %)
/// |> hole(circle([2, 8], .5, %), %) /// |> hole(circle([1, 4], .25, %), %)
/// |> extrude(2, %) ///
/// const example = extrude(1, exampleSketch)
/// ```
///
/// ```no_run
/// fn squareHoleSketch = () => {
/// const squareSketch = startSketchOn('-XZ')
/// |> startProfileAt([-1, -1], %)
/// |> line([2, 0], %)
/// |> line([0, 2], %)
/// |> line([-2, 0], %)
/// |> close(%)
/// return squareSketch
/// }
///
/// const exampleSketch = startSketchOn('-XZ')
/// |> circle([0, 0], 3, %)
/// |> hole(squareHoleSketch(), %)
// const example = extrude(1, exampleSketch)
/// ``` /// ```
#[stdlib { #[stdlib {
name = "hole", name = "hole",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 143 KiB

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 143 KiB

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 128 KiB

After

Width:  |  Height:  |  Size: 134 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 127 KiB

After

Width:  |  Height:  |  Size: 127 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 124 KiB

After

Width:  |  Height:  |  Size: 127 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 109 KiB

After

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 125 KiB

After

Width:  |  Height:  |  Size: 130 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 126 KiB

After

Width:  |  Height:  |  Size: 129 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 139 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 131 KiB

After

Width:  |  Height:  |  Size: 127 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 141 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 129 KiB

After

Width:  |  Height:  |  Size: 131 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 108 KiB

After

Width:  |  Height:  |  Size: 133 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 143 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 134 KiB

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 132 KiB

After

Width:  |  Height:  |  Size: 128 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 140 KiB

After

Width:  |  Height:  |  Size: 126 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 136 KiB

After

Width:  |  Height:  |  Size: 124 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 123 KiB

After

Width:  |  Height:  |  Size: 124 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 211 KiB

After

Width:  |  Height:  |  Size: 214 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 114 KiB

After

Width:  |  Height:  |  Size: 117 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 112 KiB

After

Width:  |  Height:  |  Size: 122 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 115 KiB

After

Width:  |  Height:  |  Size: 114 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 134 KiB

After

Width:  |  Height:  |  Size: 117 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 137 KiB

After

Width:  |  Height:  |  Size: 131 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 111 KiB

After

Width:  |  Height:  |  Size: 120 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 117 KiB

After

Width:  |  Height:  |  Size: 189 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 117 KiB

After

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 87 KiB

After

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 127 KiB

After

Width:  |  Height:  |  Size: 130 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 107 KiB

After

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 115 KiB

After

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 115 KiB

After

Width:  |  Height:  |  Size: 132 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 143 KiB

After

Width:  |  Height:  |  Size: 117 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 133 KiB

After

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 133 KiB

After

Width:  |  Height:  |  Size: 135 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 134 KiB

After

Width:  |  Height:  |  Size: 117 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 147 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 135 KiB

After

Width:  |  Height:  |  Size: 128 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 154 KiB

After

Width:  |  Height:  |  Size: 131 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 104 KiB

After

Width:  |  Height:  |  Size: 127 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 114 KiB

After

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 107 KiB

After

Width:  |  Height:  |  Size: 135 KiB