From 378fc4c1a0cb3a6692139925c53302712080b7f5 Mon Sep 17 00:00:00 2001 From: Therapon Skoteiniotis Date: Wed, 10 Jun 2026 13:35:46 -0700 Subject: [PATCH 1/2] Add angularity function to GDT annotations example --- .../features/documentation/gdt-annotations-mbd/index.mdx | 1 + 1 file changed, 1 insertion(+) diff --git a/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/index.mdx b/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/index.mdx index 124bee28..b5412355 100644 --- a/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/index.mdx +++ b/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/index.mdx @@ -27,6 +27,7 @@ standard library. gdt::datum(face = datumFace, name = "A") gdt::flatness(faces = [mountingFace], tolerance = 0.05mm) gdt::position(faces = [holeFace], tolerance = 0.08mm, datums = ["A"]) +gdt::angularity(faces = [controlledSurface], tolerance = 0.1mm, datums = ["A"]) ``` Want to find out more about the `gdt` module? [Check it out](/docs/kcl-std/modules/std-gdt) in our From 17e43f4e281c590c66a6e2e103bb81acf12c48c7 Mon Sep 17 00:00:00 2001 From: Theo Skoteiniotis Date: Mon, 15 Jun 2026 21:21:16 -0700 Subject: [PATCH 2/2] adds missing GD&T documentation --- ...test_example_fn_std-gdt-concentricity0.png | Bin 0 -> 52442 bytes ...test_example_fn_std-gdt-concentricity1.png | Bin 0 -> 53473 bytes ...l_test_example_fn_std-gdt-profileLine0.png | Bin 0 -> 43660 bytes ...l_test_example_fn_std-gdt-profileLine1.png | Bin 0 -> 46093 bytes ...est_example_fn_std-gdt-profileSurface0.png | Bin 0 -> 49057 bytes ...serial_test_example_fn_std-gdt-runout0.png | Bin 0 -> 51107 bytes ...rial_test_example_fn_std-gdt-symmetry0.png | Bin 0 -> 43917 bytes ...rial_test_example_fn_std-gdt-symmetry1.png | Bin 0 -> 44398 bytes .../functions/std-gdt-concentricity.md | 138 ++++++++++++++ .../kcl-std/functions/std-gdt-profileLine.md | 102 +++++++++++ .../functions/std-gdt-profileSurface.md | 65 +++++++ .../docs/kcl-std/functions/std-gdt-runout.md | 114 ++++++++++++ .../kcl-std/functions/std-gdt-symmetry.md | 170 ++++++++++++++++++ content/pages/docs/kcl-std/modules/std-gdt.md | 5 + .../gdt-annotations-mbd/angularity/index.mdx | 73 ++++++++ .../gdt-annotations-mbd/annotation/index.mdx | 2 +- .../gdt-annotations-mbd/circularity/index.mdx | 67 +++++++ .../concentricity/index.mdx | 71 ++++++++ .../cylindricity/index.mdx | 66 +++++++ .../gdt-annotations-mbd/distance/index.mdx | 2 +- .../gdt-annotations-mbd/index.mdx | 38 ++-- .../profile-line/index.mdx | 71 ++++++++ .../profile-surface/index.mdx | 71 ++++++++ .../gdt-annotations-mbd/runout/index.mdx | 71 ++++++++ .../straightness/index.mdx | 66 +++++++ .../gdt-annotations-mbd/symmetry/index.mdx | 71 ++++++++ .../features/workspace/command-bar.mdx | 2 + 27 files changed, 1253 insertions(+), 12 deletions(-) create mode 100644 content/kcl-test-outputs/serial_test_example_fn_std-gdt-concentricity0.png create mode 100644 content/kcl-test-outputs/serial_test_example_fn_std-gdt-concentricity1.png create mode 100644 content/kcl-test-outputs/serial_test_example_fn_std-gdt-profileLine0.png create mode 100644 content/kcl-test-outputs/serial_test_example_fn_std-gdt-profileLine1.png create mode 100644 content/kcl-test-outputs/serial_test_example_fn_std-gdt-profileSurface0.png create mode 100644 content/kcl-test-outputs/serial_test_example_fn_std-gdt-runout0.png create mode 100644 content/kcl-test-outputs/serial_test_example_fn_std-gdt-symmetry0.png create mode 100644 content/kcl-test-outputs/serial_test_example_fn_std-gdt-symmetry1.png create mode 100644 content/pages/docs/kcl-std/functions/std-gdt-concentricity.md create mode 100644 content/pages/docs/kcl-std/functions/std-gdt-profileLine.md create mode 100644 content/pages/docs/kcl-std/functions/std-gdt-profileSurface.md create mode 100644 content/pages/docs/kcl-std/functions/std-gdt-runout.md create mode 100644 content/pages/docs/kcl-std/functions/std-gdt-symmetry.md create mode 100644 content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/angularity/index.mdx create mode 100644 content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/circularity/index.mdx create mode 100644 content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/concentricity/index.mdx create mode 100644 content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/cylindricity/index.mdx create mode 100644 content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/profile-line/index.mdx create mode 100644 content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/profile-surface/index.mdx create mode 100644 content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/runout/index.mdx create mode 100644 content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/straightness/index.mdx create mode 100644 content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/symmetry/index.mdx diff --git a/content/kcl-test-outputs/serial_test_example_fn_std-gdt-concentricity0.png b/content/kcl-test-outputs/serial_test_example_fn_std-gdt-concentricity0.png new file mode 100644 index 0000000000000000000000000000000000000000..e579436ffe55bcb0ee8b10b0e5dbc15aa0197c80 GIT binary patch literal 52442 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 tN-**;ZIEE(VcHW@2}WB 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�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 NZrGEt>mQvk|G!bGOz{8! literal 0 HcmV?d00001 diff --git a/content/kcl-test-outputs/serial_test_example_fn_std-gdt-profileLine0.png b/content/kcl-test-outputs/serial_test_example_fn_std-gdt-profileLine0.png new file mode 100644 index 0000000000000000000000000000000000000000..c7e5cc05bb0d53508126c29cbc6a9513751c02e9 GIT binary patch literal 43660 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 z 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 literal 0 HcmV?d00001 diff --git a/content/kcl-test-outputs/serial_test_example_fn_std-gdt-profileSurface0.png b/content/kcl-test-outputs/serial_test_example_fn_std-gdt-profileSurface0.png new file mode 100644 index 0000000000000000000000000000000000000000..c47adac9772923b06724e392279b06aabda3dbd4 GIT binary patch literal 49057 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 z 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 JS?83{1OSuQtn2^) literal 0 HcmV?d00001 diff --git a/content/kcl-test-outputs/serial_test_example_fn_std-gdt-runout0.png b/content/kcl-test-outputs/serial_test_example_fn_std-gdt-runout0.png new file mode 100644 index 0000000000000000000000000000000000000000..46eba2dfa40ee254b15504cf3566712b1aeff1bd GIT binary patch literal 51107 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 L>|<{&-}3(e{?4Z` literal 0 HcmV?d00001 diff --git a/content/kcl-test-outputs/serial_test_example_fn_std-gdt-symmetry1.png b/content/kcl-test-outputs/serial_test_example_fn_std-gdt-symmetry1.png new file mode 100644 index 0000000000000000000000000000000000000000..901bc9312eb93979689aef94e145aad643458777 GIT binary patch literal 44398 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 XSrPZlEPfK;AGcW_&pi6!if#V~B*Wdo literal 0 HcmV?d00001 diff --git a/content/pages/docs/kcl-std/functions/std-gdt-concentricity.md b/content/pages/docs/kcl-std/functions/std-gdt-concentricity.md new file mode 100644 index 00000000..7d6438d8 --- /dev/null +++ b/content/pages/docs/kcl-std/functions/std-gdt-concentricity.md @@ -0,0 +1,138 @@ +--- +title: "gdt::concentricity" +subtitle: "Function in std::gdt" +excerpt: "GD&T concentricity annotation specifying how closely a feature's median axis must align with datum references." +layout: manual +--- + +GD&T concentricity annotation specifying how closely a feature's median axis must align with datum references. + +```kcl +gdt::concentricity( + tolerance: number(Length), + datums: [string; 1+], + faces?: [TaggedFace; 1+], + edges?: [Edge; 1+], + precision?: number(_), + framePosition?: Point2d, + framePlane?: Plane, + leaderScale?: number(_), + fontSize?: number(Length), +): [GdtAnnotation; 1+] +``` + +This is part of MBD. + +Concentricity is a location tolerance for features of size. It controls the +derived median points of the annotated feature relative to a datum axis. The +tolerance zone is cylindrical, with a diameter equal to `tolerance`. Datum +references are required. + +In American Society of Mechanical Engineers (ASME) Y14.5, concentricity is +applied regardless of feature size (RFS) and does not use maximum material +condition (MMC) or least material condition (LMC) modifiers. ASME Y14.5-2018 +removed concentricity in favor of other controls such as position or runout +where appropriate. ISO standards use the name coaxiality for this concept. + +### Arguments + +| Name | Type | Description | Required | +|----------|------|-------------|----------| +| `tolerance` | [`number(Length)`](/docs/kcl-std/types/std-types-number) | The diameter of the cylindrical tolerance zone. | Yes | +| `datums` | [[`string`](/docs/kcl-std/types/std-types-string); 1+] | The datum references to display in the feature control frame. Supports up to primary, secondary, and tertiary datums. | Yes | +| `faces` | [[`TaggedFace`](/docs/kcl-std/types/std-types-TaggedFace); 1+] | The faces to be annotated. | No | +| `edges` | [[`Edge`](/docs/kcl-std/types/std-types-Edge); 1+] | The edges to be annotated. | No | +| `precision` | [`number(_)`](/docs/kcl-std/types/std-types-number) | The number of decimal places to display. The default is `3`. Must be greater than or equal to `0` and less than or equal to `9`. | No | +| `framePosition` | [`Point2d`](/docs/kcl-std/types/std-types-Point2d) | The position of the feature control frame relative to the leader arrow. The default is `[100mm, 100mm]`. | No | +| `framePlane` | [`Plane`](/docs/kcl-std/types/std-types-Plane) | The plane in which to display the feature control frame. The default is `XY`. Other standard planes like `XZ` and `YZ` can also be used. The frame may be displayed in a plane parallel to the given plane. | No | +| `leaderScale` | [`number(_)`](/docs/kcl-std/types/std-types-number) | Visual scale of the leader dot. The default is `1.0`, which maps to the calibrated normal dot size. The value is normalized against `fontSize` so the dot stays consistent as text size changes. Must be greater than `0`. | No | +| `fontSize` | [`number(Length)`](/docs/kcl-std/types/std-types-number) | The model-space height to use for annotation text. The default is `10mm`. Explicit units are supported; bare numbers use the file's default length unit. This changes the scene size, not the internal raster texture quality. | No | + +### Returns + +[[`GdtAnnotation`](/docs/kcl-std/types/std-types-GdtAnnotation); 1+] + + +### Examples + +```kcl +@settings(kclVersion = 2.0) + +datumSketch = sketch(on = XY) { + diameter = line(start = [var -6mm, var 0mm], end = [var 6mm, var 0mm]) + perimeter = arc(start = [var 6mm, var 0mm], end = [var -6mm, var 0mm], center = [var 0mm, var 0mm]) + coincident([diameter.end, perimeter.start]) + coincident([diameter.start, perimeter.end]) +} + +datumCylinder = extrude(region(point = [0mm, 1mm], sketch = datumSketch), length = 10mm) + +controlledSketch = sketch(on = XY) { + diameter = line(start = [var -3mm, var 0mm], end = [var 3mm, var 0mm]) + perimeter = arc(start = [var -3mm, var 0mm], end = [var 3mm, var 0mm], center = [var 0mm, var 0mm]) + coincident([diameter.start, perimeter.start]) + coincident([diameter.end, perimeter.end]) +} + +controlledCylinder = extrude(region(point = [0mm, -1mm], sketch = controlledSketch), length = 10mm) + +gdt::datum( + face = datumCylinder.sketch.tags.perimeter, + name = "A", + framePosition = [-14mm, 8mm], + framePlane = XZ, +) +gdt::concentricity( + faces = [ + controlledCylinder.sketch.tags.perimeter + ], + tolerance = 0.05mm, + datums = ["A"], + framePosition = [12mm, 8mm], + framePlane = XZ, +) + +``` + + +![Rendered example of gdt::concentricity 0](/kcl-test-outputs/serial_test_example_fn_std-gdt-concentricity0.png) + +```kcl +@settings(kclVersion = 2.0) + +datumSketch = sketch(on = XY) { + perimeter = circle(start = [var 6mm, var 0mm], center = [var 0mm, var 0mm]) +} + +datumCylinder = extrude(region(point = datumSketch.perimeter.center, sketch = datumSketch), length = 10mm) + +controlledSketch = sketch(on = XY) { + perimeter = circle(start = [var 3mm, var 0mm], center = [var 0mm, var 0mm]) +} + +controlledCylinder = extrude(region(point = controlledSketch.perimeter.center, sketch = controlledSketch), length = 10mm, tagEnd = $top) +topEdge = getCommonEdge(faces = [ + controlledCylinder.sketch.tags.perimeter, + top +]) + +gdt::datum( + face = datumCylinder.sketch.tags.perimeter, + name = "A", + framePosition = [-14mm, 8mm], + framePlane = XZ, +) +gdt::concentricity( + edges = [topEdge], + tolerance = 0.05mm, + datums = ["A"], + framePosition = [12mm, 8mm], + framePlane = XZ, +) + +``` + + +![Rendered example of gdt::concentricity 1](/kcl-test-outputs/serial_test_example_fn_std-gdt-concentricity1.png) + + diff --git a/content/pages/docs/kcl-std/functions/std-gdt-profileLine.md b/content/pages/docs/kcl-std/functions/std-gdt-profileLine.md new file mode 100644 index 00000000..0ed1fc19 --- /dev/null +++ b/content/pages/docs/kcl-std/functions/std-gdt-profileLine.md @@ -0,0 +1,102 @@ +--- +title: "gdt::profileLine" +subtitle: "Function in std::gdt" +excerpt: "GD&T profile-of-a-line annotation specifying how much edges may deviate from their ideal shape." +layout: manual +--- + +GD&T profile-of-a-line annotation specifying how much edges may deviate from their ideal shape. + +```kcl +gdt::profileLine( + edges: [Edge; 1+], + tolerance: number(Length), + datums?: [string; 1+], + precision?: number(_), + framePosition?: Point2d, + framePlane?: Plane, + leaderScale?: number(_), + fontSize?: number(Length), +): [GdtAnnotation; 1+] +``` + +This is part of model-based definition (MBD). + +Profile of a line is a two-dimensional tolerance zone for a cross-section or edge-like profile. + +### Arguments + +| Name | Type | Description | Required | +|----------|------|-------------|----------| +| `edges` | [[`Edge`](/docs/kcl-std/types/std-types-Edge); 1+] | The edges to be annotated. | Yes | +| `tolerance` | [`number(Length)`](/docs/kcl-std/types/std-types-number) | The amount of deviation from an ideal profile that is acceptable. | Yes | +| `datums` | [[`string`](/docs/kcl-std/types/std-types-string); 1+] | The datum references to display in the feature control frame. Supports up to primary, secondary, and tertiary datums. | No | +| `precision` | [`number(_)`](/docs/kcl-std/types/std-types-number) | The number of decimal places to display. The default is `3`. Must be greater than or equal to `0` and less than or equal to `9`. | No | +| `framePosition` | [`Point2d`](/docs/kcl-std/types/std-types-Point2d) | The position of the feature control frame relative to the leader arrow. The default is `[100mm, 100mm]`. | No | +| `framePlane` | [`Plane`](/docs/kcl-std/types/std-types-Plane) | The plane in which to display the feature control frame. The default is `XY`. Other standard planes like `XZ` and `YZ` can also be used. The frame may be displayed in a plane parallel to the given plane. | No | +| `leaderScale` | [`number(_)`](/docs/kcl-std/types/std-types-number) | Visual scale of the leader dot. The default is `1.0`, which maps to the calibrated normal dot size. The value is normalized against `fontSize` so the dot stays consistent as text size changes. Must be greater than `0`. | No | +| `fontSize` | [`number(Length)`](/docs/kcl-std/types/std-types-number) | The model-space height to use for annotation text. The default is `10mm`. Explicit units are supported; bare numbers use the file's default length unit. This changes the scene size, not the internal raster texture quality. | No | + +### Returns + +[[`GdtAnnotation`](/docs/kcl-std/types/std-types-GdtAnnotation); 1+] + + +### Examples + +```kcl +startSketchOn(XY) + |> startProfile(at = [0, 0]) + |> line(end = [10, 0], tag = $side1) + |> line(end = [0, 10], tag = $side2) + |> line(end = [-10, 0]) + |> line(end = [0, -10]) + |> close() + |> extrude(length = 5, tagEnd = $top) + +profileEdge = getCommonEdge(faces = [side1, top]) + +gdt::profileLine( + edges = [profileEdge], + tolerance = 0.1mm, + datums = ["A"], + framePosition = [10mm, 20mm], + framePlane = XZ, +) + +``` + + +![Rendered example of gdt::profileLine 0](/kcl-test-outputs/serial_test_example_fn_std-gdt-profileLine0.png) + +```kcl +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]) + edge3 = line(start = [var 10mm, var 6mm], end = [var 0mm, var 6mm]) + edge4 = line(start = [var 0mm, var 6mm], end = [var 0mm, var 0mm]) + coincident([edge1.end, edge2.start]) + coincident([edge2.end, edge3.start]) + coincident([edge3.end, edge4.start]) + coincident([edge4.end, edge1.start]) + horizontal(edge1) + vertical(edge2) + horizontal(edge3) + vertical(edge4) +} + +block = extrude(region(point = [5mm, 3mm], sketch = blockProfile), length = 4mm, tagEnd = $top) +profileEdge = getCommonEdge(faces = [block.sketch.tags.edge1, top]) +gdt::profileLine( + edges = [profileEdge], + tolerance = 0.05mm, + framePosition = [12mm, 8mm], + framePlane = XZ, +) + +``` + + +![Rendered example of gdt::profileLine 1](/kcl-test-outputs/serial_test_example_fn_std-gdt-profileLine1.png) + + diff --git a/content/pages/docs/kcl-std/functions/std-gdt-profileSurface.md b/content/pages/docs/kcl-std/functions/std-gdt-profileSurface.md new file mode 100644 index 00000000..b70a4501 --- /dev/null +++ b/content/pages/docs/kcl-std/functions/std-gdt-profileSurface.md @@ -0,0 +1,65 @@ +--- +title: "gdt::profileSurface" +subtitle: "Function in std::gdt" +excerpt: "GD&T profile-of-a-surface annotation specifying how much faces may deviate from their ideal shape." +layout: manual +--- + +GD&T profile-of-a-surface annotation specifying how much faces may deviate from their ideal shape. + +```kcl +gdt::profileSurface( + faces: [TaggedFace; 1+], + tolerance: number(Length), + datums?: [string; 1+], + precision?: number(_), + framePosition?: Point2d, + framePlane?: Plane, + leaderScale?: number(_), + fontSize?: number(Length), +): [GdtAnnotation; 1+] +``` + +This is part of model-based definition (MBD). + +Profile of a surface is a three-dimensional tolerance zone that applies across the whole annotated surface. + +### Arguments + +| Name | Type | Description | Required | +|----------|------|-------------|----------| +| `faces` | [[`TaggedFace`](/docs/kcl-std/types/std-types-TaggedFace); 1+] | The faces to be annotated. | Yes | +| `tolerance` | [`number(Length)`](/docs/kcl-std/types/std-types-number) | The amount of deviation from an ideal profile that is acceptable. | Yes | +| `datums` | [[`string`](/docs/kcl-std/types/std-types-string); 1+] | The datum references to display in the feature control frame. Supports up to primary, secondary, and tertiary datums. | No | +| `precision` | [`number(_)`](/docs/kcl-std/types/std-types-number) | The number of decimal places to display. The default is `3`. Must be greater than or equal to `0` and less than or equal to `9`. | No | +| `framePosition` | [`Point2d`](/docs/kcl-std/types/std-types-Point2d) | The position of the feature control frame relative to the leader arrow. The default is `[100mm, 100mm]`. | No | +| `framePlane` | [`Plane`](/docs/kcl-std/types/std-types-Plane) | The plane in which to display the feature control frame. The default is `XY`. Other standard planes like `XZ` and `YZ` can also be used. The frame may be displayed in a plane parallel to the given plane. | No | +| `leaderScale` | [`number(_)`](/docs/kcl-std/types/std-types-number) | Visual scale of the leader dot. The default is `1.0`, which maps to the calibrated normal dot size. The value is normalized against `fontSize` so the dot stays consistent as text size changes. Must be greater than `0`. | No | +| `fontSize` | [`number(Length)`](/docs/kcl-std/types/std-types-number) | The model-space height to use for annotation text. The default is `10mm`. Explicit units are supported; bare numbers use the file's default length unit. This changes the scene size, not the internal raster texture quality. | No | + +### Returns + +[[`GdtAnnotation`](/docs/kcl-std/types/std-types-GdtAnnotation); 1+] + + +### Examples + +```kcl +cylinderSketch = sketch(on = XY) { + perimeter = circle(start = [var 5mm, var 0mm], center = [var 0mm, var 0mm]) +} + +cylinder = extrude(region(point = cylinderSketch.perimeter.center, sketch = cylinderSketch), length = 10mm, tagEnd = $top) +gdt::profileSurface( + faces = [top], + tolerance = 0.05mm, + framePosition = [12mm, 8mm], + framePlane = XZ, +) + +``` + + +![Rendered example of gdt::profileSurface 0](/kcl-test-outputs/serial_test_example_fn_std-gdt-profileSurface0.png) + + diff --git a/content/pages/docs/kcl-std/functions/std-gdt-runout.md b/content/pages/docs/kcl-std/functions/std-gdt-runout.md new file mode 100644 index 00000000..9e135e4c --- /dev/null +++ b/content/pages/docs/kcl-std/functions/std-gdt-runout.md @@ -0,0 +1,114 @@ +--- +title: "gdt::runout" +subtitle: "Function in std::gdt" +excerpt: "GD&T annotation specifying circular runout relative to a datum axis." +layout: manual +--- + +GD&T annotation specifying circular runout relative to a datum axis. + +```kcl +gdt::runout( + tolerance: number(Length), + datums: [string; 1+], + faces?: [TaggedFace; 1+], + edges?: [Edge; 1+], + precision?: number(_), + framePosition?: Point2d, + framePlane?: Plane, + leaderScale?: number(_), + fontSize?: number(Length), +): [GdtAnnotation; 1+] +``` + +This is part of model-based definition (MBD). + +Runout controls how much a round feature may vary as it rotates around a +referenced datum axis. It may be applied to circular edges or round faces, +such as the wall of a cylinder. Datum references are required. + +Runout is applied regardless of feature size and does not use MMC or LMC. + +### Arguments + +| Name | Type | Description | Required | +|----------|------|-------------|----------| +| `tolerance` | [`number(Length)`](/docs/kcl-std/types/std-types-number) | The circular runout relative to the datum axis that is acceptable. | Yes | +| `datums` | [[`string`](/docs/kcl-std/types/std-types-string); 1+] | The datum references to display in the feature control frame. Supports up to primary, secondary, and tertiary datums. | Yes | +| `faces` | [[`TaggedFace`](/docs/kcl-std/types/std-types-TaggedFace); 1+] | The faces to be annotated. | No | +| `edges` | [[`Edge`](/docs/kcl-std/types/std-types-Edge); 1+] | The edges to be annotated. | No | +| `precision` | [`number(_)`](/docs/kcl-std/types/std-types-number) | The number of decimal places to display. The default is `3`. Must be greater than or equal to `0` and less than or equal to `9`. | No | +| `framePosition` | [`Point2d`](/docs/kcl-std/types/std-types-Point2d) | The position of the feature control frame relative to the leader arrow. The default is `[100mm, 100mm]`. | No | +| `framePlane` | [`Plane`](/docs/kcl-std/types/std-types-Plane) | The plane in which to display the feature control frame. The default is `XY`. Other standard planes like `XZ` and `YZ` can also be used. The frame may be displayed in a plane parallel to the given plane. | No | +| `leaderScale` | [`number(_)`](/docs/kcl-std/types/std-types-number) | Visual scale of the leader dot. The default is `1.0`, which maps to the calibrated normal dot size. The value is normalized against `fontSize` so the dot stays consistent as text size changes. Must be greater than `0`. | No | +| `fontSize` | [`number(Length)`](/docs/kcl-std/types/std-types-number) | The model-space height to use for annotation text. The default is `10mm`. Explicit units are supported; bare numbers use the file's default length unit. This changes the scene size, not the internal raster texture quality. | No | + +### Returns + +[[`GdtAnnotation`](/docs/kcl-std/types/std-types-GdtAnnotation); 1+] + + +### Examples + +```kcl +@settings(kclVersion = 2.0) + +annotationPlane = offsetPlane(XZ, offset = 24mm) + +controlledSketch = sketch(on = YZ) { + upperPerimeter = arc(start = [var 10mm, var 0mm], end = [var -10mm, var 0mm], center = [var 0mm, var 0mm]) + lowerPerimeter = arc(start = [var -10mm, var 0mm], end = [var 10mm, var 0mm], center = [var 0mm, var 0mm]) + coincident([ + upperPerimeter.end, + lowerPerimeter.start + ]) + coincident([ + lowerPerimeter.end, + upperPerimeter.start + ]) +} + +controlledShaft = extrude( + region(point = [0mm, 1mm], sketch = controlledSketch), + length = -58mm, + tagStart = $controlledShoulder, + tagEnd = $controlledFreeEnd, +) + +controlledUpperShoulderEdge = getCommonEdge(faces = [ + controlledShaft.sketch.tags.upperPerimeter, + controlledShoulder +]) + +datumSketch = sketch(on = YZ) { + perimeter = circle(start = [var 18mm, var 0mm], center = [var 0mm, var 0mm]) +} + +datumShaft = extrude(region(point = datumSketch.perimeter.center, sketch = datumSketch), length = 36mm, tagEnd = $datumEnd) + +gdt::datum( + face = datumShaft.sketch.tags.perimeter, + name = "A", + framePosition = [18mm, -28mm], + framePlane = annotationPlane, + leaderScale = 1.15, + fontSize = 6mm, +) + +gdt::runout( + edges = [controlledUpperShoulderEdge], + tolerance = 0.2mm, + datums = ["A"], + precision = 1, + framePosition = [12mm, 48mm], + framePlane = annotationPlane, + leaderScale = 1.15, + fontSize = 6mm, +) + +``` + + +![Rendered example of gdt::runout 0](/kcl-test-outputs/serial_test_example_fn_std-gdt-runout0.png) + + diff --git a/content/pages/docs/kcl-std/functions/std-gdt-symmetry.md b/content/pages/docs/kcl-std/functions/std-gdt-symmetry.md new file mode 100644 index 00000000..f3cabeed --- /dev/null +++ b/content/pages/docs/kcl-std/functions/std-gdt-symmetry.md @@ -0,0 +1,170 @@ +--- +title: "gdt::symmetry" +subtitle: "Function in std::gdt" +excerpt: "GD&T symmetry annotation specifying how closely a feature's median plane must align with datum references." +layout: manual +--- + +GD&T symmetry annotation specifying how closely a feature's median plane must align with datum references. + +```kcl +gdt::symmetry( + tolerance: number(Length), + datums: [string; 1+], + faces?: [TaggedFace; 1+], + edges?: [Edge; 1+], + precision?: number(_), + framePosition?: Point2d, + framePlane?: Plane, + leaderScale?: number(_), + fontSize?: number(Length), +): [GdtAnnotation; 1+] +``` + +This is part of model-based definition (MBD). + +Symmetry is a location tolerance for features of size. It controls the +derived median points of opposing feature surfaces relative to a datum +center plane. The tolerance zone is bounded by two parallel planes equally +disposed about the datum plane, with a total width equal to `tolerance`. +Datum references are required. + +Symmetry is the non-circular counterpart to concentricity. It is typically +used where mass balance or form distribution about a datum plane matters, +but it is difficult to inspect and is often replaced by position or profile +controls where appropriate. + +In American Society of Mechanical Engineers (ASME) Y14.5, symmetry is +applied regardless of feature size (RFS) and does not use maximum material +condition (MMC) or least material condition (LMC) modifiers. + +### Arguments + +| Name | Type | Description | Required | +|----------|------|-------------|----------| +| `tolerance` | [`number(Length)`](/docs/kcl-std/types/std-types-number) | The total width of the tolerance zone between two parallel planes. | Yes | +| `datums` | [[`string`](/docs/kcl-std/types/std-types-string); 1+] | The datum references to display in the feature control frame. Supports up to primary, secondary, and tertiary datums. | Yes | +| `faces` | [[`TaggedFace`](/docs/kcl-std/types/std-types-TaggedFace); 1+] | The faces to be annotated. | No | +| `edges` | [[`Edge`](/docs/kcl-std/types/std-types-Edge); 1+] | The edges to be annotated. | No | +| `precision` | [`number(_)`](/docs/kcl-std/types/std-types-number) | The number of decimal places to display. The default is `3`. Must be greater than or equal to `0` and less than or equal to `9`. | No | +| `framePosition` | [`Point2d`](/docs/kcl-std/types/std-types-Point2d) | The position of the feature control frame relative to the leader arrow. The default is `[100mm, 100mm]`. | No | +| `framePlane` | [`Plane`](/docs/kcl-std/types/std-types-Plane) | The plane in which to display the feature control frame. The default is `XY`. Other standard planes like `XZ` and `YZ` can also be used. The frame may be displayed in a plane parallel to the given plane. | No | +| `leaderScale` | [`number(_)`](/docs/kcl-std/types/std-types-number) | Visual scale of the leader dot. The default is `1.0`, which maps to the calibrated normal dot size. The value is normalized against `fontSize` so the dot stays consistent as text size changes. Must be greater than `0`. | No | +| `fontSize` | [`number(Length)`](/docs/kcl-std/types/std-types-number) | The model-space height to use for annotation text. The default is `10mm`. Explicit units are supported; bare numbers use the file's default length unit. This changes the scene size, not the internal raster texture quality. | No | + +### Returns + +[[`GdtAnnotation`](/docs/kcl-std/types/std-types-GdtAnnotation); 1+] + + +### Examples + +```kcl +@settings(kclVersion = 2.0) + +latchProfile = sketch(on = XZ) { + bottom = line(start = [var -20mm, var -10mm], end = [var 20mm, var -10mm]) + datumWidthFace = line(start = [var 20mm, var -10mm], end = [var 20mm, var 10mm]) + topRight = line(start = [var 20mm, var 10mm], end = [var 5mm, var 10mm]) + rightGrooveWall = line(start = [var 5mm, var 10mm], end = [var 5mm, var 3mm]) + grooveFloor = line(start = [var 5mm, var 3mm], end = [var -5mm, var 3mm]) + leftGrooveWall = line(start = [var -5mm, var 3mm], end = [var -5mm, var 10mm]) + topLeft = line(start = [var -5mm, var 10mm], end = [var -20mm, var 10mm]) + leftSide = line(start = [var -20mm, var 10mm], end = [var -20mm, var -10mm]) + coincident([bottom.end, datumWidthFace.start]) + coincident([datumWidthFace.end, topRight.start]) + coincident([topRight.end, rightGrooveWall.start]) + coincident([rightGrooveWall.end, grooveFloor.start]) + coincident([grooveFloor.end, leftGrooveWall.start]) + coincident([leftGrooveWall.end, topLeft.start]) + coincident([topLeft.end, leftSide.start]) + coincident([leftSide.end, bottom.start]) + horizontal(bottom) + vertical(datumWidthFace) + horizontal(topRight) + vertical(rightGrooveWall) + horizontal(grooveFloor) + vertical(leftGrooveWall) + horizontal(topLeft) + vertical(leftSide) +} + +latchBlockRegion = region(point = [0mm, 0mm], sketch = latchProfile) +latchBlock = extrude(latchBlockRegion, length = 12mm) + +gdt::datum( + face = latchBlock.sketch.tags.bottom, + name = "A", + framePosition = [0mm, -16mm], + framePlane = XZ, +) +gdt::symmetry( + faces = [latchBlock.sketch.tags.grooveFloor], + tolerance = 0.2mm, + datums = ["A"], + framePosition = [-24mm, 14mm], + framePlane = XZ, +) + +``` + + +![Rendered example of gdt::symmetry 0](/kcl-test-outputs/serial_test_example_fn_std-gdt-symmetry0.png) + +```kcl +@settings(kclVersion = 2.0) + +latchProfile = sketch(on = XZ) { + bottom = line(start = [var -20mm, var -10mm], end = [var 20mm, var -10mm]) + datumWidthFace = line(start = [var 20mm, var -10mm], end = [var 20mm, var 10mm]) + topRight = line(start = [var 20mm, var 10mm], end = [var 5mm, var 10mm]) + rightGrooveWall = line(start = [var 5mm, var 10mm], end = [var 5mm, var 3mm]) + grooveFloor = line(start = [var 5mm, var 3mm], end = [var -5mm, var 3mm]) + leftGrooveWall = line(start = [var -5mm, var 3mm], end = [var -5mm, var 10mm]) + topLeft = line(start = [var -5mm, var 10mm], end = [var -20mm, var 10mm]) + leftSide = line(start = [var -20mm, var 10mm], end = [var -20mm, var -10mm]) + coincident([bottom.end, datumWidthFace.start]) + coincident([datumWidthFace.end, topRight.start]) + coincident([topRight.end, rightGrooveWall.start]) + coincident([rightGrooveWall.end, grooveFloor.start]) + coincident([grooveFloor.end, leftGrooveWall.start]) + coincident([leftGrooveWall.end, topLeft.start]) + coincident([topLeft.end, leftSide.start]) + coincident([leftSide.end, bottom.start]) + horizontal(bottom) + vertical(datumWidthFace) + horizontal(topRight) + vertical(rightGrooveWall) + horizontal(grooveFloor) + vertical(leftGrooveWall) + horizontal(topLeft) + vertical(leftSide) +} + +latchBlockRegion = region(point = [0mm, 0mm], sketch = latchProfile) +latchBlock = extrude(latchBlockRegion, length = 12mm, tagEnd = $frontFace) +grooveFloorFrontEdge = getCommonEdge(faces = [ + latchBlock.sketch.tags.grooveFloor, + frontFace +]) + +gdt::datum( + face = latchBlock.sketch.tags.bottom, + name = "A", + framePosition = [0mm, -16mm], + framePlane = XZ, +) +gdt::symmetry( + edges = [grooveFloorFrontEdge], + tolerance = 0.2mm, + datums = ["A"], + framePosition = [-24mm, 14mm], + framePlane = XZ, +) + +``` + + +![Rendered example of gdt::symmetry 1](/kcl-test-outputs/serial_test_example_fn_std-gdt-symmetry1.png) + + diff --git a/content/pages/docs/kcl-std/modules/std-gdt.md b/content/pages/docs/kcl-std/modules/std-gdt.md index 6f6ffe10..2ea10b49 100644 --- a/content/pages/docs/kcl-std/modules/std-gdt.md +++ b/content/pages/docs/kcl-std/modules/std-gdt.md @@ -15,6 +15,7 @@ Functions for working with geometric dimensioning and tolerancing (GD&T). This c * [`gdt::angularity`](/docs/kcl-std/functions/std-gdt-angularity) * [`gdt::annotation`](/docs/kcl-std/functions/std-gdt-annotation) * [`gdt::circularity`](/docs/kcl-std/functions/std-gdt-circularity) +* [`gdt::concentricity`](/docs/kcl-std/functions/std-gdt-concentricity) * [`gdt::cylindricity`](/docs/kcl-std/functions/std-gdt-cylindricity) * [`gdt::datum`](/docs/kcl-std/functions/std-gdt-datum) * [`gdt::distance`](/docs/kcl-std/functions/std-gdt-distance) @@ -23,5 +24,9 @@ Functions for working with geometric dimensioning and tolerancing (GD&T). This c * [`gdt::perpendicularity`](/docs/kcl-std/functions/std-gdt-perpendicularity) * [`gdt::position`](/docs/kcl-std/functions/std-gdt-position) * [`gdt::profile`](/docs/kcl-std/functions/std-gdt-profile) +* [`gdt::profileLine`](/docs/kcl-std/functions/std-gdt-profileLine) +* [`gdt::profileSurface`](/docs/kcl-std/functions/std-gdt-profileSurface) +* [`gdt::runout`](/docs/kcl-std/functions/std-gdt-runout) * [`gdt::straightness`](/docs/kcl-std/functions/std-gdt-straightness) +* [`gdt::symmetry`](/docs/kcl-std/functions/std-gdt-symmetry) diff --git a/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/angularity/index.mdx b/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/angularity/index.mdx new file mode 100644 index 00000000..78830066 --- /dev/null +++ b/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/angularity/index.mdx @@ -0,0 +1,73 @@ +--- +title: Angularity +excerpt: Angularity GD&T annotation workflows in Zoo Design Studio. +sidebarPosition: 6 +--- + +Angularity controls how close selected faces or edges stay to a specified basic angle relative to a +datum. Use it for bent tabs, angled pads, ramps, and mating surfaces that must hold an orientation +other than parallel or perpendicular. + + + +## Faces Or Edges + +Select the face or edge whose angled orientation should be controlled. Choose the geometry that +directly represents the manufactured feature being inspected. + +## Tolerance + +Set the allowed angularity zone size in the current unit system. The value defines the width of the +tolerance zone shown in the feature control frame. It is a length, not a plus-or-minus angle. + +## Datums + +Add the datum label or labels that define the reference orientation. Angularity normally needs at +least one datum to make the angled relationship meaningful. + +## Precision + +Choose how many decimal places to display for the tolerance value. + +## Frame Position + +Place the feature control frame near the controlled feature while keeping it clear of the model +outline. + +## Frame Plane + +Choose the display plane for the annotation. Use `XY`, `XZ`, or `YZ` to keep the frame legible in +the intended view. + +## Leader Scale + +Adjust the visual scale of the leader dot. + +## Font Size + +Set the model-space height of the annotation text. + +## Are you interested in code? + +Zoo Design Studio writes KCL behind the scenes. An Angularity annotation uses `gdt::angularity` +with selected faces or edges, a tolerance, and datum references. The basic angle comes from the +model geometry or drawing definition. + +```kcl +gdt::angularity( + faces = [angledFace], + tolerance = 0.1mm, + datums = ["A"], + precision = 2, + framePosition = [12mm, 8mm], + framePlane = XZ, +) +``` + +Want to find out more about the `gdt::angularity` function? +[Check it out](/docs/kcl-std/functions/std-gdt-angularity) in our KCL docs. diff --git a/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/annotation/index.mdx b/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/annotation/index.mdx index cb36d49c..b21f22ad 100644 --- a/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/annotation/index.mdx +++ b/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/annotation/index.mdx @@ -1,7 +1,7 @@ --- title: Annotation excerpt: General GD&T annotation workflows in Zoo Design Studio. -sidebarPosition: 7 +sidebarPosition: 8 --- Annotation attaches general model-based manufacturing notes to selected faces or edges. Use it for diff --git a/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/circularity/index.mdx b/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/circularity/index.mdx new file mode 100644 index 00000000..58d3f4aa --- /dev/null +++ b/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/circularity/index.mdx @@ -0,0 +1,67 @@ +--- +title: Circularity +excerpt: Circularity GD&T annotation workflows in Zoo Design Studio. +sidebarPosition: 9 +--- + +Circularity controls how closely a round edge or round face follows a perfect circle. Use it for +turned diameters, bores, pins, cones, and other features of revolution where each cross-section must +stay round without referencing a datum. + + + +## Faces Or Edges + +Select a circular edge or a round face. Edges are useful when the requirement applies to a specific +rim or cross-section. Faces are useful when the requirement applies along a cylindrical or conical +surface. + +## Tolerance + +Set the allowed roundness variation in the current unit system. The circularity tolerance zone is +defined by two concentric circles whose radii differ by the tolerance value. + +## Precision + +Choose how many decimal places to display for the tolerance value. + +## Frame Position + +Place the feature control frame near the selected round feature while keeping it readable. + +## Frame Plane + +Choose the display plane for the annotation. Use `XY`, `XZ`, or `YZ` to keep the frame facing the +intended view. + +## Leader Scale + +Adjust the visual scale of the leader dot. + +## Font Size + +Set the model-space height of the annotation text. + +## Are you interested in code? + +Zoo Design Studio writes KCL behind the scenes. A Circularity annotation uses `gdt::circularity` +with selected faces or edges and a tolerance. Circularity is a form tolerance, so it does not use +datums. + +```kcl +gdt::circularity( + edges = [roundEdge], + tolerance = 0.05mm, + precision = 2, + framePosition = [12mm, 8mm], + framePlane = XZ, +) +``` + +Want to find out more about the `gdt::circularity` function? +[Check it out](/docs/kcl-std/functions/std-gdt-circularity) in our KCL docs. diff --git a/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/concentricity/index.mdx b/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/concentricity/index.mdx new file mode 100644 index 00000000..85ea435b --- /dev/null +++ b/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/concentricity/index.mdx @@ -0,0 +1,71 @@ +--- +title: Concentricity +excerpt: Concentricity GD&T annotation workflows in Zoo Design Studio. +sidebarPosition: 14 +--- + +Concentricity controls how closely the derived median axis of a round feature aligns with a datum +axis. Use it when coaxial alignment matters for rotating parts, nested diameters, precision bores, +or shafts where mass distribution around a common axis is important. + + + +## Faces Or Edges + +Select the round face or circular edge whose median axis should be controlled. Choose the geometry +that represents the manufactured feature being inspected. + +## Tolerance + +Set the diameter of the cylindrical tolerance zone in the current unit system. + +## Datums + +Add the datum label or labels that define the reference axis. Concentricity requires at least one +datum reference. + +## Precision + +Choose how many decimal places to display for the tolerance value. + +## Frame Position + +Place the feature control frame near the controlled round feature while keeping it clear of other +callouts. + +## Frame Plane + +Choose the display plane for the annotation. Use the plane that keeps the frame legible in the +inspection or documentation view. + +## Leader Scale + +Adjust the visual scale of the leader dot. + +## Font Size + +Set the model-space height of the annotation text. + +## Are you interested in code? + +Zoo Design Studio writes KCL behind the scenes. A Concentricity annotation uses +`gdt::concentricity` with selected faces or edges, a tolerance, and datum references. + +```kcl +gdt::concentricity( + faces = [controlledCylinder], + tolerance = 0.05mm, + datums = ["A"], + precision = 2, + framePosition = [12mm, 8mm], + framePlane = XZ, +) +``` + +Want to find out more about the `gdt::concentricity` function? +[Check it out](/docs/kcl-std/functions/std-gdt-concentricity) in our KCL docs. diff --git a/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/cylindricity/index.mdx b/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/cylindricity/index.mdx new file mode 100644 index 00000000..ee17a971 --- /dev/null +++ b/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/cylindricity/index.mdx @@ -0,0 +1,66 @@ +--- +title: Cylindricity +excerpt: Cylindricity GD&T annotation workflows in Zoo Design Studio. +sidebarPosition: 11 +--- + +Cylindricity controls how closely a cylindrical feature conforms to an ideal cylinder. Use it for +shafts, pins, bores, sleeves, and turned surfaces where roundness, straightness, and taper need to +be controlled together without referencing a datum. + + + +## Faces Or Edges + +Select a cylindrical face when the whole surface must fit within the cylindrical tolerance zone. You +can also select a circular edge when the requirement applies to a specific rim or section. + +## Tolerance + +Set the allowed deviation from a perfect cylinder in the current unit system. The tolerance zone is +between two coaxial cylinders whose radii differ by the tolerance value. + +## Precision + +Choose how many decimal places to display for the tolerance value. + +## Frame Position + +Place the feature control frame near the selected cylindrical feature while keeping it readable. + +## Frame Plane + +Choose the display plane for the annotation. Use `XY`, `XZ`, or `YZ` to keep the frame facing the +intended view. + +## Leader Scale + +Adjust the visual scale of the leader dot. + +## Font Size + +Set the model-space height of the annotation text. + +## Are you interested in code? + +Zoo Design Studio writes KCL behind the scenes. A Cylindricity annotation uses `gdt::cylindricity` +with selected faces or edges and a tolerance. Cylindricity is a form tolerance, so it does not use +datums. + +```kcl +gdt::cylindricity( + faces = [shaftFace], + tolerance = 0.02mm, + precision = 2, + framePosition = [12mm, 8mm], + framePlane = XZ, +) +``` + +Want to find out more about the `gdt::cylindricity` function? +[Check it out](/docs/kcl-std/functions/std-gdt-cylindricity) in our KCL docs. diff --git a/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/distance/index.mdx b/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/distance/index.mdx index bea840c7..8599d76b 100644 --- a/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/distance/index.mdx +++ b/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/distance/index.mdx @@ -1,7 +1,7 @@ --- title: Distance excerpt: Distance GD&T annotation workflows in Zoo Design Studio. -sidebarPosition: 6 +sidebarPosition: 7 --- Distance captures a dimensional tolerance for an edge length or for spacing between selected faces diff --git a/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/index.mdx b/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/index.mdx index b5412355..ad88aa6c 100644 --- a/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/index.mdx +++ b/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/index.mdx @@ -7,16 +7,32 @@ sidebarPosition: 0 GD&T Annotations (MBD) let you define geometric tolerances and datum references directly on the 3D model as part of a model-based definition workflow. -Start with [Flatness](/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/flatness) -and [Datum](/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/datum) to establish -basic form control and reference geometry. Then use -[Profile](/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/profile), -[Position](/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/position), -[Perpendicularity](/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/perpendicularity), -[Parallelism](/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/parallelism), -[Distance](/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/distance), and -[Annotation](/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/annotation) -to attach the rest of the shipped MBD callouts to model geometry. +Start with [Datum](/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/datum) to +establish reference geometry. Then choose the GD&T control that matches the inspection requirement: + +- Form controls: + [Circularity](/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/circularity), + [Cylindricity](/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/cylindricity), + [Flatness](/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/flatness), + and [Straightness](/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/straightness) +- Profile controls: + [Profile](/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/profile), + [Profile Line](/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/profile-line), + and + [Profile Surface](/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/profile-surface) +- Orientation controls: + [Angularity](/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/angularity), + [Parallelism](/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/parallelism), + and + [Perpendicularity](/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/perpendicularity) +- Location and runout controls: + [Concentricity](/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/concentricity), + [Position](/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/position), + [Runout](/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/runout), + and [Symmetry](/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/symmetry) +- Other model-based definition callouts: + [Annotation](/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/annotation) + and [Distance](/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/distance) ## Are you interested in code? @@ -26,6 +42,8 @@ standard library. ```kcl gdt::datum(face = datumFace, name = "A") gdt::flatness(faces = [mountingFace], tolerance = 0.05mm) +gdt::circularity(edges = [roundEdge], tolerance = 0.05mm) +gdt::profileSurface(faces = [contouredFace], tolerance = 0.1mm, datums = ["A"]) gdt::position(faces = [holeFace], tolerance = 0.08mm, datums = ["A"]) gdt::angularity(faces = [controlledSurface], tolerance = 0.1mm, datums = ["A"]) ``` diff --git a/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/profile-line/index.mdx b/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/profile-line/index.mdx new file mode 100644 index 00000000..788a3418 --- /dev/null +++ b/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/profile-line/index.mdx @@ -0,0 +1,71 @@ +--- +title: Profile Line +excerpt: Profile line GD&T annotation workflows in Zoo Design Studio. +sidebarPosition: 12 +--- + +Profile Line controls how far selected edge geometry may deviate from its ideal two-dimensional +profile. Use it for cross-sections, outlines, curved edges, and contour boundaries that need a +tolerance zone following the intended shape. + + + +## Edges + +Select one or more edges to control. Profile Line applies to edge geometry, so choose the outline, +curve, or section whose shape tolerance should travel with the model. + +## Tolerance + +Set the allowed deviation from the ideal profile in the current unit system. + +## Datums + +Add datum references when the profile tolerance should be evaluated relative to a datum reference +frame. Leave datums empty when the profile controls only form. + +## Precision + +Choose how many decimal places to display in the annotation. + +## Frame Position + +Place the feature control frame relative to the leader arrow. Move it far enough from the selected +edge that the annotation stays readable. + +## Frame Plane + +Choose the plane used to display the annotation frame. Use `XY`, `XZ`, or `YZ` when you need the +callout to face a predictable viewing direction. + +## Leader Scale + +Adjust the visual size of the leader dot. + +## Font Size + +Set the model-space height of the annotation text. + +## Are you interested in code? + +Zoo Design Studio writes KCL behind the scenes. A Profile Line annotation uses `gdt::profileLine` +with one or more selected edges, a tolerance, and optional datum references. + +```kcl +gdt::profileLine( + edges = [profileEdge], + tolerance = 0.1mm, + datums = ["A"], + precision = 2, + framePosition = [12mm, 8mm], + framePlane = XZ, +) +``` + +Want to find out more about the `gdt::profileLine` function? +[Check it out](/docs/kcl-std/functions/std-gdt-profileLine) in our KCL docs. diff --git a/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/profile-surface/index.mdx b/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/profile-surface/index.mdx new file mode 100644 index 00000000..c8e8354e --- /dev/null +++ b/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/profile-surface/index.mdx @@ -0,0 +1,71 @@ +--- +title: Profile Surface +excerpt: Profile surface GD&T annotation workflows in Zoo Design Studio. +sidebarPosition: 13 +--- + +Profile Surface controls how far selected faces may deviate from their ideal three-dimensional +surface. Use it for contoured surfaces, molded faces, aerodynamic surfaces, castings, and other +features where the whole surface shape matters. + + + +## Faces + +Select one or more faces to control. Profile Surface applies across the selected surface area, not +just a single boundary edge. + +## Tolerance + +Set the allowed deviation from the ideal surface in the current unit system. + +## Datums + +Add datum references when the surface profile should also control orientation or location relative +to a datum reference frame. Leave datums empty when the profile controls only form. + +## Precision + +Choose how many decimal places to display in the annotation. + +## Frame Position + +Place the feature control frame relative to the leader arrow. Keep the frame clear of dense model +details so it remains readable. + +## Frame Plane + +Choose the display plane for the feature control frame. Use the plane that keeps the annotation +facing the viewer in your documentation or inspection workflow. + +## Leader Scale + +Adjust the visual size of the leader dot. + +## Font Size + +Set the model-space height of the annotation text. + +## Are you interested in code? + +Zoo Design Studio writes KCL behind the scenes. A Profile Surface annotation uses +`gdt::profileSurface` with one or more selected faces, a tolerance, and optional datum references. + +```kcl +gdt::profileSurface( + faces = [controlledSurface], + tolerance = 0.05mm, + datums = ["A"], + precision = 2, + framePosition = [12mm, 8mm], + framePlane = XZ, +) +``` + +Want to find out more about the `gdt::profileSurface` function? +[Check it out](/docs/kcl-std/functions/std-gdt-profileSurface) in our KCL docs. diff --git a/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/runout/index.mdx b/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/runout/index.mdx new file mode 100644 index 00000000..b13bbdb9 --- /dev/null +++ b/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/runout/index.mdx @@ -0,0 +1,71 @@ +--- +title: Runout +excerpt: Runout GD&T annotation workflows in Zoo Design Studio. +sidebarPosition: 16 +--- + +Runout controls how much a round feature may vary as it rotates around a datum axis. Use it for +shafts, shoulders, bearing seats, pulleys, and other rotating features where circular variation +relative to an axis affects fit, vibration, or sealing. + + + +## Faces Or Edges + +Select a round face or circular edge that should be controlled during rotation about the datum +axis. + +## Tolerance + +Set the allowed circular runout in the current unit system. + +## Datums + +Add the datum label or labels that define the rotation axis. Runout requires at least one datum +reference. + +## Precision + +Choose how many decimal places to display for the tolerance value. + +## Frame Position + +Place the feature control frame near the selected round feature while keeping it clear of other +annotations. + +## Frame Plane + +Choose the display plane for the annotation. Use the plane that keeps the callout readable in the +view where runout will be reviewed. + +## Leader Scale + +Adjust the visual scale of the leader dot. + +## Font Size + +Set the model-space height of the annotation text. + +## Are you interested in code? + +Zoo Design Studio writes KCL behind the scenes. A Runout annotation uses `gdt::runout` with +selected faces or edges, a tolerance, and datum references. + +```kcl +gdt::runout( + edges = [shoulderEdge], + tolerance = 0.2mm, + datums = ["A"], + precision = 1, + framePosition = [12mm, 8mm], + framePlane = XZ, +) +``` + +Want to find out more about the `gdt::runout` function? +[Check it out](/docs/kcl-std/functions/std-gdt-runout) in our KCL docs. diff --git a/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/straightness/index.mdx b/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/straightness/index.mdx new file mode 100644 index 00000000..b54317c6 --- /dev/null +++ b/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/straightness/index.mdx @@ -0,0 +1,66 @@ +--- +title: Straightness +excerpt: Straightness GD&T annotation workflows in Zoo Design Studio. +sidebarPosition: 10 +--- + +Straightness controls how closely a selected edge or line element follows a perfect straight line. +Use it for guide rails, edges, slots, shaft elements, and other features where waviness or bowing +must be limited without referencing a datum. + + + +## Faces Or Edges + +Select the edge whose straightness should be controlled. You can also select a face when the visible +face element represents the straight feature being inspected. + +## Tolerance + +Set the allowed straightness variation in the current unit system. The tolerance zone is bounded by +parallel lines separated by the tolerance value. + +## Precision + +Choose how many decimal places to display for the tolerance value. + +## Frame Position + +Place the feature control frame near the selected edge while keeping it readable. + +## Frame Plane + +Choose the display plane for the annotation. Use `XY`, `XZ`, or `YZ` to keep the frame facing the +intended view. + +## Leader Scale + +Adjust the visual scale of the leader dot. + +## Font Size + +Set the model-space height of the annotation text. + +## Are you interested in code? + +Zoo Design Studio writes KCL behind the scenes. A Straightness annotation uses `gdt::straightness` +with selected faces or edges and a tolerance. Straightness is a form tolerance, so it does not use +datums. + +```kcl +gdt::straightness( + edges = [sideEdge], + tolerance = 0.05mm, + precision = 2, + framePosition = [12mm, 8mm], + framePlane = XZ, +) +``` + +Want to find out more about the `gdt::straightness` function? +[Check it out](/docs/kcl-std/functions/std-gdt-straightness) in our KCL docs. diff --git a/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/symmetry/index.mdx b/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/symmetry/index.mdx new file mode 100644 index 00000000..deed91c6 --- /dev/null +++ b/content/pages/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/symmetry/index.mdx @@ -0,0 +1,71 @@ +--- +title: Symmetry +excerpt: Symmetry GD&T annotation workflows in Zoo Design Studio. +sidebarPosition: 15 +--- + +Symmetry controls how closely a feature's derived median plane aligns with a datum center plane. Use +it when opposing surfaces must remain balanced around a datum plane, such as centered grooves, +slots, tabs, or features where mass distribution matters. + + + +## Faces Or Edges + +Select the face or edge whose median plane should be controlled. Choose the geometry that represents +the feature of size being inspected. + +## Tolerance + +Set the total width of the symmetry tolerance zone in the current unit system. + +## Datums + +Add the datum label or labels that define the center plane. Symmetry requires at least one datum +reference. + +## Precision + +Choose how many decimal places to display for the tolerance value. + +## Frame Position + +Place the feature control frame near the controlled feature while keeping it clear of other +callouts. + +## Frame Plane + +Choose the display plane for the annotation. Use the plane that keeps the callout readable in the +view where symmetry will be reviewed. + +## Leader Scale + +Adjust the visual scale of the leader dot. + +## Font Size + +Set the model-space height of the annotation text. + +## Are you interested in code? + +Zoo Design Studio writes KCL behind the scenes. A Symmetry annotation uses `gdt::symmetry` with +selected faces or edges, a tolerance, and datum references. + +```kcl +gdt::symmetry( + faces = [centeredFeature], + tolerance = 0.2mm, + datums = ["A"], + precision = 2, + framePosition = [12mm, 8mm], + framePlane = XZ, +) +``` + +Want to find out more about the `gdt::symmetry` function? +[Check it out](/docs/kcl-std/functions/std-gdt-symmetry) in our KCL docs. diff --git a/content/pages/docs/zoo-design-studio/features/workspace/command-bar.mdx b/content/pages/docs/zoo-design-studio/features/workspace/command-bar.mdx index fb623a7c..77ca3f2f 100644 --- a/content/pages/docs/zoo-design-studio/features/workspace/command-bar.mdx +++ b/content/pages/docs/zoo-design-studio/features/workspace/command-bar.mdx @@ -224,6 +224,8 @@ Parameters: **GDT Datum:** Define datum reference features. See [Datum](/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/datum/) for parameters. +**GDT Angularity:** Annotate angled orientation tolerance relative to datum references. See [Angularity](/docs/zoo-design-studio/features/documentation/gdt-annotations-mbd/angularity/) for parameters. + #### Appearance and Visualization **Appearance:** Set material properties (color, metalness, roughness, opacity). See [Appearance](/docs/zoo-design-studio/features/workspace/appearance) for parameters.