Skip to content

Geometric Dimensioning and Toleration (GD&Ts) Frames

Geometric Dimensioning and Tolerancing (GD&T) is a system for defining and communicating the allowed geometric deviations from the norm geometry. These deviations can concern the shape, direction, location and run of a feature relative to a reference position. The table below gives you an overview of the available attributes.

Shape Direction Location Run
⏤ Straightness ∥ Parallelism ⌖ Position ↗ Circular Runout
⏥ Flattness ⟂ Perpendicularity ◎ Concentricity
○ Circularity ∠ Angularity ◎ Coaxiality
⌭ Cylindricity ⌯ Symmetry
⌒ Line Profile ⌒ Line Profile ⌒ Line Profile ⌰ Total Runout
⌓ Surface Profile ⌓ Surface Profile ⌓ Surface Profile

Source: Hoischen, H., & Hesser, W.(2011): Technisches Zeichnen: Grundlagen, Normen, Beispiele, darstellende Geometrie ; Lehr-, Übungs- und Nachschlagewerk für Schule, Fortbildung, Studium und Praxis ; mit mehr als 100 Tabellen 33., überarb. und aktualisierte Aufl.. Cornelsen.

Models

The data models are defined in the following models:

Extracted information can be accessed from the W24GDT Model.


title: W24GDT description: Parent object for Geometric Dimensioning & Tolerancing (GD&T) frames, linking each frame to its physical location on the drawing. Exposes position, bounding polygon, and the associated W24GDTFrame metadata.


W24GDT

Parent object for Geometric Dimensionsing and Toleration Frames, attaching them to the physical location on the drawing.

Attributes: frame: Representation of the GDT frame

Properties

  • position: Refer to #/definitions/W24BaseFeaturePosition.

  • bounding_polygon (array)

  • Items (array)

    • Items_0 (number)

    • Items_1 (number)

  • frame: Refer to #/definitions/W24GDTFrame.

