Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
102 changes: 102 additions & 0 deletions content/pages/docs/kcl-std/functions/std-gdt-profileLine.md
Original file line number Diff line number Diff line change
@@ -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)


65 changes: 65 additions & 0 deletions content/pages/docs/kcl-std/functions/std-gdt-profileSurface.md
Original file line number Diff line number Diff line change
@@ -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)


2 changes: 2 additions & 0 deletions content/pages/docs/kcl-std/modules/std-gdt.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ 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)
Expand Down
Original file line number Diff line number Diff line change
@@ -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.

<FramedImage
src="/kcl-test-outputs/serial_test_example_fn_std-gdt-angularity0.png"
alt="Angularity GD&T annotation on selected angled geometry"
aspect="1280 / 720"
maxHeightPx={460}
/>

## 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.
Original file line number Diff line number Diff line change
@@ -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
Expand Down
Original file line number Diff line number Diff line change
@@ -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.

<FramedImage
src="/kcl-test-outputs/serial_test_example_fn_std-gdt-circularity0.png"
alt="Circularity GD&T annotation on a cylindrical feature"
aspect="1280 / 720"
maxHeightPx={460}
/>

## 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.
Loading
Loading