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:
- Requesting the GD&Ts:W24AskVariantGDTs
-
Receiving the GD&Ts as W24 Object: W24AskVariantGDTsResponse
-
Processing the GD&Ts: W24GDT
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).