Definitions

  • W24BaseFeatureCoordinate (object): Coordinate point
    Attributes: x: x position normalized by the thumbnail's width
    y: y position normalized by the thumbnail's height.

  • x (number)

  • y (number)

  • W24BaseFeaturePosition (object): Position of the Feature on the individual thumbnails normalized by the width and height of each thumbnail.
    Each features position is indicated as a list of coordinates. If the list only has two elements, you are dealing with a line. If it has four or more, you are looking at a polygon
    Attributes: page: Position of the Feature on the Page thumbnail
    sheet: Position of the Feature on the Sheet thumbnail
    sectional: Position of the Feature on the Sectional thumbnail.

  • sheet (array)

    • Items: Refer to #/definitions/W24BaseFeatureCoordinate.
  • canvas (array)

    • Items: Refer to #/definitions/W24BaseFeatureCoordinate.
  • sectional (array)

    • Items: Refer to #/definitions/W24BaseFeatureCoordinate.
  • W24GDTCharacteristic (string): Enum of all possible Characteristics following ISO 1101.
    !!! note When the GDT frame only describes the location of a reference datum, the value DATUM_INDICATOR is used. Must be one of: ['⏤', '⏥', '○', '⌭', '⌓', '⌒', '⟂', '∠', '∥', '⌖', '◎', '⌯', '↗', '⌰', '[DATUM]'].

  • W24GDTZoneShape (string): Enum of all zone shapes . Must be one of: ['Ø', 'S⌀'].

  • W24GDTZoneValue (object): Preliminary defintion of the GDT Zone Value Future implementation will give access to the width and extend seperately
    Attributes:
    blurb: String representation for human consumption e.g., 0.05/12x10°
    width_min: Minimal width. Also used when no maximal width is defined.
    width_max: Optional maximal width.
    extend_quantity: Optional quantity of the spacing
    extend_shape: Optional shape of the extend
    extend_value: Optional extend value
    extend_angle: Optional angle of the extend.

  • blurb (string)

  • width_min (number)

  • width_max (number)

  • extend_quantity (integer)

  • extend_shape: Refer to #/definitions/W24GDTZoneShape.

  • extend_value (number)

  • extend_angle (number)

  • W24GDTZoneCombination (string): Enum of all tolerance zone combinations . Must be one of: ['CZ', 'SZ'].

  • W24GDTZoneOffset (object): Specified offset indicated by leading UZ...
    Attributes: blurb: blurb of the specified offset for human consumption. e.g., UZ+0.15, UZ-0.2, UZ+0.1:0.2.

  • blurb (string)

  • W24GDTZoneConstraint (string): Enum of the Zone Constraints . Must be one of: ['OZ', 'VA', '><'].

  • W24GDTFilterType (string): Preliminary list of feature filters
    Filters remaining: RG, S, OH, SW, AB, CW. Must be one of: ['G', 'S', 'SW', 'CW', 'RG', 'RS', 'OB', 'OH', 'OC', 'CB', 'CH', 'CD', 'AB', 'AH', 'AD', 'F', 'H'].

  • W24GDTFilter (object): Abstract base class to describe feature filters
    Attributes: blurb: String representation of the file for human consumption
    filter_type: Filter Type to facilitate deserialization.

  • blurb (string)

  • filter_type: Refer to #/definitions/W24GDTFilterType.

  • W24GDTFeatureAssociated (string): Enum of all associated tolerated features . Must be one of: ['Ⓒ', 'Ⓖ', 'Ⓝ', 'Ⓧ', 'Ⓣ'].

  • W24GDTFeatureDerived (string): Enum of all derived features . Must be one of: ['Ⓟ', 'Ⓐ'].

  • W24GDTReferenceAssociation (string): Association of the Reference Element . Must be one of: ['C', 'CE', 'CI', 'G', 'GE', 'GI', 'N', 'X'].

  • W24GDTReferenceParameter (string): Parameter of the reference element . Must be one of: ['P', 'V', 'T', 'Q'].

  • W24GDTMaterialCondition (string): Enum for Material Conditions . Must be one of: ['Ⓜ', 'Ⓛ', 'Ⓡ'].

  • W24GDTState (string): Enum for the State . Must be one of: ['Ⓕ'].

  • W24GDTDatum (object): Preliminary implementation of the GD&T Datum
    Attributes: blurb: Reference name. Typically: A,B,C ... Can also contain more complex names, e.g., (A-B-C-D)[CM]
    !!! note Future implementations might allow fine-grained access to the attributes of complex names: e.g., (A-B-C-D)[CM].

  • blurb (string)

  • W24GDTFrame (object): Representation of the Geometric Dimensioning and Toleration frame
    Attributes: gdt_id: Unique id of the GDT
    blurb: String representation of the label for human consumption e.g., [⌖|⌀0.3Ⓜ|A|B|C]
    characteristic: Section for geometric characteristic e.g.: ⌓
    zone_shape: Tolerance zone shape, e.g, S⌀
    zone_value: GDT value: e.g., 0.03 Is optional to support Datum Feature Indicators
    zone_combinations: Ordered list of zone combinations, e.g., CZ, SZ
    zone_offset: Optional specified offset, e.g., UZ-0.2
    zone_constraint: Optional zone constraint: e.g., OZ, VA
    feature_filter: Optional feature filter
    feature_associated: Associated toleraced feature
    feature_derived: Derived Feature
    reference_association: Reference element association
    reference_parameter: Reference element parameter
    material_condition: Material condition
    state: FREE or None
    data: Ordered list of data.

  • gdt_id (string)

  • blurb (string)

  • characteristic: Refer to #/definitions/W24GDTCharacteristic.

  • zone_shape: Refer to #/definitions/W24GDTZoneShape.

  • zone_value: Refer to #/definitions/W24GDTZoneValue.

  • zone_combinations (array): Default: [].

    • Items: Refer to #/definitions/W24GDTZoneCombination.
  • zone_offset: Refer to #/definitions/W24GDTZoneOffset.

  • zone_constraint: Refer to #/definitions/W24GDTZoneConstraint.

  • feature_filter: Refer to #/definitions/W24GDTFilter.

  • feature_associated: Refer to #/definitions/W24GDTFeatureAssociated.

  • feature_derived: Refer to #/definitions/W24GDTFeatureDerived.

  • reference_association: Refer to #/definitions/W24GDTReferenceAssociation.

  • reference_parameter: Refer to #/definitions/W24GDTReferenceParameter.

  • material_condition: Refer to #/definitions/W24GDTMaterialCondition.

  • state: Refer to #/definitions/W24GDTState.

  • data (array): Default: [].

    • Items: Refer to #/definitions/W24GDTDatum.

