From c9826f973b95441bcabec930566b87dac1a85e8b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 29 Aug 2026 00:32:14 +0000 Subject: [PATCH] Update KCL docs --- ...rial_test_example_fn_std-gdt-distance2.png | Bin 0 -> 47992 bytes .../kcl-std/functions/std-gdt-distance.md | 46 +++++++++++++++++- .../kcl-std/functions/std-solver-fixed.md | 29 ++++++++++- 3 files changed, 71 insertions(+), 4 deletions(-) create mode 100644 content/kcl-test-outputs/serial_test_example_fn_std-gdt-distance2.png diff --git a/content/kcl-test-outputs/serial_test_example_fn_std-gdt-distance2.png b/content/kcl-test-outputs/serial_test_example_fn_std-gdt-distance2.png new file mode 100644 index 0000000000000000000000000000000000000000..2326cc55c0a8fa8a64ec4ec79b33e9300bff5141 GIT binary patch literal 47992 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 literal 0 HcmV?d00001 diff --git a/content/pages/docs/kcl-std/functions/std-gdt-distance.md b/content/pages/docs/kcl-std/functions/std-gdt-distance.md index 6cbc59cb..d2bfe00c 100644 --- a/content/pages/docs/kcl-std/functions/std-gdt-distance.md +++ b/content/pages/docs/kcl-std/functions/std-gdt-distance.md @@ -9,7 +9,7 @@ GD&T distance annotation for displaying measured edge lengths or distances betwe ```kcl gdt::distance( - tolerance: number(Length), + tolerance?: number(Length), from?: Face | TaggedFace | Edge | any, to?: Face | TaggedFace | Edge | any, edges?: [Edge | any; 1+], @@ -27,7 +27,7 @@ This is part of model-based definition (MBD). | Name | Type | Description | Required | |----------|------|-------------|----------| -| `tolerance` | [`number(Length)`](/docs/kcl-std/types/std-types-number) | The acceptable distance tolerance. | Yes | +| `tolerance` | [`number(Length)`](/docs/kcl-std/types/std-types-number) | The acceptable distance tolerance. If not given, or 0, tolerance will not be shown. | No | | `from` | [`Face`](/docs/kcl-std/types/std-types-Face) or [`TaggedFace`](/docs/kcl-std/types/std-types-TaggedFace) or [`Edge`](/docs/kcl-std/types/std-types-Edge) or [`any`](/docs/kcl-std/types/std-types-any) | The face or edge to measure from. Must be used with `to`. The default position is the entity center. Edge specifier objects (`{ sideFaces = [...], endFaces? = [...], index? = 0 }`) are experimental; do not use them in generated or user-facing KCL yet. | No | | `to` | [`Face`](/docs/kcl-std/types/std-types-Face) or [`TaggedFace`](/docs/kcl-std/types/std-types-TaggedFace) or [`Edge`](/docs/kcl-std/types/std-types-Edge) or [`any`](/docs/kcl-std/types/std-types-any) | The face or edge to measure to. Must be used with `from`. The default position is the entity center. Edge specifier objects (`{ sideFaces = [...], endFaces? = [...], index? = 0 }`) are experimental; do not use them in generated or user-facing KCL yet. | No | | `edges` | [[`Edge`](/docs/kcl-std/types/std-types-Edge) or [`any`](/docs/kcl-std/types/std-types-any); 1+] | The edges whose lengths are annotated. Cannot be combined with `from` or `to`. Edge specifier objects (`{ sideFaces = [...], endFaces? = [...], index? = 0 }`) are experimental; do not use them in generated or user-facing KCL yet. | No | @@ -45,6 +45,8 @@ This is part of model-based definition (MBD). ### Examples ```kcl +@settings(kclVersion = 2.0) + startSketchOn(XY) |> startProfile(at = [0, 0]) |> line(end = [10, 0], tag = $side1) @@ -68,6 +70,8 @@ gdt::distance( ![Rendered example of gdt::distance 0](/kcl-test-outputs/serial_test_example_fn_std-gdt-distance0.png) ```kcl +@settings(kclVersion = 2.0) + blockProfile = sketch(on = XY) { edge1 = line(start = [var 0mm, var 0mm], end = [var 10mm, var 0mm]) edge2 = line(start = [var 10mm, var 0mm], end = [var 10mm, var 6mm]) @@ -97,4 +101,42 @@ gdt::distance( ![Rendered example of gdt::distance 1](/kcl-test-outputs/serial_test_example_fn_std-gdt-distance1.png) +```kcl +@settings(kclVersion = 2.0) + +// Example of a distance annotation with no tolerance. + +sketch001 = sketch(on = XY) { + line1 = line(start = [var -6.19mm, var 4.16mm], end = [var 7.91mm, var 4.16mm]) + line2 = line(start = [var 7.91mm, var 4.16mm], end = [var 7.91mm, var -3.35mm]) + line3 = line(start = [var 7.91mm, var -3.35mm], end = [var -6.19mm, var -3.35mm]) + line4 = line(start = [var -6.19mm, var -3.35mm], end = [var -6.19mm, var 4.16mm]) + coincident([line1.end, line2.start]) + coincident([line2.end, line3.start]) + coincident([line3.end, line4.start]) + coincident([line4.end, line1.start]) + parallel([line2, line4]) + parallel([line3, line1]) + perpendicular([line1, line2]) + horizontal(line3) +} +hidden001 = hide(sketch001) +region001 = region(segments = [sketch001.line1, sketch001.line2], direction = CW) +extrude001 = extrude(region001, length = 1, tagEnd = $capEnd001) +gdt::distance( + edges = [ + getCommonEdge(faces = [ + region001.tags.line1, + extrude001.faces.capEnd001 + ]) + ], + framePosition = [5, 5], + fontSize = 0.5276mm, +) + +``` + + +![Rendered example of gdt::distance 2](/kcl-test-outputs/serial_test_example_fn_std-gdt-distance2.png) + diff --git a/content/pages/docs/kcl-std/functions/std-solver-fixed.md b/content/pages/docs/kcl-std/functions/std-solver-fixed.md index 272405ff..97cb23f0 100644 --- a/content/pages/docs/kcl-std/functions/std-solver-fixed.md +++ b/content/pages/docs/kcl-std/functions/std-solver-fixed.md @@ -1,6 +1,6 @@ --- title: "solver::fixed" -subtitle: "Constant in std::solver" +subtitle: "Function in std::solver" excerpt: "Constrain a point to be fixed to a position." layout: manual --- @@ -8,11 +8,36 @@ layout: manual Constrain a point to be fixed to a position. ```kcl -solver::fixed +solver::fixed(@points: [Segment | Point2d; 2+]) ``` `fixed()` is an alias for `coincident()`. By convention, `fixed()` is used when one of the points is a known location, not solved with constraints and not another point in the sketch. +Calling `fixed()` with one segment, such as `fixed(edge)`, is invalid and produces an argument error. `fixed()` requires an array of at least two points or segments. To anchor a point to a fixed position, pass both values, for example `fixed([edge.start, ORIGIN])`. + + See [coincident()](/docs/kcl-std/functions/std-solver-coincident) for more info. +### Arguments + +| Name | Type | Description | Required | +|----------|------|-------------|----------| +| `points` | [[`Segment`](/docs/kcl-std/types/std-types-Segment) or [`Point2d`](/docs/kcl-std/types/std-types-Point2d); 2+] | Two or more sketch entities that should be coincident. When more than two inputs are provided, each item must be a point or `ORIGIN`. | Yes | + + +### Examples + +```kcl +profile = sketch(on = XY) { + edge = line(start = [var 0mm, var 0mm], end = [var 10mm, var 0mm]) + fixed([edge.start, ORIGIN]) + horizontal(edge) + horizontalDistance([edge.start, edge.end]) == 10mm +} + +``` + + +![Rendered example of solver::fixed 0](/kcl-test-outputs/serial_test_example_fn_std-solver-fixed0.png) +