From dd783459317aa28fe6bebe9a49842e7e94add891 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 10 Aug 2026 17:40:29 +0000 Subject: [PATCH] Update KCL docs --- ..._fn_std-solver-angleDimension0_output.gltf | 1632 +++++++++++++++++ ..._example_fn_std-solver-angleDimension0.png | Bin 0 -> 49448 bytes content/pages/docs/kcl-lang/functions.md | 14 + content/pages/docs/kcl-lang/index.md | 1 + content/pages/docs/kcl-lang/sketches.md | 125 ++ .../docs/kcl-samples/angle-gauge/main.kcl | 11 +- .../kcl-samples/artificial-heart/housing.kcl | 2 +- .../kcl-samples/artificial-heart/impeller.kcl | 2 +- .../kcl-samples/artificial-heart/plumbing.kcl | 2 +- .../kcl-samples/artificial-heart/stator.kcl | 2 +- .../kcl-samples/axial-fan/fan-housing.kcl | 2 +- .../docs/kcl-samples/cycloidal-gear/main.kcl | 4 +- .../kcl-samples/field-monitor-stand/main.kcl | 2 +- .../pages/docs/kcl-samples/m4-insert/main.kcl | 2 +- .../multi-axis-robot/robot-arm-base.kcl | 16 +- .../pages/docs/kcl-samples/wheel-hub/main.kcl | 2 +- .../pages/docs/kcl-samples/zoo-logo/main.kcl | 4 +- .../std-sketch-patternTransform2d.md | 4 +- .../kcl-std/functions/std-sketch-region.md | 8 +- .../kcl-std/functions/std-solver-angle.md | 10 +- .../functions/std-solver-angleDimension.md | 73 + content/pages/docs/kcl-std/index.md | 5 + .../pages/docs/kcl-std/modules/std-solver.md | 1 + .../pages/docs/kcl-std/modules/std-view.md | 24 + content/pages/docs/kcl-std/modules/std.md | 1 + .../kcl-std/types/std-view-Orientation.md | 40 + .../docs/kcl-std/types/std-view-Projection.md | 29 + .../docs/kcl-std/types/std-view-Visibility.md | 29 + 28 files changed, 2018 insertions(+), 29 deletions(-) create mode 100644 content/kcl-test-outputs/models/serial_test_example_fn_std-solver-angleDimension0_output.gltf create mode 100644 content/kcl-test-outputs/serial_test_example_fn_std-solver-angleDimension0.png create mode 100644 content/pages/docs/kcl-lang/sketches.md create mode 100644 content/pages/docs/kcl-std/functions/std-solver-angleDimension.md create mode 100644 content/pages/docs/kcl-std/modules/std-view.md create mode 100644 content/pages/docs/kcl-std/types/std-view-Orientation.md create mode 100644 content/pages/docs/kcl-std/types/std-view-Projection.md create mode 100644 content/pages/docs/kcl-std/types/std-view-Visibility.md diff --git a/content/kcl-test-outputs/models/serial_test_example_fn_std-solver-angleDimension0_output.gltf b/content/kcl-test-outputs/models/serial_test_example_fn_std-solver-angleDimension0_output.gltf new file mode 100644 index 00000000..ca086df7 --- /dev/null +++ b/content/kcl-test-outputs/models/serial_test_example_fn_std-solver-angleDimension0_output.gltf @@ -0,0 +1,1632 @@ +{ + "accessors": [ + { + "bufferView": 0, + "byteOffset": 0, + "count": 6, + "componentType": 5126, + "type": "VEC3", + "min": [ + 0.0019999800715595484, + 0, + -0.003464010078459978 + ], + "max": [ + 0.004000000189989805, + 0.0020000000949949026, + 0.00000001999999987845058 + ] + }, + { + "bufferView": 0, + "byteOffset": 12, + "count": 6, + "componentType": 5126, + "type": "VEC3" + }, + { + "bufferView": 1, + "byteOffset": 0, + "count": 6, + "componentType": 5126, + "type": "VEC3", + "min": [ + 0.00000000999999993922529, + 0, + -0.003464010078459978 + ], + "max": [ + 0.0019999800715595484, + 0.0020000000949949026, + -0.00000000999999993922529 + ] + }, + { + "bufferView": 1, + "byteOffset": 12, + "count": 6, + "componentType": 5126, + "type": "VEC3" + }, + { + "bufferView": 2, + "byteOffset": 0, + "count": 6, + "componentType": 5126, + "type": "VEC3", + "min": [ + 0.00000000999999993922529, + 0, + -0.00000000999999993922529 + ], + "max": [ + 0.004000000189989805, + 0.0020000000949949026, + 0.00000001999999987845058 + ] + }, + { + "bufferView": 2, + "byteOffset": 12, + "count": 6, + "componentType": 5126, + "type": "VEC3" + }, + { + "bufferView": 3, + "byteOffset": 0, + "count": 3, + "componentType": 5126, + "type": "VEC3", + "min": [ + 0.00000000999999993922529, + 0, + -0.003464010078459978 + ], + "max": [ + 0.004000000189989805, + 0, + 0.00000001999999987845058 + ] + }, + { + "bufferView": 3, + "byteOffset": 12, + "count": 3, + "componentType": 5126, + "type": "VEC3" + }, + { + "bufferView": 4, + "byteOffset": 0, + "count": 3, + "componentType": 5126, + "type": "VEC3", + "min": [ + 0.00000000999999993922529, + 0.0020000000949949026, + -0.003464010078459978 + ], + "max": [ + 0.004000000189989805, + 0.0020000000949949026, + 0.00000001999999987845058 + ] + }, + { + "bufferView": 4, + "byteOffset": 12, + "count": 3, + "componentType": 5126, + "type": "VEC3" + }, + { + "bufferView": 5, + "byteOffset": 0, + "count": 6, + "componentType": 5126, + "type": "VEC3", + "min": [ + 0.008999980054795742, + 0, + -0.003464010078459978 + ], + "max": [ + 0.010999999940395355, + 0.0020000000949949026, + 0.00000001999999987845058 + ] + }, + { + "bufferView": 5, + "byteOffset": 12, + "count": 6, + "componentType": 5126, + "type": "VEC3" + }, + { + "bufferView": 6, + "byteOffset": 0, + "count": 6, + "componentType": 5126, + "type": "VEC3", + "min": [ + 0.007000009994953871, + 0, + -0.003464010078459978 + ], + "max": [ + 0.008999980054795742, + 0.0020000000949949026, + -0.00000000999999993922529 + ] + }, + { + "bufferView": 6, + "byteOffset": 12, + "count": 6, + "componentType": 5126, + "type": "VEC3" + }, + { + "bufferView": 7, + "byteOffset": 0, + "count": 6, + "componentType": 5126, + "type": "VEC3", + "min": [ + 0.007000009994953871, + 0, + -0.00000000999999993922529 + ], + "max": [ + 0.010999999940395355, + 0.0020000000949949026, + 0.00000001999999987845058 + ] + }, + { + "bufferView": 7, + "byteOffset": 12, + "count": 6, + "componentType": 5126, + "type": "VEC3" + }, + { + "bufferView": 8, + "byteOffset": 0, + "count": 3, + "componentType": 5126, + "type": "VEC3", + "min": [ + 0.007000009994953871, + 0, + -0.003464010078459978 + ], + "max": [ + 0.010999999940395355, + 0, + 0.00000001999999987845058 + ] + }, + { + "bufferView": 8, + "byteOffset": 12, + "count": 3, + "componentType": 5126, + "type": "VEC3" + }, + { + "bufferView": 9, + "byteOffset": 0, + "count": 3, + "componentType": 5126, + "type": "VEC3", + "min": [ + 0.007000009994953871, + 0.0020000000949949026, + -0.003464010078459978 + ], + "max": [ + 0.010999999940395355, + 0.0020000000949949026, + 0.00000001999999987845058 + ] + }, + { + "bufferView": 9, + "byteOffset": 12, + "count": 3, + "componentType": 5126, + "type": "VEC3" + } + ], + "asset": { + "generator": "zoo.dev", + "version": "2.0" + }, + "buffers": [ + { + "byteLength": 1152, + "uri": "data:application/octet-stream;base64,bxKDO28SAzt3zKsybbNdPwAAAAC5AAC/bxKDOwAAAAB3zKsybbNdPwAAAAC5AAC/GRIDO28SAztyBGO7bbNdPwAAAAC5AAC/GRIDO28SAztyBGO7bbNdPwAAAAC5AAC/bxKDOwAAAAB3zKsybbNdPwAAAAC5AAC/GRIDOwAAAAByBGO7bbNdPwAAAAC5AAC/GRIDO28SAztyBGO7orNdvwAAAABcAAC/GRIDOwAAAAByBGO7orNdvwAAAABcAAC/d8wrMm8SAzt3zCuyorNdvwAAAABcAAC/d8wrMm8SAzt3zCuyorNdvwAAAABcAAC/GRIDOwAAAAByBGO7orNdvwAAAABcAAC/d8wrMgAAAAB3zCuyorNdvwAAAABcAAC/d8wrMm8SAzt3zCuyFhLVtgAAAAAAAIA/d8wrMgAAAAB3zCuyFhLVtgAAAAAAAIA/bxKDO28SAzt3zKsyFhLVtgAAAAAAAIA/bxKDO28SAzt3zKsyFhLVtgAAAAAAAIA/d8wrMgAAAAB3zCuyFhLVtgAAAAAAAIA/bxKDOwAAAAB3zKsyFhLVtgAAAAAAAIA/d8wrMgAAAAB3zCuyAAAAgAAAgL8AAACAGRIDOwAAAAByBGO7AAAAgAAAgL8AAACAbxKDOwAAAAB3zKsyAAAAgAAAgL8AAACAd8wrMm8SAzt3zCuyAAAAAAAAgD8AAAAAbxKDO28SAzt3zKsyAAAAAAAAgD8AAAAAGRIDO28SAztyBGO7AAAAAAAAgD8AAAAAWDk0PG8SAzt3zKsybbNdPwAAAAC5AAC/WDk0PAAAAAB3zKsybbNdPwAAAAC5AAC/p3QTPG8SAztyBGO7bbNdPwAAAAC5AAC/p3QTPG8SAztyBGO7bbNdPwAAAAC5AAC/WDk0PAAAAAB3zKsybbNdPwAAAAC5AAC/p3QTPAAAAAByBGO7bbNdPwAAAAC5AAC/p3QTPG8SAztyBGO7orNdvwAAAABcAAC/p3QTPAAAAAByBGO7orNdvwAAAABcAAC/V2DlO28SAzt3zCuyorNdvwAAAABcAAC/V2DlO28SAzt3zCuyorNdvwAAAABcAAC/p3QTPAAAAAByBGO7orNdvwAAAABcAAC/V2DlOwAAAAB3zCuyorNdvwAAAABcAAC/V2DlO28SAzt3zCuyFhLVtgAAAAAAAIA/V2DlOwAAAAB3zCuyFhLVtgAAAAAAAIA/WDk0PG8SAzt3zKsyFhLVtgAAAAAAAIA/WDk0PG8SAzt3zKsyFhLVtgAAAAAAAIA/V2DlOwAAAAB3zCuyFhLVtgAAAAAAAIA/WDk0PAAAAAB3zKsyFhLVtgAAAAAAAIA/V2DlOwAAAAB3zCuyAAAAgAAAgL8AAACAp3QTPAAAAAByBGO7AAAAgAAAgL8AAACAWDk0PAAAAAB3zKsyAAAAgAAAgL8AAACAV2DlO28SAzt3zCuyAAAAAAAAgD8AAAAAWDk0PG8SAzt3zKsyAAAAAAAAgD8AAAAAp3QTPG8SAztyBGO7AAAAAAAAgD8AAAAA" + } + ], + "bufferViews": [ + { + "buffer": 0, + "byteLength": 144, + "byteOffset": 0, + "byteStride": 24, + "target": 34962 + }, + { + "buffer": 0, + "byteLength": 144, + "byteOffset": 144, + "byteStride": 24, + "target": 34962 + }, + { + "buffer": 0, + "byteLength": 144, + "byteOffset": 288, + "byteStride": 24, + "target": 34962 + }, + { + "buffer": 0, + "byteLength": 72, + "byteOffset": 432, + "byteStride": 24, + "target": 34962 + }, + { + "buffer": 0, + "byteLength": 72, + "byteOffset": 504, + "byteStride": 24, + "target": 34962 + }, + { + "buffer": 0, + "byteLength": 144, + "byteOffset": 576, + "byteStride": 24, + "target": 34962 + }, + { + "buffer": 0, + "byteLength": 144, + "byteOffset": 720, + "byteStride": 24, + "target": 34962 + }, + { + "buffer": 0, + "byteLength": 144, + "byteOffset": 864, + "byteStride": 24, + "target": 34962 + }, + { + "buffer": 0, + "byteLength": 72, + "byteOffset": 1008, + "byteStride": 24, + "target": 34962 + }, + { + "buffer": 0, + "byteLength": 72, + "byteOffset": 1080, + "byteStride": 24, + "target": 34962 + } + ], + "scene": 0, + "extensions": { + "KITTYCAD_boundary_representation": { + "solids": [ + { + "shells": [ + [ + 0, + 1 + ] + ], + "mesh": 0, + "extras": { + "KITTYCAD": { + "material": 0 + } + } + }, + { + "shells": [ + [ + 1, + 1 + ] + ], + "mesh": 1, + "extras": { + "KITTYCAD": { + "material": 1 + } + } + } + ], + "shells": [ + { + "faces": [ + [ + 0, + 1 + ], + [ + 1, + 1 + ], + [ + 2, + 1 + ], + [ + 3, + 1 + ], + [ + 4, + 1 + ] + ] + }, + { + "faces": [ + [ + 5, + 1 + ], + [ + 6, + 1 + ], + [ + 7, + 1 + ], + [ + 8, + 1 + ], + [ + 9, + 1 + ] + ] + } + ], + "faces": [ + { + "surface": [ + 0, + 1 + ], + "loops": [ + [ + 0, + 1 + ] + ] + }, + { + "surface": [ + 1, + 1 + ], + "loops": [ + [ + 1, + 1 + ] + ] + }, + { + "surface": [ + 2, + 1 + ], + "loops": [ + [ + 2, + 1 + ] + ] + }, + { + "surface": [ + 3, + -1 + ], + "loops": [ + [ + 3, + 1 + ] + ] + }, + { + "surface": [ + 4, + 1 + ], + "loops": [ + [ + 4, + 1 + ] + ] + }, + { + "surface": [ + 5, + 1 + ], + "loops": [ + [ + 5, + 1 + ] + ] + }, + { + "surface": [ + 6, + 1 + ], + "loops": [ + [ + 6, + 1 + ] + ] + }, + { + "surface": [ + 7, + 1 + ], + "loops": [ + [ + 7, + 1 + ] + ] + }, + { + "surface": [ + 8, + -1 + ], + "loops": [ + [ + 8, + 1 + ] + ] + }, + { + "surface": [ + 9, + 1 + ], + "loops": [ + [ + 9, + 1 + ] + ] + } + ], + "loops": [ + { + "edges": [ + [ + 0, + 1 + ], + [ + 1, + 1 + ], + [ + 2, + -1 + ], + [ + 3, + -1 + ] + ] + }, + { + "edges": [ + [ + 4, + 1 + ], + [ + 5, + 1 + ], + [ + 6, + -1 + ], + [ + 1, + -1 + ] + ] + }, + { + "edges": [ + [ + 7, + 1 + ], + [ + 3, + 1 + ], + [ + 8, + -1 + ], + [ + 5, + -1 + ] + ] + }, + { + "edges": [ + [ + 7, + -1 + ], + [ + 4, + -1 + ], + [ + 0, + -1 + ] + ] + }, + { + "edges": [ + [ + 2, + 1 + ], + [ + 6, + 1 + ], + [ + 8, + 1 + ] + ] + }, + { + "edges": [ + [ + 9, + 1 + ], + [ + 10, + 1 + ], + [ + 11, + -1 + ], + [ + 12, + -1 + ] + ] + }, + { + "edges": [ + [ + 13, + 1 + ], + [ + 14, + 1 + ], + [ + 15, + -1 + ], + [ + 10, + -1 + ] + ] + }, + { + "edges": [ + [ + 16, + 1 + ], + [ + 12, + 1 + ], + [ + 17, + -1 + ], + [ + 14, + -1 + ] + ] + }, + { + "edges": [ + [ + 16, + -1 + ], + [ + 13, + -1 + ], + [ + 9, + -1 + ] + ] + }, + { + "edges": [ + [ + 11, + 1 + ], + [ + 15, + 1 + ], + [ + 17, + 1 + ] + ] + } + ], + "edges": [ + { + "curve": [ + 0, + 1 + ], + "start": 0, + "end": 1, + "t": [ + 0, + 0.003999947979824238 + ] + }, + { + "curve": [ + 1, + 1 + ], + "start": 1, + "end": 2, + "t": [ + 0, + 0.002 + ] + }, + { + "curve": [ + 2, + 1 + ], + "start": 3, + "end": 2, + "t": [ + 0, + 0.003999947979824238 + ] + }, + { + "curve": [ + 3, + 1 + ], + "start": 0, + "end": 3, + "t": [ + 0, + 0.002 + ] + }, + { + "curve": [ + 4, + 1 + ], + "start": 1, + "end": 4, + "t": [ + 0, + 0.003999896998786344 + ] + }, + { + "curve": [ + 5, + 1 + ], + "start": 4, + "end": 5, + "t": [ + 0, + 0.002 + ] + }, + { + "curve": [ + 6, + 1 + ], + "start": 2, + "end": 5, + "t": [ + 0, + 0.003999896998786344 + ] + }, + { + "curve": [ + 7, + 1 + ], + "start": 4, + "end": 0, + "t": [ + 0, + 0.0039999900001124996 + ] + }, + { + "curve": [ + 8, + 1 + ], + "start": 5, + "end": 3, + "t": [ + 0, + 0.0039999900001124996 + ] + }, + { + "curve": [ + 9, + 1 + ], + "start": 6, + "end": 7, + "t": [ + 0, + 0.003999947979824238 + ] + }, + { + "curve": [ + 10, + 1 + ], + "start": 7, + "end": 8, + "t": [ + 0, + 0.002 + ] + }, + { + "curve": [ + 11, + 1 + ], + "start": 9, + "end": 8, + "t": [ + 0, + 0.003999947979824238 + ] + }, + { + "curve": [ + 12, + 1 + ], + "start": 6, + "end": 9, + "t": [ + 0, + 0.002 + ] + }, + { + "curve": [ + 13, + 1 + ], + "start": 7, + "end": 10, + "t": [ + 0, + 0.003999896998786343 + ] + }, + { + "curve": [ + 14, + 1 + ], + "start": 10, + "end": 11, + "t": [ + 0, + 0.002 + ] + }, + { + "curve": [ + 15, + 1 + ], + "start": 8, + "end": 11, + "t": [ + 0, + 0.003999896998786343 + ] + }, + { + "curve": [ + 16, + 1 + ], + "start": 10, + "end": 6, + "t": [ + 0, + 0.003999990000112499 + ] + }, + { + "curve": [ + 17, + 1 + ], + "start": 11, + "end": 9, + "t": [ + 0, + 0.003999990000112499 + ] + } + ], + "vertices": [ + [ + 0.004, + 0, + 0.00000002 + ], + [ + 0.00199998, + 0, + -0.00346401 + ], + [ + 0.00199998, + 0.002, + -0.00346401 + ], + [ + 0.004, + 0.002, + 0.00000002 + ], + [ + 0.00000001, + 0, + -0.00000001 + ], + [ + 0.00000001, + 0.002, + -0.00000001 + ], + [ + 0.011, + 0, + 0.00000002 + ], + [ + 0.00899998, + 0, + -0.00346401 + ], + [ + 0.00899998, + 0.002, + -0.00346401 + ], + [ + 0.011, + 0.002, + 0.00000002 + ], + [ + 0.00700001, + 0, + -0.00000001 + ], + [ + 0.00700001, + 0.002, + -0.00000001 + ] + ], + "surfaces": [ + { + "type": "plane", + "plane": { + "xAxis": [ + 0.5000110012290514, + 0, + 0.8660190521287171 + ], + "yAxis": [ + 0, + -1, + 0 + ], + "origin": [ + 0.00299999, + 0.001, + -0.001732 + ] + } + }, + { + "type": "plane", + "plane": { + "xAxis": [ + 0.5000054992788864, + 0, + -0.8660222287510129 + ], + "yAxis": [ + 0, + -1, + -0 + ], + "origin": [ + 0.001, + 0.001, + -0.00173201 + ] + } + }, + { + "type": "plane", + "plane": { + "xAxis": [ + 0.9999999999798388, + 0, + 0.000006349999999871976 + ], + "yAxis": [ + 0, + 1, + -0 + ], + "origin": [ + 0.00200001, + 0.001, + 0.00000001 + ] + } + }, + { + "type": "plane", + "plane": { + "xAxis": [ + 1, + 0, + 0 + ], + "yAxis": [ + 0, + 0, + -1 + ], + "origin": [ + 0, + 0, + -0 + ] + } + }, + { + "type": "plane", + "plane": { + "xAxis": [ + 1, + 0, + 0 + ], + "yAxis": [ + 0, + 0, + -1 + ], + "origin": [ + 0, + 0.002, + -0 + ] + } + }, + { + "type": "plane", + "plane": { + "xAxis": [ + 0.5000110012290514, + 0, + 0.8660190521287171 + ], + "yAxis": [ + 0, + -1, + 0 + ], + "origin": [ + 0.00999999, + 0.001, + -0.001732 + ] + } + }, + { + "type": "plane", + "plane": { + "xAxis": [ + 0.5000054992788864, + 0, + -0.8660222287510129 + ], + "yAxis": [ + 0, + -1, + -0 + ], + "origin": [ + 0.008, + 0.001, + -0.00173201 + ] + } + }, + { + "type": "plane", + "plane": { + "xAxis": [ + 0.9999999999798388, + 0, + 0.000006349999999871976 + ], + "yAxis": [ + 0, + 1, + -0 + ], + "origin": [ + 0.00900001, + 0.001, + 0.00000001 + ] + } + }, + { + "type": "plane", + "plane": { + "xAxis": [ + 1, + 0, + 0 + ], + "yAxis": [ + 0, + 0, + -1 + ], + "origin": [ + 0, + 0, + -0 + ] + } + }, + { + "type": "plane", + "plane": { + "xAxis": [ + 1, + 0, + 0 + ], + "yAxis": [ + 0, + 0, + -1 + ], + "origin": [ + 0, + 0.002, + -0 + ] + } + } + ], + "curves3D": [ + { + "type": "line", + "line": { + "origin": [ + 0.004, + 0, + 0.00000002 + ], + "direction": [ + -0.500011502671563, + 0, + -0.8660187626120611 + ] + } + }, + { + "type": "line", + "line": { + "origin": [ + 0.00199998, + 0, + -0.00346401 + ], + "direction": [ + 0, + 1, + 0 + ] + } + }, + { + "type": "line", + "line": { + "origin": [ + 0.004, + 0.002, + 0.00000002 + ], + "direction": [ + -0.500011502671563, + 0, + -0.8660187626120611 + ] + } + }, + { + "type": "line", + "line": { + "origin": [ + 0.004, + 0, + 0.00000002 + ], + "direction": [ + 0, + 1, + 0 + ] + } + }, + { + "type": "line", + "line": { + "origin": [ + 0.00199998, + 0, + -0.00346401 + ], + "direction": [ + -0.5000053752901225, + 0, + 0.866022300336997 + ] + } + }, + { + "type": "line", + "line": { + "origin": [ + 0.00000001, + 0, + -0.00000001 + ], + "direction": [ + 0, + 1, + 0 + ] + } + }, + { + "type": "line", + "line": { + "origin": [ + 0.00199998, + 0.002, + -0.00346401 + ], + "direction": [ + -0.5000053752901225, + 0, + 0.866022300336997 + ] + } + }, + { + "type": "line", + "line": { + "origin": [ + 0.00000001, + 0, + -0.00000001 + ], + "direction": [ + 0.9999999999718748, + 0, + 0.000007500018749835938 + ] + } + }, + { + "type": "line", + "line": { + "origin": [ + 0.00000001, + 0.002, + -0.00000001 + ], + "direction": [ + 0.9999999999718748, + 0, + 0.000007500018749835938 + ] + } + }, + { + "type": "line", + "line": { + "origin": [ + 0.011, + 0, + 0.00000002 + ], + "direction": [ + -0.500011502671563, + 0, + -0.8660187626120611 + ] + } + }, + { + "type": "line", + "line": { + "origin": [ + 0.00899998, + 0, + -0.00346401 + ], + "direction": [ + 0, + 1, + 0 + ] + } + }, + { + "type": "line", + "line": { + "origin": [ + 0.011, + 0.002, + 0.00000002 + ], + "direction": [ + -0.500011502671563, + 0, + -0.8660187626120611 + ] + } + }, + { + "type": "line", + "line": { + "origin": [ + 0.011, + 0, + 0.00000002 + ], + "direction": [ + 0, + 1, + 0 + ] + } + }, + { + "type": "line", + "line": { + "origin": [ + 0.00899998, + 0, + -0.00346401 + ], + "direction": [ + -0.5000053752901223, + 0, + 0.8660223003369971 + ] + } + }, + { + "type": "line", + "line": { + "origin": [ + 0.00700001, + 0, + -0.00000001 + ], + "direction": [ + 0, + 1, + 0 + ] + } + }, + { + "type": "line", + "line": { + "origin": [ + 0.00899998, + 0.002, + -0.00346401 + ], + "direction": [ + -0.5000053752901223, + 0, + 0.8660223003369971 + ] + } + }, + { + "type": "line", + "line": { + "origin": [ + 0.00700001, + 0, + -0.00000001 + ], + "direction": [ + 0.9999999999718748, + 0, + 0.000007500018749835939 + ] + } + }, + { + "type": "line", + "line": { + "origin": [ + 0.00700001, + 0.002, + -0.00000001 + ], + "direction": [ + 0.9999999999718748, + 0, + 0.000007500018749835939 + ] + } + } + ] + } + }, + "extensionsUsed": [ + "KITTYCAD_boundary_representation" + ], + "materials": [ + { + "alphaMode": "OPAQUE", + "doubleSided": false, + "pbrMetallicRoughness": { + "baseColorFactor": [ + 0.9, + 0.9, + 0.9, + 1 + ], + "metallicFactor": 1, + "roughnessFactor": 1 + }, + "emissiveFactor": [ + 0, + 0, + 0 + ] + }, + { + "alphaMode": "OPAQUE", + "doubleSided": false, + "pbrMetallicRoughness": { + "baseColorFactor": [ + 0.9, + 0.9, + 0.9, + 1 + ], + "metallicFactor": 1, + "roughnessFactor": 1 + }, + "emissiveFactor": [ + 0, + 0, + 0 + ] + } + ], + "meshes": [ + { + "primitives": [ + { + "attributes": { + "POSITION": 0, + "NORMAL": 1 + }, + "material": 0 + }, + { + "attributes": { + "POSITION": 2, + "NORMAL": 3 + }, + "material": 0 + }, + { + "attributes": { + "POSITION": 4, + "NORMAL": 5 + }, + "material": 0 + }, + { + "attributes": { + "POSITION": 6, + "NORMAL": 7 + }, + "material": 0 + }, + { + "attributes": { + "POSITION": 8, + "NORMAL": 9 + }, + "material": 0 + } + ] + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 10, + "NORMAL": 11 + }, + "material": 1 + }, + { + "attributes": { + "POSITION": 12, + "NORMAL": 13 + }, + "material": 1 + }, + { + "attributes": { + "POSITION": 14, + "NORMAL": 15 + }, + "material": 1 + }, + { + "attributes": { + "POSITION": 16, + "NORMAL": 17 + }, + "material": 1 + }, + { + "attributes": { + "POSITION": 18, + "NORMAL": 19 + }, + "material": 1 + } + ] + } + ], + "nodes": [ + { + "children": [ + 1 + ] + }, + { + "children": [ + 2, + 3 + ] + }, + { + "extensions": { + "KITTYCAD_boundary_representation": { + "solid": 0 + } + }, + "mesh": 0 + }, + { + "extensions": { + "KITTYCAD_boundary_representation": { + "solid": 1 + } + }, + "mesh": 1 + } + ], + "scenes": [ + { + "nodes": [ + 0 + ] + } + ] +} \ No newline at end of file diff --git a/content/kcl-test-outputs/serial_test_example_fn_std-solver-angleDimension0.png b/content/kcl-test-outputs/serial_test_example_fn_std-solver-angleDimension0.png new file mode 100644 index 0000000000000000000000000000000000000000..255908b23db40f4efd5b7ffa294cb5aa27d4938e GIT binary patch literal 49448 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 + + + diff --git a/content/pages/docs/kcl-std/index.md b/content/pages/docs/kcl-std/index.md index ec5b6c34..c6564f8f 100644 --- a/content/pages/docs/kcl-std/index.md +++ b/content/pages/docs/kcl-std/index.md @@ -166,6 +166,7 @@ layout: manual * [`union`](/docs/kcl-std/functions/std-solid-union) * [**std::solver**](/docs/kcl-std/modules/std-solver) * [`solver::angle`](/docs/kcl-std/functions/std-solver-angle) + * [`solver::angleDimension`](/docs/kcl-std/functions/std-solver-angleDimension) * [`solver::arc`](/docs/kcl-std/functions/std-solver-arc) * [`solver::circle`](/docs/kcl-std/functions/std-solver-circle) * [`solver::coincident`](/docs/kcl-std/functions/std-solver-coincident) @@ -292,3 +293,7 @@ See also the [types overview](/docs/kcl-lang/types) * [`mm`](/docs/kcl-std/types/std-types-mm) * [`rad`](/docs/kcl-std/types/std-types-rad) * [`yd`](/docs/kcl-std/types/std-types-yd) +* [**std::view**](/docs/kcl-std/modules/std-view) Experimental + * [`view::Orientation`](/docs/kcl-std/types/std-view-Orientation) Experimental + * [`view::Projection`](/docs/kcl-std/types/std-view-Projection) Experimental + * [`view::Visibility`](/docs/kcl-std/types/std-view-Visibility) Experimental diff --git a/content/pages/docs/kcl-std/modules/std-solver.md b/content/pages/docs/kcl-std/modules/std-solver.md index b6fad3cd..645cf2a9 100644 --- a/content/pages/docs/kcl-std/modules/std-solver.md +++ b/content/pages/docs/kcl-std/modules/std-solver.md @@ -47,6 +47,7 @@ functions, because those are what actually constrain the solved result. * [`solver::ORIGIN`](/docs/kcl-std/consts/std-solver-ORIGIN) * [`solver::angle`](/docs/kcl-std/functions/std-solver-angle) +* [`solver::angleDimension`](/docs/kcl-std/functions/std-solver-angleDimension) * [`solver::arc`](/docs/kcl-std/functions/std-solver-arc) * [`solver::circle`](/docs/kcl-std/functions/std-solver-circle) * [`solver::coincident`](/docs/kcl-std/functions/std-solver-coincident) diff --git a/content/pages/docs/kcl-std/modules/std-view.md b/content/pages/docs/kcl-std/modules/std-view.md new file mode 100644 index 00000000..bc67657e --- /dev/null +++ b/content/pages/docs/kcl-std/modules/std-view.md @@ -0,0 +1,24 @@ +--- +title: "view" +subtitle: "Module in std" +excerpt: "Named views: cameras and visibility sets defined in KCL. " +layout: manual +--- + +**WARNING:** This module is experimental and may change or be removed. + +Named views: cameras and visibility sets defined in KCL. + +A named view pairs a camera with a set of visible objects, so consumers +such as the modeling app and STEP export can reproduce it. This version of +the module provides the enums named views are built from; the view and +camera constructors arrive in a later version. + + + + +## Types + +* [`view::Orientation`](/docs/kcl-std/types/std-view-Orientation) +* [`view::Projection`](/docs/kcl-std/types/std-view-Projection) +* [`view::Visibility`](/docs/kcl-std/types/std-view-Visibility) diff --git a/content/pages/docs/kcl-std/modules/std.md b/content/pages/docs/kcl-std/modules/std.md index 6812c3c0..ddccea46 100644 --- a/content/pages/docs/kcl-std/modules/std.md +++ b/content/pages/docs/kcl-std/modules/std.md @@ -35,6 +35,7 @@ You might also want the [KCL language reference](/docs/kcl-lang) or the [KCL gui * [`types`](/docs/kcl-std/modules/std-types) * [`units::units`](/docs/kcl-std/modules/std-units) * [`vector::vector`](/docs/kcl-std/modules/std-vector) +* [`view::view`](/docs/kcl-std/modules/std-view) ## Functions and constants diff --git a/content/pages/docs/kcl-std/types/std-view-Orientation.md b/content/pages/docs/kcl-std/types/std-view-Orientation.md new file mode 100644 index 00000000..ed6acfd3 --- /dev/null +++ b/content/pages/docs/kcl-std/types/std-view-Orientation.md @@ -0,0 +1,40 @@ +--- +title: "view::Orientation" +subtitle: "Type in std::view" +excerpt: "A standard camera orientation for a named view." +layout: manual +--- + +**WARNING:** This type is experimental and may change or be removed. + +A standard camera orientation for a named view. + +```kcl +type Orientation { + | Front + | Back + | Left + | Right + | Top + | Bottom + | Isometric +} +``` + +The six axis-aligned orientations name the side of the model the camera +looks at; `Isometric` is the standard three-quarter view. + + +### Variants + +| Variant | Description | +|---------|-------------| +| `Front` | The camera looks at the front of the model. | +| `Back` | The camera looks at the back of the model. | +| `Left` | The camera looks at the left side of the model. | +| `Right` | The camera looks at the right side of the model. | +| `Top` | The camera looks down at the top of the model. | +| `Bottom` | The camera looks up at the bottom of the model. | +| `Isometric` | The standard three-quarter view, showing three faces of the model at once. | + + diff --git a/content/pages/docs/kcl-std/types/std-view-Projection.md b/content/pages/docs/kcl-std/types/std-view-Projection.md new file mode 100644 index 00000000..f9c6e9ba --- /dev/null +++ b/content/pages/docs/kcl-std/types/std-view-Projection.md @@ -0,0 +1,29 @@ +--- +title: "view::Projection" +subtitle: "Type in std::view" +excerpt: "The camera projection of a named view." +layout: manual +--- + +**WARNING:** This type is experimental and may change or be removed. + +The camera projection of a named view. + +```kcl +type Projection { + | Orthographic + | Perspective +} +``` + + + + +### Variants + +| Variant | Description | +|---------|-------------| +| `Orthographic` | An object's projected size is independent of its distance from the camera, and parallel edges remain parallel; the convention of engineering drawings. | +| `Perspective` | Apparent size decreases with distance from the camera, as a physical camera sees; parallel edges converge toward vanishing points. | + + diff --git a/content/pages/docs/kcl-std/types/std-view-Visibility.md b/content/pages/docs/kcl-std/types/std-view-Visibility.md new file mode 100644 index 00000000..7b38bcaf --- /dev/null +++ b/content/pages/docs/kcl-std/types/std-view-Visibility.md @@ -0,0 +1,29 @@ +--- +title: "view::Visibility" +subtitle: "Type in std::view" +excerpt: "Whether a named view shows or hides objects by default." +layout: manual +--- + +**WARNING:** This type is experimental and may change or be removed. + +Whether a named view shows or hides objects by default. + +```kcl +type Visibility { + | Show + | Hide +} +``` + + + + +### Variants + +| Variant | Description | +|---------|-------------| +| `Show` | Objects are shown unless the view hides them. | +| `Hide` | Objects are hidden unless the view shows them. | + +