Requesting the GD&Ts

```python

from werk24 import Hook, W24AskVariantGDTs from werk24.models.techread import W24TechreadMessage from werk24.utils import w24_read_sync

define a function to read a file and return it as bytes

from . import get_drawing_bytes

def recv_gdts(message: W24TechreadMessage) -> None: """ print the GD&Ts when we received them """ if message.is_successful: print(message.payload_dict) else: print("Exceptions occurred: {message.exceptions}")

if name == "main":

# get your drawing bytes from a file or buffer
drawing_bytes = get_drawing_bytes()

# define what information you want to receive from the API
# and what shall be done when the info is available.
hooks = [Hook(ask=W24AskVariantGDTs(), function=recv_gdts)]

# submit the request to the Werk24 API
w24_read_sync(drawing_bytes, hooks)

```

Example Response

json "gdts": [ { "bounding_polygon": [ [ 0.4561766735679779, 0.8484848484848485 ], [ 0.27191166321601107, 0.8484848484848485 ], [ 0.27191166321601107, 0.7985739750445633 ], [ 0.4561766735679779, 0.7985739750445633 ] ], "frame": { "gdt_id": null, "blurb": "[\u27c2|0.03|A]", "characteristic": "\u27c2", "zone_shape": null, "zone_value": { "blurb": "0.03", "width_min": 0.03, "width_max": null, "extend_quantity": null, "extend_shape": null, "extend": null, "extend_angle": null }, "zone_combinations": [], "zone_offset": null, "zone_constraint": null, "feature_filter": null, "feature_associated": null, "feature_derived": null, "reference_association": null, "reference_parameter": null, "material_condition": null, "state": null, "data": [ { "blurb": "A" } ] } }, { "bounding_polygon": [ [ 0.24913733609385783, 0.19607843137254902 ], [ 0.11042097998619738, 0.19607843137254902 ], [ 0.11042097998619738, 0.14616755793226383 ], [ 0.24913733609385783, 0.14616755793226383 ] ], "frame": { "gdt_id": null, "blurb": "[\u23e5|0.03]", "characteristic": "\u23e5", "zone_shape": null, "zone_value": { "blurb": "0.03", "width_min": 0.03, "width_max": null, "extend_quantity": null, "extend_shape": null, "extend": null, "extend_angle": null }, "zone_combinations": [], "zone_offset": null, "zone_constraint": null, "feature_filter": null, "feature_associated": null, "feature_derived": null, "reference_association": null, "reference_parameter": null, "material_condition": null, "state": null, "data": [] } } ]

Standards

Please refer to these standards for defining GD&Ts:

  • ISO TC 10 (Technical product documentation),
  • ISO/TC 213 (Dimensional and geometrical product specifications and verification),
  • ASME Y14.41 (Digital Product Definition Data Practices),
  • ASME 14.5 (Dimensioning and Tolerancing),
  • ASME Y14.5.1M (Mathematical Definition of Dimensioning and Tolerancing Principles), and
  • ISO 10303 (Industrial automation systems and integration - Product data representation and exchange).